(* 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).