fact: Fixpoint bounded_do_while {S : choiceType} (n : nat) (c : FrStP S bool_choiceType) : FrStP S bool_choiceType := match n with | 0 => retF false | S n => bindF (fun b => match b with | false => retF true | true => bounded_do_while n c end ) c end.
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)