The rank of a module tensored with a localization #
Localizing a module at a submonoid of non-zero-divisors does not change its rank over the base
ring (IsLocalizedModule.finrank_eq), and tensoring with the localization A of R is such a
localization (IsLocalization.tensorProduct_isLocalizedModule). Mathlib states this for
A ⊗[R] M; this file records the same formula for M ⊗[R] A, the form in which a
rationalization M ⊗[ℤ_p] ℚ_p of a ℤ_p-module is written. Since M ⊗[R] A is an A-module
on which R acts through A, its R-rank is also its A-rank; for A a field this is the
dimension of the vector space M ⊗[R] A.
Conversely, over a domain the rank detects isomorphisms after passing to the field of fractions:
an injective linear map between finite modules of the same rank becomes an injective map between
vector spaces of the same finite dimension after tensoring with the field of fractions, hence an
isomorphism. This is how an integral lattice of full rank in a module computes its
rationalization. The map may be linear over any R-algebra A, and its rationalization is then
A-linear for the module structure of TensorProduct.AlgebraTensorModule on the left factor.
In the other direction, an A-linear map of rationalizations M ⊗ Q → N ⊗ Q becomes integral
after multiplying by a non-zero-divisor of R, provided M is finitely generated over A and
N is torsion-free. So a rational embedding of lattices restricts, after scaling, to an integral
embedding.
A finitely generated module over a domain contains a free submodule of full rank whose quotient is
torsion. This repackages Mathlib's exists_linearIndepOn_smul_mem_span, which selects a linearly
independent subfamily of a generating family, with Fin n-indexing and the rank equality, the
latter read off rank_quotient_add_rank_of_isDomain.
Main results #
TauCeti.IsLocalization.finrank_tensorProduct:finrank R (M ⊗[R] A) = finrank R Mfor a localizationAofRat a submonoid of non-zero-divisors.TauCeti.IsFractionRing.rTensor_bijective_of_injective_of_finrank_eq: an injective linear mapf : M → NwithNfinite andfinrank R M = finrank R Nover a domainRbecomes bijective after tensoring with the field of fractions ofR.TauCeti.IsFractionRing.tmul_one_injective: a torsion-free module embeds in its rationalization.TauCeti.IsFractionRing.exists_linearMap_tmul_one_eq_smul: a multiple of anA-linear map of rationalizations by a non-zero-divisor is the rationalization of anA-linear map.TauCeti.IsFractionRing.exists_injective_linearMap_of_injective: an injectiveA-linear map of rationalizations of torsion-free modules gives an injectiveA-linear map of the modules.TauCeti.exists_linearIndependent_smul_mem_span: a finitely generated module over a domain contains a free submodule of full rank with torsion quotient.
Tensoring with a localization at a submonoid of non-zero-divisors does not change the rank over the base ring.
Full-rank injections become isomorphisms over the field of fractions. Let R be a domain
with field of fractions Q, and f : M → N an injective A-linear map, for an R-algebra A,
where N is finite over R and M has the same rank as N. Then f ⊗ 𝟙 Q is bijective: it is
injective because Q is flat over R, and it is an injective map between Q-vector spaces of
the same finite dimension.
A torsion-free module embeds in its rationalization: m ↦ m ⊗ 1 is injective, since it is the
localization of M at the non-zero-divisors of R.
Clearing denominators of a rational map. Let R have field of fractions Q, let A be an
R-algebra, and let φ : M ⊗ Q → N ⊗ Q be A-linear, where M is finitely generated over A
and N is torsion-free over R. Then some multiple s • φ by a non-zero-divisor s of R is
the rationalization of an A-linear map f : M → N, in the sense that
f m ⊗ 1 = s • φ (m ⊗ 1).
Rational embeddings of lattices come from integral ones. If M is finitely generated over
the R-algebra A, both M and N are torsion-free over R, and some A-linear map of
rationalizations M ⊗ Q → N ⊗ Q is injective, then so is some A-linear map M → N.
A finitely generated module M over a domain contains a free submodule F of
the rank of M with M ⧸ F torsion: some nonzero c multiplies M into F.
This repackages Mathlib's exists_linearIndepOn_smul_mem_span with Fin n-indexing and the
rank equality.