fact: Definition EncodeMEquivAlignedEncodeM (f : EncodeM S ByteString) (f' : forall numBytes, AlignedEncodeM numBytes) := forall env s idx, (forall t env', f s env = Some (t, env') -> padding t = 0 -> forall (v1 : Vector.t char idx) v m v2, exists v', f' _ (Vector.append v1 (Vector.append (n := numBytes t) (p := m) v v2)) idx s env = Some (v', idx + numBytes t, env') /\ ByteString_enqueue_ByteString (build_aligned_ByteString v1) (ByteString_enqueue_ByteString t (build_aligned_ByteString v2)) = build_aligned_ByteString v')%nat /\ (forall t env' numBytes' v, f s env = Some (t, env') -> 8 + 8 * numBytes' <= length_ByteString t + (8 * idx) -> f' numBytes' v idx s env = None)%nat /\ (forall t env' numBytes' v, f s env = Some (t, env') -> padding t <> 0 -> f' numBytes' v idx s env = None)%nat /\ (forall numBytes' v, f s env = None -> f' numBytes' v idx s env = None).
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.Common.BoundedLookup Fiat.Narcissus.Common.Specs Fiat.Narcissus.Common.ComposeOpt Fiat.Narcissus.Common.ComposeIf Fiat.Narcissus.BaseFormats Fiat.Narcissus.BinLib.Core Fiat.Narcissus.BinLib.AlignedByteString