Section tabulate_vec.
Variable X : Type.
Fixpoint tabulate (n : nat) (f : Fin.t n -> X) {struct n} : Vector.t X n.
End tabulate_vec.
(* Lemma vec_replace_nth X x n (t : Vector.t X n) (i : Fin.t n) : x = Vector.nth (Vector.replace t i x) i.  Lemma vec_replace_nth_nochange X x n (t : Vector.t X n) (i j : Fin.t n) : Fin.to_nat i <> Fin.to_nat j -> Vector.nth t i = Vector.nth (Vector.replace t j x) i. *)
Instance Vector_eq_dec n A: eq_dec A -> eq_dec (Vector.t A n).

Lemma Vector_in_app {X n1 n2} (x : X) (v1 : Vector.t X n1) (v2 : Vector.t X n2):
Vector.In x (v1 ++ v2) <-> Vector.In x v1 \/ Vector.In x v2.