proposition: Lemma ots_real_vs_rnd_equiv_false : ots_real_vs_rnd false ≈₀ Aux ∘ DH_rnd.
proof: Proof. eapply eq_rel_perf_ind_eq. simplify_eq_rel m. all: ssprove_code_simpl. - eapply rpost_weaken_rule. 1: eapply rreflexivity_rule. cbn. intros [? ?] [? ?] e. inversion e. intuition auto. - ssprove_sync_eq. intro count. ssprove_sync_eq. destruct count. 2:{ cbn. eapply rpost_weaken_rule. 1: eapply rreflexivity_rule. cbn. intros [? ?] [? ?] e. inversion e. intuition auto. } simpl. ssprove_sync_eq. intro a. ssprove_swap_rhs 1%N. ssprove_swap_rhs 0%N. ssprove_sync_eq. ssprove_swap_rhs 1%N. ssprove_swap_rhs 0%N. ssprove_sync_eq. eapply r_transR. 1:{ eapply r_uniform_prod. intros x y. eapply rreflexivity_rule. } simpl. eapply rsymmetry. eapply @r_uniform_bij with (f := f' m). 1: apply bijective_f'. simpl. intros x. unfold f'. set (z := ch2prod x). clearbody z. clear x. destruct z as [x y]. simpl. eapply r_ret. intros s ? e. subst. intuition auto. rewrite !otf_fto. simpl. reflexivity. Qed.
imports: Relational(OrderEnrichedCategory GenericRulesSimple) mathcomp(all_ssreflect all_algebra reals distr realsum fingroup.fingroup solvable.cyclic prime ssrnat ssreflect ssrfun ssrbool ssrnum eqtype choice seq) Mon(SPropBase) Crypt(Axioms ChoiceAsOrd SubDistr Couplings UniformDistrLemmas FreeProbProg Theta_dens RulesStateProb UniformStateProb pkg_core_definition choice_type pkg_composition pkg_rhl Package Prelude AsymScheme) Coq(Utf8) extructures(ord fset fmap) Equations(Equations)