Definition eqb_vector(A : Set)(eqd : EqDec A)(n : nat)(v1 v2 : Vector.t A n) :=
  Vector.fold_left2 (fun b a1 a2 => b && (eqb a1 a2)) true v1 v2.

(* Specifications: *)
Theorem eqb_vector_refl : forall (A : Set)(eqd : EqDec A)(n : nat)(v : Vector.t A n), eqb_vector _ v v = true.
Theorem vector_fold_false : forall (A : Set)(f : A -> A -> bool)(n : nat)(v1 v2 : Vector.t A n), Vector.fold_left2 (fun b a1 a2 => b && (f a1 a2)) false v1 v2 = false.
Theorem eqb_vector_leibniz: forall (A : Set)(eqd : EqDec A)(n : nat)(v1 v2 : Vector.t A n), eqb_vector _ v1 v2 = true -> v1 = v2.