Torsion submodules #
Main definitions #
torsionOf R M x: the torsion ideal ofx, containing allasuch thata • x = 0.Submodule.torsionBy R M a: thea-torsion submodule, containing all elementsxofMsuch thata • x = 0.Submodule.torsionBySet R M s: the submodule containing all elementsxofMsuch thata • x = 0for allains.Submodule.torsion' R M S: theS-torsion submodule, containing all elementsxofMsuch thata • x = 0for someainS.Submodule.torsion R M: the torsion submodule, containing all elementsxofMsuch thata • x = 0for some non-zero-divisorainR.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 ofMand the quotient by its torsion ideal.torsion' R M Sandtorsion R Mare 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 iare pairwise coprime. A more general version with coprime ideals isSubmodule.torsionBySet_isInternal.Submodule.noZeroSMulDivisors_iff_torsion_bot: a module over a domain hasNoZeroSMulDivisors(that is, there is no non-zeroa,xsuch 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. IfRis a domain, we can derive an instanceSubmodule.QuotientTorsion.noZeroSMulDivisors : NoZeroSMulDivisors R (M ⧸ torsion R M).
Notation #
- The notions are defined for a
CommSemiring Rand aModule R M. Some additional hypotheses onRandMare required by some lemmas. - The letters
a,b, ... are used for scalars (inR), whilex,y, ... are used for vectors (inM).
TODO #
- Move the advanced material to a new file
RingTheory.Torsion. - Replace
NoZeroSMulDivisorswithModule.IsTorsionFree
Tags #
Torsion, submodule, module, quotient
Torsion-free modules #
A R-module M is torsion-free if scalar multiplication by an element r : R is injective if
multiplication (on R) by r is.
For domains, this is equivalent to the usual condition of r • m = 0 → r = 0 ∨ m = 0.
TODO: Prove it.
- isSMulRegular ⦃r : R⦄ : IsRegular r → IsSMulRegular M r
Instances
Torsion #
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 iSupIndep.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 S-torsion submodule, containing all elements x of M such that a • x = 0 for some
a in S.
Equations
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) => ⇑((QuotientAddGroup.lift (Submodule.toAddSubgroup I) (smulAddHom R M) ⋯) b) }
Instances For
can't be an instance because hM can't be inferred
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
If a R-module M is annihilated by a two-sided ideal I, then the identity is a semilinear
map from the R-module M to the R ⧸ I-module M.
Equations
- hM.semilinearMap = { toFun := id, map_add' := ⋯, map_smul' := ⋯ }
Instances For
An (R ⧸ Ideal.span {r})-module is an R-module for which IsTorsionBy R M r.
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
Instances For
Equations
Equations
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, ⋯⟩ }
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.
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, denoted as A[n].
Equations
- AddSubgroup.torsionBy A n = (Submodule.torsionBy ℤ A n).toAddSubgroup
Instances For
The additive n-torsion subgroup for an integer n, denoted as A[n].
Equations
- One or more equations did not get rendered due to their size.
Instances For
Unexpander for torsionBy.
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.