(* 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 In_nth A n i (v: Vector.t A n): List.In (nth v i) v.