(* Lemmas that DO NOT depend on CompCert or Verifiable C *)
Definition Vector_0_is_nil (T : Type) (v : Vector.t T 0) : v = Vector.nil T :=
match v with Vector.nil => eq_refl end.
intros. inversion H; split; trivial. Qed.
*)

Lemma firstn_exact :
forall {A : Type} (l1 l2 : list A) (n : nat),
(length l1 = n)%nat -> firstn n (l1 ++ l2) = l1.