proposition: Lemma plus_assoc : ∀ m n k, ((m ⊕ n) ⊕ k) = (m ⊕ (n ⊕ k)).
proof: Proof. intros m p k. move: ord_inj => Hordinj. unfold injective in Hordinj. apply Hordinj. destruct m. cbn. rewrite !Nnat.N2Nat.id. rewrite BinNat.N.lxor_assoc. reflexivity. Qed.
imports: Relational(OrderEnrichedCategory GenericRulesSimple) mathcomp(all_ssreflect all_algebra reals distr fingroup.fingroup realsum ssrnat ssreflect ssrfun ssrbool ssrnum eqtype choice seq) Crypt(Axioms ChoiceAsOrd SubDistr Couplings UniformDistrLemmas FreeProbProg Theta_dens RulesStateProb UniformStateProb pkg_composition pkg_rhl Package Prelude) Coq(Utf8 Lia) extructures(ord fset fmap) Equations(Equations)