Definition Mint_LmodMixin :=
@LmodMixin _ [zmodType of M] (fun n x => x *~ n)
mulrzA_C mulr1z mulrzDr mulrzDl.
Canonical Mint_LmodType := LmodType int M^z Mint_LmodMixin.

(* Specifications: *)
Lemma scalezrE n x : n *: (x : M^z) = x *~ n. Proof. by []. Qed.
Lemma mulrzA x m n :  x *~ (m * n) = x *~ m *~ n.
Lemma natz (n : nat) : n%:R = n%:Z :> int.
Lemma mulrzAr n x y : x * (y *~ n) = (x * y) *~ n.
Lemma mulrzl x n : n%:~R * x = x *~ n.
Canonical intmul1_rmorphism := RMorphism intmul1_is_rmorphism.
Lemma mulr2z n : n *~ 2 = n + n. Proof. exact: mulr2n. Qed.
End RintMod.
Lemma mulrzz m n : m *~ n = m * n. Proof. by rewrite -mulrzr intz. Qed.
Lemma mulz2 n : n * 2%:Z = n + n. Proof. by rewrite -mulrzz. Qed.
Lemma mul2z n : 2%:Z * n = n + n. Proof. by rewrite mulrC -mulrzz. Qed.
Section LMod.