A module over the natural numbers, i.e. a type with zero, addition, and scalar multiplication by natural numbers, satisfying appropriate compatibilities.
Equivalently, an additive commutative monoid.
Use IntModule
if the type has negation.
Instance Constructor
Lean.Grind.NatModule.mk.{u}
Extends
Methods
zero : M
-
AddCommMonoid M
add : M → M → M
-
AddCommMonoid M
add_zero : ∀ (a : M), a + 0 = a
-
AddCommMonoid M
add_comm : ∀ (a b : M), a + b = b + a
-
AddCommMonoid M
add_assoc : ∀ (a b c : M), a + b + c = a + (b + c)
-
AddCommMonoid M
nsmul : HMul Nat M M
Scalar multiplication by natural numbers.
zero_nsmul : ∀ (a : M), 0 * a = 0
Scalar multiplication by zero is zero.
add_one_nsmul : ∀ (n : Nat) (a : M), (n + 1) * a = n * a + a
Scalar multiplication by a successor.