Torsion submodules #
THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4.
Main definitions #
torsion_of R M x: the torsion ideal ofx, containing allasuch thata • x = 0.submodule.torsion_by R M a: thea-torsion submodule, containing all elementsxofMsuch thata • x = 0.submodule.torsion_by_set 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 submoule, containing all elementsxofMsuch thata • x = 0for some non-zero-divisorainR.module.is_torsion_by R M a: the property that defines aa-torsion module. Similarly,is_torsion_by_set,is_torsion'andis_torsion.module.is_torsion_by_set.module: Creates aR ⧸ I-module from aR-module thatis_torsion_by_set R _ I.
Main statements #
quot_torsion_of_equiv_span_singleton: isomorphism between the span of an element ofMand the quotient by its torsion ideal.torsion' R M Sandtorsion R Mare submodules.torsion_by_set_eq_torsion_by_span: torsion by a set is torsion by the ideal generated by it.submodule.torsion_by_is_torsion_by: thea-torsion submodule is aa-torsion module. Similar lemmas fortorsion'andtorsion.submodule.torsion_by_is_internal: 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.torsion_by_set_is_internal.submodule.no_zero_smul_divisors_iff_torsion_bot: a module over a domain hasno_zero_smul_divisors(that is, there is no non-zeroa,xsuch thata • x = 0) iff its torsion submodule is trivial.submodule.quotient_torsion.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.quotient_torsion.no_zero_smul_divisors : no_zero_smul_divisors R (M ⧸ torsion R M).
Notation #
- The notions are defined for a
comm_semiring 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).
Tags #
Torsion, submodule, module, quotient
The torsion ideal of x, containing all a such that a • x = 0.
Equations
- ideal.torsion_of R M x = linear_map.ker (linear_map.to_span_singleton R M x)
See also complete_lattice.independent.linear_independent which provides the same conclusion
but requires the stronger hypothesis no_zero_smul_divisors R M.
The span of x in M is isomorphic to R quotiented by the torsion ideal of x.
Equations
- ideal.quot_torsion_of_equiv_span_singleton R M x = (linear_map.to_span_singleton R M x).quot_ker_equiv_range.trans (linear_equiv.of_eq (linear_map.range (linear_map.to_span_singleton R M x)) (submodule.span R {x}) _)
The a-torsion submodule for a in R, containing all elements x of M such that
a • x = 0.
Equations
- submodule.torsion_by R M a = linear_map.ker (distrib_mul_action.to_linear_map R M a)
Instances for ↥submodule.torsion_by
The submodule containing all elements x of M such that a • x = 0 for all a in s.
Equations
- submodule.torsion_by_set R M s = has_Inf.Inf (submodule.torsion_by R M '' s)
Instances for ↥submodule.torsion_by_set
The S-torsion submodule, containing all elements x of M such that a • x = 0 for some
a in S.
Equations
Instances for ↥submodule.torsion'
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 ↥(non_zero_divisors R)
A a-torsion module is a module where every element is a-torsion.
Equations
- module.is_torsion_by R M a = ∀ ⦃x : M⦄, a • x = 0
A module where every element is a-torsion for all a in s.
A S-torsion module is a module where every element is a-torsion for some a in S.
A torsion module is a module where every element is a-torsion for some non-zero-divisor a.
Equations
- module.is_torsion R M = ∀ ⦃x : M⦄, ∃ (a : ↥(non_zero_divisors R)), a • x = 0
Torsion by a set is torsion by the ideal generated by it.
A a-torsion module is a module whose a-torsion submodule is the full space.
The a-torsion submodule is a 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
A (R ⧸ I)-module is a R-module which is_torsion_by_set R M I.
Equations
Equations
- module.has_quotient.quotient.module = module.is_torsion_by_set.module module.has_quotient.quotient.module._proof_1
Equations
The a-torsion submodule as a (R ⧸ R∙a)-module.
Equations
Equations
- submodule.torsion'.has_smul S = {smul := λ (s : S) (x : ↥(submodule.torsion' R M S)), ⟨s • ↑x, _⟩}
A S-torsion module is a module whose S-torsion submodule is the full space.
The S-torsion submodule is a 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 no_zero_smul_divisors iff its torsion submodule is trivial.
Quotienting by the torsion submodule gives a torsion-free module.
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.p_order hM x = nat.find _