Finite modules over local rings #
This file gathers various results about finite modules over a local ring (R, 𝔪, k)
.
Main results #
LocalRing.subsingleton_tensorProduct
: IfM
is finitely generated,k ⊗ M = 0 ↔ M = 0
.Module.free_of_maximalIdeal_rTensor_injective
: IfM
is a finitely presented module such thatm ⊗ M → M
is injective (for example whenM
is flat), thenM
is free.Module.free_of_lTensor_residueField_injective
: IfN → M → P → 0
is a presentation ofP
withN
finite andM
finite free, then injectivity ofk ⊗ N → k ⊗ M
implies thatP
is free.LocalRing.split_injective_iff_lTensor_residueField_injective
: Given anR
-linear mapl : M → N
withM
finite andN
finite free,l
is a split injection if and only ifk ⊗ l
is a (split) injection.
theorem
LocalRing.map_mkQ_eq
{R : Type u_1}
[CommRing R]
{M : Type u_2}
[AddCommGroup M]
[Module R M]
[LocalRing R]
{N₁ : Submodule R M}
{N₂ : Submodule R M}
(h : N₁ ≤ N₂)
(h' : N₂.FG)
:
Submodule.map (LocalRing.maximalIdeal R • N₂).mkQ N₁ = Submodule.map (LocalRing.maximalIdeal R • N₂).mkQ N₂ ↔ N₁ = N₂
theorem
LocalRing.map_mkQ_eq_top
{R : Type u_1}
[CommRing R]
{M : Type u_2}
[AddCommGroup M]
[Module R M]
[LocalRing R]
{N : Submodule R M}
[Module.Finite R M]
:
Submodule.map (LocalRing.maximalIdeal R • ⊤).mkQ N = ⊤ ↔ N = ⊤
theorem
LocalRing.map_tensorProduct_mk_eq_top
{R : Type u_1}
[CommRing R]
{M : Type u_2}
[AddCommGroup M]
[Module R M]
[LocalRing R]
{N : Submodule R M}
[Module.Finite R M]
:
Submodule.map ((TensorProduct.mk R (LocalRing.ResidueField R) M) 1) N = ⊤ ↔ N = ⊤
theorem
LocalRing.subsingleton_tensorProduct
{R : Type u_1}
[CommRing R]
{M : Type u_2}
[AddCommGroup M]
[Module R M]
[LocalRing R]
[Module.Finite R M]
:
Subsingleton (TensorProduct R (LocalRing.ResidueField R) M) ↔ Subsingleton M
theorem
LocalRing.span_eq_top_of_tmul_eq_basis
{R : Type u_1}
[CommRing R]
{M : Type u_2}
[AddCommGroup M]
[Module R M]
[LocalRing R]
[Module.Finite R M]
{ι : Type u_3}
(f : ι → M)
(b : Basis ι (LocalRing.ResidueField R) (TensorProduct R (LocalRing.ResidueField R) M))
(hb : ∀ (i : ι), 1 ⊗ₜ[R] f i = b i)
:
Submodule.span R (Set.range f) = ⊤
theorem
lTensor_injective_of_exact_of_exact_of_rTensor_injective
{R : Type u_7}
[CommRing R]
{M₁ : Type u_1}
{M₂ : Type u_2}
{M₃ : Type u_3}
{N₁ : Type u_4}
{N₂ : Type u_5}
{N₃ : Type u_6}
[AddCommGroup M₁]
[Module R M₁]
[AddCommGroup M₂]
[Module R M₂]
[AddCommGroup M₃]
[Module R M₃]
[AddCommGroup N₁]
[Module R N₁]
[AddCommGroup N₂]
[Module R N₂]
[AddCommGroup N₃]
[Module R N₃]
{f₁ : M₁ →ₗ[R] M₂}
{f₂ : M₂ →ₗ[R] M₃}
{g₁ : N₁ →ₗ[R] N₂}
{g₂ : N₂ →ₗ[R] N₃}
(hfexact : Function.Exact ⇑f₁ ⇑f₂)
(hfsurj : Function.Surjective ⇑f₂)
(hgexact : Function.Exact ⇑g₁ ⇑g₂)
(hgsurj : Function.Surjective ⇑g₂)
(hfinj : Function.Injective ⇑(LinearMap.rTensor N₃ f₁))
(hginj : Function.Injective ⇑(LinearMap.lTensor M₂ g₁))
:
Function.Injective ⇑(LinearMap.lTensor M₃ g₁)
Given M₁ → M₂ → M₃ → 0
and N₁ → N₂ → N₃ → 0
,
if M₁ ⊗ N₃ → M₂ ⊗ N₃
and M₂ ⊗ N₁ → M₂ ⊗ N₂
are both injective,
then M₃ ⊗ N₁ → M₃ ⊗ N₂
is also injective.
theorem
Module.free_of_maximalIdeal_rTensor_injective
{R : Type u_1}
[CommRing R]
{M : Type u_2}
[AddCommGroup M]
[Module R M]
[LocalRing R]
[Module.FinitePresentation R M]
(H : Function.Injective ⇑(LinearMap.rTensor M (Submodule.subtype (LocalRing.maximalIdeal R))))
:
Module.Free R M
If M
is a finitely presented module over a local ring (R, 𝔪)
such that m ⊗ M → M
is
injective, then M
is free.
theorem
Module.free_of_flat_of_localRing
{R : Type u_1}
[CommRing R]
{P : Type u_2}
[AddCommGroup P]
[Module R P]
[LocalRing R]
[Module.FinitePresentation R P]
[Module.Flat R P]
:
Module.Free R P
theorem
Module.free_of_lTensor_residueField_injective
{R : Type u_3}
[CommRing R]
{M : Type u_4}
{N : Type u_1}
[AddCommGroup M]
[AddCommGroup N]
[Module R M]
[Module R N]
{P : Type u_2}
[AddCommGroup P]
[Module R P]
(f : M →ₗ[R] N)
(g : N →ₗ[R] P)
[LocalRing R]
(hg : Function.Surjective ⇑g)
(h : Function.Exact ⇑f ⇑g)
[Module.Finite R M]
[Module.Finite R N]
[Module.Free R N]
(hf : Function.Injective ⇑(LinearMap.lTensor (LocalRing.ResidueField R) f))
:
Module.Free R P
If M → N → P → 0
is a presentation of P
over a local ring (R, 𝔪, k)
with
M
finite and N
finite free, then injectivity of k ⊗ M → k ⊗ N
implies that P
is free.
theorem
LocalRing.split_injective_iff_lTensor_residueField_injective
{R : Type u_1}
[CommRing R]
{M : Type u_2}
{N : Type u_3}
[AddCommGroup M]
[AddCommGroup N]
[Module R M]
[Module R N]
[LocalRing R]
[Module.Finite R M]
[Module.Finite R N]
[Module.Free R N]
(l : M →ₗ[R] N)
:
(∃ (l' : N →ₗ[R] M), l' ∘ₗ l = LinearMap.id) ↔ Function.Injective ⇑(LinearMap.lTensor (LocalRing.ResidueField R) l)
Given a linear map l : M → N
over a local ring (R, 𝔪, k)
with M
finite and N
finite free,
l
is a split injection if and only if k ⊗ l
is a (split) injection.