fact: Definition L_pk_ots_L : package L_locs_counter [interface] [interface #val #[getpk_id] : 'unit → 'pubkey ; #val #[challenge_id] : 'plain × 'plain → 'cipher ] := [package #def #[getpk_id] (_ : 'unit) : 'pubkey { pk ← get pk_loc ;; ret pk } ; #def #[challenge_id] (mL_mR : 'plain × 'plain) : 'cipher { count ← get counter_loc ;; #put counter_loc := (count + 1)%N;; #assert (count == 0)%N ;; '(pk, sk) ← KeyGen ;; #put pk_loc := pk ;; #put sk_loc := sk ;; c ← Enc pk (fst mL_mR) ;; ret c } ].
imports: Relational(OrderEnrichedCategory GenericRulesSimple) mathcomp(all_ssreflect all_algebra reals distr realsum ssrnat ssreflect ssrfun ssrbool ssrnum eqtype choice seq) Crypt(Axioms ChoiceAsOrd SubDistr Couplings UniformDistrLemmas FreeProbProg Theta_dens RulesStateProb UniformStateProb pkg_core_definition choice_type pkg_composition pkg_rhl Package Prelude) Coq(Utf8) extructures(ord fset fmap)