proposition: Lemma Vector_append_assoc {A} : forall m n o H (v1 : Vector.t A m) (v2 : Vector.t A n) (v3 : Vector.t A o), Vector.append v1 (Vector.append v2 v3) = eq_rect _ _ (Vector.append (Vector.append v1 v2) v3) _ H.
proof: Proof. intros ? ? ? ?; induction v1; simpl; intros. - replace H with (eq_refl (n + o)); try reflexivity. eapply UIP_dec; intros; decide equality. - erewrite IHv1. erewrite eq_rect_Vector_cons. reflexivity. Unshelve. omega. 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