proposition: Lemma build_aligned_ByteString_inj {n}: forall (v1 v2 : Vector.t _ n), build_aligned_ByteString v1 = build_aligned_ByteString v2 -> v1 = v2.
proof: Proof. unfold build_aligned_ByteString; intros. injection H. intro. rewrite <- (EqdepFacts.eq_sigT_snd H0); clear. generalize (EqdepFacts.eq_sigT_fst H0); clear H0; intros. replace e with (eq_refl n); try reflexivity. eapply UIP_dec; decide equality. 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