fact: Definition SHARE_pkg_tt: package fset0 [interface] [interface #val #[shares]: ('word × 'word) × 'set 'nat → 'seq 'word ] := [package #def #[shares] ('(ml, mr, U): ('word × 'word) × 'set 'nat): 'seq 'word { if size (domm U) >= 2 then ret emptym else s0 <$ uniform (2^n) ;; let s1 := s0 ⊕ ml in let sh := [fmap (0, s0) ; (1, s1)] in ret (fmap_of_seq (pmap sh (domm U))) } ].
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)