proposition: Lemma op_outoffree (s0 : S): UniversalFreeMap.outOfFree sigMap (Arst (op_iota o)) splo = @sigMap S (op_iota o).
proof: Proof. cbn. rewrite /OrderEnrichedRelativeAdjunctionsExamples.ToTheS_obligation_1. apply boolp.funext. move=> s0'. rewrite /FreeProbProg.rFree_obligation_2. rewrite /FreeProbProg.rFree_obligation_1. cbn. rewrite /probopStP. reflexivity. Qed.
imports: Coq(RelationClasses Morphisms Utf8) Mon(SPropMonadicStructures SpecificationMonads MonadExamples SPropBase FiniteProbabilities) Relational(OrderEnrichedCategory OrderEnrichedRelativeMonadExamples Commutativity GenericRulesSimple) mathcomp(all_ssreflect all_algebra reals distr realsum finmap.set finmap.finmap xfinmap) Crypt(Axioms ChoiceAsOrd SubDistr Couplings Theta_dens Theta_exCP LaxComp FreeProbProg RelativeMonadMorph_prod StateTransformingLaxMorph choice_type)