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 alla
such thata • x = 0
.submodule.torsion_by R M a
: thea
-torsion submodule, containing all elementsx
ofM
such thata • x = 0
.submodule.torsion_by_set 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 submoule, containing all elementsx
ofM
such thata • x = 0
for some non-zero-divisora
inR
.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 ofM
and the quotient by its torsion ideal.torsion' R M S
andtorsion R M
are 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 i
are 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
,x
such 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. IfR
is 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 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.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 _