fact: Definition EVAL_SAMP_pkg: package EVAL_locs_ff [interface #val #[samp]: 'set 'ciph → 'ciph ] [interface #val #[lookup]: 'ciph → 'ciph ; #val #[invlookup]: 'ciph → 'ciph ] := [package #def #[lookup] (x: 'ciph): 'ciph { T ← get T_loc ;; match getm T x with | None => #import {sig #[samp]: 'set 'ciph → 'ciph } as samp ;; y ← samp (fset_to_chset (codomm T)) ;; Tinv ← get Tinv_loc ;; #put T_loc := setm T x y ;; #put Tinv_loc := setm Tinv y x ;; ret y | Some y => ret y end } ; #def #[invlookup] (y: 'ciph): 'ciph { Tinv ← get Tinv_loc ;; match getm Tinv y with | None => #import {sig #[samp]: 'set 'ciph → 'ciph } as samp ;; x ← samp (fset_to_chset (codomm Tinv)) ;; T ← get T_loc ;; #put T_loc := setm T x y ;; #put Tinv_loc := setm Tinv y x ;; ret x | Some x => ret x 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)