proposition: Lemma format_list_body_characterization A_format_Impl : forall xs base env, fold_left (format_list_body A_format_Impl) xs (base, env) = (let (b2, env2) := fold_left (format_list_body A_format_Impl) xs (mempty, env) in (mappend base b2, env2)).
proof: Proof. induction xs; simpl. + intros; rewrite mempty_right; reflexivity. + intros; destruct (A_format_Impl _ _). rewrite IHxs, mempty_left, (IHxs t). destruct (fold_left _ _ _). rewrite mappend_assoc; reflexivity. Qed.
imports: Fiat.Common.Coq__8_4__8_5__Compat Coq.ZArith.ZArith Fiat.Narcissus.Common.Notations Fiat.Narcissus.Common.Specs Fiat.Narcissus.Common.ComposeOpt Fiat.Narcissus.BaseFormats Fiat.Narcissus.Formats.Base.FixFormat Coq.Lists.List