fact: Definition CorrectEncoderFor {S T} {cache : Cache} {monoid : Monoid T} FormatSpec := { encoder' : EncodeM S T & forall a env, (forall benv', encoder' a env = Some benv' -> refine (FormatSpec a env) (ret benv')) /\ (encoder' a env = None -> forall benv', ~ computes_to (FormatSpec a env) benv')}.
imports: Coq.Lists.List Fiat.Common Fiat.Computation.Core Fiat.Computation.Notations Fiat.Narcissus.Common.Notations Fiat.Narcissus.Common.Monoid Fiat.Narcissus.Stores.Cache