Torsion submodules #
Main definitions #
torsionOf R M x
: the torsion ideal ofx
, containing alla
such thata • x = 0
.Submodule.torsionBy R M a
: thea
-torsion submodule, containing all elementsx
ofM
such thata • x = 0
.Submodule.torsionBySet R M s
: the submodule containing all elementsx
ofM
such thata • x = 0
for alla
ins
.Submodule.torsion' R M S
: theS
-torsion submodule, containing all elementsx
ofM
such thata • x = 0
for somea
inS
.Submodule.torsion R M
: the torsion submodule, containing all elementsx
ofM
such thata • x = 0
for some non-zero-divisora
inR
.Module.IsTorsionBy R M a
: the property that defines ana
-torsion module. Similarly,IsTorsionBySet
,IsTorsion'
andIsTorsion
.Module.IsTorsionBySet.module
: Creates anR ⧸ I
-module from anR
-module thatIsTorsionBySet R _ I
.
Main statements #
quot_torsionOf_equiv_span_singleton
: isomorphism between the span of an element ofM
and the quotient by its torsion ideal.torsion' R M S
andtorsion R M
are submodules.torsionBySet_eq_torsionBySet_span
: torsion by a set is torsion by the ideal generated by it.Submodule.torsionBy_is_torsionBy
: thea
-torsion submodule is ana
-torsion module. Similar lemmas fortorsion'
andtorsion
.Submodule.torsionBy_isInternal
: a∏ i, p i
-torsion module is the internal direct sum of itsp i
-torsion submodules when thep i
are pairwise coprime. A more general version with coprime ideals isSubmodule.torsionBySet_is_internal
.Submodule.noZeroSMulDivisors_iff_torsion_bot
: a module over a domain hasNoZeroSMulDivisors
(that is, there is no non-zeroa
,x
such thata • x = 0
) iff its torsion submodule is trivial.Submodule.QuotientTorsion.torsion_eq_bot
: quotienting by the torsion submodule makes the torsion submodule of the new module trivial. IfR
is a domain, we can derive an instanceSubmodule.QuotientTorsion.noZeroSMulDivisors : NoZeroSMulDivisors R (M ⧸ torsion R M)
.
Notation #
- The notions are defined for a
CommSemiring R
and aModule R M
. Some additional hypotheses onR
andM
are required by some lemmas. - The letters
a
,b
, ... are used for scalars (inR
), whilex
,y
, ... are used for vectors (inM
).
Tags #
Torsion, submodule, module, quotient
The torsion ideal of x
, containing all a
such that a • x = 0
.
Equations
- Ideal.torsionOf R M x = LinearMap.ker (LinearMap.toSpanSingleton R M x)
Instances For
See also CompleteLattice.Independent.linearIndependent
which provides the same conclusion
but requires the stronger hypothesis NoZeroSMulDivisors R M
.
The span of x
in M
is isomorphic to R
quotiented by the torsion ideal of x
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The a
-torsion submodule for a
in R
, containing all elements x
of M
such that
a • x = 0
.
Equations
- Submodule.torsionBy R M a = LinearMap.ker (DistribMulAction.toLinearMap R M a)
Instances For
The submodule containing all elements x
of M
such that a • x = 0
for all a
in s
.
Equations
- Submodule.torsionBySet R M s = sInf (Submodule.torsionBy R M '' s)
Instances For
The additive submonoid of all elements x
of M
such that a • x = 0
for some a
in S
.
Equations
- Submodule.torsion'AddSubMonoid M S = { carrier := {x : M | ∃ (a : S), a • x = 0}, add_mem' := ⋯, zero_mem' := ⋯ }
Instances For
The S
-torsion submodule, containing all elements x
of M
such that a • x = 0
for some
a
in S
.
Equations
- Submodule.torsion' R M S = { toAddSubmonoid := Submodule.torsion'AddSubMonoid M S, smul_mem' := ⋯ }
Instances For
The torsion submodule, containing all elements x
of M
such that a • x = 0
for some
non-zero-divisor a
in R
.
Equations
- Submodule.torsion R M = Submodule.torsion' R M ↥(nonZeroDivisors R)
Instances For
An a
-torsion module is a module where every element is a
-torsion.
Equations
- Module.IsTorsionBy R M a = ∀ ⦃x : M⦄, a • x = 0
Instances For
A module where every element is a
-torsion for all a
in s
.
Equations
- Module.IsTorsionBySet R M s = ∀ ⦃x : M⦄ ⦃a : ↑s⦄, ↑a • x = 0
Instances For
An S
-torsion module is a module where every element is a
-torsion for some a
in S
.
Equations
- Module.IsTorsion' M S = ∀ ⦃x : M⦄, ∃ (a : S), a • x = 0
Instances For
A torsion module is a module where every element is a
-torsion for some non-zero-divisor a
.
Equations
- Module.IsTorsion R M = ∀ ⦃x : M⦄, ∃ (a : ↥(nonZeroDivisors R)), a • x = 0
Instances For
Torsion by a set is torsion by the ideal generated by it.
An a
-torsion module is a module whose a
-torsion submodule is the full space.
The a
-torsion submodule is an a
-torsion module.
If the p i
are pairwise coprime, a ⨅ i, p i
-torsion module is the internal direct sum of
its p i
-torsion submodules.
If the q i
are pairwise coprime, a ∏ i, q i
-torsion module is the internal direct sum of
its q i
-torsion submodules.
can't be an instance because hM
can't be inferred
Equations
- hM.hasSMul = { smul := fun (b : R ⧸ I) (x : M) => ((Submodule.liftQ I (LinearMap.lsmul R M) ⋯) b) x }
Instances For
can't be an instance because hM
can't be inferred
Equations
- hM.hasSMul = ⋯.hasSMul
Instances For
An (R ⧸ I)
-module is an R
-module which IsTorsionBySet R M I
.
Equations
- hM.module = Function.Surjective.moduleLeft (Ideal.Quotient.mk I) ⋯ ⋯
Instances For
Equations
- ⋯ = ⋯
An (R ⧸ Ideal.span {r})
-module is an R
-module for which IsTorsionBy R M r
.
Equations
- hM.module = ⋯.module
Instances For
Any module is also a module over the quotient of the ring by the annihilator. Not an instance because it causes synthesis failures / timeouts.
Equations
- Module.quotientAnnihilator = ⋯.module
Instances For
Equations
- Module.instQuotientIdealSpanSubmoduleHSMulSetTop M s = ⋯.module
Equations
- Module.instQuotientIdealSubmoduleHSMulTop M I = ⋯.module
Equations
Equations
Equations
- ⋯ = ⋯
The a
-torsion submodule as an (R ⧸ R∙a)
-module.
Equations
- Submodule.instModuleQuotientTorsionBy a = ⋯.module
Equations
Equations
- ⋯ = ⋯
Given an R
-module M
and an element a
in R
, submodules of the a
-torsion submodule of
M
do not depend on whether we take scalars to be R
or R ⧸ R ∙ a
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- Submodule.instSMulSubtypeMemTorsion' S = { smul := fun (s : S) (x : ↥(Submodule.torsion' R M S)) => ⟨s • ↑x, ⋯⟩ }
Equations
- Submodule.instDistribMulActionSubtypeMemTorsion' S = Function.Injective.distribMulAction (Submodule.torsion' R M S).subtype.toAddMonoidHom ⋯ ⋯
Equations
- ⋯ = ⋯
An S
-torsion module is a module whose S
-torsion submodule is the full space.
The S
-torsion submodule is an S
-torsion module.
The torsion submodule of the torsion submodule (viewed as a module) is the full torsion module.
The torsion submodule is always a torsion module.
A module over a domain has NoZeroSMulDivisors
iff its torsion submodule is trivial.
Quotienting by the torsion submodule gives a torsion-free module.
Equations
- ⋯ = ⋯
In a p ^ ∞
-torsion module (that is, a module where all elements are cancelled by scalar
multiplication by some power of p
), the smallest n
such that p ^ n • x = 0
.
Equations
- Submodule.pOrder hM x = Nat.find ⋯
Instances For
The additive n
-torsion subgroup for an integer n
.
Equations
- AddSubgroup.torsionBy A n = (Submodule.torsionBy ℤ A n).toAddSubgroup
Instances For
The additive n
-torsion subgroup for an integer n
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
For a natural number n
, the n
-torsion subgroup of A
is a ZMod n
module.
Equations
- AddSubgroup.torsionBy.zmodModule = AddCommGroup.zmodModule ⋯