fact: Definition align_format_sumtype {m : nat} {types : t Type m} (align_encoders_n : ilist2.ilist2 (B := fun T : Type => T -> CacheFormat -> nat) types) (align_encoders_v : i2list (B := fun T : Type => T -> CacheFormat -> nat) (fun (T : Type) (n : _) => forall t ce, Vector.t (word 8) (n t ce)) align_encoders_n) (align_encoders_ce : ilist (B := (fun T : Type => T -> CacheFormat -> CacheFormat)) types) (st : SumType types) (ce : CacheFormat) := (existT _ _ (i2th align_encoders_v (SumType_index types st) (SumType_proj types st) ce), ith align_encoders_ce (SumType_index types st) (SumType_proj types st) ce).
imports: Coq.Strings.String Coq.Arith.Mult Coq.Vectors.Vector Fiat.Common.SumType Fiat.Common.BoundedLookup Fiat.Common.ilist Fiat.Common.i2list Fiat.Common.DecideableEnsembles Fiat.Common.IterateBoundedIndex Fiat.Computation Fiat.Narcissus.Common.Specs Fiat.Narcissus.Common.ComposeOpt Fiat.Narcissus.Formats.SumTypeOpt Fiat.Narcissus.BinLib.AlignedByteString Fiat.Narcissus.BinLib.AlignedDecoders Bedrock.Word