Rank theorems over domains #
This file proves some Module.rank and Module.finrank theorems for modules over domains.
Main results #
Let M/S/R be a tower where R, S are domains.
We obtain the following tower laws:
Module.rank_mul_rank_of_isFractionRing_isLocalization& variants: when(R⁰)⁻¹ S = (S⁰)⁻¹ S.Module.rank_mul_rank_of_field_isLocalization& variants: wrapper for the above that only asks(R⁰)⁻¹ Sto be a field.Module.IsTorsionFree.erank_mul_erank,Module.IsTorsionFree.finrank_mul_finrank: whenMis torsion-free overS. We only get truncated cardinalities.Algebra.IsAlgebraic.rank_mul_rank& variants: whenS/Ris algebraic.
Tower law over domains.
When M is a module over an algebra S/R of domains such that (R⁰)⁻¹ S = (S⁰)⁻¹ S,
we obtain a tower law.
See _root.lift_rank_mul_lift_rank for when your modules are free.
Tower law over domains.
When M is a module over an algebra S/R of domains such that (R⁰)⁻¹ S = (S⁰)⁻¹ S,
we obtain a tower law.
See _root.rank_mul_rank for when your modules are free.
Tower law over domains.
When M is a module over an algebra S/R of domains such that (R⁰)⁻¹ S = (S⁰)⁻¹ S,
we obtain a tower law.
See Module.finrank_mul_finrank for when your modules are free.
Tower law over domains.
When M is a module over an algebra S/R of domains such that (R⁰)⁻¹ S is a field,
we obtain a tower law.
See _root.lift_rank_mul_lift_rank for when your modules are free.
Tower law over domains.
When M is a module over an algebra S/R of domains such that (R⁰)⁻¹ S is a field,
we obtain a tower law.
See _root.rank_mul_rank for when your modules are free.
Tower law over domains.
When M is a module over an algebra S/R of domains such that (R⁰)⁻¹ S is a field,
we obtain a tower law.
See Module.finrank_mul_finrank for when your modules are free.
Tower law for torsion-free modules.
The tower law for ENat Module.rank of a S-torsion-free module over an algebra S/R of domains.
See Module.IsTorsionFree.finrank_mul_finrank for a finrank version.
Tower law for torsion-free modules.
The tower law for Module.finrank of a S-torsion-free module over an algebra S/R of domains.
See Module.finrank_mul_finrank for when your modules are free.
Tower law over algebraic extensions of domains.
If S has no zero divisors, S is algebraic over R, and M is a S-module, then
$$\operatorname{rank}_R(S) * \operatorname{rank}_S(M) = \operatorname{rank}_R(M)$$.
See Algebra.IsAlgebraic.rank_mul_rank for a non–universe polymorphic version, and
_root_.lift_rank_mul_lift_rank for when your modules are free.
Tower law over algebraic extensions of domains.
If S has no zero divisors, S is algebraic over R, and M is a S-module, then
$$\operatorname{rank}_R(S) * \operatorname{rank}_S(M) = \operatorname{rank}_R(M)$$.
See Algebra.IsAlgebraic.lift_rank_mul_lift_rank for a universe polymorphic version, and
_root_.rank_mul_rank for when your modules are free.
Tower law over algebraic extensions of domains.
If S has no zero divisors, S is algebraic over R, and M is a S-module, then
$$\operatorname{rank}_R(S) * \operatorname{rank}_S(M) = \operatorname{rank}_R(M)$$.
See Module.finrank_mul_finrank for when your modules are free.