proposition: Lemma IND_CPA_equiv_false : IND_CPA false ≈₀ MOD_CPA_ff_pkg ∘ (EVAL true).
proof: Proof. eapply eq_rel_perf_ind_eq. simplify_eq_rel m. simplify_linking. ssprove_swap_rhs 1%N. ssprove_swap_rhs 0%N. ssprove_sync_eq. cbn. intros [k|]. - cbn. ssprove_swap_rhs 0%N. eapply rpost_weaken_rule. 1: eapply rreflexivity_rule. cbn. intros [? ?] [? ?] e. inversion e. intuition auto. - cbn. ssprove_swap_rhs 0%N. ssprove_swap_rhs 1%N. ssprove_swap_rhs 0%N. ssprove_swap_rhs 2%N. ssprove_swap_rhs 1%N. eapply rpost_weaken_rule. 1: eapply rreflexivity_rule. cbn. intros [? ?] [? ?] e. inversion e. intuition auto. 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) Coq(Utf8) extructures(ord fset fmap) Equations(Equations)