proposition: Lemma SHARE_equiv: SHARE true ≈₀ SHARE false.
proof: Proof. apply: eq_rel_perf_ind_eq. simplify_eq_rel m. apply rpost_weaken_rule with eq; last by move=> [? ?] [? ?] []. case m => [[ml mr] U]. case: (_ (domm U)) => {U} [|a U] /=. 1: by apply: rreflexivity_rule. case: U => [|b U] /=. 2: by apply: rreflexivity_rule. case: a => [|[|a]] /=. 1,3: by apply: rreflexivity_rule. apply: r_uniform_bij => [|s0]. 1: { exists (fun x => x ⊕ (ml ⊕ mr)) => x. all: by apply: plus_involutive. } rewrite plus_assoc plus_involutive. by apply: rreflexivity_rule. Qed.
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)