fact: Definition CorrectAlignedEncoder (format : FormatM S ByteString) (encoder : forall sz, AlignedEncodeM sz) := {encoder' : EncodeM S ByteString & (forall s env, (forall t env', encoder' s env = Some (t, env') -> refine (format s env) (ret (t, env'))) /\ (encoder' s env = None -> forall benv', ~ computes_to (format s env) benv')) /\ (forall s env t env', encoder' s env = Some (t, env') -> padding t = 0) /\ EncodeMEquivAlignedEncodeM encoder' encoder}.
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