Global Set Automatic Coercions Import.
Set Implicit Arguments.
Unset Standard Proposition Elimination Names.
(* Intended for use without Import. *)
Require Vector.
Require List.
Arguments Vector.cons [A] _ [n].
Arguments Vector.nil [A].
(* eliminators/inversion *)
Definition head A n (v: Vector.t A (S n)): A :=
match v with
| Vector.nil => I | Vector.cons h _ _ => h
end.
Definition tail n A (v: Vector.t A (S n)): Vector.t A n :=
match v with
| Vector.nil => I | Vector.cons _ _ t => t
end.

Lemma eq_cons A n (v: Vector.t A (S n)): v = Vector.cons (head v) (tail v).