proposition: Lemma Vector_append_split_fst: forall (A : Type) (m n : nat) (v1 : Vector.t A m) (v2 : Vector.t A n), v1 = fst (Vector_split m n (Vector.append v1 v2)).
proof: Proof. induction v1; simpl; intros; eauto. rewrite (IHv1 v2) at 1. destruct (Vector_split n0 n (Vector.append v1 v2)); reflexivity. Qed.
imports: Fiat.Common.Coq__8_4__8_5__Compat Bedrock.Word Coq.ZArith.ZArith Coq.NArith.NArith Coq.Arith.Arith Coq.Numbers.Natural.Peano.NPeano Coq.Logic.Eqdep_dec Fiat.Narcissus.Common.Specs Fiat.Narcissus.BinLib.Core Fiat.Narcissus.Formats.ByteBuffer Coq.Strings.String Coq.Vectors.Vector Fiat.Narcissus.Formats.WordOpt Fiat.Common.Equality