Definition zmodule (M : Type) : Type := M.Local Notation "M ^z" := (zmodule M) (at level 2, format "M ^z") : type_scope.Fact mulrzA_C m n x : (x *~ n) *~ m = x *~ (m * n).Fact mulrzAC m n x : (x *~ n) *~ m = (x *~ m) *~ n.Fact mulr1z (x : M) : x *~ 1 = x.Canonical Mint_LmodType := LmodType int M^z Mint_LmodMixin.

(* Specifications: *)
Lemma mulrzA x m n : x *~ (m * n) = x *~ m *~ n.
Lemma mulr0z x : x *~ 0 = 0.
Lemma mul0rz n : 0 *~ n = 0 :> M.
Lemma mulrNz x n : x *~ (- n) = - (x *~ n).
Lemma mulrN1z x : x *~ (- 1) = - x.
Lemma mulNrz x n : (- x) *~ n = - (x *~ n).
Lemma mulrzBr x m n : x *~ (m - n) = x *~ m - x *~ n.
Lemma mulrzBl x y n : (x - y) *~ n = x *~ n - y *~ n.