(* maybe it would be nicer to have this one as the primitive, and natBelow_S_inv above as the derived one *)

Fixpoint nth X (n: nat) (v: Vector.t X n): natBelow n -> X :=
  match v with
  | Vector.nil => fun nb => natBelow0_rect nb _
  | Vector.cons h k t => fun nb => natBelow_S_bla nb h (nth t)
  end.

Lemma nth_S A p (v: Vector.t A (S p)) (n: natBelow p): nth v (Snb n) = nth (tail v) n.