proposition: Lemma plus_involutive : ∀ m k, (m ⊕ k) ⊕ k = m.
proof: Proof. intros m k. move: ord_inj => Hordinj. unfold injective in Hordinj. apply Hordinj. destruct m. cbn. rewrite Nnat.N2Nat.id. rewrite BinNat.N.lxor_assoc. rewrite BinNat.N.lxor_nilpotent. rewrite BinNat.N.lxor_0_r. rewrite Nnat.Nat2N.id. reflexivity. 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)