(* 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_nil A (v: Vector.t A 0): v = Vector.nil.