Modules over ℕ
and ℤ
#
This file concerns modules where the scalars are the natural numbers or the integers.
Main definitions #
AddCommGroup.toNatModule
: anyAddCommMonoid
is (uniquely) a module over the naturals. TODO: this name is not right!AddCommGroup.toIntModule
: anyAddCommGroup
is a module over the integers.
Main results #
AddCommMonoid.uniqueNatModule
: there is an uniqueAddCommMonoid ℕ M
structure for anyM
Tags #
semimodule, module, vector space
Equations
@[reducible, inline]
abbrev
Module.addCommMonoidToAddCommGroup
(R : Type u_1)
{M : Type u_3}
[Ring R]
[AddCommMonoid M]
[Module R M]
:
An AddCommMonoid
that is a Module
over a Ring
carries a natural AddCommGroup
structure.
See note [reducible non-instances].
Equations
Instances For
theorem
ofNat_smul_eq_nsmul
(R : Type u_1)
{M : Type u_3}
[Semiring R]
[AddCommMonoid M]
[Module R M]
(n : ℕ)
[n.AtLeastTwo]
(b : M)
:
OfNat.ofNat n • b = OfNat.ofNat n • b
nsmul
is equal to any other module structure via a cast.
Convert back any exotic ℕ
-smul to the canonical instance. This should not be needed since in
mathlib all AddCommMonoid
s should normally have exactly one ℕ
-module structure by design.
All ℕ
-module structures are equal. Not an instance since in mathlib all AddCommMonoid
should normally have exactly one ℕ
-module structure by design.
Equations
- AddCommMonoid.uniqueNatModule = { default := inferInstance, uniq := ⋯ }
Instances For
theorem
AddCommMonoid.nat_isScalarTower
{R : Type u_1}
{M : Type u_3}
[Semiring R]
[AddCommMonoid M]
[Module R M]
:
IsScalarTower ℕ R M
theorem
map_natCast_smul
{M : Type u_3}
{M₂ : Type u_4}
[AddCommMonoid M]
[AddCommMonoid M₂]
{F : Type u_5}
[FunLike F M M₂]
[AddMonoidHomClass F M M₂]
(f : F)
(R : Type u_6)
(S : Type u_7)
[Semiring R]
[Semiring S]
[Module R M]
[Module S M₂]
(x : ℕ)
(a : M)
:
@[deprecated Nat.smul_one_eq_cast]
Alias of Nat.smul_one_eq_cast
.
@[deprecated Int.smul_one_eq_cast]
Alias of Int.smul_one_eq_cast
.