(* 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 Vcons_eq_inv A (h h': A) n (t t': Vector.t A n): Vector.cons h t = Vector.cons h' t' -> h = h' /\ t = t'.