fact: Definition compose E B (monoid : Monoid B) (format1 : E -> Comp (B * E)) (format2 : E -> Comp (B * E)) := (fun e0 => `(p, e1) <- format1 e0; `(q, e2) <- format2 e1; ret (mappend p q, e2))%comp.
imports: Fiat.Computation Fiat.Common.DecideableEnsembles Fiat.Narcissus.Common.Specs Fiat.Narcissus.Common.Notations