fact: Fixpoint for_loop {A : choiceType} (c : A -> MFreePr A) (n : nat) (a : A) := match n with | 0 => c a | S m => ord_relmon_bind MFreePr (fun a' => for_loop c m a') (c a) end.
imports: Coq(RelationClasses Morphisms Utf8) Mon(FiniteProbabilities SPropMonadicStructures SpecificationMonads MonadExamples SPropBase) Relational(OrderEnrichedCategory OrderEnrichedRelativeMonadExamples Commutativity GenericRulesSimple) mathcomp(all_ssreflect all_algebra reals distr realsum) Crypt(Axioms ChoiceAsOrd SubDistr Couplings Theta_dens Theta_exCP LaxComp FreeProbProg RelativeMonadMorph_prod)