fact: Definition kgen (l: Location): raw_code 'word := k_init ← get ('option 'word ; projT2 l) ;; match k_init with | None => k <$ uniform Word_N ;; #put ('option 'word ; projT2 l) := Some k ;; ret k | Some k => ret k end.
imports: Relational(OrderEnrichedCategory GenericRulesSimple) mathcomp(all_ssreflect all_algebra reals distr realsum ssrnat ssreflect ssrfun ssrbool ssrnum eqtype choice seq) Mon(SPropBase) Crypt(Axioms ChoiceAsOrd SubDistr Couplings UniformDistrLemmas FreeProbProg Theta_dens RulesStateProb pkg_core_definition choice_type pkg_composition pkg_rhl Package Prelude) extructures(ord fset fmap) Equations(Equations)