10.85 Projective modules over a… to 10.104 Cohen-Macaulay rings
Section10.85 Projective modules over a local ring#
Section 10.85 of the Stacks Project, Tag 058Z. 4 tags here are carried by 4 declarations of the repository (all in StacksFrontier), quoted below from AxiomMath/Stacks at commit 5ed82d14.
Tag 0590, a lemma
Tag 0590 in the Stacks Project.
Module.forall_free_of_projective_iff_forall_free_of_projective_of_countable_span, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/Algebra/Module/Projective/CountablyGenerated.lean, line 167. The attribute's comment: “The equivalence, with countable generation written as a countable spanning set.”.
Let
Rbe a ring. Every projectiveR-module is free if and only if every projectiveR-module admitting a countable generating set is free.
public theorem Module.forall_free_of_projective_iff_forall_free_of_projective_of_countable_span
(R : Type u) [Ring R] :
(∀ (M : Type v) [AddCommGroup M] [Module R M], Module.Projective R M → Module.Free R M) ↔
∀ (M : Type v) [AddCommGroup M] [Module R M], Module.Projective R M →
(∃ s : Set M, s.Countable ∧ Submodule.span R s = ⊤) → Module.Free R M
Tag 0591, a lemma
Tag 0591 in the Stacks Project.
countablyGenerated_propertyP_free, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Module/Kaplansky.lean, line 375.
Stacks Tag 0591 / Lemma 10.85.2: a countably generated module satisfying property (P) is free.
theorem countablyGenerated_propertyP_free
(hcg : CountablyGenerated R M) (hP : PropertyP R M) :
Module.Free R M
Tag 0592, a lemma
Tag 0592 in the Stacks Project.
projective_local_free_summand, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Module/Kaplansky.lean, line 512.
Stacks Tag 0592, Lemma 10.85.3. Any element of a projective module over a (commutative) local ring is contained in a free direct summand. Concretely, for every
xin a projective modulePover a local ringR, there is a submoduleNofPwithx ∈ N, withNfree as anR-module, and withNa direct summand ofP(witnessed by a complementary submoduleN',IsCompl N N').
theorem projective_local_free_summand {R : Type*} [CommRing R] [IsLocalRing R]
{P : Type*} [AddCommGroup P] [Module R P] [Module.Projective R P] (x : P) :
∃ N : Submodule R P, x ∈ N ∧ Module.Free R N ∧ ∃ N' : Submodule R P, IsCompl N N'
Tag 0593, a theorem
Tag 0593 in the Stacks Project.
Module.free_of_projective_of_isLocalRing, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Module/Kaplansky.lean, line 621. The attribute's comment: “Projective modules over local rings are free, with no finiteness hypothesis.”. References: SGA 3 VIA (2.1.3).
Stacks 0593 (Kaplansky). If
Pis a projective module over a commutative local ringR, thenPis free. No finiteness hypothesis onPis needed.
public theorem Module.free_of_projective_of_isLocalRing {R : Type u} {P : Type v} [CommRing R]
[AddCommGroup P] [Module R P] [IsLocalRing R] [Module.Projective R P] : Module.Free R P
Sources
Section10.86 Mittag-Leffler systems#
Section 10.86 of the Stacks Project, Tag 0594. 3 tags here are carried by 4 declarations of the repository (all in StacksFrontier), quoted below from AxiomMath/Stacks at commit 5ed82d14.
Tag 0595, a definition
Tag 0595 in the Stacks Project.
MittagLeffler.IsMittagLefflerSet, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/Algebra/MittagLeffler/InverseSystem.lean, line 71. References: EGA 0 (13.1.2), “inverse systems of sets”; EGA 0 (13.1.3); EGA III (4.1.7); SGA 4½ Rapport (4.11).
A directed inverse system of sets
(F_i, φ_{ji})is Mittag-Leffler if for every indexi, there exists somej ≥ isuch that for allk ≥ j, the image ofF_kinF_i(via the transition map) equals the image ofF_jinF_i.
def IsMittagLefflerSet {ι : Type*} [Preorder ι] [IsDirected ι (· ≤ ·)] {F : ι → Type*}
(φ : ⦃i j : ι⦄ → i ≤ j → F j → F i) [InverseSystem φ] : Prop
MittagLeffler.IsMittagLefflerModule, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/Algebra/MittagLeffler/InverseSystem.lean, line 81. References: EGA 0 (13.1.2), “modules over a ring”; EGA III (4.1.7); SGA 4½ Rapport (4.11).
A directed inverse system of
R-modules(M_i, φ_{ji})is Mittag-Leffler if the underlying directed inverse system of sets is Mittag-Leffler.
def IsMittagLefflerModule {R : Type*} [Ring R] {ι : Type*} [Preorder ι]
[IsDirected ι (· ≤ ·)] {M : ι → Type*} [∀ i, AddCommGroup (M i)] [∀ i, Module R (M i)]
(φ : ⦃i j : ι⦄ → i ≤ j → M j →ₗ[R] M i)
[InverseSystem (fun _ _ h => (φ h : M _ → M _))] : Prop
Tag 0597, a lemma
Tag 0597 in the Stacks Project.
DirInvSystem.nonempty_limit_of_isMittagLeffler, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/Algebra/MittagLeffler/InverseSystem.lean, line 289. References: SGA 4 I (App.Lemma3), “more general”.
Let
(A_i, φ_{ji})be a directed inverse system of sets over a directed setI. IfIis countable, the system is Mittag-Leffler, and eachA_iis nonempty, then the limitlim A_iis nonempty.
theorem DirInvSystem.nonempty_limit_of_isMittagLeffler
[Countable I] [Nonempty I] [IsDirected I (· ≤ ·)]
{A : I → Type*} (S : DirInvSystem A)
(hML : S.IsMittagLeffler) (hne : ∀ i, Nonempty (A i)) :
S.limit.Nonempty
Tag 0598, a lemma
Tag 0598 in the Stacks Project.
invLimit_exact, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/Algebra/MittagLeffler/InverseSystem.lean, line 721. References: EGA 0 (13.2.2); EGA III (4.1.7.21), “more general”.
Let
Ibe a countable directed set and let0 → A →[f] B →[g] C → 0be an exact sequence of directed inverse systems of abelian groups overI. If the system(A, φ)is Mittag-Leffler, then the induced sequence of inverse limits0 → lim A →[lim f] lim B →[lim g] lim C → 0is exact:
lim fis injective;range (lim f) = ker (lim g);lim gis surjective.Left-exactness (parts 1 and 2) holds for any exact sequence of inverse systems; the Mittag-Leffler hypothesis and countability are used for part 3, the surjectivity of
lim g.
theorem invLimit_exact
{I : Type*} [Preorder I] [IsDirected I (· ≤ ·)] [Nonempty I] [Countable I]
{A : I → Type*} [∀ i, AddCommGroup (A i)]
{φ : ⦃i j : I⦄ → i ≤ j → (A j →+ A i)}
(hφ : InverseSystem (fun _ _ h => (φ h : _ → _)))
{B : I → Type*} [∀ i, AddCommGroup (B i)]
{ψ : ⦃i j : I⦄ → i ≤ j → (B j →+ B i)}
(hψ : InverseSystem (fun _ _ h => (ψ h : _ → _)))
{C : I → Type*} [∀ i, AddCommGroup (C i)]
{χ : ⦃i j : I⦄ → i ≤ j → (C j →+ C i)}
(hχ : InverseSystem (fun _ _ h => (χ h : _ → _)))
{f : ⦃i : I⦄ → (A i →+ B i)} {g : ⦃i : I⦄ → (B i →+ C i)}
(hexact : IsExactSeq (φ := φ) (ψ := ψ) (χ := χ) f g)
(hML : IsMittagLefflerSystem A φ) :
Function.Injective (addInvLimit.map A φ B ψ f hexact.hf_mor) ∧
(addInvLimit.map A φ B ψ f hexact.hf_mor).range =
(addInvLimit.map B ψ C χ g hexact.hg_mor).ker ∧
Function.Surjective (addInvLimit.map B ψ C χ g hexact.hg_mor)
Sources
Section10.87 Inverse systems#
Section 10.87 of the Stacks Project, Tag 03C9. 1 tag here is carried by 1 declaration of the repository (in StacksFrontier), quoted below from AxiomMath/Stacks at commit 5ed82d14.
Tag 03CA, a lemma
Tag 03CA in the Stacks Project.
CategoryTheory.ShortComplex.shortExact_map_lim_of_isMittagLeffler, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/Algebra/Homology/ShortComplex/InverseLimit.lean, line 252. References: EGA 0 (13.2.2), “ℕ-indexed systems”; EGA III (4.1.7.21), “more general”.
Stacks 03CA. Let
Rbe a ring and letSbe a short complex of towers ofR-modules, that is of functorsℕᵒᵖ ⥤ ModuleCat R, which is short exact at every index: for eachithe sequence0 → S.X₁ i → S.X₂ i → S.X₃ i → 0is short exact. If the towerS.X₁satisfies the Mittag-Leffler condition, that is for everyithere is ac ≥ iwithIm(S.X₁ c → S.X₁ i) = Im(S.X₁ j → S.X₁ i)for allj ≥ c, then the sequence of inverse limits0 → lim S.X₁ → lim S.X₂ → lim S.X₃ → 0is short exact.
public theorem shortExact_map_lim_of_isMittagLeffler {R : Type u} [Ring R]
(S : ShortComplex (ℕᵒᵖ ⥤ ModuleCat.{v} R))
(hS : ∀ n : ℕᵒᵖ, (S.map ((evaluation ℕᵒᵖ (ModuleCat.{v} R)).obj n)).ShortExact)
(hML : (S.X₁ ⋙ forget (ModuleCat.{v} R)).IsMittagLeffler) :
(S.map (lim : (ℕᵒᵖ ⥤ ModuleCat.{v} R) ⥤ ModuleCat.{v} R)).ShortExact
Sources
Section10.88 Mittag-Leffler modules#
Section 10.88 of the Stacks Project, Tag 0599. 12 tags here are carried by 12 declarations of the repository (all in StacksFrontier), quoted below from AxiomMath/Stacks at commit 5ed82d14.
Tag 059A, a definition
Tag 059A in the Stacks Project.
CategoryTheory.Functor.IsMittagLefflerSystem, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/Algebra/MittagLeffler/Defs.lean, line 128.
Stacks 059A. A diagram
F : J ⥤ ModuleCat RofR-modules, thought of as a directed system(M i, f i j), is a Mittag-Leffler system if everyM iis anR-module of finite presentation and if for everyR-moduleNthe inverse system of dual modules(Hom_R(M i, N), Hom_R(f i j, N)), that isF.op ⋙ yoneda.obj N, satisfies the Mittag-Leffler condition.
public def IsMittagLefflerSystem {R : Type u} [Ring R] {J : Type w} [Category.{w'} J]
(F : J ⥤ ModuleCat.{v} R) : Prop
Tag 059B, a definition
Tag 059B in the Stacks Project.
LinearMap.Dominates, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Module/Dominates.lean, line 136. The attribute's comment: “Domination is spelled out as containment of the kernels of the two maps tensored with the identity of the test module.”.
Stacks 059B. Let
f : M → Nandg : M → M'be maps ofR-modules with common source. We saygdominatesfif for everyR-moduleQwe haveKer(f ⊗_R id_Q) ⊆ Ker(g ⊗_R id_Q)as submodules ofM ⊗_R Q.
public def Dominates {R : Type u} [CommSemiring R] {M : Type v} {N : Type w} {M' : Type w'}
[AddCommMonoid M] [Module R M] [AddCommMonoid N] [Module R N] [AddCommMonoid M']
[Module R M'] (g : M →ₗ[R] M') (f : M →ₗ[R] N) : Prop
Tag 059C, a lemma
Tag 059C in the Stacks Project.
LinearMap.dominates_iff_forall_finitePresentation, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Module/Dominates.lean, line 451. The attribute's comment: “Domination is the project's LinearMap.Dominates; the containment of kernels is the containment of the kernels of the maps tensored with the identity of the test module.”.
Stacks 059C. Let
f : M → Nandg : M → M'be maps ofR-modules. Thengdominatesf, that isKer(f ⊗_R id_Q) ⊆ Ker(g ⊗_R id_Q)for everyR-moduleQ, if and only ifKer(f ⊗_R id_Q) ⊆ Ker(g ⊗_R id_Q)for every finitely presentedR-moduleQ.
public theorem LinearMap.dominates_iff_forall_finitePresentation {R : Type u} [CommRing R]
[Small.{v} R] {M : Type v} {N : Type w} {M' : Type w'} [AddCommGroup M] [Module R M]
[AddCommGroup N] [Module R N] [AddCommGroup M'] [Module R M'] (g : M →ₗ[R] M')
(f : M →ₗ[R] N) :
g.Dominates f ↔
∀ (Q : Type v) [AddCommGroup Q] [Module R Q] [Module.FinitePresentation R Q],
LinearMap.ker (f.rTensor Q) ≤ LinearMap.ker (g.rTensor Q)
Tag 0AUM, a lemma
Tag 0AUM in the Stacks Project.
dominates_iff_pushoutInl_universallyInjective, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Module/Dominates.lean, line 621.
Let
f : M → Nandg : M → M'be maps ofR-modules, and form the pushout squaref' : M' → N',g' : N → N'. Thengdominatesfif and only iff'is universally injective.
theorem dominates_iff_pushoutInl_universallyInjective
{M N M' : Type u} [AddCommGroup M] [Module R M]
[AddCommGroup N] [Module R N] [AddCommGroup M'] [Module R M']
(f : M →ₗ[R] N) (g : M →ₗ[R] M') :
Dominates.{u, u, u, u, u} f g ↔ UniversallyInjective (pushoutInl f g)
Tag 059D, a lemma
Tag 059D in the Stacks Project.
LinearMap.forall_ker_rTensor_le_iff_exists_eq_comp, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Module/Factorization.lean, line 296. The attribute's comment: “Domination is spelled out as containment of the kernels of the tensored maps.”.
Stacks 059D. Let
f : M → Nandg : M → M'be maps ofR-modules and suppose thatCoker(f) = N ⧸ Im(f)is of finite presentation. Thengdominatesf, that isKer(f ⊗ id_Q) ⊆ Ker(g ⊗ id_Q)for everyR-moduleQ, if and only ifgfactors throughf, that isg = h ∘ ffor some module maph : N → M'.
public theorem LinearMap.forall_ker_rTensor_le_iff_exists_eq_comp {R : Type u} [CommRing R]
[Small.{v} R] {M N M' : Type v} [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N]
[AddCommGroup M'] [Module R M'] (f : M →ₗ[R] N) (g : M →ₗ[R] M')
[Module.FinitePresentation R (N ⧸ LinearMap.range f)] :
(∀ (Q : Type v) [AddCommGroup Q] [Module R Q],
LinearMap.ker (f.rTensor Q) ≤ LinearMap.ker (g.rTensor Q)) ↔
∃ h : N →ₗ[R] M', g = h ∘ₗ f
Tag 059E, a proposition
Tag 059E in the Stacks Project.
CategoryTheory.Functor.tfae_isMittagLefflerSystem, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/Algebra/MittagLeffler/Criteria.lean, line 519. The attribute's comment: “Domination is spelled out as containment of the kernels of the tensored maps; condition (4) is 059A's IsMittagLefflerSystem.”.
Stacks 059E. Let
Rbe a commutative ring, letF : J ⥤ ModuleCat Rbe a directed system(M i, f i j)of finitely presentedR-modules over a nonempty directed preorderJ, and letcbe a colimit cocone onF, so thatM = c.ptiscolim_{i ∈ J} M iwith canonical mapsf i : M i → M. The following are equivalent:
- for every finitely presented
R-modulePand every mapf : P → Mthere are a finitely presentedR-moduleQand a mapg : P → Qwhich dominate each other, that isKer(f ⊗ id_T) = Ker(g ⊗ id_T)for everyR-moduleT;- for each
ithere is aj ≥ isuch thatf i jdominatesf i, that isKer(f i ⊗ id_T) ⊆ Ker(f i j ⊗ id_T)for everyR-moduleT;- for each
ithere is aj ≥ isuch thatf i jfactors throughf i kfor everyk ≥ i;Fis a Mittag-Leffler system: the inverse system(Hom_R(M i, T), Hom_R(f i j, T))is Mittag-Leffler for everyR-moduleT;- that inverse system is Mittag-Leffler for the single module
T = ∏_{s ∈ J} M s.
public theorem tfae_isMittagLefflerSystem {R : Type u} [CommRing R] [Small.{w} R] {J : Type w}
[Preorder J] [IsDirectedOrder J] [Nonempty J] (F : J ⥤ ModuleCat.{w} R)
[∀ i, Module.FinitePresentation R (F.obj i)] {c : Cocone F} (hc : IsColimit c) :
List.TFAE
[∀ (P : ModuleCat.{w} R) [Module.FinitePresentation R P] (f : P ⟶ c.pt),
∃ (Q : ModuleCat.{w} R) (_ : Module.FinitePresentation R Q) (g : P ⟶ Q),
∀ T : ModuleCat.{w} R,
LinearMap.ker (f.hom.rTensor T) = LinearMap.ker (g.hom.rTensor T),
∀ i : J, ∃ (j : J) (u : i ⟶ j), ∀ T : ModuleCat.{w} R,
LinearMap.ker ((c.ι.app i).hom.rTensor T) ≤ LinearMap.ker ((F.map u).hom.rTensor T),
∀ i : J, ∃ (j : J) (u : i ⟶ j), ∀ (k : J) (v : i ⟶ k),
∃ h : F.obj k ⟶ F.obj j, F.map u = F.map v ≫ h,
F.IsMittagLefflerSystem,
(F.op ⋙ yoneda.obj (ModuleCat.of R (∀ s : J, F.obj s))).IsMittagLeffler]
Tag 059F, a definition
Tag 059F in the Stacks Project.
IsMittagLeffler, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/Algebra/MittagLeffler/Defs.lean, line 218.
(Stacks 10.88.7, tag 059F.) An
R-moduleMis Mittag-Leffler if for every finitely presentedR-modulePand everyR-linear mapf : P → M, there exists a finitely presentedR-moduleQand anR-linear mapg : P → Qsuch thatfandgdominate each other.This is condition (1) of Stacks Proposition 10.88.6 (tag 059E), which is equivalent to the other four conditions in that proposition. We choose this condition because it is intrinsic to
Mand does not depend on any auxiliary choice of a directed system writingMas a colimit of finitely presented modules.The universe parameters
uP,uQ,uNare independent ofuR,uM, so "for every finitely presentedR-moduleP", "there exists ...Q", and "for every test moduleN" each range over their own arbitrary universe, matching the Stacks quantifications.
def IsMittagLeffler (R : Type uR) [CommRing R] (M : Type uM)
[AddCommGroup M] [Module R M] : Prop
Tag 059G, a remark
Tag 059G in the Stacks Project.
CategoryTheory.Functor.isMittagLefflerSystem_iff_isMittagLeffler_dual, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/Algebra/MittagLeffler/Dual.lean, line 249. The attribute's comment: “The content is the reduction of criterion (4) of 059E to the single test module R, stated for finitely generated projective members and an arbitrary index category, and as an iff; the passage to the colimit is 059E and the system comes from 058G. See the module docstring.”.
Stacks 059G. Let
Rbe a commutative ring and letF : J ⥤ ModuleCat Rbe a diagram(M i, f i j)of finitely generated projectiveR-modules. ThenFis a Mittag-Leffler system — that is, the inverse system of duals(Hom_R(M i, N), Hom_R(f i j, N))is Mittag-Leffler for everyR-moduleN, and theM iare of finite presentation — if and only if the single inverse system ofR-duals(Hom_R(M i, R), Hom_R(f i j, R))is Mittag-Leffler.Combined with criterion (4) of Proposition 059E, this says that for a flat module
Mwritten by Lazard's theorem (Theorem 058G) as the colimit of a directed system of finite free modulesM = colim M i, it is enough for(Hom_R(M i, R), Hom_R(f i j, R))to be Mittag-Leffler forMto be a Mittag-Leffler module.
public theorem isMittagLefflerSystem_iff_isMittagLeffler_dual {R : Type u} [CommRing R]
[Small.{v} R] {J : Type w} [Category.{w'} J] (F : J ⥤ ModuleCat.{v} R)
[∀ i, Module.Finite R (F.obj i)] [∀ i, Module.Projective R (F.obj i)] :
F.IsMittagLefflerSystem ↔
(F.op ⋙ yoneda.obj (ModuleCat.of R (Shrink.{v} R))).IsMittagLeffler
Tag 05CN, a lemma
Tag 05CN in the Stacks Project.
Module.mittagLeffler_tensorProduct, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/Algebra/MittagLeffler/TensorProduct.lean, line 358. The attribute's comment: “Mittag-Leffler is spelled out inline as condition (1) of 059E.”.
Stacks 05CN. If
Ris a ring andM,Nare Mittag-Leffler modules overR, thenM ⊗_R Nis a Mittag-Leffler module. The Mittag-Leffler condition is spelled out in the intrinsic form 059E (1): every mapffrom a finitely presented module into the module in question dominates and is dominated by a mapginto a finitely presented module, domination meaning containment of the kernels of the maps· ⊗ id_T.
public theorem Module.mittagLeffler_tensorProduct {R : Type u} [CommRing R] [Small.{v} R]
{M N : Type v} [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N]
(hM : ∀ (P : Type v) [AddCommGroup P] [Module R P] [Module.FinitePresentation R P]
(f : P →ₗ[R] M), ∃ (Q : Type v) (_ : AddCommGroup Q) (_ : Module R Q)
(_ : Module.FinitePresentation R Q) (g : P →ₗ[R] Q), ∀ (T : Type v) [AddCommGroup T]
[Module R T], LinearMap.ker (f.rTensor T) = LinearMap.ker (g.rTensor T))
(hN : ∀ (P : Type v) [AddCommGroup P] [Module R P] [Module.FinitePresentation R P]
(f : P →ₗ[R] N), ∃ (Q : Type v) (_ : AddCommGroup Q) (_ : Module R Q)
(_ : Module.FinitePresentation R Q) (g : P →ₗ[R] Q), ∀ (T : Type v) [AddCommGroup T]
[Module R T], LinearMap.ker (f.rTensor T) = LinearMap.ker (g.rTensor T)) :
∀ (P : Type v) [AddCommGroup P] [Module R P] [Module.FinitePresentation R P]
(f : P →ₗ[R] M ⊗[R] N), ∃ (Q : Type v) (_ : AddCommGroup Q) (_ : Module R Q)
(_ : Module.FinitePresentation R Q) (g : P →ₗ[R] Q), ∀ (T : Type v) [AddCommGroup T]
[Module R T], LinearMap.ker (f.rTensor T) = LinearMap.ker (g.rTensor T)
Tag 05CP, a lemma
Tag 05CP in the Stacks Project.
Module.mittagLeffler_iff_forall_finite_free, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/Algebra/MittagLeffler/Criteria.lean, line 748. The attribute's comment: “Mittag-Leffler is spelled out inline as condition (1) of 059E; domination as equality of the kernels of the tensored maps.”.
Stacks 05CP. Let
Rbe a ring andManR-module. ThenMis Mittag-Leffler if and only if for every finite freeR-moduleFand every module mapf : F → Mthere are a finitely presentedR-moduleQand a module mapg : F → Qsuch thatfandgdominate each other, that isKer(f ⊗ id_N) = Ker(g ⊗ id_N)for everyR-moduleN. Being Mittag-Leffler is spelled out in the intrinsic form 059E (1): the same condition withFranging over all finitely presented modules.
public theorem Module.mittagLeffler_iff_forall_finite_free {R : Type u} [CommRing R] [Small.{v} R]
{M : Type v} [AddCommGroup M] [Module R M] :
(∀ (P : Type v) [AddCommGroup P] [Module R P] [Module.FinitePresentation R P]
(f : P →ₗ[R] M), ∃ (Q : Type v) (_ : AddCommGroup Q) (_ : Module R Q)
(_ : Module.FinitePresentation R Q) (g : P →ₗ[R] Q), ∀ (N : Type v) [AddCommGroup N]
[Module R N], LinearMap.ker (f.rTensor N) = LinearMap.ker (g.rTensor N)) ↔
∀ (F : Type v) [AddCommGroup F] [Module R F] [Module.Free R F] [Module.Finite R F]
(f : F →ₗ[R] M), ∃ (Q : Type v) (_ : AddCommGroup Q) (_ : Module R Q)
(_ : Module.FinitePresentation R Q) (g : F →ₗ[R] Q), ∀ (N : Type v) [AddCommGroup N]
[Module R N], LinearMap.ker (f.rTensor N) = LinearMap.ker (g.rTensor N)
Tag 05CQ, a lemma
Tag 05CQ in the Stacks Project.
Module.mittagLeffler_trans, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/Algebra/MittagLeffler/RestrictScalars.lean, line 286. The attribute's comment: “Mittag-Leffler is spelled out inline as condition (1) of 059E.”.
Stacks 05CQ. Let
R → Sbe a ring map withSfinitely presented as anR-module (for instance a finite and finitely presented ring map) and letMbe anS-module. IfMis Mittag-Leffler overSthenMis Mittag-Leffler overR. The Mittag-Leffler condition is spelled out in the intrinsic form 059E (1): every mapffrom a finitely presented module intoMdominates and is dominated by a mapginto a finitely presented module, domination meaning containment of the kernels of the maps· ⊗ id_N.
public theorem Module.mittagLeffler_trans {R : Type u} {S : Type w} {M : Type v} [CommRing R]
[CommRing S] [Algebra R S] [Small.{v} R] [Module.FinitePresentation R S] [AddCommGroup M]
[Module R M] [Module S M] [IsScalarTower R S M]
(hM : ∀ (P : Type v) [AddCommGroup P] [Module S P] [Module.FinitePresentation S P]
(f : P →ₗ[S] M), ∃ (Q : Type v) (_ : AddCommGroup Q) (_ : Module S Q)
(_ : Module.FinitePresentation S Q) (g : P →ₗ[S] Q), ∀ (N : Type v) [AddCommGroup N]
[Module S N], LinearMap.ker (f.rTensor N) = LinearMap.ker (g.rTensor N)) :
∀ (P : Type v) [AddCommGroup P] [Module R P] [Module.FinitePresentation R P]
(f : P →ₗ[R] M), ∃ (Q : Type v) (_ : AddCommGroup Q) (_ : Module R Q)
(_ : Module.FinitePresentation R Q) (g : P →ₗ[R] Q), ∀ (N : Type v) [AddCommGroup N]
[Module R N], LinearMap.ker (f.rTensor N) = LinearMap.ker (g.rTensor N)
Tag 05CR, a lemma
Tag 05CR in the Stacks Project.
Module.mittagLeffler_restrictScalars_iff_of_surjective, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/Algebra/MittagLeffler/Quotient.lean, line 295. The attribute's comment: “Mittag-Leffler is spelled out inline as condition (1) of 059E; S = R/I with I finitely generated is spelled abstractly as a surjective algebraMap R S with S finitely presented as an R-module.”.
Stacks 05CR. Let
Rbe a ring and letS = R/Ifor a finitely generated idealI, presented here as anR-algebra with surjective structure map which is finitely presented as anR-module. LetMbe anS-module. ThenMis a Mittag-Leffler module overRif and only ifMis a Mittag-Leffler module overS. The Mittag-Leffler condition is spelled out in the intrinsic form 059E (1): every mapffrom a finitely presented module intoMdominates and is dominated by a mapginto a finitely presented module, domination meaning equality of the kernels of the maps· ⊗ id_N.
public theorem Module.mittagLeffler_restrictScalars_iff_of_surjective {R : Type u} {S : Type w}
{M : Type v} [CommRing R] [CommRing S] [Algebra R S] [Small.{v} R]
[Module.FinitePresentation R S] [AddCommGroup M] [Module R M] [Module S M]
[IsScalarTower R S M] (hRS : Function.Surjective (algebraMap R S)) :
(∀ (P : Type v) [AddCommGroup P] [Module R P] [Module.FinitePresentation R P]
(f : P →ₗ[R] M), ∃ (Q : Type v) (_ : AddCommGroup Q) (_ : Module R Q)
(_ : Module.FinitePresentation R Q) (g : P →ₗ[R] Q), ∀ (N : Type v) [AddCommGroup N]
[Module R N], LinearMap.ker (f.rTensor N) = LinearMap.ker (g.rTensor N)) ↔
∀ (P : Type v) [AddCommGroup P] [Module S P] [Module.FinitePresentation S P]
(f : P →ₗ[S] M), ∃ (Q : Type v) (_ : AddCommGroup Q) (_ : Module S Q)
(_ : Module.FinitePresentation S Q) (g : P →ₗ[S] Q), ∀ (N : Type v) [AddCommGroup N]
[Module S N], LinearMap.ker (f.rTensor N) = LinearMap.ker (g.rTensor N)
Sources
Section10.89 Interchanging direct products with tensor#
Section 10.89 of the Stacks Project, Tag 059H. 11 tags here are carried by 12 declarations of the repository (all in StacksFrontier), quoted below from AxiomMath/Stacks at commit 5ed82d14.
Tag 059I, an example
Tag 059I in the Stacks Project.
comparisonMap_not_injective, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/Algebra/MittagLeffler/Basic.lean, line 519. The attribute's comment: “(1)”.
Statement 1 (the comparison map need not be injective). With
Q_n = Z/(n+1)Z, the canonical mapc : Q ⊗_Z (∏_n Z/(n+1)Z) → ∏_n (Q ⊗_Z Z/(n+1)Z)is not injective.
theorem comparisonMap_not_injective :
¬ Function.Injective (tensorPiComparison (fun n : ℕ => ZMod (n + 1)))
comparisonMap_not_surjective, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/Algebra/MittagLeffler/Basic.lean, line 598. The attribute's comment: “(2)”.
Statement 2 (the comparison map need not be surjective). With
Q_n = Zand the identificationQ ⊗_Z Z ≅ Q, the canonical mapc : Q ⊗_Z (∏_n Z) → ∏_n Qis not surjective.
theorem comparisonMap_not_surjective :
¬ Function.Surjective comparisonMapQ
Tag 059J, a proposition
Tag 059J in the Stacks Project.
Module.Finite.tfae_piRightHom_surjective, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Module/Finiteness/TensorProductPi.lean, line 330.
Stacks 059J. Let
Rbe a commutative ring andManR-module. The following are equivalent: (1)Mis finitely generated; (2) for every familyQofR-modules the canonical mapM ⊗[R] (∀ α, Q α) → ∀ α, M ⊗[R] Q αis surjective; (3) for everyR-moduleQand every setAthe canonical mapM ⊗[R] Q^A → (M ⊗[R] Q)^Ais surjective; (4) for every setAthe canonical mapM ⊗[R] R^A → M^Ais surjective.
public theorem Module.Finite.tfae_piRightHom_surjective (R : Type u) [CommRing R] (M : Type v)
[AddCommGroup M] [Module R M] :
List.TFAE
[Module.Finite R M,
∀ (A : Type v) (Q : A → Type v) [∀ α, AddCommGroup (Q α)] [∀ α, Module R (Q α)],
Function.Surjective (TensorProduct.piRightHom R R M Q),
∀ (A : Type v) (Q : Type v) [AddCommGroup Q] [Module R Q],
Function.Surjective (TensorProduct.piRightHom R R M fun _ : A ↦ Q),
∀ A : Type v, Function.Surjective (TensorProduct.piScalarRightHom R R M A)]
Tag 059K, a proposition
Tag 059K in the Stacks Project.
Module.FinitePresentation.tfae_piRightHom_bijective, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Module/FinitePresentation/TensorProductPi.lean, line 444. The attribute's comment: “Test data in the universe of M, as in 059J; hence Small.{v} R. See the module docstring.”.
Stacks 059K. Let
Rbe a commutative ring andManR-module. The following are equivalent: (1)Mis finitely presented; (2) for every familyQofR-modules the canonical mapM ⊗[R] (∀ α, Q α) → ∀ α, M ⊗[R] Q αis bijective; (3) for everyR-moduleQand every setAthe canonical mapM ⊗[R] Q^A → (M ⊗[R] Q)^Ais bijective; (4) for every setAthe canonical mapM ⊗[R] R^A → M^Ais bijective.
public theorem Module.FinitePresentation.tfae_piRightHom_bijective (R : Type u) [CommRing R]
[Small.{v} R] (M : Type v) [AddCommGroup M] [Module R M] :
List.TFAE
[Module.FinitePresentation R M,
∀ (A : Type v) (Q : A → Type v) [∀ α, AddCommGroup (Q α)] [∀ α, Module R (Q α)],
Function.Bijective (TensorProduct.piRightHom R R M Q),
∀ (A : Type v) (Q : Type v) [AddCommGroup Q] [Module R Q],
Function.Bijective (TensorProduct.piRightHom R R M fun _ : A ↦ Q),
∀ A : Type v, Function.Bijective (TensorProduct.piScalarRightHom R R M A)]
Tag 059L, a lemma
Tag 059L in the Stacks Project.
LinearMap.exists_finitePresentation_factorization_of_rTensor_apply_eq_zero, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Module/FinitePresentation/Factorization.lean, line 336. The attribute's comment: “The kernel conditions are elementwise, x being a single element; f factors through f' by the pinned equation f = g ∘ₗ f'.”.
Stacks 059L. Let
Rbe a commutative ring,Pa finitely presentedR-module,f : P → Ma map ofR-modules andQanR-module, and letx ∈ P ⊗ Qbe killed byf ⊗ id_Q. Then there are a finitely presentedR-moduleP'and mapsf' : P → P',g : P' → Mwithf = g ∘ f'such thatxis killed byf' ⊗ id_Q.
public theorem LinearMap.exists_finitePresentation_factorization_of_rTensor_apply_eq_zero
{R : Type u} [CommRing R] [Small.{v} R] {P M : Type v} {Q : Type w} [AddCommGroup P]
[Module R P] [AddCommGroup M] [Module R M] [AddCommGroup Q] [Module R Q]
[Module.FinitePresentation R P] (f : P →ₗ[R] M) {x : P ⊗[R] Q}
(hx : f.rTensor Q x = 0) :
∃ (P' : Type v) (_ : AddCommGroup P') (_ : Module R P')
(_ : Module.FinitePresentation R P') (f' : P →ₗ[R] P') (g : P' →ₗ[R] M),
f = g ∘ₗ f' ∧ f'.rTensor Q x = 0
Tag 059M, a proposition
Tag 059M in the Stacks Project.
Module.mittagLeffler_iff_piRightHom_injective, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/Algebra/MittagLeffler/TensorProductPi.lean, line 336. The attribute's comment: “Mittag-Leffler is spelled out inline as condition (1) of 059E; test data in the universe of M, as in 059J and 059K, whence Small.{v} R. See the module docstring.”.
Stacks 059M. Let
Rbe a commutative ring andManR-module. ThenMis Mittag-Leffler — every mapf : P → Mfrom a finitely presentedR-module dominates and is dominated by a mapg : P → Qinto a finitely presentedR-module, that isKer(f ⊗ id_N) = Ker(g ⊗ id_N)for everyR-moduleN, which is condition (1) of Proposition 059E — if and only if for every family(Q α)ofR-modules the canonical mapM ⊗[R] (∀ α, Q α) → ∀ α, M ⊗[R] Q αis injective.
public theorem Module.mittagLeffler_iff_piRightHom_injective (R : Type u) [CommRing R]
[Small.{v} R] (M : Type v) [AddCommGroup M] [Module R M] :
(∀ (P : Type v) [AddCommGroup P] [Module R P] [Module.FinitePresentation R P]
(f : P →ₗ[R] M), ∃ (Q : Type v) (_ : AddCommGroup Q) (_ : Module R Q)
(_ : Module.FinitePresentation R Q) (g : P →ₗ[R] Q), ∀ (N : Type v) [AddCommGroup N]
[Module R N], LinearMap.ker (f.rTensor N) = LinearMap.ker (g.rTensor N)) ↔
∀ (A : Type v) (Q : A → Type v) [∀ α, AddCommGroup (Q α)] [∀ α, Module R (Q α)],
Function.Injective (TensorProduct.piRightHom R R M Q)
Tag 0AS6, a lemma
Tag 0AS6 in the Stacks Project.
Submodule.exists_fg_isLeast_mem_range_rTensor_subtype_of_mittagLeffler, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/Algebra/MittagLeffler/Flat.lean, line 283. The attribute's comment: “Mittag-Leffler is spelled out inline as condition (1) of 059E, as in 059M and 05CQ; x ∈ N ⊗_R M is membership in the range of N.subtype.rTensor M, and smallest is IsLeast. Test data in the universe of M and F, whence Small.{v} R. See the module docstring.”.
Let
Rbe a commutative ring, letMbe a flat Mittag-LefflerR-module, letFbe anR-module and letx ∈ F ⊗[R] M. Then among the submodulesN ⊆ Fwithx ∈ N ⊗[R] M— that is, withxin the range ofN ⊗[R] M → F ⊗[R] M— there is a smallest one, and it is a finiteR-module.Being Mittag-Leffler is spelled out inline as condition (1) of Proposition 059E: every map
f : P → Mfrom a finitely presentedR-module dominates and is dominated by a mapg : P → Qinto a finitely presentedR-module, that isKer(f ⊗ id_N) = Ker(g ⊗ id_N)for everyR-moduleN.
public theorem Submodule.exists_fg_isLeast_mem_range_rTensor_subtype_of_mittagLeffler
{R : Type u} [CommRing R] [Small.{v} R] {M : Type v} [AddCommGroup M] [Module R M]
[Module.Flat R M]
(hML : ∀ (P : Type v) [AddCommGroup P] [Module R P] [Module.FinitePresentation R P]
(f : P →ₗ[R] M), ∃ (Q : Type v) (_ : AddCommGroup Q) (_ : Module R Q)
(_ : Module.FinitePresentation R Q) (g : P →ₗ[R] Q), ∀ (N : Type v) [AddCommGroup N]
[Module R N], LinearMap.ker (f.rTensor N) = LinearMap.ker (g.rTensor N))
{F : Type v} [AddCommGroup F] [Module R F] (x : F ⊗[R] M) :
∃ F' : Submodule R F, F'.FG ∧
IsLeast {N : Submodule R F | x ∈ LinearMap.range (N.subtype.rTensor M)} F'
Tag 059N, a lemma
Tag 059N in the Stacks Project.
Function.Exact.mittagLeffler_M₁_and_mittagLeffler_M₂_of_forall_rTensor_injective, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/Algebra/MittagLeffler/ShortExact.lean, line 311. The attribute's comment: “Mittag-Leffler is spelled out inline as condition (1) of 059E, as in 059M and 05CQ; universal exactness is h, h₂ and injectivity of f₁ ⊗ id_T for every T, as in 058K (1). The two items are the two conjuncts.”.
Let
0 → M₁ →[f₁] M₂ →[f₂] M₃ → 0be a universally exact sequence ofR-modules, that is, a short exact sequence for whichf₁ ⊗ id_T : M₁ ⊗ T → M₂ ⊗ Tis injective for everyR-moduleT. Then (1) ifM₂is Mittag-Leffler, so isM₁, and (2) ifM₁andM₃are Mittag-Leffler, so isM₂. Being Mittag-Leffler is spelled out in the intrinsic form 059E (1): every mapf : P → Mfrom a finitely presented module dominates and is dominated by a mapg : P → Qinto a finitely presented module, domination meaningKer(f ⊗ id_N) = Ker(g ⊗ id_N)for everyR-moduleN.
public theorem Function.Exact.mittagLeffler_M₁_and_mittagLeffler_M₂_of_forall_rTensor_injective
{R : Type u} [CommRing R] [Small.{v} R] {M₁ M₂ M₃ : Type v} [AddCommGroup M₁] [Module R M₁]
[AddCommGroup M₂] [Module R M₂] [AddCommGroup M₃] [Module R M₃] {f₁ : M₁ →ₗ[R] M₂}
{f₂ : M₂ →ₗ[R] M₃} (h : Function.Exact f₁ f₂) (h₂ : Function.Surjective f₂)
(hf₁ : ∀ (T : Type v) [AddCommGroup T] [Module R T], Function.Injective (f₁.rTensor T)) :
((∀ (P : Type v) [AddCommGroup P] [Module R P] [Module.FinitePresentation R P]
(f : P →ₗ[R] M₂), ∃ (Q : Type v) (_ : AddCommGroup Q) (_ : Module R Q)
(_ : Module.FinitePresentation R Q) (g : P →ₗ[R] Q), ∀ (N : Type v) [AddCommGroup N]
[Module R N], LinearMap.ker (f.rTensor N) = LinearMap.ker (g.rTensor N)) →
∀ (P : Type v) [AddCommGroup P] [Module R P] [Module.FinitePresentation R P]
(f : P →ₗ[R] M₁), ∃ (Q : Type v) (_ : AddCommGroup Q) (_ : Module R Q)
(_ : Module.FinitePresentation R Q) (g : P →ₗ[R] Q), ∀ (N : Type v) [AddCommGroup N]
[Module R N], LinearMap.ker (f.rTensor N) = LinearMap.ker (g.rTensor N)) ∧
((∀ (P : Type v) [AddCommGroup P] [Module R P] [Module.FinitePresentation R P]
(f : P →ₗ[R] M₁), ∃ (Q : Type v) (_ : AddCommGroup Q) (_ : Module R Q)
(_ : Module.FinitePresentation R Q) (g : P →ₗ[R] Q), ∀ (N : Type v) [AddCommGroup N]
[Module R N], LinearMap.ker (f.rTensor N) = LinearMap.ker (g.rTensor N)) →
(∀ (P : Type v) [AddCommGroup P] [Module R P] [Module.FinitePresentation R P]
(f : P →ₗ[R] M₃), ∃ (Q : Type v) (_ : AddCommGroup Q) (_ : Module R Q)
(_ : Module.FinitePresentation R Q) (g : P →ₗ[R] Q), ∀ (N : Type v) [AddCommGroup N]
[Module R N], LinearMap.ker (f.rTensor N) = LinearMap.ker (g.rTensor N)) →
∀ (P : Type v) [AddCommGroup P] [Module R P] [Module.FinitePresentation R P]
(f : P →ₗ[R] M₂), ∃ (Q : Type v) (_ : AddCommGroup Q) (_ : Module R Q)
(_ : Module.FinitePresentation R Q) (g : P →ₗ[R] Q), ∀ (N : Type v) [AddCommGroup N]
[Module R N], LinearMap.ker (f.rTensor N) = LinearMap.ker (g.rTensor N))
Tag 0EGI, a lemma
Tag 0EGI in the Stacks Project.
Module.mittagLeffler_of_surjective, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/Algebra/MittagLeffler/ShortExact.lean, line 552. The attribute's comment: “The exact sequence M₁ → M₂ → M₃ → 0 with M₁ finitely generated is stated as a surjection with finitely generated kernel, as in Module.finitePresentation_of_surjective; Mittag-Leffler is spelled out inline as condition (1) of 059E, as in 059M, 05CQ and 0AS6, with test data in the universe of M, whence Small.{v} R. See the module docstring.”.
Let
Rbe a commutative ring, letMbe a Mittag-LefflerR-module — every mapf : P → Mfrom a finitely presentedR-module dominates and is dominated by a mapg : P → Qinto a finitely presentedR-module, that isKer(f ⊗ id_N) = Ker(g ⊗ id_N)for everyR-moduleN, which is condition (1) of Proposition 059E — and letl : M → M'be a surjectiveR-linear map whose kernel is finitely generated. ThenM'is Mittag-Leffler.
public theorem Module.mittagLeffler_of_surjective {R : Type u} [CommRing R] [Small.{v} R]
{M : Type v} [AddCommGroup M] [Module R M] {M' : Type v} [AddCommGroup M'] [Module R M']
(hML : ∀ (P : Type v) [AddCommGroup P] [Module R P] [Module.FinitePresentation R P]
(f : P →ₗ[R] M), ∃ (Q : Type v) (_ : AddCommGroup Q) (_ : Module R Q)
(_ : Module.FinitePresentation R Q) (g : P →ₗ[R] Q), ∀ (N : Type v) [AddCommGroup N]
[Module R N], LinearMap.ker (f.rTensor N) = LinearMap.ker (g.rTensor N))
(l : M →ₗ[R] M') (hl : Function.Surjective l) (hl' : (LinearMap.ker l).FG) :
∀ (P : Type v) [AddCommGroup P] [Module R P] [Module.FinitePresentation R P]
(f : P →ₗ[R] M'), ∃ (Q : Type v) (_ : AddCommGroup Q) (_ : Module R Q)
(_ : Module.FinitePresentation R Q) (g : P →ₗ[R] Q), ∀ (N : Type v) [AddCommGroup N]
[Module R N], LinearMap.ker (f.rTensor N) = LinearMap.ker (g.rTensor N)
Tag 0AS7, a lemma
Tag 0AS7 in the Stacks Project.
ModuleCat.mittagLeffler_pt_of_forall_mittagLeffler_of_forall_rTensor_injective, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/Algebra/MittagLeffler/Colimit.lean, line 393. The attribute's comment: “Mittag-Leffler is spelled out inline as condition (1) of 059E, as in 059M and 059N; the directed system is a functor with a colimit cocone, as in 059E and 059W; universal injectivity of f i j is injectivity of (F.map u).hom.rTensor T for every T, as in 058K (1). See the module docstring.”.
Stacks 0AS7. Let
Rbe a commutative ring, letF : J ⥤ ModuleCat Rbe a directed system(M i, f i j)ofR-modules over a nonempty directed preorderJ, and letcbe a colimit cocone onF, so thatM = c.ptiscolim_{i ∈ J} M i. Assume every transition map is universally injective, that isf i j ⊗ id_Tis injective for everyR-moduleT, and that everyM iis Mittag-Leffler. ThenMis Mittag-Leffler. Being Mittag-Leffler is spelled out in the intrinsic form 059E (1): every mapf : P → Mfrom a finitely presented module dominates and is dominated by a mapg : P → Qinto a finitely presented module, domination meaningKer(f ⊗ id_N) = Ker(g ⊗ id_N)for everyR-moduleN.
public theorem ModuleCat.mittagLeffler_pt_of_forall_mittagLeffler_of_forall_rTensor_injective
{R : Type u} [CommRing R] [Small.{v} R] {J : Type w} [Preorder J] [IsDirectedOrder J]
[Nonempty J] {F : J ⥤ ModuleCat.{v} R}
(hinj : ∀ ⦃i j : J⦄ (u : i ⟶ j) (T : Type v) [AddCommGroup T] [Module R T],
Function.Injective ((F.map u).hom.rTensor T))
(hML : ∀ i : J, ∀ (P : Type v) [AddCommGroup P] [Module R P]
[Module.FinitePresentation R P] (f : P →ₗ[R] F.obj i),
∃ (Q : Type v) (_ : AddCommGroup Q) (_ : Module R Q) (_ : Module.FinitePresentation R Q)
(g : P →ₗ[R] Q), ∀ (N : Type v) [AddCommGroup N] [Module R N],
LinearMap.ker (f.rTensor N) = LinearMap.ker (g.rTensor N))
{c : Cocone F} (hc : IsColimit c) :
∀ (P : Type v) [AddCommGroup P] [Module R P] [Module.FinitePresentation R P]
(f : P →ₗ[R] c.pt),
∃ (Q : Type v) (_ : AddCommGroup Q) (_ : Module R Q) (_ : Module.FinitePresentation R Q)
(g : P →ₗ[R] Q), ∀ (N : Type v) [AddCommGroup N] [Module R N],
LinearMap.ker (f.rTensor N) = LinearMap.ker (g.rTensor N)
Tag 059P, a lemma
Tag 059P in the Stacks Project.
Module.mittagLeffler_directSum_iff, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/Algebra/MittagLeffler/DirectSum.lean, line 338. The attribute's comment: “Mittag-Leffler is spelled out inline as condition (1) of 059E, as in 059M, 059N and 05CQ; the module is Mathlib's DirectSum, as in Module.Flat.directSum_iff. No smallness of R is assumed, neither direction using it. See the module docstring.”.
Stacks 059P. Let
Rbe a commutative ring and(M i)a family ofR-modules indexed by a typeι. Then the direct sum⨁ i, M iis Mittag-Leffler if and only if eachM iis. Being Mittag-Leffler is spelled out in the intrinsic form 059E (1): every mapf : P → Mfrom a finitely presented module dominates and is dominated by a mapg : P → Qinto a finitely presented module, domination meaningKer(f ⊗ id_N) = Ker(g ⊗ id_N)for everyR-moduleN.
public theorem Module.mittagLeffler_directSum_iff (R : Type u) [CommRing R] {ι : Type v}
(M : ι → Type v) [∀ i, AddCommGroup (M i)] [∀ i, Module R (M i)] :
(∀ (P : Type v) [AddCommGroup P] [Module R P] [Module.FinitePresentation R P]
(f : P →ₗ[R] (⨁ i, M i)), ∃ (Q : Type v) (_ : AddCommGroup Q) (_ : Module R Q)
(_ : Module.FinitePresentation R Q) (g : P →ₗ[R] Q), ∀ (N : Type v) [AddCommGroup N]
[Module R N], LinearMap.ker (f.rTensor N) = LinearMap.ker (g.rTensor N)) ↔
∀ i, ∀ (P : Type v) [AddCommGroup P] [Module R P] [Module.FinitePresentation R P]
(f : P →ₗ[R] M i), ∃ (Q : Type v) (_ : AddCommGroup Q) (_ : Module R Q)
(_ : Module.FinitePresentation R Q) (g : P →ₗ[R] Q), ∀ (N : Type v) [AddCommGroup N]
[Module R N], LinearMap.ker (f.rTensor N) = LinearMap.ker (g.rTensor N)
Tag 05CT, a lemma
Tag 05CT in the Stacks Project.
Module.mittagLeffler_trans_of_flat, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/Algebra/MittagLeffler/RestrictScalars.lean, line 506. The attribute's comment: “Mittag-Leffler is spelled out inline as condition (1) of 059E, as in 059M, 059N, 059P and 05CQ; flatness is Module.Flat S M. S and M share the universe of the test data, whence the single Small.{v} R. See the module docstring.”.
Stacks 05CT. Let
R → Sbe a ring map and letMbe anS-module. IfSis Mittag-Leffler as anR-module, andMis flat and Mittag-Leffler as anS-module, thenMis Mittag-Leffler as anR-module. Being Mittag-Leffler is spelled out in the intrinsic form 059E (1): every mapf : P → Mfrom a finitely presented module dominates and is dominated by a mapg : P → Qinto a finitely presented module, domination meaningKer(f ⊗ id_N) = Ker(g ⊗ id_N)for every test moduleN.
public theorem Module.mittagLeffler_trans_of_flat {R : Type u} {S M : Type v} [CommRing R]
[CommRing S] [Algebra R S] [Small.{v} R] [AddCommGroup M] [Module R M] [Module S M]
[IsScalarTower R S M] [Module.Flat S M]
(hS : ∀ (P : Type v) [AddCommGroup P] [Module R P] [Module.FinitePresentation R P]
(f : P →ₗ[R] S), ∃ (Q : Type v) (_ : AddCommGroup Q) (_ : Module R Q)
(_ : Module.FinitePresentation R Q) (g : P →ₗ[R] Q), ∀ (N : Type v) [AddCommGroup N]
[Module R N], LinearMap.ker (f.rTensor N) = LinearMap.ker (g.rTensor N))
(hM : ∀ (P : Type v) [AddCommGroup P] [Module S P] [Module.FinitePresentation S P]
(f : P →ₗ[S] M), ∃ (Q : Type v) (_ : AddCommGroup Q) (_ : Module S Q)
(_ : Module.FinitePresentation S Q) (g : P →ₗ[S] Q), ∀ (N : Type v) [AddCommGroup N]
[Module S N], LinearMap.ker (f.rTensor N) = LinearMap.ker (g.rTensor N)) :
∀ (P : Type v) [AddCommGroup P] [Module R P] [Module.FinitePresentation R P]
(f : P →ₗ[R] M), ∃ (Q : Type v) (_ : AddCommGroup Q) (_ : Module R Q)
(_ : Module.FinitePresentation R Q) (g : P →ₗ[R] Q), ∀ (N : Type v) [AddCommGroup N]
[Module R N], LinearMap.ker (f.rTensor N) = LinearMap.ker (g.rTensor N)
Sources
Section10.90 Coherent rings#
Section 10.90 of the Stacks Project, Tag 05CU. 6 tags here are carried by 10 declarations of the repository (all in StacksFrontier), quoted below from AxiomMath/Stacks at commit 5ed82d14.
Tag 05CV, a definition
Tag 05CV in the Stacks Project.
Module.IsCoherent, a class in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Coherent/Basic.lean, line 71. The attribute's comment: “coherent module”. References: SGA 6 I (3.1), “special case”; SGA 6 IV (2.1), “special case”.
An
R-moduleMis coherent if it is finitely generated and every finitely generated submodule ofMis finitely presented overR.
class Module.IsCoherent (R : Type*) (M : Type*) [Ring R] [AddCommGroup M] [Module R M] :
Prop
IsCoherentRing, a class in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Coherent/Basic.lean, line 82. The attribute's comment: “coherent ring”. References: EGA 0 (5.3.7), “special case”.
A ring
Ris a coherent ring if it is coherent as a module over itself.
class IsCoherentRing (R : Type*) [Ring R] : Prop
Tag 0EWV, an example
Tag 0EWV in the Stacks Project.
IsBezout.instIsCoherentRing, an instance in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Coherent/Bezout.lean, line 134. The attribute's comment: “Stated for a Bézout domain: the source's proof of the valuation ring case uses only that finitely generated ideals are principal and that the ring is a domain. The valuation ring case is instance search through ValuationRing.instIsBezout.”.
A Bézout domain is a coherent ring: a finitely generated ideal is principal (
IsBezout.isPrincipal_of_FG), hence free since the ring is a domain, hence finitely presented. The source states this for a valuation ring, which is a local Bézout domain (ValuationRing.iff_local_bezout_domain); locality is not used.
public instance IsBezout.instIsCoherentRing (A : Type*) [CommRing A] [IsDomain A] [IsBezout A] :
IsCoherentRing A
Tag 05CW, a lemma
Tag 05CW in the Stacks Project.
isCoherent_of_fg_submodule, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Coherent/Basic.lean, line 106. The attribute's comment: “(1)”. References: EGA 0 (5.3.2), “submodule clause, ring”; EGA 0 (5.3.4), “special case”.
A finitely generated submodule of a coherent module is coherent.
theorem isCoherent_of_fg_submodule
{R M : Type*} [Ring R] [AddCommGroup M] [Module R M] [Module.IsCoherent R M]
(N : Submodule R M) (hN : N.FG) :
Module.IsCoherent R N
finite_ker_and_coherent_range_coker, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Coherent/Basic.lean, line 158. The attribute's comment: “(2)”. References: EGA 0 (5.3.4), “special case”; SGA 6 I (3.3), “special case”; SGA 6 I (3.4), “partial”.
If
φ : N → MwithNfinite andMcoherent, then the kernel ofφis finite, the range ofφis coherent, and the cokernelM ⧸ range φis coherent.
theorem finite_ker_and_coherent_range_coker
{R N M : Type*} [Ring R] [AddCommGroup N] [Module R N]
[AddCommGroup M] [Module R M] [Module.Finite R N] [Module.IsCoherent R M]
(φ : N →ₗ[R] M) :
Module.Finite R (LinearMap.ker φ) ∧
Module.IsCoherent R (LinearMap.range φ) ∧
Module.IsCoherent R (M ⧸ LinearMap.range φ)
coherent_ker_and_coker_of_coherent, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Coherent/Basic.lean, line 180. The attribute's comment: “(3)”. References: EGA 0 (5.3.4), “special case”; SGA 6 I (3.3), “special case”; SGA 6 I (3.4), “partial”; SGA 6 IV (2.4), “partial”.
If
φ : N → Mis a homomorphism of coherent modules, then its kernel and cokernel are coherent.
theorem coherent_ker_and_coker_of_coherent
{R N M : Type*} [Ring R] [AddCommGroup N] [Module R N]
[AddCommGroup M] [Module R M] [Module.IsCoherent R N] [Module.IsCoherent R M]
(φ : N →ₗ[R] M) :
Module.IsCoherent R (LinearMap.ker φ) ∧
Module.IsCoherent R (M ⧸ LinearMap.range φ)
isCoherent_two_out_of_three, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Coherent/Basic.lean, line 244. The attribute's comment: “(4)”. References: SGA 6 I (3.3), “special case”; SGA 6 I (3.4), “special case”.
Two-out-of-three for coherence in a short exact sequence
0 → M₁ → M₂ → M₃ → 0, whereiis injective,pis surjective andrange i = ker p: any two ofM₁,M₂,M₃coherent imply the third is coherent.
theorem isCoherent_two_out_of_three
{R M₁ M₂ M₃ : Type*} [Ring R]
[AddCommGroup M₁] [Module R M₁] [AddCommGroup M₂] [Module R M₂]
[AddCommGroup M₃] [Module R M₃]
(i : M₁ →ₗ[R] M₂) (p : M₂ →ₗ[R] M₃)
(hi : Function.Injective i) (hp : Function.Surjective p)
(hexact : LinearMap.range i = LinearMap.ker p) :
(Module.IsCoherent R M₁ → Module.IsCoherent R M₂ → Module.IsCoherent R M₃) ∧
(Module.IsCoherent R M₁ → Module.IsCoherent R M₃ → Module.IsCoherent R M₂) ∧
(Module.IsCoherent R M₂ → Module.IsCoherent R M₃ → Module.IsCoherent R M₁)
Tag 05CX, a lemma
Tag 05CX in the Stacks Project.
coherent_iff_finitePresentation_of_coherentRing, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Coherent/Basic.lean, line 326. References: SGA 6 I (3.5), “a) (i)⇔(ii)”.
If
Ris a coherent ring, then anR-moduleMis coherent if and only if it is finitely presented.
theorem coherent_iff_finitePresentation_of_coherentRing
(hR : Module.IsCoherent R R)
(M : Type*) [AddCommGroup M] [Module R M] :
Module.IsCoherent R M ↔ Module.FinitePresentation R M
Tag 05CY, a lemma
Tag 05CY in the Stacks Project.
isCoherentRing_of_isNoetherianRing, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Coherent/Basic.lean, line 343. References: SGA 6 I (3.6), “special case”.
Every left Noetherian ring is a coherent ring.
theorem isCoherentRing_of_isNoetherianRing (R : Type*) [Ring R] [IsNoetherianRing R] :
IsCoherentRing R
Tag 05CZ, a proposition
Tag 05CZ in the Stacks Project.
IsCoherentRing.tfae_flat_pi, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Coherent/Flat.lean, line 139. The attribute's comment: “Test data in the universe of R. See the module docstring.”.
Stacks 05CZ (Chase's theorem). Let
Rbe a commutative ring. The following are equivalent: (1)Ris coherent; (2) any product of flatR-modules is flat; (3) for every setAthe moduleR^Ais flat.
theorem IsCoherentRing.tfae_flat_pi (R : Type u) [CommRing R] :
List.TFAE
[IsCoherentRing R,
∀ (A : Type u) (Q : A → Type u) [∀ α, AddCommGroup (Q α)] [∀ α, Module R (Q α)],
(∀ α, Module.Flat R (Q α)) → Module.Flat R (∀ α, Q α),
∀ A : Type u, Module.Flat R (A → R)]
Sources
Section10.91 Examples and non-examples of Mittag-Leffler modules#
Section 10.91 of the Stacks Project, Tag 059Q. 4 tags here are carried by 6 declarations of the repository (all in StacksFrontier), quoted below from AxiomMath/Stacks at commit 5ed82d14.
Tag 059R, an example
Tag 059R in the Stacks Project.
Module.mittagLeffler_iff_finitePresentation_and_mittagLeffler_of_projective, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/Algebra/MittagLeffler/Basic.lean, line 336. The attribute's comment: “Items (1) and (3) together, over one module and with the two hypotheses as antecedents; the forms to cite are the two halves. Mittag-Leffler is spelled out inline as condition (1) of 059E, as in 059M, 059N and 059P. Test data in the universe of M, whence Small.{v} R. See the module docstring.”.
Stacks 059R. Let
Rbe a commutative ring andManR-module. Then (1) ifMis finitely generated,Mis Mittag-Leffler if and only ifMis finitely presented — in particular every finitely presented module is Mittag-Leffler — and (2) ifMis projective, in particular ifMis free, thenMis Mittag-Leffler. Being Mittag-Leffler is spelled out in the intrinsic form 059E (1): every mapf : P → Mfrom a finitely presented module dominates and is dominated by a mapg : P → Qinto a finitely presented module, domination meaningKer(f ⊗ id_N) = Ker(g ⊗ id_N)for everyR-moduleN.This is the example as the source states it, over one module. The two items are independent of each other and each is stated separately, over its own hypothesis alone, as
Module.mittagLeffler_iff_finitePresentationandModule.mittagLeffler_of_projective.
public theorem Module.mittagLeffler_iff_finitePresentation_and_mittagLeffler_of_projective
(R : Type u) [CommRing R] [Small.{v} R] (M : Type v) [AddCommGroup M] [Module R M] :
(Module.Finite R M →
((∀ (P : Type v) [AddCommGroup P] [Module R P] [Module.FinitePresentation R P]
(f : P →ₗ[R] M), ∃ (Q : Type v) (_ : AddCommGroup Q) (_ : Module R Q)
(_ : Module.FinitePresentation R Q) (g : P →ₗ[R] Q), ∀ (N : Type v) [AddCommGroup N]
[Module R N], LinearMap.ker (f.rTensor N) = LinearMap.ker (g.rTensor N)) ↔
Module.FinitePresentation R M)) ∧
(Module.Projective R M →
∀ (P : Type v) [AddCommGroup P] [Module R P] [Module.FinitePresentation R P]
(f : P →ₗ[R] M), ∃ (Q : Type v) (_ : AddCommGroup Q) (_ : Module R Q)
(_ : Module.FinitePresentation R Q) (g : P →ₗ[R] Q), ∀ (N : Type v) [AddCommGroup N]
[Module R N], LinearMap.ker (f.rTensor N) = LinearMap.ker (g.rTensor N))
Module.mittagLeffler_iff_finitePresentation, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/Algebra/MittagLeffler/Basic.lean, line 360. The attribute's comment: “Item (1), with the finite generation an instance hypothesis; finitely presented implies Mittag-Leffler is the direction ←, via instFiniteOfFinitePresentation.”.
Stacks 059R, item (1). Let
Rbe a commutative ring andMa finitely generatedR-module. ThenMis Mittag-Leffler if and only ifMis finitely presented; in particular every finitely presented module is Mittag-Leffler, finite presentation implying finite generation. Being Mittag-Leffler is spelled out in the intrinsic form 059E (1): every mapf : P → Mfrom a finitely presented module dominates and is dominated by a mapg : P → Qinto a finitely presented module, domination meaningKer(f ⊗ id_N) = Ker(g ⊗ id_N)for everyR-moduleN.
public theorem Module.mittagLeffler_iff_finitePresentation (R : Type u) [CommRing R] [Small.{v} R]
(M : Type v) [AddCommGroup M] [Module R M] [Module.Finite R M] :
(∀ (P : Type v) [AddCommGroup P] [Module R P] [Module.FinitePresentation R P]
(f : P →ₗ[R] M), ∃ (Q : Type v) (_ : AddCommGroup Q) (_ : Module R Q)
(_ : Module.FinitePresentation R Q) (g : P →ₗ[R] Q), ∀ (N : Type v) [AddCommGroup N]
[Module R N], LinearMap.ker (f.rTensor N) = LinearMap.ker (g.rTensor N)) ↔
Module.FinitePresentation R M
Module.mittagLeffler_of_projective, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/Algebra/MittagLeffler/Basic.lean, line 376. The attribute's comment: “Items (2) and (3), with the projectivity an instance hypothesis; item (2), a free module, is this statement via Module.Projective.of_free.”.
Stacks 059R, items (2) and (3). Let
Rbe a commutative ring andMa projectiveR-module, in particular a free one,Module.Projective.of_freebeing an instance. ThenMis Mittag-Leffler, spelled out in the intrinsic form 059E (1): every mapf : P → Mfrom a finitely presented module dominates and is dominated by a mapg : P → Qinto a finitely presented module, domination meaningKer(f ⊗ id_N) = Ker(g ⊗ id_N)for everyR-moduleN.
public theorem Module.mittagLeffler_of_projective (R : Type u) [CommRing R] [Small.{v} R]
(M : Type v) [AddCommGroup M] [Module R M] [Module.Projective R M] :
∀ (P : Type v) [AddCommGroup P] [Module R P] [Module.FinitePresentation R P]
(f : P →ₗ[R] M), ∃ (Q : Type v) (_ : AddCommGroup Q) (_ : Module R Q)
(_ : Module.FinitePresentation R Q) (g : P →ₗ[R] Q), ∀ (N : Type v) [AddCommGroup N]
[Module R N], LinearMap.ker (f.rTensor N) = LinearMap.ker (g.rTensor N)
Tag 059S, a lemma
Tag 059S in the Stacks Project.
Module.mittagLeffler_iff_exists_isLeast_mem_range_rTensor_subtype, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/Algebra/MittagLeffler/Flat.lean, line 631. The attribute's comment: “Mittag-Leffler is spelled out inline as condition (1) of 059E, as in 059M and 0AS6; finite free is Module.Free and Module.Finite, x ∈ F' ⊗_R M is membership in the range of F'.subtype.rTensor M, and smallest is IsLeast. Test data in the universe of M, whence Small.{v} R. See the module docstring.”.
Let
Rbe a commutative ring and letMbe a flatR-module. ThenMis Mittag-Leffler if and only if for every finite freeR-moduleFand everyx ∈ F ⊗[R] Mthere is a smallest submoduleF'ofFwithx ∈ F' ⊗[R] M— that is, withxin the range ofF' ⊗[R] M → F ⊗[R] M.Being Mittag-Leffler is spelled out inline as condition (1) of Proposition 059E: every map
f : P → Mfrom a finitely presentedR-module dominates and is dominated by a mapg : P → Qinto a finitely presentedR-module, that isKer(f ⊗ id_N) = Ker(g ⊗ id_N)for everyR-moduleN. This is Definition 059F,IsMittagLeffler, byisMittagLeffler_def_iff.
public theorem Module.mittagLeffler_iff_exists_isLeast_mem_range_rTensor_subtype (R : Type u)
[CommRing R] [Small.{v} R] (M : Type v) [AddCommGroup M] [Module R M] [Module.Flat R M] :
(∀ (P : Type v) [AddCommGroup P] [Module R P] [Module.FinitePresentation R P]
(f : P →ₗ[R] M), ∃ (Q : Type v) (_ : AddCommGroup Q) (_ : Module R Q)
(_ : Module.FinitePresentation R Q) (g : P →ₗ[R] Q), ∀ (N : Type v) [AddCommGroup N]
[Module R N], LinearMap.ker (f.rTensor N) = LinearMap.ker (g.rTensor N)) ↔
∀ (F : Type v) [AddCommGroup F] [Module R F] [Module.Free R F] [Module.Finite R F]
(x : F ⊗[R] M), ∃ F' : Submodule R F,
IsLeast {N : Submodule R F | x ∈ LinearMap.range (N.subtype.rTensor M)} F'
Tag 05D0, a lemma
Tag 05D0 in the Stacks Project.
Module.flat_and_mittagLeffler_pi, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/Algebra/MittagLeffler/Pi.lean, line 162. The attribute's comment: “Mittag-Leffler is spelled out inline as condition (1) of 059E, as in 059M, 059S and 0AS6; R^A is the Pi module A → R, as in item (3) of 05CZ, and the two conclusions are one conjunction, as in the source. Test data in the universe of R and A. See the module docstring.”.
Let
Rbe a Noetherian ring andAa set. ThenM = R^A, theR-module of functionsA → R, is a flat and Mittag-LefflerR-module.Being Mittag-Leffler is spelled out inline as condition (1) of Proposition 059E: every map
f : P → Mfrom a finitely presentedR-module dominates and is dominated by a mapg : P → Qinto a finitely presentedR-module, that isKer(f ⊗ id_N) = Ker(g ⊗ id_N)for everyR-moduleN.
theorem Module.flat_and_mittagLeffler_pi (R : Type u) [CommRing R] [IsNoetherianRing R]
(A : Type u) :
Module.Flat R (A → R) ∧
∀ (P : Type u) [AddCommGroup P] [Module R P] [Module.FinitePresentation R P]
(f : P →ₗ[R] (A → R)), ∃ (Q : Type u) (_ : AddCommGroup Q) (_ : Module R Q)
(_ : Module.FinitePresentation R Q) (g : P →ₗ[R] Q), ∀ (N : Type u) [AddCommGroup N]
[Module R N], LinearMap.ker (f.rTensor N) = LinearMap.ker (g.rTensor N)
Tag 059T, a lemma
Tag 059T in the Stacks Project.
Module.flat_and_mittagLeffler_mvPowerSeries, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/Algebra/MittagLeffler/MvPowerSeries.lean, line 127. The attribute's comment: “The source's 0 < n is dropped as unused: at n = 0 the module is free of rank one, hence flat and Mittag-Leffler. Mittag-Leffler is spelled out inline as condition (1) of 059E, as in 05D0, 059M, 059S and 0AS6; R[[t_1, …, t_n]] is MvPowerSeries (Fin n) R, the product over the monomials with its coefficientwise R-module structure, and the two conclusions are one conjunction, as in the source. Test data in the universe of R. See the module docstring.”.
Let
Rbe a Noetherian ring and letn : ℕ. Then the power series moduleM = R[[t_1, …, t_n]], regarded as anR-module, is flat and Mittag-Leffler.Being Mittag-Leffler is spelled out inline as condition (1) of Proposition 059E: every map
f : P → Mfrom a finitely presentedR-module dominates and is dominated by a mapg : P → Qinto a finitely presentedR-module, that isKer(f ⊗ id_N) = Ker(g ⊗ id_N)for everyR-moduleN.
theorem Module.flat_and_mittagLeffler_mvPowerSeries (R : Type u) [CommRing R]
[IsNoetherianRing R] (n : ℕ) :
Module.Flat R (MvPowerSeries (Fin n) R) ∧
∀ (P : Type u) [AddCommGroup P] [Module R P] [Module.FinitePresentation R P]
(f : P →ₗ[R] MvPowerSeries (Fin n) R), ∃ (Q : Type u) (_ : AddCommGroup Q)
(_ : Module R Q) (_ : Module.FinitePresentation R Q) (g : P →ₗ[R] Q),
∀ (N : Type u) [AddCommGroup N] [Module R N],
LinearMap.ker (f.rTensor N) = LinearMap.ker (g.rTensor N)
Sources
Section10.92 Countably generated Mittag-Leffler modules#
Section 10.92 of the Stacks Project, Tag 05D1. 2 tags here are carried by 2 declarations of the repository (all in StacksFrontier), quoted below from AxiomMath/Stacks at commit 5ed82d14.
Tag 059W, a lemma
Tag 059W in the Stacks Project.
ModuleCat.exists_countable_directedOn_isColimit_whisker, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Module/DirectLimit/Countable.lean, line 564. The attribute's comment: “Mittag-Leffler as 059E (3); finite presentation of the members is unused”.
Stacks 059W. Let
Rbe a ring,w-small relative to the universe of the modules below, letF : J ⥤ ModuleCat Rbe a directed system ofR-modules over a nonempty directed preorderJ, and letcbe a colimit cocone onF, so thatM = c.ptiscolim_{i ∈ J} M i. Assume that for everyithere is aj ≥ isuch that the transition mapM i → M jfactors throughM i → M kfor everyk ≥ i— condition (3) of Stacks 059E, which for a system of finitely presented modules says exactly thatMis Mittag-Leffler — and thatMis spanned by a countable set. Then there is a nonempty countable directed subsetJ' ⊆ Jsuch thatM, with the canonical mapsM i → Mfori ∈ J', is a colimit of the restricted system:M = colim_{i ∈ J'} M i.
public theorem ModuleCat.exists_countable_directedOn_isColimit_whisker
{R : Type u} [Ring R] [Small.{w} R] {J : Type v} [Preorder J] [IsDirectedOrder J] [Nonempty J]
{F : J ⥤ ModuleCat.{w} R}
(hfac : ∀ i : J, ∃ (j : J) (u : i ⟶ j), ∀ (k : J) (v : i ⟶ k),
∃ h : F.obj k ⟶ F.obj j, F.map u = F.map v ≫ h)
{c : Cocone F} (hc : IsColimit c)
(hcg : ∃ t : Set c.pt, t.Countable ∧ Submodule.span R t = ⊤) :
∃ s : Set J, s.Nonempty ∧ s.Countable ∧ DirectedOn (· ≤ ·) s ∧
Nonempty (IsColimit (c.whisker (Set.mono_coe s).functor))
Tag 05D2, a lemma
Tag 05D2 in the Stacks Project.
Module.exists_end_factorization_finitePresentation_of_countable_span_of_mittagLeffler, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/Algebra/MittagLeffler/Endomorphism.lean, line 607. The attribute's comment: “Mittag-Leffler is spelled out inline as condition (1) of 059E, as in 059M, 059N, 059P, 059R, 05CQ, 059X and 05D6; countable generation as a countable spanning set, as in 0590. Test data in the universe of M, whence Small.{v} R; the source's P keeps its own universe. Factoring through a finitely presented module is the equation α = v ∘ₗ u, as in Module.Flat.exists_factorization_of_finitePresentation. See the module docstring.”.
Let
Rbe a commutative ring and letMbe anR-module which is countably generated — it admits a countable spanning set — and Mittag-Leffler, the latter in the intrinsic form 059E (1): every mapf : P → Mfrom a finitely presented module dominates and is dominated by a mapg : P → Qinto a finitely presented module, domination meaningKer (f ⊗ id_T) = Ker (g ⊗ id_T)for everyR-moduleT. Then for everyR-module mapf : P → MwithPfinitely generated there is an endomorphismα : M → Msuch that (1)αfactors through a finitely presentedR-module, that isα = v ∘ₗ ufor someu : M → Qandv : Q → MwithQfinitely presented, and (2)α ∘ f = f.
public theorem Module.exists_end_factorization_finitePresentation_of_countable_span_of_mittagLeffler
(R : Type u) [CommRing R] [Small.{v} R] (M : Type v) [AddCommGroup M] [Module R M]
(hcg : ∃ s : Set M, s.Countable ∧ Submodule.span R s = ⊤)
(hML : ∀ (P : Type v) [AddCommGroup P] [Module R P] [Module.FinitePresentation R P]
(f : P →ₗ[R] M), ∃ (Q : Type v) (_ : AddCommGroup Q) (_ : Module R Q)
(_ : Module.FinitePresentation R Q) (g : P →ₗ[R] Q), ∀ (T : Type v) [AddCommGroup T]
[Module R T], LinearMap.ker (f.rTensor T) = LinearMap.ker (g.rTensor T))
{P : Type w} [AddCommGroup P] [Module R P] [Module.Finite R P] (f : P →ₗ[R] M) :
∃ α : M →ₗ[R] M,
(∃ (Q : Type v) (_ : AddCommGroup Q) (_ : Module R Q) (_ : Module.FinitePresentation R Q)
(u : M →ₗ[R] Q) (v : Q →ₗ[R] M), α = v ∘ₗ u) ∧ α ∘ₗ f = f
Sources
Section10.93 Characterizing projective modules#
Section 10.93 of the Stacks Project, Tag 059V. 4 tags here are carried by 4 declarations of the repository (all in StacksFrontier), quoted below from AxiomMath/Stacks at commit 5ed82d14.
Tag 059X, a lemma
Tag 059X in the Stacks Project.
Module.Flat.projective_of_isMittagLeffler_of_countablyGenerated, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/Algebra/MittagLeffler/Projective.lean, line 439. The attribute's comment: “Mittag-Leffler is IsMittagLeffler (059F) and countable generation is Module.CountablyGenerated (from Tag 0GVD), both cited by name; the companion statements write them out inline, isMittagLeffler_def_iff identifying the two forms. Test data in the universe of M, whence Small.{v} R. See the module docstring.”.
Stacks 059X. A flat, Mittag-Leffler, countably generated module over a commutative ring is projective. The Mittag-Leffler condition is
IsMittagLeffler(Definition 059F), with its finitely presented modules and test modules taken in the universe ofM; countable generation isModule.CountablyGenerated, the existence of a countable spanning set.
public theorem Module.Flat.projective_of_isMittagLeffler_of_countablyGenerated
(R : Type u) [CommRing R] [Small.{v} R] (M : Type v) [AddCommGroup M] [Module R M]
[Module.Flat R M] (hML : IsMittagLeffler.{u, v, v, v, v} R M)
(hcg : Module.CountablyGenerated R M) :
Module.Projective R M
Tag 059Z, a theorem
Tag 059Z in the Stacks Project.
Module.projective_iff_flat_and_mittagLeffler_and_exists_sSupIndep_countable_span, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/Algebra/MittagLeffler/ProjectiveCharacterization.lean, line 233. The attribute's comment: “Mittag-Leffler is spelled out inline as condition (1) of 059E, as in 059M, 059N, 059P, 059R, 05CQ, 05D6 and 059X; the direct sum decomposition internally, as an independent set of submodules of M with supremum ⊤, as in 058W and 058Y, with countable generation as a countable spanning set, as in 0590. Test data in the universe of M, whence Small.{v} R. See the module docstring.”.
Let
Rbe a commutative ring andManR-module. ThenMis projective if and only if (1)Mis flat, (2)Mis Mittag-Leffler, and (3)Mis a direct sum of countably generatedR-modules. Being Mittag-Leffler is spelled out in the intrinsic form 059E (1): every mapf : P → Mfrom a finitely presented module dominates and is dominated by a mapg : P → Qinto a finitely presented module, domination meaningKer(f ⊗ id_T) = Ker(g ⊗ id_T)for everyR-moduleT. Being a direct sum of countably generated modules is spelled internally, as in 058W and 058Y: an independent set of submodules ofMwith supremum⊤, each spanned by a countable set.
public theorem Module.projective_iff_flat_and_mittagLeffler_and_exists_sSupIndep_countable_span
(R : Type u) [CommRing R] [Small.{v} R] (M : Type v) [AddCommGroup M] [Module R M] :
Module.Projective R M ↔
Module.Flat R M ∧
(∀ (P : Type v) [AddCommGroup P] [Module R P] [Module.FinitePresentation R P]
(f : P →ₗ[R] M), ∃ (Q : Type v) (_ : AddCommGroup Q) (_ : Module R Q)
(_ : Module.FinitePresentation R Q) (g : P →ₗ[R] Q), ∀ (T : Type v) [AddCommGroup T]
[Module R T], LinearMap.ker (f.rTensor T) = LinearMap.ker (g.rTensor T)) ∧
(∃ S : Set (Submodule R M), sSupIndep S ∧ sSup S = ⊤ ∧
∀ N ∈ S, ∃ t : Set M, t.Countable ∧ Submodule.span R t = N)
Tag 05A0, a lemma
Tag 05A0 in the Stacks Project.
Module.projective_of_forall_rTensor_injective_of_exists_sSupIndep_countable_span, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/Algebra/Module/Projective/CountablyGenerated.lean, line 390. The attribute's comment: “Universal injectivity of f is injectivity of f ⊗ id_T for every T, as in 058K (1) and 059N; Mittag-Leffler is spelled out inline as condition (1) of 059E, as in 059N, 059X and 059Z; the direct sum decomposition internally, as an independent set of submodules of M with supremum ⊤, as in 058W and 058Y, with countable generation as a countable spanning set, as in 0590. Test data in the universe of M and N, whence Small.{v} R. See the module docstring.”.
Let
f : M → Nbe a universally injective map ofR-modules, that is, one for whichf ⊗ id_Tis injective for everyR-moduleT. SupposeMis a direct sum of countably generatedR-modules and supposeNis flat and Mittag-Leffler. ThenMis projective. Being a direct sum of countably generated modules is spelled internally, as in 058W and 058Y: an independent set of submodules ofMwith supremum⊤, each spanned by a countable set. Being Mittag-Leffler is spelled out in the intrinsic form 059E (1): every mapg : P → Nfrom a finitely presented module dominates and is dominated by a maph : P → Qinto a finitely presented module, domination meaningKer(g ⊗ id_T) = Ker(h ⊗ id_T)for everyR-moduleT.
public theorem Module.projective_of_forall_rTensor_injective_of_exists_sSupIndep_countable_span
(R : Type u) [CommRing R] [Small.{v} R] (M : Type v) [AddCommGroup M] [Module R M]
(N : Type v) [AddCommGroup N] [Module R N] [Module.Flat R N] (f : M →ₗ[R] N)
(hf : ∀ (T : Type v) [AddCommGroup T] [Module R T], Function.Injective (f.rTensor T))
(hM : ∃ S : Set (Submodule R M), sSupIndep S ∧ sSup S = ⊤ ∧
∀ K ∈ S, ∃ t : Set M, t.Countable ∧ Submodule.span R t = K)
(hML : ∀ (P : Type v) [AddCommGroup P] [Module R P] [Module.FinitePresentation R P]
(g : P →ₗ[R] N), ∃ (Q : Type v) (_ : AddCommGroup Q) (_ : Module R Q)
(_ : Module.FinitePresentation R Q) (h : P →ₗ[R] Q), ∀ (T : Type v) [AddCommGroup T]
[Module R T], LinearMap.ker (g.rTensor T) = LinearMap.ker (h.rTensor T)) :
Module.Projective R M
Tag 05A1, a lemma
Tag 05A1 in the Stacks Project.
Module.projective_of_forall_rTensor_injective_mvPowerSeries_of_exists_sSupIndep_countable_span, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/Algebra/Module/Projective/CountablyGenerated.lean, line 549. The attribute's comment: “R[[t_1, …, t_n]] is MvPowerSeries (Fin n) R with its coefficientwise R-module structure, as in 059T; universal injectivity of f is injectivity of f ⊗ id_T for every T, as in 058K (1), 059N and 05A0; the direct sum decomposition internally, as an independent set of submodules of M with supremum ⊤ each spanned by a countable set, as in 058W, 058Y and 05A0. n and f are parameters rather than existentially bound, the conclusion mentioning neither, and no positivity of n is assumed, as none is in the source. See the module docstring.”.
Let
Rbe a Noetherian ring and letMbe anR-module. SupposeMis a direct sum of countably generatedR-modules, and suppose there is a universally injective mapf : M → R[[t_1, …, t_n]]for somen, that is, one for whichf ⊗ id_Tis injective for everyR-moduleT. ThenMis projective. Being a direct sum of countably generated modules is spelled internally, as in 058W, 058Y and 05A0: an independent set of submodules ofMwith supremum⊤, each spanned by a countable set.
public theorem
Module.projective_of_forall_rTensor_injective_mvPowerSeries_of_exists_sSupIndep_countable_span
(R : Type u) [CommRing R] [IsNoetherianRing R] (M : Type u) [AddCommGroup M] [Module R M]
(n : ℕ) (f : M →ₗ[R] MvPowerSeries (Fin n) R)
(hf : ∀ (T : Type u) [AddCommGroup T] [Module R T], Function.Injective (f.rTensor T))
(hM : ∃ S : Set (Submodule R M), sSupIndep S ∧ sSup S = ⊤ ∧
∀ K ∈ S, ∃ t : Set M, t.Countable ∧ Submodule.span R t = K) :
Module.Projective R M
Sources
Section10.94 Ascending properties of modules#
Section 10.94 of the Stacks Project, Tag 05A2. 1 tag here is carried by 1 declaration of the repository (in StacksFrontier), quoted below from AxiomMath/Stacks at commit 5ed82d14.
Tag 05A3, a lemma
Tag 05A3 in the Stacks Project.
Module.baseChange_flat_and_mittagLeffler_and_exists_sSupIndep_countable_span_and_projective, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/Algebra/MittagLeffler/BaseChange.lean, line 85. The attribute's comment: “Mittag-Leffler is spelled out inline as condition (1) of 059E and "direct sum of countably generated modules" as an independent set of countably spanned submodules with supremum ⊤, as in 059M, 05A5 and 058W. The source's M ⊗_R S is written S ⊗[R] M.”.
Base change along a ring map
R → Spreserves flatness, the Mittag-Leffler condition, being a direct sum of countably generated modules, and projectivity.
theorem baseChange_flat_and_mittagLeffler_and_exists_sSupIndep_countable_span_and_projective
[Small.{v} R] :
(Module.Flat R M → Module.Flat S (S ⊗[R] M)) ∧
((∀ (P : Type v) [AddCommGroup P] [Module R P] [Module.FinitePresentation R P]
(f : P →ₗ[R] M), ∃ (Q : Type v) (_ : AddCommGroup Q) (_ : Module R Q)
(_ : Module.FinitePresentation R Q) (g : P →ₗ[R] Q), ∀ (N : Type v) [AddCommGroup N]
[Module R N], LinearMap.ker (f.rTensor N) = LinearMap.ker (g.rTensor N)) →
∀ (P : Type v) [AddCommGroup P] [Module S P] [Module.FinitePresentation S P]
(f : P →ₗ[S] S ⊗[R] M), ∃ (Q : Type v) (_ : AddCommGroup Q) (_ : Module S Q)
(_ : Module.FinitePresentation S Q) (g : P →ₗ[S] Q), ∀ (N : Type v) [AddCommGroup N]
[Module S N], LinearMap.ker (f.rTensor N) = LinearMap.ker (g.rTensor N)) ∧
((∃ 𝒮 : Set (Submodule R M), sSupIndep 𝒮 ∧ sSup 𝒮 = ⊤ ∧
∀ N ∈ 𝒮, ∃ t : Set M, t.Countable ∧ Submodule.span R t = N) →
∃ 𝒮 : Set (Submodule S (S ⊗[R] M)), sSupIndep 𝒮 ∧ sSup 𝒮 = ⊤ ∧
∀ N ∈ 𝒮, ∃ t : Set (S ⊗[R] M), t.Countable ∧ Submodule.span S t = N) ∧
(Module.Projective R M → Module.Projective S (S ⊗[R] M))
Sources
Section10.95 Descending properties of modules#
Section 10.95 of the Stacks Project, Tag 05A4. 6 tags here are carried by 6 declarations of the repository (all in StacksFrontier), quoted below from AxiomMath/Stacks at commit 5ed82d14.
Tag 05A5, a lemma
Tag 05A5 in the Stacks Project.
Module.mittagLeffler_of_mittagLeffler_tensorProduct, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/Algebra/MittagLeffler/Descent.lean, line 501. The attribute's comment: “Mittag-Leffler is spelled out inline as condition (1) of 059E, as in 05A3, 05CN and 05CQ. The base change is written S ⊗[R] M, Mathlib's order, the source writing M ⊗_R S.”. References: SGA 3 VIB (11.8.2).
Stacks 05A5. Let
R → Sbe a faithfully flat ring map and letMbe anR-module. If theS-moduleS ⊗_R Mis Mittag-Leffler, thenMis Mittag-Leffler. The Mittag-Leffler condition is spelled out in the intrinsic form 059E (1): every mapffrom a finitely presented module into the module in question dominates and is dominated by a mapginto a finitely presented module, domination meaning equality of the kernels of the maps· ⊗ id_T.
public theorem Module.mittagLeffler_of_mittagLeffler_tensorProduct {R : Type u} [CommRing R]
[Small.{v} R] {S : Type v} [CommRing S] [Algebra R S] [Module.FaithfullyFlat R S]
{M : Type v} [AddCommGroup M] [Module R M]
(hM : ∀ (P : Type v) [AddCommGroup P] [Module S P] [Module.FinitePresentation S P]
(f : P →ₗ[S] S ⊗[R] M), ∃ (Q : Type v) (_ : AddCommGroup Q) (_ : Module S Q)
(_ : Module.FinitePresentation S Q) (g : P →ₗ[S] Q), ∀ (T : Type v) [AddCommGroup T]
[Module S T], LinearMap.ker (f.rTensor T) = LinearMap.ker (g.rTensor T)) :
∀ (P : Type v) [AddCommGroup P] [Module R P] [Module.FinitePresentation R P]
(f : P →ₗ[R] M), ∃ (Q : Type v) (_ : AddCommGroup Q) (_ : Module R Q)
(_ : Module.FinitePresentation R Q) (g : P →ₗ[R] Q), ∀ (T : Type v) [AddCommGroup T]
[Module R T], LinearMap.ker (f.rTensor T) = LinearMap.ker (g.rTensor T)
Tag 0GVD, a lemma
Tag 0GVD in the Stacks Project.
countablyGenerated_of_faithfullyFlat_baseChange, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Flat/FaithfullyFlat/Descent.lean, line 275.
Stacks 0GVD. Let
R → Sbe a faithfully flat ring map and letMbe anR-module. If the base changeS ⊗[R] Mis countably generated as anS-module, thenMis countably generated as anR-module.
theorem countablyGenerated_of_faithfullyFlat_baseChange
(R S : Type*) [CommRing R] [CommRing S] [Algebra R S] [Module.FaithfullyFlat R S]
(M : Type*) [AddCommGroup M] [Module R M]
(h : Module.CountablyGenerated S (S ⊗[R] M)) :
Module.CountablyGenerated R M
Tag 05A6, a lemma
Tag 05A6 in the Stacks Project.
Module.countablyGenerated_and_projective_of_faithfullyFlat_baseChange, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Flat/FaithfullyFlat/CountablyGeneratedProjective.lean, line 272. The attribute's comment: “Countable generation is Module.CountablyGenerated, the predicate introduced with 0GVD. The base change is written S ⊗[R] M, Mathlib's order, the source writing M ⊗_R S.”. References: SGA 3 VIB (11.8.2), “countably generated case”; SGA 3 VIB (11.8.2), “countably generated case”; SGA 3 VIB (11.8.1), “(ii), special case”.
Stacks 05A6. Let
R → Sbe a faithfully flat ring map and letMbe anR-module. If theS-moduleS ⊗_R Mis countably generated and projective, thenMis countably generated and projective.
public theorem countablyGenerated_and_projective_of_faithfullyFlat_baseChange {R : Type*}
[CommRing R] {S : Type*} [CommRing S] [Algebra R S] [Module.FaithfullyFlat R S] {M : Type*}
[AddCommGroup M] [Module R M] [Module.Projective S (S ⊗[R] M)]
(hM : Module.CountablyGenerated S (S ⊗[R] M)) :
Module.CountablyGenerated R M ∧ Module.Projective R M
Tag 05A7, a lemma
Tag 05A7 in the Stacks Project.
exists_countablyGenerated_submodule_le_baseChange_range, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Module/CountablyGenerated.lean, line 77.
Stacks Tag 05A7, Lemma 10.95.4. Let
R → Sbe a ring map,ManR-module, andQa countably generatedS-submodule ofS ⊗[R] M. Then there exists a countably generatedR-submodulePofMsuch thatQ ⊆ Im(S ⊗[R] P → S ⊗[R] M), where the map is induced by the inclusionP ↪ M.
theorem exists_countablyGenerated_submodule_le_baseChange_range
{R S : Type*} [CommRing R] [CommRing S] [Algebra R S]
{M : Type*} [AddCommGroup M] [Module R M]
(Q : Submodule S (S ⊗[R] M)) (hQ : Q.IsCountablyGenerated) :
∃ P : Submodule R M, P.IsCountablyGenerated ∧
Q ≤ LinearMap.range (LinearMap.baseChange S P.subtype)
Tag 05A8, a lemma
Tag 05A8 in the Stacks Project.
exists_countablyGenerated_baseChange_eq_iSup_of_internal_directSum, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Module/CountablyGenerated.lean, line 167.
Stacks Tag 05A8 / Lemma 10.95.5. If
M ⊗_R Sdecomposes as an internal direct sum of countably generatedS-submodulesQ_i, then any countably generatedR-submoduleNofMis contained in a countably generatedR-submoduleN'whose imageIm(N' ⊗_R S → M ⊗_R S) = N'.baseChange Sequals the partial direct sum⨁_{i ∈ I'} Q_iover some subsetI' ⊆ I.
theorem exists_countablyGenerated_baseChange_eq_iSup_of_internal_directSum
(Q : I → Submodule S (TensorProduct R S M))
(hQ : DirectSum.IsInternal Q)
(hQcg : ∀ i, (Q i).IsCountablyGenerated)
(N : Submodule R M) (hN : N.IsCountablyGenerated) :
∃ (N' : Submodule R M) (I' : Set I),
N'.IsCountablyGenerated ∧ N ≤ N' ∧
N'.baseChange S = ⨆ i : I', Q i
Tag 05A9, a theorem
Tag 05A9 in the Stacks Project.
Module.Projective.of_projective_tensorProduct, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Flat/FaithfullyFlat/Projective.lean, line 579. The attribute's comment: “The source's M ⊗_R S is written S ⊗[R] M, Mathlib's order for a base change and the one used by Module.Flat.of_flat_tensorProduct. The finite case is 058S and the countably generated case is 05A6; neither hypothesis appears here.”. References: SGA 3 VIB (11.8.2); SGA 3 VIB (11.8.1), “(ii)”.
Stacks 05A9. Let
R → Sbe a faithfully flat ring map and letMbe anR-module. If theS-moduleS ⊗_R Mis projective, thenMis projective. This is the projective analogue ofModule.Flat.of_flat_tensorProduct, and it assumes no finiteness ofM.
public theorem Projective.of_projective_tensorProduct {R : Type*} [CommRing R] {M : Type*}
[AddCommGroup M] [Module R M] (S : Type*) [CommRing S] [Algebra R S]
[Module.FaithfullyFlat R S] [Module.Projective S (S ⊗[R] M)] :
Module.Projective R M
Sources
Section10.96 Completion#
Section 10.96 of the Stacks Project, Tag 00M9. 11 tags here are carried by 11 declarations of the repository (all in StacksFrontier) and 4 registered declarations, quoted below from AxiomMath/Stacks at commit 5ed82d14.
Tag 0315, a lemma
Tag 0315 in the Stacks Project.
AdicCompletion.map_shortExact_of_flat, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/AdicCompletion/ShortExact.lean, line 472. The attribute's comment: “(3)”.
Stacks 0315 (3). If
0 → K → P → M → 0is a short exact sequence ofR-modules andMis flat overR, then itsI-adic completion is again short exact.
public theorem map_shortExact_of_flat {R : Type u} [CommRing R]
(I : Ideal R) {K : Type v} {P : Type w} {M : Type t} [AddCommGroup K] [Module R K]
[AddCommGroup P] [Module R P] [AddCommGroup M] [Module R M] [Module.Flat R M]
{f : K →ₗ[R] P} {g : P →ₗ[R] M} (hf : Function.Injective f)
(hfg : Function.Exact f g) (hg : Function.Surjective g) :
Function.Injective (map I f) ∧ Function.Exact (map I f) (map I g) ∧
Function.Surjective (map I g)
Declarations registered for the tag:
AdicCompletion.map_surjective_of_mkQ_comp_surjectiveregistered withadd_to_stacksin StacksFrontier/RingTheory/AdicCompletion/ShortExact.lean, line 462 (StacksFrontier): “(1)”. References: EGA 0 (7.3.1), “more general”.AdicCompletion.map_surjectiveregistered withadd_to_stacksin StacksFrontier/RingTheory/AdicCompletion/ShortExact.lean, line 464 (StacksFrontier): “(2)”. References: EGA 0 (7.3.1), “v̂ surjective”.AdicCompletion.ofTensorProduct_surjective_of_finiteregistered withadd_to_stacksin StacksFrontier/RingTheory/AdicCompletion/ShortExact.lean, line 465 (StacksFrontier): “(4)”. References: EGA 0 (7.2.12), “special case”; EGA 0 (7.3.3), “partial”.
Tag 0317, a definition
Tag 0317 in the Stacks Project.
Declarations registered for the tag:
AdicCompletion.of_bijective_iffregistered withadd_to_stacksin StacksFrontier/RingTheory/AdicCompletion/Basic.lean, line 796 (StacksFrontier): “M → M^is an isomorphism”.
Tag 0BNG, a lemma
Tag 0BNG in the Stacks Project.
AdicCompletion.map_shortExact_and_isAdicComplete_of_pow_smul_top_eq_bot, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/AdicCompletion/ShortExact.lean, line 903. The attribute's comment: “The third term is written Q^∧, and the conjunct IsAdicComplete I Q identifies it with the source's Q. No Noetherian or finiteness hypothesis, unlike map_injective and map_exact.”.
Stacks 0BNG. Let
Rbe a ring, letI ⊆ Rbe an ideal and let0 → M → N → Q → 0be a short exact sequence ofR-modules such thatQis annihilated by the powerI ^ cofI. ThenI-adic completion produces a short exact sequence0 → M^∧ → N^∧ → Q^∧ → 0, andQisI-adically complete, so that this third term isQitself as in the source's0 → M^∧ → N^∧ → Q → 0.
public theorem map_shortExact_and_isAdicComplete_of_pow_smul_top_eq_bot
{R : Type*} [CommRing R] (I : Ideal R) {M : Type*} [AddCommGroup M] [Module R M]
{N : Type*} [AddCommGroup N] [Module R N] {Q : Type*} [AddCommGroup Q] [Module R Q]
{f : M →ₗ[R] N} {g : N →ₗ[R] Q} (hf : Function.Injective f)
(hfg : Function.Exact f g) (hg : Function.Surjective g)
{c : ℕ} (hQ : I ^ c • (⊤ : Submodule R Q) = ⊥) :
Function.Injective (map I f) ∧ Function.Exact (map I f) (map I g) ∧
Function.Surjective (map I g) ∧ IsAdicComplete I Q
Tag 0318, a lemma
Tag 0318 in the Stacks Project.
AdicCompletion.isAdicComplete_iff_pow_smul_top_eq_ker_eval, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/AdicCompletion/Criteria.lean, line 338. The attribute's comment: “The criterion of Lenstra and de Smit; no hypothesis on I or R.”.
Stacks 0318. Let
Rbe a ring, letI ⊆ Rbe an ideal and letMbe anR-module. WriteKₙ = Ker(M^∧ → M/IⁿM)for the kernel of then-th projection out of theI-adic completionM^∧ofM. ThenM^∧isI-adically complete if and only ifKₙ = IⁿM^∧for alln ≥ 1.
public theorem isAdicComplete_iff_pow_smul_top_eq_ker_eval
{R : Type*} [CommRing R] (I : Ideal R) (M : Type*) [AddCommGroup M] [Module R M] :
IsAdicComplete I (AdicCompletion I M) ↔
∀ n : ℕ, 1 ≤ n →
I ^ n • (⊤ : Submodule R (AdicCompletion I M)) = (eval I M n).ker
Tag 05GI, a lemma
Tag 05GI in the Stacks Project.
AdicCompletion.isUnit_of_isUnit_evalOneₐ_and_isUnit_one_add_and_le_jacobson_bot, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/AdicCompletion/Units.lean, line 277. The attribute's comment: “All four parts, for an arbitrary ideal of an arbitrary commutative ring.”.
Stacks 05GI. Let
Rbe a ring, letI ⊆ Rbe an ideal, and letR^∧ = lim R/Iⁿ. Then (1) any element ofR^∧which maps to a unit ofR/Iis a unit, (2) any element of1 + Imaps to an invertible element ofR^∧, (3) any element of1 + IR^∧is invertible inR^∧, and (4) the idealsIR^∧andKer(R^∧ → R/I)are contained in the Jacobson radical ofR^∧.
public theorem isUnit_of_isUnit_evalOneₐ_and_isUnit_one_add_and_le_jacobson_bot
{R : Type*} [CommRing R] (I : Ideal R) :
(∀ x : AdicCompletion I R, IsUnit (evalOneₐ I x) → IsUnit x) ∧
(∀ a ∈ I, IsUnit (algebraMap R (AdicCompletion I R) (1 + a))) ∧
(∀ x ∈ I.map (algebraMap R (AdicCompletion I R)), IsUnit (1 + x)) ∧
I.map (algebraMap R (AdicCompletion I R)) ≤ (⊥ : Ideal (AdicCompletion I R)).jacobson ∧
RingHom.ker (evalOneₐ I).toRingHom ≤ (⊥ : Ideal (AdicCompletion I R)).jacobson
Tag 090S, a lemma
Tag 090S in the Stacks Project.
adicCompletion_of_surjective_of_forall_span_singleton_surjective, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/AdicCompletion/Basic.lean, line 281.
If
Iis generated by the finite familyf_1, …, f_r, indexed here byFin r, and the canonical mapM → limₙ M/f_i^n Mis surjective for eachi, then the canonical mapM → limₙ M/I^n Mis surjective.
theorem adicCompletion_of_surjective_of_forall_span_singleton_surjective
{A : Type*} [CommRing A] (M : Type*) [AddCommGroup M] [Module A M]
{r : ℕ} (f : Fin r → A)
(hf : ∀ i, Function.Surjective (AdicCompletion.of (Ideal.span {f i}) M))
(I : Ideal A) (hI : I = Ideal.span (Set.range f)) :
Function.Surjective (AdicCompletion.of I M)
Tag 090T, a lemma
Tag 090T in the Stacks Project.
isAdicComplete_of_le_of_fg_of_isAdicComplete, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/AdicCompletion/Basic.lean, line 349. References: EGA 0 (7.2.3), “special case”; EGA 0 (7.2.4), “Case M = A”.
Let
Abe a (commutative, unital) ring, and letI ⊆ J ⊆ Abe ideals. IfMisJ-adically complete andIis a finitely generated ideal, thenMisI-adically complete.
theorem isAdicComplete_of_le_of_fg_of_isAdicComplete
{A : Type*} [CommRing A] {I J : Ideal A} (hIJ : I ≤ J)
{M : Type*} [AddCommGroup M] [Module A M]
(hM : IsAdicComplete J M) (hI : I.FG) :
IsAdicComplete I M
Tag 0319, a lemma
Tag 0319 in the Stacks Project.
agreement_of_completions, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/AdicCompletion/Basic.lean, line 586.
Under the hypotheses
I^c ⊆ JandJ^d ⊆ I(withc, d > 0), for everyR-moduleMthere is a canonicalR-linear isomorphism between theI-adic andJ-adic completions ofM, compatible with the canonical maps fromM.
theorem agreement_of_completions
{R : Type*} [CommRing R] (I J : Ideal R)
{c d : ℕ} (hc : 0 < c) (hd : 0 < d)
(hIJ : I ^ c ≤ J) (hJI : J ^ d ≤ I)
(M : Type*) [AddCommGroup M] [Module R M] :
∃ e : AdicCompletion I M ≃ₗ[R] AdicCompletion J M,
e.toLinearMap.comp (AdicCompletion.of I M) = AdicCompletion.of J M
completeness_preserved, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/AdicCompletion/Basic.lean, line 604. The attribute's comment: “in particular”.
Under the hypotheses
I^c ⊆ JandJ^d ⊆ I(withc, d > 0), anR-moduleMisI-adically complete if and only if it isJ-adically complete.
theorem completeness_preserved
{R : Type*} [CommRing R] (I J : Ideal R)
{c d : ℕ} (hc : 0 < c) (hd : 0 < d)
(hIJ : I ^ c ≤ J) (hJI : J ^ d ≤ I)
(M : Type*) [AddCommGroup M] [Module R M] :
IsAdicComplete I M ↔ IsAdicComplete J M
Tag 031A, a lemma
Tag 031A in the Stacks Project.
main_theorem_031a, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/AdicCompletion/Basic.lean, line 653.
For an \(I\)-adically complete module \(M\) and a submodule \(K\), the equality \(K = \bigcap_n (K + I^n M)\) holds if and only if the quotient \(M/K\) is \(I\)-adically complete.
theorem main_theorem_031a {R : Type*} [CommRing R] (I : Ideal R) (M : Type*)
[AddCommGroup M] [Module R M] [IsAdicComplete I M] (K : Submodule R M) :
(K = ⨅ n : ℕ, (K ⊔ (I ^ n • ⊤ : Submodule R M))) ↔ IsAdicComplete I (M ⧸ K)
Tag 031B, a lemma
Tag 031B in the Stacks Project.
isAdicComplete_of_iInf_smul_eq_bot, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/AdicCompletion/Basic.lean, line 750.
A finite module
Mover anI-adically complete ringRis itselfI-adically complete as soon as⋂ₙ IⁿM = 0.
theorem isAdicComplete_of_iInf_smul_eq_bot
{R : Type*} [CommRing R] (I : Ideal R)
{M : Type*} [AddCommGroup M] [Module R M]
[IsAdicComplete I R] [Module.Finite R M]
(h : ⨅ n : ℕ, (I ^ n • (⊤ : Submodule R M)) = ⊥) :
IsAdicComplete I M
Tag 031D, a lemma
Tag 031D in the Stacks Project.
Module.Finite.of_iInf_pow_smul_top_eq_bot_of_finite_quotient_smul_top, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/AdicCompletion/Finiteness.lean, line 206.
Let
Rbe a ring, letI ⊆ Rbe an ideal and letMbe anR-module. Assume thatRisI-adically precomplete, that⋂_{n ≥ 1} IⁿM = 0, and thatM/IMis a finiteR/I-module. ThenMis a finiteR-module. HereIⁿMisI ^ n • (⊤ : Submodule R M), so the second hypothesis is⨅ n, I ^ n • ⊤ = ⊥, andM/IMisM ⧸ I • ⊤with its canonicalR ⧸ I-module structure.
public theorem Module.Finite.of_iInf_pow_smul_top_eq_bot_of_finite_quotient_smul_top
{R : Type*} [CommRing R] (I : Ideal R) {M : Type*} [AddCommGroup M] [Module R M]
[IsPrecomplete I R] (hsep : ⨅ n : ℕ, I ^ n • (⊤ : Submodule R M) = ⊥)
(hfin : Module.Finite (R ⧸ I) (M ⧸ I • (⊤ : Submodule R M))) :
Module.Finite R M
Sources
Section10.97 Completion for Noetherian rings#
Section 10.97 of the Stacks Project, Tag 0BNH. 10 tags here are carried by 9 declarations of the repository (all in StacksFrontier) and 5 registered declarations, quoted below from AxiomMath/Stacks at commit 5ed82d14.
Tag 00MA, a lemma
Tag 00MA in the Stacks Project.
Declarations registered for the tag:
AdicCompletion.map_injectiveregistered withadd_to_stacksin StacksFrontier/RingTheory/AdicCompletion/Flat/LimitExactness.lean, line 81 (StacksFrontier): “(1), and the injectivity half of (2)”.AdicCompletion.map_surjectiveregistered withadd_to_stacksin StacksFrontier/RingTheory/AdicCompletion/Flat/LimitExactness.lean, line 82 (StacksFrontier): “(2): surjectivity of the completed second map”. References: EGA 0 (7.3.1), “v̂ surjective”.AdicCompletion.map_exactregistered withadd_to_stacksin StacksFrontier/RingTheory/AdicCompletion/Flat/LimitExactness.lean, line 85 (StacksFrontier): “(2): exactness in the middle of the completed sequence”. References: EGA 0 (7.3.3), “partial”; EGA 0 (7.3.1), “Noetherian, finite mods”; SGA 3 VIIB (5.5.2), “partial”.AdicCompletion.ofTensorProduct_bijective_of_finite_of_isNoetherianregistered withadd_to_stacksin StacksFrontier/RingTheory/AdicCompletion/Flat/LimitExactness.lean, line 90 (StacksFrontier): “(3)”. References: EGA 0 (7.3.3); EGA 0 (7.7.8), “B = ”.
Tag 00MB, a lemma
Tag 00MB in the Stacks Project.
adicCompletion_shortExact, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/AdicCompletion/Flat/LimitExactness.lean, line 108. The attribute's comment: “(2)”. References: EGA 0 (7.3.1), “special case”; EGA 0 (7.3.3); SGA 3 VIIB (5.5.2), “partial”.
For a Noetherian ring \(R\), every short exact sequence \(0 \to M' \to M \to M'' \to 0\) of \(R\)-modules with \(M\) finitely generated completes to a short exact sequence \(0 \to (M')^\wedge \to M^\wedge \to (M'')^\wedge \to 0\).
theorem adicCompletion_shortExact {R : Type u} [CommRing R] [IsNoetherianRing R] (I : Ideal R)
{M' M M'' : Type u} [AddCommGroup M'] [Module R M'] [AddCommGroup M] [Module R M]
[Module.Finite R M] [AddCommGroup M''] [Module R M'']
{f : M' →ₗ[R] M} {g : M →ₗ[R] M''} (hf : Function.Injective f) (hfg : Function.Exact f g)
(hg : Function.Surjective g) :
Function.Injective (AdicCompletion.map I f) ∧
Function.Surjective (AdicCompletion.map I g) ∧
Function.Exact (AdicCompletion.map I f) (AdicCompletion.map I g)
Declarations registered for the tag:
AdicCompletion.flat_of_isNoetherianregistered withadd_to_stacksin StacksFrontier/RingTheory/AdicCompletion/Flat/LimitExactness.lean, line 97 (StacksFrontier): “(1)”. References: EGA 0 (7.3.3); EGA IV (7.8.3), “(v)”; EGA IV (8.11.4), “partial”; SGA 1 IV (3.1); SGA 3 VIIB (5.5.2), “flatness of  over A”.
Tag 00MC, a lemma
Tag 00MC in the Stacks Project.
AdicCompletion.faithfullyFlat_of_le_ringJacobson, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/AdicCompletion/Flat/LimitExactness.lean, line 64. The attribute's comment: “Stated as the class Module.FaithfullyFlat R (AdicCompletion I R), the shape of the flatness half AdicCompletion.flat_of_isNoetherian; the in particular is the case I = 𝔪. See the module docstring.”. References: EGA 0 (7.3.5), “(a) => (b)”; SGA 1 IV (3.2), “if direction”; SGA 1 IV (3.1), “flatness, I ⊆ rad”; SGA 1 IV (3.1), “flatness, I ⊆ rad”; SGA 3 VIIB (5.5.2), “partial”.
Let
Ibe an ideal of a Noetherian ringRand letR^∧be theI-adic completion ofR. IfIis contained in the Jacobson radical ofR, then the ring mapR → R^∧is faithfully flat. In particular, if(R, 𝔪)is a Noetherian local ring, then the completionlim_n R/𝔪ⁿis faithfully flat overR.
public theorem AdicCompletion.faithfullyFlat_of_le_ringJacobson {R : Type*} [CommRing R]
[IsNoetherianRing R] (I : Ideal R) (hI : I ≤ Ring.jacobson R) :
Module.FaithfullyFlat R (AdicCompletion I R)
Tag 031C, a lemma
Tag 031C in the Stacks Project.
AdicCompletion.instIsAdicComplete, an instance in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/AdicCompletion/Noetherian.lean, line 155. The attribute's comment: “Adic completeness, as an instance over a Noetherian ring; the general form is AdicCompletion.isAdicComplete. The other two assertions specialise from Lemma 05GG along IsNoetherian.noetherian I : I.FG: IⁿM^∧ = (IⁿM)^∧ is AdicCompletion.pow_smul_top_eq_ker_eval composed with AdicCompletion.restrictScalars_range_ofPowSMul_eq_ker_eval, and M^∧/IⁿM^∧ = M/IⁿM is AdicCompletion.quotPowSMulTopEquiv.”.
Stacks 031C, adic completeness. Let
Rbe a Noetherian ring,Ian ideal ofRandManR-module. Then theI-adic completionM^∧ofMisI-adically complete. This is the Noetherian form ofAdicCompletion.isAdicComplete, stated as an instance: over a Noetherian ring the finite generation ofIthat the proof needs is automatic, so no side condition has to be supplied.
public instance instIsAdicComplete {R : Type*} [CommRing R] [IsNoetherianRing R] (I : Ideal R)
(M : Type*) [AddCommGroup M] [Module R M] :
IsAdicComplete I (AdicCompletion I M)
Tag 05GH, a lemma
Tag 05GH in the Stacks Project.
completion_noetherian, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/AdicCompletion/NoetherianRing/CompleteNoetherian.lean, line 334. References: EGA 0 (7.3.1), “more general”; EGA 0 (7.6.11), “more general”; EGA 0 (7.6.18), “partial”; EGA I (10.6.4), “special case”; EGA I (10.8.6), “special case”; EGA IV (8.11.4), “partial”; SGA 3 VIIB (5.5.2), “Noetherianity of ”; SGA 3 X (4.0), “partial”.
Let
Ibe an ideal of a commutative ringRwithR / INoetherian andIfinitely generated. Then theI-adic completionR^∧ = AdicCompletion I Ris a Noetherian ring, and it is complete with respect toI R^∧ = I.map (algebraMap R (AdicCompletion I R)).
theorem completion_noetherian
(R : Type*) [CommRing R] (I : Ideal R)
(h1 : IsNoetherianRing (R ⧸ I)) (h2 : I.FG) :
IsNoetherianRing (AdicCompletion I R) ∧
IsAdicComplete (I.map (algebraMap R (AdicCompletion I R))) (AdicCompletion I R)
Tag 0316, a lemma
Tag 0316 in the Stacks Project.
AdicCompletion.isNoetherianRing, an instance in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/AdicCompletion/NoetherianRing/PowerSeriesSurjection.lean, line 236. The attribute's comment: “Stated as an instance for IsNoetherianRing (AdicCompletion I R), Mathlib's spelling of the completion R^∧ = lim_n R/Iⁿ. See the module docstring.”.
Stacks 0316. Let
Rbe a Noetherian ring and letIbe an ideal ofR. The completionR^∧ = lim_n R/IⁿofRwith respect toIis Noetherian.
public instance AdicCompletion.isNoetherianRing {R : Type*} [CommRing R] [IsNoetherianRing R]
(I : Ideal R) : IsNoetherianRing (AdicCompletion I R)
Tag 0394, a lemma
Tag 0394 in the Stacks Project.
AdicCompletion.nonempty_algEquiv_map_and_finite, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/AdicCompletion/FiniteAlgebra.lean, line 257. The attribute's comment: “Stated without the source's finite generation of n, which no step needs; the m-adic completion of S appears as a completion along the ideal mS of S in the first conjunct and along m in the second. See the module docstring.”. References: SGA 1 I (2.1), “(i) => (iii)”.
Let
R → Sbe a local homomorphism of local rings(R, m)and(S, n)withmfinitely generated, and assume that the fibreS/mSis a finiteR-module, i.e.dim_{κ(m)} S/mS < ∞. Then the completionS^∧ = lim S/nᵏis, as anS-algebra, them-adic completionlim S/mᵏSofS, and the latter is a finite module overR^∧ = lim R/mᵏ.
public theorem AdicCompletion.nonempty_algEquiv_map_and_finite
{R S : Type*} [CommRing R] [CommRing S] [IsLocalRing R] [IsLocalRing S] [Algebra R S]
[IsLocalHom (algebraMap R S)] (hm : (maximalIdeal R).FG)
[Module.Finite R (S ⧸ (maximalIdeal R).map (algebraMap R S))] :
Nonempty (AdicCompletion (maximalIdeal S) S ≃ₐ[S]
AdicCompletion ((maximalIdeal R).map (algebraMap R S)) S) ∧
Module.Finite (AdicCompletion (maximalIdeal R) R) (AdicCompletion (maximalIdeal R) S)
Tag 07N9, a lemma
Tag 07N9 in the Stacks Project.
AdicCompletion.nonempty_algEquiv_pi_primesOver, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/AdicCompletion/FiniteAlgebra.lean, line 980. The attribute's comment: “The source's middle term (S_p)^∧ is Mathlib's AdicCompletion.ofTensorProductEquivOfFiniteNoetherian over Rₚ; the two outer terms are identified here. See the module docstring.”.
Let
Rbe a Noetherian ring,Sa finiteR-algebra andpa prime ofR. LetRₚbe the local ring ofRatpand, for each of the (finitely many) primesqofSlying overp, letS_qbe the local ring ofSatq. Then the base change ofSalong the completionRₚ^∧ofRₚat its maximal ideal is, as anS-algebra, the product of the completionsS_q^∧of theS_qat their maximal ideals:Rₚ^∧ ⊗[R] S = S_{q₁}^∧ × ⋯ × S_{q_m}^∧.
public theorem AdicCompletion.nonempty_algEquiv_pi_primesOver
{R S : Type*} [CommRing R] [CommRing S] [Algebra R S] [IsNoetherianRing R]
[Module.Finite R S] (p : Ideal R) [p.IsPrime]
(Rp : Type*) [CommRing Rp] [Algebra R Rp] [IsLocalization.AtPrime Rp p] [IsLocalRing Rp]
(Sq : p.primesOver S → Type*) [∀ q, CommRing (Sq q)] [∀ q, Algebra S (Sq q)]
[∀ q, IsLocalization.AtPrime (Sq q) q.1] [∀ q, IsLocalRing (Sq q)] :
Nonempty (S ⊗[R] AdicCompletion (maximalIdeal Rp) Rp ≃ₐ[S]
∀ q, AdicCompletion (maximalIdeal (Sq q)) (Sq q))
Tag 05D3, a lemma
Tag 05D3 in the Stacks Project.
AdicCompletion.map_splitExact_of_projective_quotient_smul_top, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/AdicCompletion/ShortExact.lean, line 570. References: EGA 0 (7.3.1), “special case”.
Stacks 05D3. Let
Rbe a ring, letI ⊆ Rbe an ideal and let0 → K → P → M → 0be a short exact sequence ofR-modules, given byf : K →ₗ[R] Pinjective,g : P →ₗ[R] Msurjective andFunction.Exact f g. IfMis flat overRandM/IMis a projectiveR ⧸ I-module, then the sequence ofI-adic completions0 → K^∧ → P^∧ → M^∧ → 0is split exact:map I fis injective,map I fandmap I gare exact, andmap I ghas anR^∧-linear right inverse.
public theorem map_splitExact_of_projective_quotient_smul_top {R : Type u} [CommRing R]
(I : Ideal R) {K : Type v} {P : Type w} {M : Type t} [AddCommGroup K] [Module R K]
[AddCommGroup P] [Module R P] [AddCommGroup M] [Module R M] [Module.Flat R M]
{f : K →ₗ[R] P} {g : P →ₗ[R] M} (hf : Function.Injective f) (hfg : Function.Exact f g)
(hg : Function.Surjective g)
(hM : Module.Projective (R ⧸ I) (M ⧸ I • (⊤ : Submodule R M))) :
Function.Injective (map I f) ∧ Function.Exact (map I f) (map I g) ∧
∃ s : AdicCompletion I M →ₗ[AdicCompletion I R] AdicCompletion I P,
map I g ∘ₗ s = LinearMap.id
Tag 0DYC, a lemma
Tag 0DYC in the Stacks Project.
IsAdicComplete.of_quotient, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/AdicCompletion/Quotient.lean, line 277. The attribute's comment: “The hypothesis on A/I is stated along the ideal J of the base ring A, Mathlib's normal form via IsAdicComplete.map_algebraMap_iff. See the module docstring.”.
Let
Abe a Noetherian ring and letI,Jbe ideals ofA. IfAisI-adically complete andA/IisJ-adically complete, thenAisJ-adically complete.
public theorem IsAdicComplete.of_quotient {A : Type*} [CommRing A] [IsNoetherianRing A]
(I J : Ideal A) [IsAdicComplete I A] (hJ : IsAdicComplete J (A ⧸ I)) :
IsAdicComplete J A
Sources
Section10.98 Taking limits of modules#
Section 10.98 of the Stacks Project, Tag 09B7. 4 tags here are carried by 5 declarations of the repository (all in StacksFrontier), quoted below from AxiomMath/Stacks at commit 5ed82d14.
Tag 0G1Q, a lemma
Tag 0G1Q in the Stacks Project.
invLimit_isAdicComplete, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/AdicCompletion/InverseLimit.lean, line 647.
Stacks 0G1Q. For a finitely generated ideal
Iof a commutative ringAand an inverse system(M_n)ofA-modules withI^n M_n = 0for alln, the inverse limitM = lim_n M_nisI-adically complete: it is a direct summand of its own completion, which isI-adically complete becauseIis finitely generated.
theorem invLimit_isAdicComplete (hI : I.FG)
(hM : ∀ n, I ^ n • (⊤ : Submodule A (M n)) = ⊥) :
IsAdicComplete I (invLimit M t)
Tag 09B8, a lemma
Tag 09B8 in the Stacks Project.
Stacks.AdicCompletion.InverseLimit.InverseSystem.quotientEquiv, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/AdicCompletion/InverseLimit.lean, line 505. The attribute's comment: “(1)”.
Identification of the quotients: the map
M / Iⁿ M → M ninduced by the limit projectionp nis an isomorphism ofA-modules.
noncomputable def quotientEquiv (hI : I.FG) (n : ℕ) :
(S.limit ⧸ (I ^ n • (⊤ : Submodule A S.limit))) ≃ₗ[A] S.M n
Stacks.AdicCompletion.InverseLimit.InverseSystem.isAdicComplete, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/AdicCompletion/InverseLimit.lean, line 540. The attribute's comment: “(2)”.
The limit
M = lim_n M nisI-adically complete: the canonical mapM → lim_k M / Iᵏ Mis an isomorphism.
theorem isAdicComplete (hI : I.FG) : IsAdicComplete I S.limit
Tag 0EKC, a lemma
Tag 0EKC in the Stacks Project.
Ideal.IsHomogeneous.exists_finite_graded_forall_ker_eq_pow_smul_top, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/AdicCompletion/InverseLimit.lean, line 1402.
Stacks 0EKC. Let
A = ⨁_{i ≥ 0} 𝒜 ibe a graded ring, letI ⊆ 𝒜₊ = ⨁_{i > 0} 𝒜 ibe a homogeneous ideal, and let(Nₙ)be an inverse system of finite gradedA-modules whose transition mapst n : N_{n+1} → Nₙare graded and exhibitNₙ = N_{n+1}/Iⁿ N_{n+1}. Then there is a finite gradedA-moduleMand a compatible system of graded surjectionsf n : M → Nₙwithker (f n) = Iⁿ M, i.e.Nₙ = M/Iⁿ Mas graded modules for alln.The source assumes
ANoetherian; the argument uses only that eachNₙis a finiteA-module, so that hypothesis is omitted.
public theorem exists_finite_graded_forall_ker_eq_pow_smul_top
{A : Type u} {σ : Type*} [CommRing A]
[SetLike σ A] [AddSubmonoidClass σ A] {𝒜 : ℕ → σ} [GradedRing 𝒜]
{I : Ideal A} (hIhom : I.IsHomogeneous 𝒜)
(hI : I ≤ (HomogeneousIdeal.irrelevant 𝒜).toIdeal)
{N : ℕ → Type v} [∀ n, AddCommGroup (N n)] [∀ n, Module A (N n)]
[∀ n, Module.Finite A (N n)]
(𝒩 : ∀ n, ℤ → AddSubgroup (N n)) [∀ n, DirectSum.Decomposition (𝒩 n)]
(h𝒩 : ∀ (n i : ℕ) (d : ℤ) (a : A) (x : N n), a ∈ 𝒜 i → x ∈ 𝒩 n d → a • x ∈ 𝒩 n (i + d))
(t : ∀ n, N (n + 1) →ₗ[A] N n)
(ht : ∀ (n : ℕ) (d : ℤ) (x : N (n + 1)), x ∈ 𝒩 (n + 1) d → t n x ∈ 𝒩 n d)
(htsurj : ∀ n, Function.Surjective (t n))
(htker : ∀ n, LinearMap.ker (t n) = I ^ n • (⊤ : Submodule A (N (n + 1)))) :
∃ (M : Type v) (_ : AddCommGroup M) (_ : Module A M) (ℳ : ℤ → AddSubgroup M)
(_ : DirectSum.Decomposition ℳ) (f : ∀ n, M →ₗ[A] N n),
Module.Finite A M ∧
(∀ (i : ℕ) (d : ℤ) (a : A) (x : M), a ∈ 𝒜 i → x ∈ ℳ d → a • x ∈ ℳ (i + d)) ∧
(∀ (n : ℕ) (d : ℤ) (x : M), x ∈ ℳ d → f n x ∈ 𝒩 n d) ∧
(∀ n, Function.Surjective (f n)) ∧
(∀ n, LinearMap.ker (f n) = I ^ n • (⊤ : Submodule A M)) ∧
(∀ n, (t n).comp (f (n + 1)) = f n)
Tag 0EKD, a lemma
Tag 0EKD in the Stacks Project.
GradedCompletionData.main_theorem, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/GradedAlgebra/Completion.lean, line 991.
Stacks tag 0EKD (Lemma 10.98.4): if the induced map
φ : M ⊗_A A' → lim_n Gₙis an isomorphism, then for everyd ∈ ℤthe induced mapφ^(d) : M_d → lim_n G_{n,d}is an isomorphism.Bijectivity of
φ^(d)splits into injectivity and surjectivity, each reduced throughlimGdIncltobaseChange_degree_injectiveandbaseChange_degree_surjective.
theorem main_theorem (D : GradedCompletionData)
(hφ : Function.Bijective D.φ) (d : ℤ) :
Function.Bijective (D.phiD d)
Sources
Section10.99 Criteria for flatness#
Section 10.99 of the Stacks Project, Tag 00MD. 17 tags here are carried by 19 declarations of the repository (all in StacksFrontier), quoted below from AxiomMath/Stacks at commit 5ed82d14.
Tag 00ME, a lemma
Tag 00ME in the Stacks Project.
Module.Flat.injective_and_flat_quotient_range_of_injective_mapQ_maximalIdeal_of_isNoetherianRing, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Flat/LocalCriteria/FibreCriteria.lean, line 206. The attribute's comment: “N/𝔪N is N ⧸ 𝔪 • (⊤ : Submodule R N) and ū the canonical Submodule.mapQ of u. The cokernel M/u(N) is M ⧸ LinearMap.range u, and the two conclusions are conjoined; see the module docstring. The non-Noetherian generalization is 046Y.”. References: EGA III (4.6.7.1).
Stacks 00ME. Let
R → Sbe a local homomorphism of local rings withSNoetherian, let𝔪be the maximal ideal ofR, letMbe a flatR-module, letNbe a finiteS-module and letu : N → Mbe a map ofR-modules. If the induced mapū : N/𝔪N → M/𝔪Mis injective, thenuis injective andM/u(N)is flat overR.Here
N/𝔪NisN ⧸ 𝔪 • ⊤andūis the canonicalSubmodule.mapQ, which sends the class ofxto the class ofu x; see the module docstring.
theorem
Module.Flat.injective_and_flat_quotient_range_of_injective_mapQ_maximalIdeal_of_isNoetherianRing
{R S N M : Type*} [CommRing R] [CommRing S] [IsLocalRing R] [IsLocalRing S] [Algebra R S]
[IsLocalHom (algebraMap R S)] [IsNoetherianRing S]
[AddCommGroup M] [Module R M] [Module.Flat R M]
[AddCommGroup N] [Module R N] [Module S N] [IsScalarTower R S N] [Module.Finite S N]
(u : N →ₗ[R] M)
(hu : Function.Injective (Submodule.mapQ (maximalIdeal R • (⊤ : Submodule R N))
(maximalIdeal R • (⊤ : Submodule R M)) u
(Submodule.smul_top_le_comap_smul_top (maximalIdeal R) u))) :
Function.Injective u ∧ Module.Flat R (M ⧸ LinearMap.range u)
Tag 00MF, a lemma
Tag 00MF in the Stacks Project.
Module.Flat.mem_nonZeroDivisors_and_flat_quotient_span_singleton_of_mem_nonZeroDivisors_maximalIdeal, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Flat/LocalCriteria/FibreCriteria.lean, line 327. The attribute's comment: “"Nonzerodivisor" is nonZeroDivisors at the level of rings, as in the source: 𝔪S is Ideal.map (algebraMap R S) (IsLocalRing.maximalIdeal R) and S/fS is S ⧸ Ideal.span {f}. The two conclusions are conjoined, in the order of the sibling lemmas 00ME and 046Z rather than the source's. IsNoetherianRing R is redundant (faithful flatness descends the ascending chain condition) but is part of the tag's hypotheses; see the module docstring.”. References: SGA 3 V (7.2).
Stacks 00MF. Let
R → Sbe a flat and local ring homomorphism of Noetherian local rings, let𝔪be the maximal ideal ofR, and letf ∈ Sbe a nonzerodivisor inS/𝔪S. Thenfis a nonzerodivisor inSandS/fSis flat overR.Here
S/𝔪Sis the ring quotientS ⧸ Ideal.map (algebraMap R S) (IsLocalRing.maximalIdeal R), the image offin it is pinned asIdeal.Quotient.mk, andS/fSisS ⧸ Ideal.span {f}with its canonicalR-algebra structure; see the module docstring.
theorem
mem_nonZeroDivisors_and_flat_quotient_span_singleton_of_mem_nonZeroDivisors_maximalIdeal
{R S : Type*} [CommRing R] [CommRing S] [IsLocalRing R] [IsLocalRing S] [Algebra R S]
[IsLocalHom (algebraMap R S)] [IsNoetherianRing R] [IsNoetherianRing S] [Module.Flat R S]
{f : S}
(hf : Ideal.Quotient.mk (Ideal.map (algebraMap R S) (IsLocalRing.maximalIdeal R)) f ∈
nonZeroDivisors (S ⧸ Ideal.map (algebraMap R S) (IsLocalRing.maximalIdeal R))) :
f ∈ nonZeroDivisors S ∧ Module.Flat R (S ⧸ Ideal.span {f})
Tag 00MG, a lemma
Tag 00MG in the Stacks Project.
Module.Flat.isRegular_and_flat_quotient_ofList_take_of_isRegular_maximalIdeal, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Flat/LocalCriteria/FibreCriteria.lean, line 532. The attribute's comment: “"Regular sequence" is RingTheory.Sequence.IsRegular, which is Definition 00LF verbatim, nonvanishing clause included, and the sequence is a List S. The fibre is S ⧸ Ideal.map (algebraMap R S) (IsLocalRing.maximalIdeal R) and S/(f₁, …, f_i) is S ⧸ Ideal.ofList (fs.take i), quantified over all i : ℕ since List.take saturates. IsNoetherianRing R and IsLocalHom (algebraMap R S) are both redundant here but are part of the tag's hypotheses; see the module docstring.”. References: EGA 0 (15.1.16), “c) => a), M = B”; EGA IV (11.3.8), “(c) ⇒ (a), special case”.
Stacks 00MG. Let
R → Sbe a flat and local ring homomorphism of Noetherian local rings, let𝔪be the maximal ideal ofR, and letf₁, …, f_cbe elements ofSwhose images form a regular sequence inS/𝔪S. Thenf₁, …, f_cis a regular sequence inSand each of the quotientsS/(f₁, …, f_i)is flat overR.Here
S/𝔪Sis the ring quotientS ⧸ Ideal.map (algebraMap R S) (IsLocalRing.maximalIdeal R), the images are pinned asIdeal.Quotient.mk, andS/(f₁, …, f_i)isS ⧸ Ideal.ofList (fs.take i)with its canonicalR-algebra structure; see the module docstring.
theorem Module.Flat.isRegular_and_flat_quotient_ofList_take_of_isRegular_maximalIdeal
{R S : Type*} [CommRing R] [CommRing S] [IsLocalRing R] [IsLocalRing S] [Algebra R S]
[IsLocalHom (algebraMap R S)] [IsNoetherianRing R] [IsNoetherianRing S] [Module.Flat R S]
{fs : List S}
(hfs : RingTheory.Sequence.IsRegular
(S ⧸ Ideal.map (algebraMap R S) (IsLocalRing.maximalIdeal R))
(fs.map (Ideal.Quotient.mk (Ideal.map (algebraMap R S) (IsLocalRing.maximalIdeal R))))) :
RingTheory.Sequence.IsRegular S fs ∧
∀ i, Module.Flat R (S ⧸ Ideal.ofList (fs.take i))
Tag 00MH, a lemma
Tag 00MH in the Stacks Project.
Module.Flat.free_and_flat_of_free_maximalIdeal, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Flat/LocalCriteria/FibreCriteria.lean, line 688. The attribute's comment: “"Nonzero" is Nontrivial M. The fibre ring is S ⧸ Ideal.map (algebraMap R S) (IsLocalRing.maximalIdeal R) and M/𝔪M is M ⧸ 𝔪S • (⊤ : Submodule S M), whose S/𝔪S-module structure is Module.instQuotientIdealSubmoduleHSMulTop. The two conclusions are conjoined, in the source's order: M is free over S, S is flat over R. IsNoetherianRing R is unused but is part of the tag's hypotheses; see the module docstring.”. References: EGA 0 (10.1.3), “special case”.
Stacks 00MH. Let
R → Sbe a local homomorphism of Noetherian local rings, let𝔪be the maximal ideal ofR, and letMbe a nonzero finiteS-module. IfM/𝔪Mis a freeS/𝔪S-module andMis flat overR, thenMis free overSandSis flat overR.Here
S/𝔪Sis the ring quotientS ⧸ Ideal.map (algebraMap R S) (IsLocalRing.maximalIdeal R)andM/𝔪Mis the quotientM ⧸ 𝔪S • (⊤ : Submodule S M)with its canonicalS/𝔪S-module structure; see the module docstring.
theorem free_and_flat_of_free_maximalIdeal
{R S M : Type*} [CommRing R] [CommRing S] [IsLocalRing R] [IsLocalRing S] [Algebra R S]
[IsLocalHom (algebraMap R S)] [IsNoetherianRing R] [IsNoetherianRing S]
[AddCommGroup M] [Module R M] [Module S M] [IsScalarTower R S M] [Module.Finite S M]
[Nontrivial M] [Module.Flat R M]
(hM : Module.Free (S ⧸ Ideal.map (algebraMap R S) (IsLocalRing.maximalIdeal R))
(M ⧸ Ideal.map (algebraMap R S) (IsLocalRing.maximalIdeal R) • (⊤ : Submodule S M))) :
Module.Free S M ∧ Module.Flat R S
Tag 00MI, a lemma
Tag 00MI in the Stacks Project.
Module.Flat.exactAt_and_flat_cokernel_of_exactAt_maximalIdeal, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Flat/LocalCriteria/FibreCriteria.lean, line 844. The attribute's comment: “The complex is a ChainComplex (ModuleCat S) ℕ vanishing above e, as in 00N0, so that ExactAt e is the leading 0 →; exactness is assumed and concluded at every positive index, which above e is automatic. F_i/𝔪F_i is the base change (S ⧸ Ideal.map (algebraMap R S) (maximalIdeal R)) ⊗[S] F_i of ModuleCat.extendScalars, applied to C as a complex, and Coker(F_1 → F_0) is cokernel (C.d 1 0). IsNoetherianRing R is unused but is part of the tag's hypotheses; see the module docstring.”.
Stacks 00MI. Let
R → Sbe a local homomorphism of Noetherian local rings, let𝔪be the maximal ideal ofR, and let0 → F_e → F_{e-1} → ⋯ → F_0be a finite complex of finiteS-modules, presented as a chain complexCofS-modules withC.X i = 0fori > e. Assume that everyF_iis flat overRand that the reduced complex0 → F_e/𝔪F_e → ⋯ → F_0/𝔪F_0is exact. Then0 → F_e → ⋯ → F_0is exact, andCoker(F_1 → F_0)is flat overR.Reduction modulo
𝔪is base change alongS → S/𝔪S,Coker(F_1 → F_0)is the categorical cokernel, and flatness overRis flatness after restricting scalars alongalgebraMap R S; see the module docstring.
theorem Module.Flat.exactAt_and_flat_cokernel_of_exactAt_maximalIdeal
{R : Type u} {S : Type v} [CommRing R] [CommRing S] [IsLocalRing R] [IsLocalRing S]
[Algebra R S] [IsLocalHom (algebraMap R S)] [IsNoetherianRing R] [IsNoetherianRing S]
(C : ChainComplex (ModuleCat.{max w v} S) ℕ) [∀ i, Module.Finite S (C.X i)] (e : ℕ)
(hC : ∀ i, e < i → IsZero (C.X i))
(hflat : ∀ i, Module.Flat R ((ModuleCat.restrictScalars (algebraMap R S)).obj (C.X i)))
(hexact : ∀ i, 0 < i →
(((ModuleCat.extendScalars
(Ideal.Quotient.mk (Ideal.map (algebraMap R S) (maximalIdeal R)))).mapHomologicalComplex
(ComplexShape.down ℕ)).obj C).ExactAt i) :
(∀ i, 0 < i → C.ExactAt i) ∧
Module.Flat R ((ModuleCat.restrictScalars (algebraMap R S)).obj (cokernel (C.d 1 0)))
Tag 00MJ, a lemma
Tag 00MJ in the Stacks Project.
IsLocalRing.isZero_Tor'_one_of_isFiniteLength, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Flat/LocalCriteria/TorAndNilpotentDescent.lean, line 397.
Stacks 00MJ. Let
Rbe a local ring with residue fieldκand letMbe anR-module. IfTor₁(κ, M) = 0, thenTor₁(N, M) = 0for everyR-moduleNof finite length. HereTor₁(N, M)is((Tor' (ModuleCat R) 1).obj N).obj M, the first left derived functor of- ⊗ Mevaluated atN.
theorem isZero_Tor'_one_of_isFiniteLength {R : Type u} [CommRing R] [IsLocalRing R]
(M : ModuleCat.{u} R)
(hM : IsZero (((Tor' (ModuleCat.{u} R) 1).obj (ModuleCat.of R (ResidueField R))).obj M))
(N : ModuleCat.{u} R) (hN : IsFiniteLength R N) :
IsZero (((Tor' (ModuleCat.{u} R) 1).obj N).obj M)
Tag 00MK, a lemma
Tag 00MK in the Stacks Project.
Module.Flat.of_isZero_Tor'_one_residueField, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Flat/LocalCriterion.lean, line 170. The attribute's comment: “Tor₁^R(κ, M) is Tor', the left derived functor of - ⊗_R M evaluated at κ; forming it in ModuleCat R puts M in the universe of R.”. References: EGA 0 (10.1.3), “(d)⇒(c), case (ii)”; EGA 0 (10.2.2), “Tor₁^A(M, special case”; EGA IV (11.3.12), “b⇒a, special case”; SGA 1 IV (4.3), “case (b): (iv) ⇒ (iii)”; SGA 1 IV (5.6), “(ii)⇒(i), special case”.
Stacks 00MK (local criterion for flatness). Let
R → Sbe a local homomorphism of Noetherian local rings, letκbe the residue field ofRand letMbe a finiteS-module. IfTor₁^R(κ, M) = 0, thenMis flat overR. HereTor₁^R(κ, M)is((Tor' (ModuleCat R) 1).obj κ).obj M, the first left derived functor of- ⊗_R Matκ.
theorem of_isZero_Tor'_one_residueField {R : Type u} (S : Type v) (M : Type u) [CommRing R]
[CommRing S] [IsLocalRing R] [IsLocalRing S] [IsNoetherianRing R] [IsNoetherianRing S]
[Algebra R S] [IsLocalHom (algebraMap R S)] [AddCommGroup M] [Module R M] [Module S M]
[IsScalarTower R S M] [Module.Finite S M]
(hTor : IsZero (((Tor' (ModuleCat.{u} R) 1).obj
(ModuleCat.of R (ResidueField R))).obj (ModuleCat.of R M))) :
Module.Flat R M
Tag 051C, a lemma
Tag 051C in the Stacks Project.
tor1_vanishes_of_annihilated, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Flat/TorCriterion/NilpotentIdeal.lean, line 220. The attribute's comment: “(2)”. References: SGA 1 IV (5.3), “=> (iii)”; SGA 1 IV (5.2), “(ii) ⇒ (i), special case”; SGA 3 VIB (12.7), “partial”.
If
M/IMis flat overR/IandTor₁^R(R/I, M) = 0, thenTor₁^R(N, M) = 0for everyR-moduleNannihilated byIᵐfor somem.
theorem tor1_vanishes_of_annihilated
(H1 : Module.Flat (R ⧸ I) (M ⧸ (I • (⊤ : Submodule R M))))
(H2 : Tor1Vanishes R (R ⧸ I) M)
(N : Type u) [AddCommGroup N] [Module R N]
(m : ℕ) (hN : (I ^ m) • (⊤ : Submodule R N) = ⊥) :
Tor1Vanishes R N M
flat_quotient_pow, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Flat/TorCriterion/NilpotentIdeal.lean, line 263. The attribute's comment: “(1)”. References: EGA 0 (10.2.1), “(b) ⇒ (d)”; EGA 0 (10.2.2), “b ⇒ d”; SGA 1 IV (5.5), “more general”; SGA 1 IV (5.6), “(ii)⇒(iv)”; SGA 3 VIB (12.7), “more general”.
If
M/IMis flat overR/IandTor₁^R(R/I, M) = 0, then for everyn ≥ 1theR/Iⁿ-moduleM/IⁿMis flat overR/Iⁿ.
theorem flat_quotient_pow
(H1 : Module.Flat (R ⧸ I) (M ⧸ (I • (⊤ : Submodule R M))))
(H2 : Tor1Vanishes R (R ⧸ I) M) :
∀ n : ℕ, 1 ≤ n →
Module.Flat (R ⧸ I ^ n) (M ⧸ ((I ^ n) • (⊤ : Submodule R M)))
flat_of_nilpotent, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Flat/TorCriterion/NilpotentIdeal.lean, line 281. The attribute's comment: “in particular”. References: EGA 0 (10.2.1), “(b)⇒(a), 𝔍 nilpotent”; EGA 0 (10.1.3), “(i)”; EGA 0 (10.2.2), “special case”; EGA IV (11.2.5), “special case”; EGA IV (11.3.12), “b⇒a when J is nilpotent”; SGA 1 IV (5.5), “(ii) => (i)”; SGA 1 IV (5.6), “(ii)⇒(i), special case”.
If
M/IMis flat overR/I,Tor₁^R(R/I, M) = 0andIis nilpotent, thenMis flat overR.
theorem flat_of_nilpotent
(H1 : Module.Flat (R ⧸ I) (M ⧸ (I • (⊤ : Submodule R M))))
(H2 : Tor1Vanishes R (R ⧸ I) M)
(hI : ∃ n : ℕ, 1 ≤ n ∧ I ^ n = ⊥) :
Module.Flat R M
Tag 0AS8, a lemma
Tag 0AS8 in the Stacks Project.
Module.flat_quotient_pow_succ_of_flat_quotient_of_exact, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Flat/AdicFiltration.lean, line 204. The attribute's comment: “Both parts: part (1) is the case k = 1. The injectivity of M ⊗_R I^n/I^{n + 1} → I^nM/I^{n + 1}M is stated as exactness of M ⊗_R I^{n + 1} → M ⊗_R I^n → M/I^{n + 1}M, an equivalent form; see the module docstring.”.
Let
Rbe a ring,I ⊆ Ran ideal andManR-module. IfM/IMis flat overR/Iand the multiplication mapM ⊗_R I^n/I^{n+1} → I^nM/I^{n+1}Mis injective forn = 1, …, k, thenM/I^{k+1}Mis flat overR/I^{k+1}.The injectivity of
M ⊗_R I^n/I^{n+1} → I^nM/I^{n+1}Mis spelled as the exactness ofM ⊗_R I^{n+1} → M ⊗_R I^n → M/I^{n+1}M, the first map beinglTensor Mof the inclusionI^{n+1} ⊆ I^nand the secondm ⊗ x ↦ x • mfollowed by the quotient map; see the module docstring for why this is the same condition.
public theorem flat_quotient_pow_succ_of_flat_quotient_of_exact {R : Type u} [CommRing R]
(I : Ideal R) (M : Type v) [AddCommGroup M] [Module R M] (k : ℕ)
(hflat : Module.Flat (R ⧸ I) (M ⧸ (I • (⊤ : Submodule R M))))
(hexact : ∀ n, 1 ≤ n → n ≤ k →
Function.Exact
((Submodule.inclusion (Ideal.pow_le_pow_right n.le_succ : I ^ (n + 1) ≤ I ^ n)).lTensor M)
((I ^ (n + 1) • (⊤ : Submodule R M)).mkQ ∘ₗ
(TensorProduct.rid R M).toLinearMap ∘ₗ (I ^ n).subtype.lTensor M)) :
Module.Flat (R ⧸ I ^ (k + 1)) (M ⧸ (I ^ (k + 1) • (⊤ : Submodule R M)))
Tag 00ML, a lemma
Tag 00ML in the Stacks Project.
Module.Flat.of_rTensor_subtype_injective_of_flat_quotient, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Flat/LocalCriterionVariant/Criterion.lean, line 80. The attribute's comment: “The hypothesis Tor_1^R(M, R/I) = 0 is stated in the form Remark 00M6 identifies it with, the injectivity of I ⊗_R M → R ⊗_R M; this is the form the source's own second proof of the lemma assumes, and unlike Tor_1 it puts R and M in no common universe. See the module docstring.”. References: EGA IV (11.3.12), “partial”; SGA 1 IV (5.6), “(ii)⇒(i), special case”.
Stacks 00ML (variant of the local criterion for flatness). Let
R → Sbe a local homomorphism of Noetherian local rings, letI ≠ Rbe an ideal ofRand letMbe a finiteS-module. IfTor₁^R(M, R/I) = 0andM/IMis flat overR/I, thenMis flat overR. Here the Tor hypothesis appears in the form of Remark 00M6, as the injectivity ofI ⊗_R M → R ⊗_R M, andM/IMisM ⧸ I • ⊤with its canonicalR ⧸ I-module structure.
public theorem of_rTensor_subtype_injective_of_flat_quotient {R : Type u} (S : Type v) (M : Type w)
[CommRing R] [CommRing S] [IsLocalRing R] [IsLocalRing S] [IsNoetherianRing R]
[IsNoetherianRing S] [Algebra R S] [IsLocalHom (algebraMap R S)] [AddCommGroup M] [Module R M]
[Module S M] [IsScalarTower R S M] [Module.Finite S M] (I : Ideal R) (hI : I ≠ ⊤)
(hTor : Function.Injective (I.subtype.rTensor M))
(hflat : Module.Flat (R ⧸ I) (M ⧸ (I • (⊤ : Submodule R M)))) : Module.Flat R M
Tag 0523, a lemma
Tag 0523 in the Stacks Project.
Module.Flat.of_flat_quotient_pow, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Flat/AdicFiltration.lean, line 419. The attribute's comment: “Both statements: the second is the case where S is local, q is its maximal ideal and the localization is taken to be M itself. M/IⁿM is M ⧸ (I ^ n • ⊤ : Submodule R M) and M_q is given by IsLocalizedModule.AtPrime q f; see the module docstring.”. References: EGA 0 (10.2.1), “d ⇒ a”.
Let
R → Sbe a ring map withRandSNoetherian, letI ⊆ Rbe an ideal and letMbe a finiteS-module. IfM/IⁿMis flat overR/Iⁿfor everyn ≥ 1, then for every primeqofScontainingISthe localizationM_qis flat overR.The localization is taken abstractly:
Mqis anyS-module with a mapf : M →ₗ[S] Mqexhibiting it as the localization ofMatq. TakingSlocal with maximal idealq,Mq = Mandf = LinearMap.idshows thatMis flat overRwhenISis contained in the maximal ideal of a localS.
public theorem of_flat_quotient_pow {R S : Type*} [CommRing R] [CommRing S] [Algebra R S]
[IsNoetherianRing R] [IsNoetherianRing S] (I : Ideal R)
(M : Type*) [AddCommGroup M] [Module R M] [Module S M] [IsScalarTower R S M]
[Module.Finite S M]
(hflat : ∀ n : ℕ,
Module.Flat (R ⧸ I ^ (n + 1)) (M ⧸ (I ^ (n + 1) • (⊤ : Submodule R M))))
(q : Ideal S) [q.IsPrime] (hq : I.map (algebraMap R S) ≤ q)
(Mq : Type*) [AddCommGroup Mq] [Module R Mq] [Module S Mq] [IsScalarTower R S Mq]
(f : M →ₗ[S] Mq) [IsLocalizedModule.AtPrime q f] :
Module.Flat R Mq
Tag 00MM, a lemma
Tag 00MM in the Stacks Project.
Stacks.TorOneBaseChange.tor_baseChange_surjective, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Tor/TorOneBaseChange.lean, line 696. The attribute's comment: “Proved for the resolution model Tor1 S = H₁(P ⊗ᴿ S); the map is the explicit phi, not identified with the canonical derived base-change natural transformation.”.
Stacks Tag 00MM (Lemma 10.99.12).
Let
R → R' → R''be ring maps and letMbe anR-module with a chosen projective resolutionPoverR. If theR'-moduleM ⊗ᴿ R'is flat overR', then the natural base-change map
Φ : R'' ⊗_{R'} Tor₁ᴿ(M, R') → Tor₁ᴿ(M, R'')(equivalently
Tor₁ᴿ(M, R') ⊗_{R'} R'' → Tor₁ᴿ(M, R'')), characterized byphi_apply_mk, is surjective. HereTor₁ᴿis the resolution modelH₁(P ⊗ᴿ -);Φis not identified with the canonical base-change natural transformation on derived functors (see the caveat onexists_baseChange_eq_phi).The reduction to
cycles_baseChange_surjectiveruns as follows.Tor1 R'' = K''/B''is a quotient ofK'' = cycles R'' d₁, so by surjectivity of the quotient mapSubmodule.Quotient.mkit suffices to hit every class⟦c⟧withc ∈ K''. By the cruxcycles_baseChange_surjective,c = cyclesBC zfor somez ∈ R'' ⊗_{R'} K', wherecyclesBC = AlgebraTensorModule.lift (cyclesMap d₁). PushingzthroughlTensor R'' (mkQ : K' → Tor1 R')gives an element ofR'' ⊗_{R'} Tor1 R', and the squarephi ∘ (id ⊗ mkQ) = mkQ'' ∘ cyclesBCcommutes on generatorsr'' ⊗ kbyphi_apply_mk(both sides are⟦cmpBil r'' k⟧). Hencephi (lTensor mkQ z) = mkQ''(cyclesBC z) = ⟦c⟧, proving surjectivity.
theorem tor_baseChange_surjective
(M : ModuleCat.{u} R) (P : ProjectiveResolution M)
-- flatness hypothesis: `M ⊗ᴿ R'`, as an `R'`-module, is flat over `R'`.
-- We use `R' ⊗ᴿ M`, the standard Mathlib orientation with `R'` on the left,
-- which is canonically `R'`-isomorphic to `M ⊗ᴿ R'`.
(hflat : Module.Flat R' (R' ⊗[R] (M : Type u))) :
Function.Surjective
(phi (R := R) (R' := R') (R'' := R'')
(P.complex.d 2 1).hom (P.complex.d 1 0).hom)
Tag 00MN, a lemma
Tag 00MN in the Stacks Project.
TorSurjective.surjective_on_tor_one_trivial, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Tor/BaseChangeSurjectivity.lean, line 1041. The attribute's comment: “Epi holds between the genuine Tor objects for N = R'/IR', but the comparison map is naturalMap conjugated by Classical.choice isomorphisms, so it is not identified with the canonical derived base-change natural transformation.”.
The Stacks lemma (tag [0BPB]). With
N = R'/I'andM' = M ⊗_R R', the natural mapTor_1^R(R'/I', M) → Tor_1^{R'}(R'/I', M')(constructed via the Stacks dataS: the pushed-forwardR-free resolution, the genuineR'-resolutionDdiffering only by an added free summand in degree2, and the comparison chain mapφthat is the identity in degrees0, 1) is surjective, i.e. an epimorphism of abelian groups.Equivalently, the map
naturalMap f S (R'/I')induced on degree-1homology is an epimorphism (seesurjective_on_tor_one_trivial').Scope of what is proved.
torNaturalMapisnaturalMapconjugated byClassical.choiceof theNonemptycorrectness isomorphismsnaturalMap_src_iso/naturalMap_tgt_iso. SinceEpiis invariant under pre- and post-composition with isomorphisms, the epimorphism conclusion between the genuine Tor objectstorOneRestrictandtorOneExtendis real, and the moduleN = quotIdeal f I = R'/IR'is exactly the module Stacks 00MN is stated for. What is not established is thattorNaturalMapis the canonical base-change natural transformation on derived functors: because the two isomorphisms are extracted by choice, the map is not canonically determined. Pinning that down requires turningnaturalMap_src_iso/naturalMap_tgt_isointodefs and identifying the composite with aNatTransbuilt independently of this construction.
theorem surjective_on_tor_one_trivial (I : Ideal R) (M : ModuleCat R)
(F : ProjectiveResolution M) (S : StacksData f F) :
Epi (torNaturalMap f S (quotIdeal f I))
Tag 00MO, a lemma
Tag 00MO in the Stacks Project.
Module.Flat.of_flat_quotient_of_tor_one_map_eq_zero, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Flat/LocalCriterionVariant/BaseChangeSquare.lean, line 680. The attribute's comment: “Tor₁ is spelled through Remark 00M6 as Ker(I ⊗_R M → R ⊗_R M), and the hypothesis that Tor_1^R(M, R/I) → Tor_1^{R'}(M', R'/I') is zero as the vanishing on that kernel of the canonical map I ⊗_R M → I' ⊗_{R'} M'. M' and S' are abstract (IsBaseChange, IsLocalization). The unused hypotheses R Noetherian, S local Noetherian, R → S local and S → S' local are dropped; see the module docstring.”. References: EGA IV (11.2.5), “case b), local rings”; EGA IV (11.3.12), “partial”.
Stacks 00MO. Let
S ← R → R' → S',S → S'be a commutative square of ring maps withR,R',S'local,R'andS'Noetherian andR → R',R' → S'local, letI ⊆ Rbe a proper ideal, letMbe a finiteS-module and letf : M → M'be the base change ofMto anS'-module. AssumeS'is a localization ofS ⊗_R R'. IfM/IMis flat overR/Iand the canonical mapTor_1^R(M, R/I) → Tor_1^{R'}(M', R'/I')is zero, thenM'is flat overR'.By Remark 00M6 the source
Tor_1^R(M, R/I)isKer(I ⊗_R M → R ⊗_R M)and the target is a submodule ofI' ⊗_{R'} M'forI' = IR', so the last hypothesis is that the canonical mapI ⊗_R M → I' ⊗_{R'} M', the uniqueR-linear map witha ⊗ x ↦ a ⊗ f x, vanishes on that kernel; see the module docstring.
public theorem of_flat_quotient_of_tor_one_map_eq_zero {R R' S S' M M' : Type*} [CommRing R]
[CommRing R'] [CommRing S] [CommRing S'] [IsLocalRing R] [IsLocalRing R'] [IsNoetherianRing R']
[IsLocalRing S'] [IsNoetherianRing S'] [Algebra R S] [Algebra R R'] [Algebra S S']
[Algebra R' S'] [IsLocalHom (algebraMap R R')] [IsLocalHom (algebraMap R' S')]
[Algebra (S ⊗[R] R') S'] [IsScalarTower S (S ⊗[R] R') S']
(hR' :
(algebraMap (S ⊗[R] R') S').comp
(Algebra.TensorProduct.includeRight : R' →ₐ[R] S ⊗[R] R').toRingHom =
algebraMap R' S')
(T : Submonoid (S ⊗[R] R')) [IsLocalization T S'] [AddCommGroup M] [Module R M] [Module S M]
[IsScalarTower R S M] [Module.Finite S M] [AddCommGroup M'] [Module R M'] [Module S M']
[Module R' M'] [Module S' M'] [IsScalarTower R S M'] [IsScalarTower R R' M']
[IsScalarTower S S' M'] [IsScalarTower R' S' M'] (I : Ideal R) (hI : I ≠ ⊤) (f : M →ₗ[S] M')
(hf : IsBaseChange S' f) (hflat : Module.Flat (R ⧸ I) (M ⧸ (I • (⊤ : Submodule R M))))
(htor :
LinearMap.ker (I.subtype.rTensor M) ≤
LinearMap.ker
(TensorProduct.lift
(((TensorProduct.mk R' ↥(I.map (algebraMap R R')) M').restrictScalars₁₂ R R).compl₁₂
((Algebra.linearMap R R').restrict (p := I) (q :=
(I.map (algebraMap R R')).restrictScalars R) fun _ hx => Ideal.mem_map_of_mem _ hx)
(f.restrictScalars R)))) :
Module.Flat R' M'
Tag 00MP, a lemma
Tag 00MP in the Stacks Project.
Module.flat_and_flat_of_flat_quotient_maximalIdeal_of_flat, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Flat/FibrewiseCriterion.lean, line 751. The attribute's comment: “The composite R → S' is not assumed: the two scalar towers on M already pin the R-action to the restriction along R → S → S'. 𝔪M is written as 𝔪S • ⊤ over S, so that the quotient carries the S/𝔪S-structure; see the module docstring.”. References: EGA IV (11.3.10), “special case”; EGA IV (11.3.10.1), “(a) ⇒ (b)”; SGA 1 I (5.9), “partial”; SGA 1 IV (5.9), “(ii) ⇒ (i)”; SGA 3 VIB (1.3.0), “special case”; SGA 3 VIB (12.7), “special case”; SGA 3 VIB (2.5), “flatness clause”; SGA 3 X (3.5), “Flat case”.
Critère de platitude par fibres, Noetherian local case. Let
R → S → S'be local homomorphisms of Noetherian local rings, let𝔪 ⊆ Rbe the maximal ideal ofR, and letMbe anS'-module whoseS- andR-module structures come from the two ring maps. IfMis finite overS', nonzero,M/𝔪Mis flat overS/𝔪SandMis flat overR, thenSis flat overRandMis flat overS.
public theorem Module.flat_and_flat_of_flat_quotient_maximalIdeal_of_flat
{R S S' M : Type*} [CommRing R] [CommRing S] [CommRing S']
[IsLocalRing R] [IsLocalRing S] [IsLocalRing S']
[IsNoetherianRing R] [IsNoetherianRing S] [IsNoetherianRing S']
[Algebra R S] [Algebra S S']
[IsLocalHom (algebraMap R S)] [IsLocalHom (algebraMap S S')]
[AddCommGroup M] [Module R M] [Module S M] [Module S' M]
[IsScalarTower R S M] [IsScalarTower S S' M]
[Module.Finite S' M] [Nontrivial M]
[Module.Flat (S ⧸ (IsLocalRing.maximalIdeal R).map (algebraMap R S))
(M ⧸ ((IsLocalRing.maximalIdeal R).map (algebraMap R S) • (⊤ : Submodule S M)))]
[Module.Flat R M] :
Module.Flat R S ∧ Module.Flat S M
Tag 0H7N, a lemma
Tag 0H7N in the Stacks Project.
Module.flat_and_faithfullyFlat_of_flat_away_of_flat_quotSMulTop, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Flat/LocalCriteria/TorAndNilpotentDescent.lean, line 670. The attribute's comment: “The two forms of the lemma are the two components of the conjunction: they share the hypotheses on f. M_f is an arbitrary localization away from f (IsLocalization.Away, IsLocalizedModule) rather than the model, M/fM is QuotSMulTop f M over A ⧸ Ideal.span {f}, and f a nonzerodivisor on A and on M is IsSMulRegular A f and IsSMulRegular M f.”.
Stacks 0H7N. Let
Abe a ring, letMbe anA-module and letf ∈ Abe a nonzerodivisor onAand onM. IfM_fis a flatA_f-module andM/fMis a flatA/fA-module, thenMis a flatA-module; the same with "flat" replaced by "faithfully flat".Here
A_fis any localizationAₜofAaway fromfandM_fis any localizationMₜofMat the powers off, whileM/fMisQuotSMulTop f Mas a module overA ⧸ Ideal.span {f}.
theorem flat_and_faithfullyFlat_of_flat_away_of_flat_quotSMulTop
{A : Type*} [CommRing A] {M : Type*} [AddCommGroup M] [Module A M] (f : A)
(Aₜ : Type*) [CommRing Aₜ] [Algebra A Aₜ] [IsLocalization.Away f Aₜ]
(Mₜ : Type*) [AddCommGroup Mₜ] [Module A Mₜ] [Module Aₜ Mₜ] [IsScalarTower A Aₜ Mₜ]
(g : M →ₗ[A] Mₜ) [IsLocalizedModule (Submonoid.powers f) g]
(hA : IsSMulRegular A f) (hM : IsSMulRegular M f) :
(Flat Aₜ Mₜ → Flat (A ⧸ Ideal.span {f}) (QuotSMulTop f M) → Flat A M) ∧
(FaithfullyFlat Aₜ Mₜ → FaithfullyFlat (A ⧸ Ideal.span {f}) (QuotSMulTop f M) →
FaithfullyFlat A M)
Tag 0H7P, a lemma
Tag 0H7P in the Stacks Project.
Module.flat_and_faithfullyFlat_of_isLocalized_away_of_isZero_Tor', a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Flat/TorCriterion/AwayGenerators.lean, line 766. The attribute's comment: “Both statements: .1 is the flat one and .2 the faithfully flat one ("same with flat replaced by faithfully flat"), sharing the generating family and the Tor hypotheses. The two arguments of Tor_n^A are in the order used by the source's own proof (through 051C), namely Tor_n^A(A/I, M); the two orders agree by the symmetry of Tor (00M3). The generators are a family indexed by a finite type, and the source's r ≥ 1 is dropped. See the module docstring.”.
Let
Abe a ring, letMbe anA-module, and letIbe the ideal generated by a finite family of elementsf iofA, withrthe number of generators. AssumeTor_n^A(A/I, M) = 0for1 ≤ n ≤ r + 1. If each localizationM_{f i}is flat overA_{f i}andM/IMis flat overA/I, thenMis flat overA; and the same with "flat" replaced by "faithfully flat" throughout.Here
Tor_n^A(A/I, M)is((Tor' (ModuleCat A) n).obj (A ⧸ I)).obj M, then-th left derived functor of- ⊗_A Mevaluated atA ⧸ I, andM/IMisM ⧸ I • ⊤with its canonicalA ⧸ I-module structure. The localizations are given abstractly, byIsLocalization.Away (f i) (Af i)andIsLocalizedModule.Away (f i) (g i).
public theorem flat_and_faithfullyFlat_of_isLocalized_away_of_isZero_Tor'
(hI : Ideal.span (Set.range f) = I)
(hTor : ∀ n : ℕ, 1 ≤ n → n ≤ Nat.card ι + 1 →
IsZero (((Tor' (ModuleCat.{u} A) n).obj (ModuleCat.of A (A ⧸ I))).obj
(ModuleCat.of A M))) :
((∀ i, Module.Flat (Af i) (Mf i)) →
Module.Flat (A ⧸ I) (M ⧸ (I • (⊤ : Submodule A M))) →
Module.Flat A M) ∧
((∀ i, Module.FaithfullyFlat (Af i) (Mf i)) →
Module.FaithfullyFlat (A ⧸ I) (M ⧸ (I • (⊤ : Submodule A M))) →
Module.FaithfullyFlat A M)
Sources
Section10.100 Base change and flatness#
Section 10.100 of the Stacks Project, Tag 051D. 2 tags here are carried by 2 declarations of the repository (all in StacksFrontier), quoted below from AxiomMath/Stacks at commit 5ed82d14.
Tag 00MQ, a lemma
Tag 00MQ in the Stacks Project.
Module.Flat.baseChange_and_of_flat_baseChange_of_isPushout_of_isLocalization, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Flat/BaseChange.lean, line 267. The attribute's comment: “Parts (1) and (2). Of the source's eight locality assumptions only IsLocalRing S, IsLocalRing S' and IsLocalHom (algebraMap S S') are used, by part (2) alone, and they are bound inside the second conjunct together with Module.Flat R R', so that part (1) is stated for an arbitrary commutative square; the rest are dropped. "S' is a localization of S ⊗_R R'" is IsLocalization W S' over an abstract pushout Algebra.IsPushout R S R' T, as in the siblings 00P4 and 00RJ, and M' = S' ⊗_S M is IsBaseChange S' f, as in 00MO. Parts (3) and (4) are the instance M := S, M' := S' and are not separate declarations. See the module docstring.”.
Stacks 00MQ, parts (1) and (2). Let
S ← R → R'be ring maps, letTbe the pushoutS ⊗_R R', letS'be a localization ofTat a submonoidW, and letf : M →ₗ[S] M'realizeM'as the base changeS' ⊗_S Mof anS-moduleM. Then (1) ifMis flat overRthenM'is flat overR', and (2) if moreoverSandS'are local withS → S'a local homomorphism, thenM'flat overR'andR → R'flat implyMflat overR.Part (1) holds for an arbitrary such square: the source's local rings and local homomorphisms are used only in part (2), and only for
S,S'andS → S', so they are bound inside the second conjunct instead of in the signature.Parts (3) and (4) of the source, that
Sflat overRimpliesS'flat overR'and thatR' → S'andR → R'flat implySflat overR, are the instanceM := S,M' := S',f := Algebra.linearMap S S'; see the module docstring.
public theorem baseChange_and_of_flat_baseChange_of_isPushout_of_isLocalization
(R : Type*) {S R' T S' M M' : Type*}
[CommRing R] [CommRing S] [CommRing R'] [CommRing T] [CommRing S']
[Algebra R S] [Algebra R R'] [Algebra R T] [Algebra S T] [Algebra R' T]
[IsScalarTower R S T] [IsScalarTower R R' T] [Algebra.IsPushout R S R' T]
[Algebra S S'] [Algebra R' S'] [Algebra T S']
[IsScalarTower S T S'] [IsScalarTower R' T S']
[AddCommGroup M] [Module R M] [Module S M] [IsScalarTower R S M]
[AddCommGroup M'] [Module S M'] [Module R' M'] [Module S' M']
[IsScalarTower S S' M'] [IsScalarTower R' S' M']
(W : Submonoid T) [IsLocalization W S'] (f : M →ₗ[S] M') (hf : IsBaseChange S' f) :
(Module.Flat R M → Module.Flat R' M') ∧
(∀ [IsLocalRing S] [IsLocalRing S'] [IsLocalHom (algebraMap S S')],
Module.Flat R' M' → Module.Flat R R' → Module.Flat R M)
Tag 0GEB, a lemma
Tag 0GEB in the Stacks Project.
Module.Flat.baseChange_of_map_maximalIdeal_eq_maximalIdeal, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Flat/LocalBaseChange.lean, line 254. The attribute's comment: “The commutative square is presented by the two scalar towers into S', M ⊗_S S' by IsBaseChange S' f as in the sibling 00MO, and 𝔪_R R' by Ideal.map (algebraMap R R') (IsLocalRing.maximalIdeal R). The source's unused hypotheses S local, R → S local and S → S' local are dropped, and R → R' local is implied by hm. See the module docstring.”.
Stacks 0GEB. Let
S ← R → R',S → S',R' → S'be a commutative diagram of local rings and local homomorphisms, letMbe a finiteS-module and letf : M → M'realizeM'as the base changeM ⊗_S S'. Assume the horizontal arrowsR → R'andS → S'are flat, thatMis flat overR, that𝔪_R R' = 𝔪_{R'}and thatR'andS'are Noetherian. ThenM'is flat overR'.
public theorem baseChange_of_map_maximalIdeal_eq_maximalIdeal
{R S R' S' M M' : Type*} [CommRing R] [CommRing S] [CommRing R'] [CommRing S']
[IsLocalRing R] [IsLocalRing R'] [IsLocalRing S']
[IsNoetherianRing R'] [IsNoetherianRing S']
[Algebra R S] [Algebra R R'] [Algebra S S'] [Algebra R' S'] [Algebra R S']
[IsScalarTower R S S'] [IsScalarTower R R' S']
[IsLocalHom (algebraMap R' S')]
[Module.Flat R R'] [Module.Flat S S']
[AddCommGroup M] [Module R M] [Module S M] [IsScalarTower R S M]
[Module.Finite S M] [Module.Flat R M]
[AddCommGroup M'] [Module S M'] [Module R' M'] [Module S' M']
[IsScalarTower S S' M'] [IsScalarTower R' S' M']
(hm : (IsLocalRing.maximalIdeal R).map (algebraMap R R') = IsLocalRing.maximalIdeal R')
(f : M →ₗ[S] M') (hf : IsBaseChange S' f) :
Module.Flat R' M'
Sources
Section10.101 Flatness criteria over Artinian rings#
Section 10.101 of the Stacks Project, Tag 051E. 8 tags here are carried by 8 declarations of the repository (all in StacksFrontier), quoted below from AxiomMath/Stacks at commit 5ed82d14.
Tag 051F, a lemma
Tag 051F in the Stacks Project.
Module.Flat.linearIndependent_and_span_eq_top_mkQ_comp_iff_of_isNilpotent, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Flat/Nilpotent.lean, line 282. The attribute's comment: “Stated for an arbitrary nilpotent ideal I of an arbitrary commutative ring, the source's local ring being the case I = IsLocalRing.maximalIdeal R; M/IM is M ⧸ I • ⊤ over R ⧸ I with reduction map Submodule.mkQ, and forms a basis is LinearIndependent … ∧ Submodule.span … = ⊤. See the module docstring.”. References: SGA 3 VIIA (7.4.3), “special case”; SGA 3 VIII (6.2), “flat clause”.
Let
Rbe a commutative ring, letI ⊆ Rbe a nilpotent ideal and letMbe a flatR-module. A familyx : ι → M, indexed by an arbitrary type, is anR-basis ofMif and only if the family of its reductions is anR/I-basis ofM/IM. "Is a basis" is read asLinearIndependent … ∧ Submodule.span … = ⊤, the hypotheses ofModule.Basis.mk.
theorem linearIndependent_and_span_eq_top_mkQ_comp_iff_of_isNilpotent {R : Type*}
[CommRing R] {M : Type*} [AddCommGroup M] [Module R M] [Module.Flat R M] (I : Ideal R)
(hI : IsNilpotent I) {ι : Type*} (x : ι → M) :
(LinearIndependent (R ⧸ I) ((I • (⊤ : Submodule R M)).mkQ ∘ x) ∧
Submodule.span (R ⧸ I) (Set.range ((I • (⊤ : Submodule R M)).mkQ ∘ x)) = ⊤) ↔
(LinearIndependent R x ∧ Submodule.span R (Set.range x) = ⊤)
Tag 051G, a lemma
Tag 051G in the Stacks Project.
Module.tfae_flat_free_projective_of_isNilpotent_maximalIdeal, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Module/Projective/NilpotentIdeal.lean, line 386. The attribute's comment: “The equivalence is a List.TFAE in the source's order (flat, free, projective); nilpotence of the maximal ideal is IsNilpotent (IsLocalRing.maximalIdeal R).”. References: EGA 0 (10.1.3), “case (i)”; EGA 0 (10.1.3), “case (i)”; EGA III (7.3.5), “commutative case”; EGA IV (11.3.12), “special case”; EGA IV (2.2.17), “special case”; SGA 1 IV (4.3), “(i),(ii),(iii)”; SGA 3 VIA (2.1.3), “special case”; SGA 3 VIB (6.2.2), “more general”; SGA 3 VIIA (8.4), “partial”; SGA 3 VIIB (0.2.2), “special case”; SGA 3 VIIB (0.3.7), “local Artinian rings”; SGA 3 VIIB (1.2.1), “special case”; SGA 3 VIII (6.2), “more general”.
Stacks 051G: let
(R, 𝔪)be a local ring whose maximal ideal is nilpotent — an Artinian local ring, for instance — and letMbe anR-module. ThenMis flat overRif and only ifMis a freeR-module if and only ifMis a projectiveR-module. No finiteness hypothesis onMis needed; compareModule.free_of_flat_of_isLocalRing, which assumesModule.Finite R Mover an arbitrary local ring, andModule.Flat.projective_of_finitePresentation. The proof is the source's: a family of elements ofMwhose reductions form a basis ofM/𝔪MoverR/𝔪is a basis ofMoverR, by Lemma 051F.
public theorem tfae_flat_free_projective_of_isNilpotent_maximalIdeal {R : Type*} [CommRing R]
[IsLocalRing R] {M : Type*} [AddCommGroup M] [Module R M]
(hR : IsNilpotent (IsLocalRing.maximalIdeal R)) :
List.TFAE [Module.Flat R M, Module.Free R M, Module.Projective R M]
Tag 051H, a lemma
Tag 051H in the Stacks Project.
Stacks.FreeOfNilpotentIdeal.free_of_nilpotent_of_basis_mod_of_tor, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Module/Free/OfNilpotentIdeal/Freeness.lean, line 511.
Theorem (Stacks Project, Tag 051H; Lemma 10.101.3).
Let
Rbe a ring,I ⊆ Ran ideal,ManR-module,Aa set, andx : A → Ma family of elements ofM. Assume:
Iis nilpotent;- the family of reductions
(reduction I (x α))_{α}forms a basis of theR/I-moduleM/IM, witnessed by a basisbwithb α = reduction I (x α);Tor₁^R(R/I, M) = 0, expressed as injectivity of the multiplication maptorMul I : I ⊗_R M → M.Then
xis a basis ofMas anR-module: it is linearly independent and spansM.
theorem free_of_nilpotent_of_basis_mod_of_tor
{A : Type*} (x : A → M) (I : Ideal R)
(hI : IsNilpotent I)
(b : Module.Basis A (R ⧸ I) (M ⧸ smul (M := M) I))
(hb : ∀ α, b α = reduction I (x α))
(hTor : Function.Injective (torMul (M := M) I)) :
LinearIndependent R x ∧ ⊤ ≤ Submodule.span R (Set.range x)
Tag 051I, a lemma
Tag 051I in the Stacks Project.
flat_quot_idealTwo_smul_top_of_flat_quot_and_flat_baseChange, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Flat/LocalCriteria/SquareZeroCriterion.lean, line 487.
Stacks Tag 051I, Lemma 10.101.4. Wires the square-zero local criterion (
flat_of_sq_zero_local_criterion) to the two base-change inputs (hquot_from_h1,htor_from_base_change), using that the image ofIinR ⧸ I₂is square-zero (image_I_sq_eq_bot).
theorem flat_quot_idealTwo_smul_top_of_flat_quot_and_flat_baseChange
{R R' : Type*} [CommRing R] [CommRing R'] [Algebra R R']
{M : Type*} [AddCommGroup M] [Module R M]
(I : Ideal R)
(h1 : Module.Flat (R ⧸ I) (M ⧸ I • (⊤ : Submodule R M)))
(h2 : Module.Flat R' (R' ⊗[R] M)) :
Module.Flat (R ⧸ idealTwo I R')
(M ⧸ (idealTwo I R') • (⊤ : Submodule R M))
Tag 051J, a lemma
Tag 051J in the Stacks Project.
Module.Flat.of_flat_quotient_of_flat_tensorProduct_of_isNilpotent_of_injective, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Flat/LocalCriteria/TorAndNilpotentDescent.lean, line 889. The attribute's comment: “The ring map is algebraMap R R'; M/IM is M ⧸ I • ⊤ with its canonical R ⧸ I-action and the base change is R' ⊗[R] M, acted on by R' through the left factor. See the module docstring.”. References: EGA IV (11.4.1), “special case”; EGA IV (11.4.9), “sufficiency (flat case)”.
Stacks 051J: the local criterion for flatness along an injective ring map. Let
φ : R → R'be a map of commutative rings,I ⊆ Ra nilpotent ideal andManR-module. Ifφ = algebraMap R R'is injective,M/IMis flat overR ⧸ Iand the base changeR' ⊗[R] Mis flat overR', thenMis flat overR. CompareModule.Flat.of_flat_tensorProduct, which descends flatness along a faithfully flat ring map with no nilpotent ideal in sight, andModule.Flat.of_flat_baseChange_of_injective(Stacks 051L), the case whereRis Artinian andIis its Jacobson radical, so that flatness of the reduction is automatic. The proof is the source's: the towerI₁ = I,I_{n+1} = φ⁻¹(φ(I_n) ^ 2 R')reaches0becauseIis nilpotent andφis injective, and each step preserves flatness of the reduction by the square-zero criterion (Stacks 051I).
public theorem of_flat_quotient_of_flat_tensorProduct_of_isNilpotent_of_injective
{R R' : Type*} [CommRing R] [CommRing R'] [Algebra R R']
{M : Type*} [AddCommGroup M] [Module R M] (I : Ideal R)
(hI : IsNilpotent I) (hφ : Function.Injective (algebraMap R R'))
(hMI : Module.Flat (R ⧸ I) (M ⧸ I • (⊤ : Submodule R M)))
(hM' : Module.Flat R' (R' ⊗[R] M)) :
Module.Flat R M
Tag 051K, a lemma
Tag 051K in the Stacks Project.
Module.Flat.iff_flat_quotient_and_isZero_Tor'_one, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Flat/Nilpotent.lean, line 315. The attribute's comment: “The source's Artinian local R is weakened to R local with nilpotent maximal ideal, the hypothesis of 051G; Tor_1^R(R/I, M) is Tor', which derives the first variable, as in 00MJ and 00M5. See the module docstring.”. References: EGA 0 (10.1.3), “(i): c ⇔ d, c ⇔ d”; EGA 0 (10.2.1), “a ⇒ b, a ⇔ b”; EGA IV (11.2.5), “special case”; SGA 1 IV (5.5), “(i)⇔(ii), special case”.
The local criterion for flatness over a local ring with nilpotent maximal ideal (an Artinian local ring, for instance). Let
Rbe such a ring, letMbe anR-module and letI ⊆ Rbe a proper ideal. ThenMis flat overRif and only ifM/IMis flat overR/IandTor₁^R(R/I, M) = 0. HereTor₁^R(R/I, M)is((Tor' (ModuleCat R) 1).obj (ModuleCat.of R (R ⧸ I))).obj (ModuleCat.of R M), the first left derived functor of- ⊗ Mevaluated atR ⧸ I.
theorem iff_flat_quotient_and_isZero_Tor'_one {R : Type u} [CommRing R] [IsLocalRing R]
(M : Type u) [AddCommGroup M] [Module R M] (I : Ideal R)
(hR : IsNilpotent (IsLocalRing.maximalIdeal R)) (hI : I ≠ ⊤) :
Module.Flat R M ↔
Module.Flat (R ⧸ I) (M ⧸ (I • ⊤ : Submodule R M)) ∧
IsZero (((Tor' (ModuleCat.{u} R) 1).obj (ModuleCat.of R (R ⧸ I))).obj
(ModuleCat.of R M))
Tag 051L, a lemma
Tag 051L in the Stacks Project.
Module.Flat.of_flat_baseChange_of_injective, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Flat/BaseChange.lean, line 487. The attribute's comment: “The source's M ⊗_R S is an arbitrary base change f : M →ₗ[R] N with IsBaseChange S f, which specialises to it by TensorProduct.isBaseChange; injectivity of the ring map is injectivity of algebraMap R S. See the module docstring.”.
Stacks 051L: flatness descends along an injective ring map whose source is Artinian. Let
R → Sbe a map of commutative rings withRArtinian andalgebraMap R Sinjective, letMbe anR-module and letf : M →ₗ[R] NexhibitNas the base change ofMtoS, for instanceN = S ⊗[R] Mwithf = TensorProduct.mk R S M 1. IfNis flat overS, thenMis flat overR. CompareModule.Flat.of_flat_tensorProduct, whereR → Sis faithfully flat instead.
public theorem of_flat_baseChange_of_injective {R : Type*} [CommRing R] [IsArtinianRing R]
(S : Type*) [CommRing S] [Algebra R S] {M : Type*} [AddCommGroup M] [Module R M]
(N : Type*) [AddCommGroup N] [Module R N] [Module S N] [IsScalarTower R S N]
[Module.Flat S N] {f : M →ₗ[R] N} (hf : IsBaseChange S f)
(hRS : Function.Injective (algebraMap R S)) :
Module.Flat R M
Tag 06A5, a lemma
Tag 06A5 in the Stacks Project.
Module.flat_and_flat_localization_of_flat_quotient_of_isNilpotent, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Flat/FibrewiseCriterion.lean, line 503. The attribute's comment: “The auxiliary ring S' of the source's triangle is dropped: M is taken to be an S-module over R → S, which is equivalent and does not mention S'. IM is written as IS • ⊤ over S, and S_q is an abstract localization at q; see the module docstring.”. References: EGA IV (11.3.11), “(a) ⇒ (b), special case”; SGA 1 IV (5.9), “(ii) ⇒ (i), special case”; SGA 3 VIB (1.3.0), “special case”; SGA 3 VIB (12.7), “more general”; SGA 3 VIB (2.5), “flatness clause”.
Critère de platitude par fibres, nilpotent case. Let
R → Sbe a map of commutative rings, letMbe anS-module whoseR-module structure comes fromR → S, and letI ⊆ Rbe a nilpotent ideal. IfM/IMis flat overS/ISandMis flat overR, thenMis flat overS, andS_qis flat overRfor every primeq ⊆ SwithM ⊗_S κ(q)nonzero.
public theorem Module.flat_and_flat_localization_of_flat_quotient_of_isNilpotent
{R S : Type*} [CommRing R] [CommRing S] [Algebra R S]
{M : Type*} [AddCommGroup M] [Module R M] [Module S M] [IsScalarTower R S M]
(I : Ideal R) (hI : IsNilpotent I)
[Module.Flat (S ⧸ I.map (algebraMap R S))
(M ⧸ (I.map (algebraMap R S) • (⊤ : Submodule S M)))]
[Module.Flat R M] :
Module.Flat S M ∧
∀ (q : Ideal S) [q.IsPrime] (Sq : Type*) [CommRing Sq] [Algebra S Sq]
[IsLocalization.AtPrime Sq q] [Algebra R Sq] [IsScalarTower R S Sq],
Nontrivial (M ⊗[S] q.ResidueField) → Module.Flat R Sq
Sources
Section10.102 What makes a complex exact?#
Section 10.102 of the Stacks Project, Tag 00MR. 9 tags here are carried by 12 declarations of the repository (all in StacksFrontier), quoted below from AxiomMath/Stacks at commit 5ed82d14.
Tag 00MS, a situation
Tag 00MS in the Stacks Project.
BoundedFreeComplex, a structure in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/Algebra/Homology/FiniteFreeComplex/BoundedFreeComplex.lean, line 35. References: SGA 4½ Rapport (4.11).
A complex
0 → R^{n_e} → R^{n_{e-1}} → ⋯ → R^{n_0}of finite freeR-modules, as in Stacks Situation 10.102.1 (tag 00MS). The ranks are given byn : ℕ → ℕwithn i = 0fori > e, and the differentialR^{n_{i+1}} → R^{n_i}by the matrixφ i : Matrix (Fin (n i)) (Fin (n (i + 1))) R.
structure BoundedFreeComplex (R : Type*) [CommRing R]
Tag 00MT, a lemma
Tag 00MT in the Stacks Project.
exists_splitOff_elementaryComplex_of_hasInvertibleCoeff, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/Algebra/Homology/FiniteFreeComplex/SplitOffElementary.lean, line 801.
Let
Rbe a ring andCa complex of finite freeR-modulesC_j = R^{n_j}. If the differentialφ_ihas an invertible matrix coefficient, thenn_i ≥ 1,n_{i-1} ≥ 1, and there is a complex of finite freeR-modulesC'with the ranks decremented at degreesiandi-1(and unchanged elsewhere) together with an isomorphism of complexesC ≅ C' ⊕ T^{(i)}, whereT^{(i)}is the elementary identity complex ofelementaryComplex.
theorem exists_splitOff_elementaryComplex_of_hasInvertibleCoeff {R : Type*} [CommRing R]
(C : FreeComplex R) (i : ℤ) (h : HasInvertibleCoeff C i) :
1 ≤ C.n i ∧ 1 ≤ C.n (i - 1) ∧
∃ C' : FreeComplex R,
(∀ j, C'.n j = if j = i then C.n i - 1 else if j = i - 1 then C.n (i - 1) - 1 else C.n j) ∧
Nonempty (C.toComplex ≅ C'.toComplex ⊞ (elementaryComplex R i).toComplex)
Tag 00MY, a lemma
Tag 00MY in the Stacks Project.
exists_trivial_iso_of_exact, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/Algebra/Homology/FiniteFreeComplex/TrivialIsoOfExact.lean, line 802.
Let
Rbe a Noetherian local ring whose maximal idealmis an associated prime ofR, i.e.Rhas depth0. Then every complex of finite freeR-modules0 → R^{n_e} → ⋯ → R^{n_0}which is exact atR^{n_e}, …, R^{n_1}is isomorphic to a complex of the same length and ranks all of whose differentials are partial permutation matrices, that is, to a direct sum of trivial complexes.
theorem exists_trivial_iso_of_exact
[IsNoetherianRing R] [IsLocalRing R]
(hdepth : (IsLocalRing.maximalIdeal R) ∈ associatedPrimes R R)
(C : BoundedFreeComplex R) (hC : C.Exact) :
∃ D : BoundedFreeComplex R, ∃ _ : C.Iso D,
D.e = C.e ∧ (∀ i, D.n i = C.n i) ∧ D.IsTrivial
Tag 00MU, a lemma
Tag 00MU in the Stacks Project.
LinearMap.exists_trivialDecomposition_of_injective_of_exact, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Artinian/FreeComplex.lean, line 501.
An exact complex of finite free modules over an Artinian local ring is a direct sum of trivial complexes. Let
Rbe an Artinian local ring and let0 → R^{n_{e+1}} →[φ e] R^{n_e} → ⋯ → R^{n_1} →[φ 0] R^{n_0}be a complex of finite freeR-modules which is exact atR^{n_{e+1}}, …, R^{n_1}. Then there are multiplicitiesc jandR-linear bijectionsg i : R^{n_i} ≃ R^{c_i} × R^{c_{i+1}}in the degreesi ≤ e + 1, withc (e + 2) = 0, carrying each differentialφ ito(x, y) ↦ (0, x); that is, the complex is isomorphic to the direct sum ofc_jcopies, for each0 ≤ j ≤ e + 1, of the trivial complex with the identity map ofRin degreesjandj - 1.
public theorem LinearMap.exists_trivialDecomposition_of_injective_of_exact
{R : Type*} [CommRing R] [IsArtinianRing R] [IsLocalRing R] (e : ℕ) (n : ℕ → ℕ)
(φ : ∀ i, (Fin (n (i + 1)) → R) →ₗ[R] (Fin (n i) → R))
(hφ : ∀ k < e, φ k ∘ₗ φ (k + 1) = 0)
(htop : Function.Injective (φ e))
(hex : ∀ k < e, Function.Exact (φ (k + 1)) (φ k)) :
∃ (c : ℕ → ℕ) (g : ∀ i, (Fin (n i) → R) →ₗ[R] ((Fin (c i) → R) × (Fin (c (i + 1)) → R))),
c (e + 2) = 0 ∧ (∀ i ≤ e + 1, Function.Bijective (g i)) ∧
(∀ i ≤ e, g i ∘ₗ φ i = LinearMap.inr R _ _ ∘ₗ LinearMap.fst R _ _ ∘ₗ g (i + 1))
Tag 00MV, a definition
Tag 00MV in the Stacks Project.
Stacks.DeterminantalRank.exteriorRank, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/LinearAlgebra/Matrix/DeterminantalRank/ExteriorRank.lean, line 103. The attribute's comment: “(1)”.
The rank of
φ = mulVecLin A: the largestr ≤ min m nsuch that ther-th exterior power⋀^r φis nonzero. Since⋀^r φ = 0forr > min m n, and⋀^0 φ = id ≠ 0for nontrivialR, this is the largestrwith⋀^r φ ≠ 0.
noncomputable def exteriorRank (A : Matrix (Fin n) (Fin m) R) : ℕ
Stacks.DeterminantalRank.detIdeal, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/LinearAlgebra/Matrix/DeterminantalRank/ExteriorRank.lean, line 109. The attribute's comment: “(2)”.
The determinantal ideal
I(φ): the ideal generated by therank × rankminors ofA. Whenrank = 0the only minor is the empty minordet (A.submatrix _ _) = 1, soI(φ) = R.
noncomputable def detIdeal (A : Matrix (Fin n) (Fin m) R) : Ideal R
Tag 00MW, a lemma
Tag 00MW in the Stacks Project.
StacksComplex.rank_eq_rIndex, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/LinearAlgebra/Matrix/DeterminantalRank/SumOfTrivials.lean, line 478. The attribute's comment: “(1)”.
If the complex is isomorphic to a direct sum of trivial complexes, then for
1 ≤ i ≤ ethe rank ofφ_i(which isd (i-1), or equivalentlyd kwithk = i-1ranging over0 ≤ k ≤ e-1) equalsr_i = ∑_{l=i}^e (-1)^{l-i} n_l.
theorem rank_eq_rIndex (C : Complex R e) (hC : IsoToSumOfTrivials C)
(k : ℕ) (hk : k < e) :
(rank (C.d k) : ℤ) = rIndex C (k + 1)
StacksComplex.rank_add_rank, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/LinearAlgebra/Matrix/DeterminantalRank/SumOfTrivials.lean, line 489. The attribute's comment: “(2)”.
If the complex is isomorphic to a direct sum of trivial complexes, then for
1 ≤ i ≤ e-1,rank(φ_{i+1}) + rank(φ_i) = n_i. In the indexingd j = φ_{j+1}, withk = i-1ranging over0 ≤ k ≤ e-2, this readsrank (d (k+1)) + rank (d k) = n (k+1).
theorem rank_add_rank (C : Complex R e) (hC : IsoToSumOfTrivials C)
(k : ℕ) (hk : k + 1 < e) :
rank (C.d (k + 1)) + rank (C.d k) = C.n (k + 1)
StacksComplex.minorIdeal_eq_top, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/LinearAlgebra/Matrix/DeterminantalRank/SumOfTrivials.lean, line 527. The attribute's comment: “(3)”.
If the complex is isomorphic to a direct sum of trivial complexes, then for
1 ≤ i ≤ e, the idealI(φ_i)is the unit idealR. In the indexingd k = φ_{k+1}with0 ≤ k ≤ e-1, this isI(d k) = ⊤.
theorem minorIdeal_eq_top (C : Complex R e) (hC : IsoToSumOfTrivials C)
(k : ℕ) :
minorIdeal (C.d k) = ⊤
Tag 00MZ, a lemma
Tag 00MZ in the Stacks Project.
tag_00MZ, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/Algebra/Homology/FiniteFreeComplex/ReductionModNonzerodivisor.lean, line 65.
Let
Rbe a commutative local ring with maximal idealm, and letφ : R^{n (•+1)} → R^{n •}be a complex of finite free modules ending at positione(son (e+1) = 0). If the complex is exact at positions1, ..., eandx ∈ mis a nonzerodivisor ofR, then the reduced complexφ mod xis exact at positions2, ..., e.
theorem tag_00MZ (R : Type*) [CommRing R] [IsLocalRing R]
(e : ℕ) (n : ℕ → ℕ)
(φ : (i : ℕ) → Matrix (Fin (n i)) (Fin (n (i + 1))) R)
(hcomplex : IsMatrixComplex n φ)
(x : R)
(hxnzd : ∀ r : R, x * r = 0 → r = 0)
(hexact : ∀ i, i < e → ExactAtSucc n φ i) :
∀ i, 1 ≤ i → i < e → ExactAtSucc n (reduceMat x n φ) i
Tag 00N0, a lemma
Tag 00N0 in the Stacks Project.
Module.one_le_depth_homology_of_forall_le_depth_of_isGreatest_not_exactAt, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Depth/Acyclicity.lean, line 205.
Acyclicity lemma. Let
Rbe a Noetherian local ring and let0 → M_e → M_{e-1} → ⋯ → M_0be a complex of finiteR-modules, presented as a chain complexCofR-modules withC.X j = 0forj > e. Assumedepth(M_i) ≥ ifori ≤ e. Ifiis the largest index at whichCfails to be exact andi > 0, thenKer(M_i → M_{i-1})/Im(M_{i+1} → M_i)has depth at least1.
public theorem Module.one_le_depth_homology_of_forall_le_depth_of_isGreatest_not_exactAt
{R : Type u} [CommRing R] [IsNoetherianRing R] [IsLocalRing R]
(C : ChainComplex (ModuleCat.{v} R) ℕ) [∀ j, Module.Finite R (C.X j)] (e : ℕ)
(hC : ∀ j, e < j → IsZero (C.X j))
(hdepth : ∀ j ≤ e, (j : ℕ∞) ≤ Module.depth R (IsLocalRing.maximalIdeal R) (C.X j))
{i : ℕ} (hi : IsGreatest {j : ℕ | ¬ C.ExactAt j} i) (hi0 : 0 < i) :
1 ≤ Module.depth R (IsLocalRing.maximalIdeal R) (C.homology i)
Tag 00N1, a proposition
Tag 00N1 in the Stacks Project.
LinearMap.injective_and_exact_iff_forall_rank_eq_and_le_depth_minors, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Depth/ExactnessCriterion/Converse.lean, line 699.
Buchsbaum–Eisenbud exactness criterion. A complex
0 → R^{n_{e+1}} →[φ e] R^{n_e} → ⋯ → R^{n_1} →[φ 0] R^{n_0}of finite free modules over a local Noetherian ring is exact atR^{n_{e+1}}, …, R^{n_1}if and only if, for everyk ≤ e, the rank ofφ k— the largestrwith⋀^r (φ k) ≠ 0— is the alternating sumn_{k+1} - n_{k+2} + ⋯ ± n_{e+1}, and the ideal generated by ther × rminors of the matrix ofφ khas depth at leastk + 1, that is, it isRor contains a regular sequence of lengthk + 1.
public theorem LinearMap.injective_and_exact_iff_forall_rank_eq_and_le_depth_minors
{R : Type*} [CommRing R] [IsNoetherianRing R] [IsLocalRing R] (e : ℕ) (n : ℕ → ℕ)
(φ : ∀ i, (Fin (n (i + 1)) → R) →ₗ[R] (Fin (n i) → R))
(hφ : ∀ k < e, φ k ∘ₗ φ (k + 1) = 0) :
(Function.Injective (φ e) ∧ ∀ k < e, Function.Exact (φ (k + 1)) (φ k)) ↔
∀ k ≤ e, ∃ r : ℕ,
(r : ℤ) = ∑ t ∈ Finset.range (e + 1 - k), (-1) ^ t * (n (k + 1 + t) : ℤ) ∧
IsGreatest {j : ℕ | exteriorPower.map j (φ k) ≠ 0} r ∧
((k + 1 : ℕ) : ℕ∞) ≤ Module.depth R (Ideal.span {x : R |
∃ (ρ : Fin r → Fin (n k)) (γ : Fin r → Fin (n (k + 1))),
((LinearMap.toMatrix' (φ k)).submatrix ρ γ).det = x}) R
Sources
Section10.103 Cohen-Macaulay modules#
Section 10.103 of the Stacks Project, Tag 00N2. 13 tags here are carried by 18 declarations of the repository (all in StacksFrontier) and 1 registered declaration, quoted below from AxiomMath/Stacks at commit 5ed82d14.
Tag 00N3, a definition
Tag 00N3 in the Stacks Project.
Module.IsCohenMacaulayAtMaximalIdeal, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/CohenMacaulay/Defs.lean, line 171. The attribute's comment: “Stated without the Noetherian and finiteness hypotheses, as in tags 00LI, 00NF and 0AAH; the equation is oriented depth_𝔪(M) = dim Supp(M), the spelling of Cohen–Macaulayness already used by tags 00LK, 00NF, 0AAG, 0AAH and 0C6G. The name records that the depth is taken at the maximal ideal, Module.IsCohenMacaulay being Definition 0AAH for a not necessarily local ring. See the module docstring.”. References: EGA 0 (16.5.1), “CM module def”; EGA IV (7.5.3).
Cohen–Macaulay module over a local ring. A module
Mover a local ring(R, 𝔪)is Cohen–Macaulay if the dimension of its support equals its depth,dim(Supp(M)) = depth_𝔪(M), the equality being read inWithBot ℕ∞whereModule.supportDimlives.
public def Module.IsCohenMacaulayAtMaximalIdeal (R : Type*) [CommRing R] [IsLocalRing R]
(M : Type*) [AddCommGroup M] [Module R M] : Prop
Declarations registered for the tag:
IsCohenMacaulayModule, declared in the repository, registered withadd_to_stacksin StacksFrontier/RingTheory/CohenMacaulay/Module/RegularSequenceExtension.lean, line 441 (StacksFrontier): “the definition of a Cohen-Macaulay module”.
Tag 00N4, a lemma
Tag 00N4 in the Stacks Project.
isCohenMacaulayModule_quotient_of_isGoodElement, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/CohenMacaulay/Module/GoodElement.lean, line 258.
(Stacks 00N4, Lemma 10.103.2.) Let
Rbe a Noetherian local ring with maximal idealm, letMbe a Cohen-Macaulay finiteR-module, and letf_1, ..., f_d ∈ m(hered = f.length) be anM-regular sequence withd = dim(Supp(M)). Assumed ≥ 1and letg ∈ mbe good with respect to(M, f_1, ..., f_d). Then: (a)gis a nonzerodivisor onM; (b)M/gMis Cohen-Macaulay, the images off_1, ..., f_{d-1}form an(M/gM)-regular sequence, and this sequence is maximal, equivalentlydim(Supp(M/gM)) = depth(M/gM) = d - 1.
theorem isCohenMacaulayModule_quotient_of_isGoodElement {R : Type*} [CommRing R] [IsLocalRing R]
[IsNoetherianRing R] {M : Type*}
[AddCommGroup M] [Module R M] [Module.Finite R M] (hCM : IsCohenMacaulayModule R M)
(f : List R) (hf : RingTheory.Sequence.IsRegular M f)
(hfm : ∀ x ∈ f, x ∈ IsLocalRing.maximalIdeal R)
(hd : (f.length : WithBot ℕ∞) = Module.supportDim R M) (hd1 : 1 ≤ f.length) (g : R)
(hg : g ∈ IsLocalRing.maximalIdeal R) (hgood : IsGoodElement M f g) :
-- (a) g is a nonzerodivisor on M
IsSMulRegular M g ∧
-- (b) M/gM is Cohen-Macaulay
IsCohenMacaulayModule R (M ⧸ (Ideal.span {g}) • (⊤ : Submodule R M)) ∧
-- the images of f_1, ..., f_{d-1} form an (M/gM)-regular sequence
RingTheory.Sequence.IsRegular (M ⧸ (Ideal.span {g}) • (⊤ : Submodule R M))
(f.take (f.length - 1)) ∧
-- maximality: dim(Supp(M/gM)) = depth(M/gM) = d - 1 (the depth equality is the
-- Cohen-Macaulay conclusion above; here we record the common value is d - 1)
Module.supportDim R (M ⧸ (Ideal.span {g}) • (⊤ : Submodule R M)) =
((f.length - 1 : ℕ) : WithBot ℕ∞)
Tag 00N5, a lemma
Tag 00N5 in the Stacks Project.
isSMulRegular_and_isCohenMacaulayModule_quotSMulTop_of_supportDim_drop, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/CohenMacaulay/Module/RegularSequenceExtension.lean, line 544. References: EGA 0 (16.5.5), “b) ⇒ a), last part”.
Stacks 00N5. Let
Mbe a Cohen-Macaulay module over a Noetherian local ringR, of support dimensione ≥ 1, and letg ∈ mbe such thatdim (Supp M ∩ V(g)) = dim (Supp M) - 1, i.e.dim (Supp (M/gM)) = e - 1. Then
- (a)
gis a nonzerodivisor onM, and- (b)
M/gMis Cohen-Macaulay, of depth one less than the depth ofM.The hypothesis
1 ≤ eis the Stacks hypothesis that the dimension actually drops:e - 1is truncated subtraction inℕ, and fore = 0the displayed condition of the source has no solutions.
theorem isSMulRegular_and_isCohenMacaulayModule_quotSMulTop_of_supportDim_drop
(hCM : IsCohenMacaulayModule R M)
(e : ℕ) (he : Module.supportDim R M = ((e : ℕ∞) : WithBot ℕ∞)) (hpos : 1 ≤ e)
{g : R} (hg : g ∈ maximalIdeal R)
(hdrop : Module.supportDim R (QuotSMulTop g M) = (((e - 1 : ℕ) : ℕ∞) : WithBot ℕ∞)) :
IsSMulRegular M g ∧ IsCohenMacaulayModule R (QuotSMulTop g M) ∧
Module.depthSup R (maximalIdeal R) (QuotSMulTop g M) + 1
= Module.depthSup R (maximalIdeal R) M
Tag 00N6, a proposition
Tag 00N6 in the Stacks Project.
cohenMacaulay_regularSequence_extend, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/CohenMacaulay/Module/RegularSequenceExtension.lean, line 365. References: EGA 0 (16.5.6), “b) ⇒ a)”; EGA 0 (16.5.5), “b) ⇒ a)”; EGA 0 (16.5.7), “CM: sop ⇒ max reg seq”; SGA 2 III (2.6), “CM local, dim condition”.
Stacks Tag 00N6 (Proposition 10.103.4). Let
Rbe a Noetherian local ring with maximal idealm, and letMbe a finite, nonzero, Cohen-MacaulayR-module withdim(Supp(M)) = d. Ifg_1, ..., g_c ∈ m(heregs, withgs.length = candc ≤ d) satisfydim(Supp(M/(g_1,...,g_c)M)) = d - c, then: 1.gsis anM-regular sequence, and 2.gsextends to a maximalM-regular sequence of lengthd(= depth M): there is a listgs'of elements ofmwith(gs ++ gs').length = dsuch thatgs ++ gs'is a maximalM-regular sequence.The hypothesis
dim(Supp(M)) = dwithd : ℕalready forcesM ≠ 0(sincedim(Supp(0)) = ⊥); this is recorded by[Nontrivial M]. The hypothesishcd : c ≤ densures the truncated subtraction(d - c : ℕ)agrees with the intended integerd - c, which is forced to be nonnegative by the mathematical hypothesis on dimensions.
theorem cohenMacaulay_regularSequence_extend
{R : Type*} [CommRing R] [IsNoetherianRing R] [IsLocalRing R]
{M : Type*} [AddCommGroup M] [Module R M] [Module.Finite R M] [Nontrivial M]
(d c : ℕ) (hcd : c ≤ d) (hd : Module.supportDim R M = (d : WithBot ℕ∞))
(hCM : IsCohenMacaulay R M)
(gs : List R) (hgs_len : gs.length = c)
(hgs_mem : ∀ g ∈ gs, g ∈ maximalIdeal R)
(hdim : Module.supportDim R (M ⧸ (Ideal.ofList gs • (⊤ : Submodule R M)))
= ((d - c : ℕ) : WithBot ℕ∞)) :
IsRegular M gs ∧
∃ gs' : List R, (∀ g ∈ gs', g ∈ maximalIdeal R) ∧
(gs ++ gs').length = d ∧
IsMaximalRegularSequence R M (gs ++ gs')
Tag 0C6G, a lemma
Tag 0C6G in the Stacks Project.
Module.depth_eq_supportDim_iff_quotSMulTop, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/CohenMacaulay/Dimension.lean, line 172. The attribute's comment: “Cohen-Macaulayness is written out as the equation depth_𝔪(N) = dim Supp(N) that Definition 00N3 is, rather than as the predicate, so that each side is verbatim the hypothesis of Stacks 0BUS; the two differ by unfolding a definition. It is not spelled as the existence of an M-regular sequence of length dim Supp(M), which needs Stacks 090R(2) to be the same condition.”.
Stacks 0C6G. Let
Rbe a Noetherian local ring with maximal ideal𝔪, letMbe a finiteR-module and letx ∈ 𝔪be a nonzerodivisor onM. ThenMis Cohen-Macaulay if and only ifM/xMis, Cohen-Macaulayness of a moduleNbeing the equalitydepth_𝔪(N) = dim Supp(N)— the definiens ofModule.IsCohenMacaulayAtMaximalIdeal R N(Definition 00N3), written out so that each side is what Stacks 0BUS assumes.
public theorem depth_eq_supportDim_iff_quotSMulTop {R : Type*} [CommRing R] [IsNoetherianRing R]
[IsLocalRing R] {M : Type*} [AddCommGroup M] [Module R M] [Module.Finite R M] {x : R}
(hx : x ∈ IsLocalRing.maximalIdeal R) (hreg : IsSMulRegular M x) :
(depth R (IsLocalRing.maximalIdeal R) M : WithBot ℕ∞) = supportDim R M ↔
(depth R (IsLocalRing.maximalIdeal R) (QuotSMulTop x M) : WithBot ℕ∞) =
supportDim R (QuotSMulTop x M)
isCohenMacaulayModule_iff_isCohenMacaulayModule_quotSMulTop, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/CohenMacaulay/Module/RegularSequenceExtension.lean, line 577.
Stacks 0C6G. Let
Rbe a Noetherian local ring,Ma finiteR-module andx ∈ ma nonzerodivisor onM. ThenMis Cohen-Macaulay if and only ifM/xMis.Both the depth and the dimension of the support drop by exactly one along
x: the first by Stacks090R(depth_quotient_succ_of_isSMulRegular) and the second by Stacks0B52(Module.supportDim_quotSMulTop_succ_eq_supportDim).
theorem isCohenMacaulayModule_iff_isCohenMacaulayModule_quotSMulTop
{x : R} (hx : x ∈ maximalIdeal R) (hreg : IsSMulRegular M x) :
IsCohenMacaulayModule R M ↔ IsCohenMacaulayModule R (QuotSMulTop x M)
Tag 0AAD, a lemma
Tag 0AAD in the Stacks Project.
isCohenMacaulay_iff_of_surjective, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/CohenMacaulay/Module/RegularSequenceExtension.lean, line 866. References: EGA 0 (16.5.3), “surjective ρ”; EGA IV (5.7.10), “special case”.
Stacks 10.103.6 (tag 0AAD). Let
φ : R →+* Sbe a surjective homomorphism of Noetherian local rings, and letNbe a finiteS-module. ThenNis Cohen-Macaulay as anS-module if and only ifNis Cohen-Macaulay as anR-module, where theR-module structure onNis obtained by restriction of scalars alongφ(Module.compHom N φ).Here Noetherianity of
Ris encoded byIsNoetherianRing R(andSis then automatically Noetherian as a quotient, but we also assume it for convenience).
theorem isCohenMacaulay_iff_of_surjective
(R S : Type*) [CommRing R] [IsLocalRing R] [IsNoetherianRing R]
[CommRing S] [IsLocalRing S] [IsNoetherianRing S]
(φ : R →+* S) (hφ : Function.Surjective φ)
(N : Type*) [AddCommGroup N] [Module S N] [Module.Finite S N] :
IsCohenMacaulayPropForm S N ↔
(letI : Module R N := Module.compHom N φ; IsCohenMacaulayPropForm R N)
isCohenMacaulay_iff_of_surjective', a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/CohenMacaulay/Module/RegularSequenceExtension.lean, line 889. References: EGA 0 (16.5.3), “surjective ρ”.
Stacks 10.103.6 (tag 0AAD). Let
φ : R →+* Sbe a surjective homomorphism of Noetherian local rings, and letNbe a finiteS-module. ThenNis Cohen-Macaulay as anS-module if and only ifNis Cohen-Macaulay as anR-module, where theR-module structure onNis obtained by restriction of scalars alongφ(Module.compHom N φ).Here Noetherianity of
Ris encoded byIsNoetherianRing R(andSis then automatically Noetherian as a quotient, but we also assume it for convenience).
theorem isCohenMacaulay_iff_of_surjective'
(R S : Type*) [CommRing R] [IsLocalRing R] [IsNoetherianRing R]
[CommRing S] [IsLocalRing S] [IsNoetherianRing S]
(φ : R →+* S) (hφ : Function.Surjective φ)
(N : Type*) [AddCommGroup N] [Module S N] [Module.Finite S N] :
IsCohenMacaulayModule S N ↔
(letI : Algebra R S := φ.toAlgebra
letI : Module R N := Module.compHom N φ
haveI : IsScalarTower R S N := ⟨fun r s n => mul_smul (φ r) s n⟩
haveI : Module.Finite R S := Module.Finite.of_surjective (Algebra.linearMap R S) hφ
haveI : Module.Finite R N := Module.Finite.trans S N
IsCohenMacaulayModule R N)
Tag 0BUS, a lemma
Tag 0BUS in the Stacks Project.
Module.ringKrullDim_quotient_eq_supportDim_and_minimal_support_of_mem_associatedPrimes, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/CohenMacaulay/Dimension.lean, line 385. The attribute's comment: “Cohen-Macaulayness is spelled out as depth_𝔪(M) = dim Supp(M), the definition Stacks 00N8 unfolds to, there being no predicate for it in this library yet.”. References: EGA 0 (16.5.4); EGA IV (15.4.1), “local form”; EGA IV (7.2.1.1), “more general”.
Stacks 0BUS. Let
Rbe a Noetherian local ring and letMbe a finite Cohen-MacaulayR-module, that is, one whose depth along the maximal ideal equals the dimension of its support. If𝔭is an associated prime ofM, thendim(R/𝔭) = dim Supp(M)and𝔭is a minimal point ofSupp(M).In particular
Mhas no embedded associated primes: sinceAss(M) ⊆ Supp(M), a prime minimal inSupp(M)is minimal inAss(M).
public theorem ringKrullDim_quotient_eq_supportDim_and_minimal_support_of_mem_associatedPrimes
{R : Type*} [CommRing R] [IsNoetherianRing R] [IsLocalRing R] {M : Type*} [AddCommGroup M]
[Module R M] [Module.Finite R M]
(hCM : (depth R (IsLocalRing.maximalIdeal R) M : WithBot ℕ∞) = supportDim R M)
{p : PrimeSpectrum R} (hp : p.asIdeal ∈ associatedPrimes R M) :
ringKrullDim (R ⧸ p.asIdeal) = supportDim R M ∧ Minimal (· ∈ support R M) p
coheight_eq_supportDim_of_mem_associatedPrimes_of_isCohenMacaulayModule, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/CohenMacaulay/Module/RegularSequenceExtension.lean, line 614. References: EGA 0 (16.5.4); EGA IV (7.2.1.1), “more general”.
Stacks 0BUS (EGA Ch. 0, Proposition 16.5.4). Let
Mbe a finite Cohen-Macaulay module over a Noetherian local ringRand letp ∈ Ass(M). Thendim (R/p) = dim (Supp M), andpis a minimal prime of the support ofM. In particularMhas no embedded associated primes.Here
dim (R/p)isOrder.coheight pinPrimeSpectrum R, and minimality ofpin the support is spelled out as: no prime ofSupp Mis strictly belowp.The dimension equality holds because
dim (Supp M) = depth M ≤ dim (R/p)(Stacks0AUJ, the Cohen-Macaulay form of which issupportDim_le_coheight_of_isCohenMacaulayModule) whiledim (R/p) ≤ dim (Supp M)sinceSupp Mis closed under specialization and containsp. Minimality then follows: a primeq ∈ Supp Mwithq < pwould givedim (R/p) + 1 ≤ dim (R/q) ≤ dim (Supp M) = dim (R/p).
theorem coheight_eq_supportDim_of_mem_associatedPrimes_of_isCohenMacaulayModule
(hCM : IsCohenMacaulayModule R M) {p : Ideal R} (hp : p ∈ associatedPrimes R M) :
(Order.coheight (⟨p, hp.1⟩ : PrimeSpectrum R) : WithBot ℕ∞) = Module.supportDim R M ∧
∀ q ∈ Module.support R M, q ≤ (⟨p, hp.1⟩ : PrimeSpectrum R) →
q = (⟨p, hp.1⟩ : PrimeSpectrum R)
Tag 00NF, a definition
Tag 00NF in the Stacks Project.
Module.IsMaximalCohenMacaulay, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/CohenMacaulay/Defs.lean, line 110. The attribute's comment: “Stated without the Noetherian and finiteness hypotheses; see the module docstring.”. References: EGA IV (7.5.3).
Maximal Cohen–Macaulay module. A module
Mover a local ring(R, 𝔪)is maximal Cohen–Macaulay if its depth along𝔪equals the Krull dimension ofR,depth_𝔪(M) = dim(R), which is the largest value the depth of anR-module can take. The source states this forRNoetherian andMfinite; neither hypothesis is needed to state the condition, so both are left to the lemmas.
public def Module.IsMaximalCohenMacaulay (R : Type*) [CommRing R] [IsLocalRing R] (M : Type*)
[AddCommGroup M] [Module R M] : Prop
IsMaximalCohenMacaulayModule, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/CohenMacaulay/Module/RegularSequenceExtension.lean, line 655.
Stacks 00NF. A finite module
Mover a Noetherian local ringRis maximal Cohen-Macaulay ifdepth M = dim R, i.e. if its depth is as large as it can possibly be.
def IsMaximalCohenMacaulayModule (R : Type*) [CommRing R] [IsNoetherianRing R] [IsLocalRing R]
(M : Type*) [AddCommGroup M] [Module R M] [Module.Finite R M] : Prop
Tag 0AAE, a lemma
Tag 0AAE in the Stacks Project.
Module.IsMaximalCohenMacaulay.length_eq_ringKrullDim_of_support_eq_univ, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/CohenMacaulay/Dimension.lean, line 746. The attribute's comment: “The source's M Cohen-Macaulay with Spec(R) = Supp(M) is the conjunction of Module.IsMaximalCohenMacaulay R M (Definition 00NF, i.e. depth_𝔪(M) = dim R) and Module.support R M = Set.univ, the two being equivalent to it as the source itself remarks; a maximal chain of primes is a RelSeries for the covering relation ⋖ on PrimeSpectrum R whose head is minimal and whose last is maximal. See the module docstring.”. References: EGA IV (15.4.1), “special case”.
Maximal chains of primes in a local ring with a Cohen–Macaulay module of full support. Let
Rbe a Noetherian local ring and letMbe a finiteR-module which is Cohen–Macaulay withSupp(M) = Spec(R), that isdepth_𝔪(M) = dim(R)andSupp(M) = Spec(R). Then every maximal chain of primes ofR— one whose steps are covering pairs𝔭_i ⋖ 𝔭_{i + 1}, starting at a minimal prime and ending at a maximal ideal — has lengthdim(R).
public theorem Module.IsMaximalCohenMacaulay.length_eq_ringKrullDim_of_support_eq_univ
{R : Type*} [CommRing R] [IsNoetherianRing R] [IsLocalRing R] {M : Type*} [AddCommGroup M]
[Module R M] [Module.Finite R M] (hM : Module.IsMaximalCohenMacaulay R M)
(hsupp : Module.support R M = Set.univ)
(s : RelSeries {(p, q) : PrimeSpectrum R × PrimeSpectrum R | p ⋖ q})
(hmin : IsMin s.head) (hmax : IsMax s.last) :
(s.length : WithBot ℕ∞) = ringKrullDim R
Tag 0AAF, a lemma
Tag 0AAF in the Stacks Project.
Module.IsMaximalCohenMacaulay.ringKrullDim_eq_height_add_ringKrullDim_quotient_of_support_eq_univ, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/CohenMacaulay/Dimension.lean, line 1173. The attribute's comment: “The source's M Cohen-Macaulay with Spec(R) = Supp(M) is the conjunction of Module.IsMaximalCohenMacaulay R M (Definition 00NF, i.e. depth_𝔪(M) = dim R) and Module.support R M = Set.univ, the two being equivalent to it as the source itself remarks; dim(R_𝔭) is written 𝔭.height. See the module docstring.”. References: EGA 0 (16.5.11); EGA 0 (16.5.10), “(ii), Supp M = Spec A”; EGA IV (15.4.1), “special case”.
The dimension formula in a local ring with a Cohen–Macaulay module of full support. Let
Rbe a Noetherian local ring and letMbe a finiteR-module which is Cohen–Macaulay withSupp(M) = Spec(R), that isdepth_𝔪(M) = dim(R)andSupp(M) = Spec(R). Then every prime𝔭ofRsatisfiesdim(R) = dim(R_𝔭) + dim(R/𝔭), the dimension of the localisationR_𝔭being written as the height of𝔭.
public theorem ringKrullDim_eq_height_add_ringKrullDim_quotient_of_support_eq_univ
{R : Type*} [CommRing R] [IsNoetherianRing R] [IsLocalRing R] {M : Type*} [AddCommGroup M]
[Module R M] [Module.Finite R M] (hM : Module.IsMaximalCohenMacaulay R M)
(hsupp : Module.support R M = Set.univ) (p : Ideal R) [p.IsPrime] :
ringKrullDim R = p.height + ringKrullDim (R ⧸ p)
Tag 0AAG, a lemma
Tag 0AAG in the Stacks Project.
Module.depth_eq_supportDim_of_isLocalizedModule, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/CohenMacaulay/Localization.lean, line 288. The attribute's comment: “Cohen–Macaulayness is spelled out as depth_𝔪(N) = dim Supp(N), the equation Definition 00N3 unfolds to, there being no predicate for it in this library yet; the localization is presented by IsLocalization.AtPrime and IsLocalizedModule; and 𝔭 is required to lie in Supp(M), spelled Nontrivial Mₚ, without which the conclusion is false for the source's own conventions. See the module docstring.”. References: EGA 0 (16.5.10); EGA 0 (16.5.13), “forward direction”.
Cohen–Macaulayness localizes. Let
(R, 𝔪)be a Noetherian local ring andMa finiteR-module which is Cohen–Macaulay, i.e.depth_𝔪(M) = dim Supp(M)(Definition 00N3). Let𝔭 ⊆ Rbe a prime in the support ofM, presented by a localizationRₚofRat𝔭and a localizationf : M →ₗ[R] MₚofMat𝔭. ThenM_𝔭is Cohen–Macaulay overR_𝔭, that isdepth_{𝔭R_𝔭}(M_𝔭) = dim Supp(M_𝔭). Both equations are read inWithBot ℕ∞, whereModule.supportDimlives.
public theorem depth_eq_supportDim_of_isLocalizedModule {R : Type*} [CommRing R]
[IsNoetherianRing R] [IsLocalRing R] (M : Type*) [AddCommGroup M] [Module R M]
[Module.Finite R M]
(hM : (depth R (IsLocalRing.maximalIdeal R) M : WithBot ℕ∞) = supportDim R M)
(p : Ideal R) [p.IsPrime] (Rₚ : Type*) [CommRing Rₚ] [Algebra R Rₚ]
[IsLocalization.AtPrime Rₚ p] [IsLocalRing Rₚ] (Mₚ : Type*) [AddCommGroup Mₚ] [Nontrivial Mₚ]
[Module R Mₚ] [Module Rₚ Mₚ] [IsScalarTower R Rₚ Mₚ] (f : M →ₗ[R] Mₚ)
[IsLocalizedModule p.primeCompl f] :
(depth Rₚ (IsLocalRing.maximalIdeal Rₚ) Mₚ : WithBot ℕ∞) = supportDim Rₚ Mₚ
Tag 0AAH, a definition
Tag 0AAH in the Stacks Project.
Module.IsCohenMacaulay, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/CohenMacaulay/Defs.lean, line 136. The attribute's comment: “The condition is imposed at the primes of Supp(M) rather than at all primes of R, the literal reading being vacuous for the source's own conventions on the zero module; Cohen–Macaulayness at a prime is spelled out as the equation depth_{𝔭R_𝔭}(M_𝔭) = dim Supp(M_𝔭) of Definition 00N3, there being no predicate for it in this library; the localisations are the canonical models; and the Noetherian and finiteness hypotheses are dropped, as in tags 00LI and 00NF. See the module docstring.”. References: EGA 0 (16.5.13); EGA IV (5.7.1), “special case”; EGA IV (7.5.3).
Cohen–Macaulay module. An
R-moduleMis Cohen–Macaulay if for every prime𝔭in the support ofMthe localisationM_𝔭is a Cohen–Macaulay module over the local ringR_𝔭, that isdepth_{𝔭R_𝔭}(M_𝔭) = dim Supp(M_𝔭), the equation being read inWithBot ℕ∞.
public def IsCohenMacaulay (R : Type*) [CommRing R] (M : Type*) [AddCommGroup M]
[Module R M] : Prop
IsLocallyCohenMacaulayModule, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/CohenMacaulay/Module/RegularSequenceExtension.lean, line 695. The attribute's comment: “Quantified over Supp M. The source's literal all-primes wording is inconsistent when M_p = 0, since the zero module is not Cohen-Macaulay here; this is a source erratum, and the definition captures 0AAH in full.”. References: EGA 0 (16.5.13).
Stacks 0AAH. Let
Rbe a Noetherian ring, not necessarily local, and letMbe a finiteR-module. ThenMis Cohen-Macaulay ifM_pis a Cohen-MacaulayR_p-module for every primepin the support ofM. The name records that this is a condition imposed at the points ofSpec R; the Stacks project calls it simply "Cohen-Macaulay", which in this repository is already the name of the local notionIsCohenMacaulayModule.Erratum in the source. Stacks 0AAH literally reads "for all primes
pofR". Taken literally that wording is mathematically inconsistent, because at a primep ∉ Supp Mthe localizationM_pis the zero module, and the zero module is not Cohen-Macaulay: with
IsCohenMacaulayModule R M ↔ depthSup R 𝔪 M = (krullDim (Module.support R M) : WithBot ℕ∞),the right-hand side is
⊥for the zero module (its support is empty) while the left-hand side is a coercion fromℕ∞and so is never⊥. A literal all-primes reading would therefore be satisfied by no module except those of full support, which is plainly not the notion 0AAH intends.This definition quantifies over
Module.support R Mdeliberately, which is the intended content of 0AAH. The restriction is a correction of the source's wording, not a narrowing of the formalization: the class of modules defined here is exactly the class 0AAH describes.
def IsLocallyCohenMacaulayModule (R : Type*) [CommRing R] [IsNoetherianRing R]
(M : Type*) [AddCommGroup M] [Module R M] [Module.Finite R M] : Prop
Tag 0AAI, a lemma
Tag 0AAI in the Stacks Project.
Module.IsCohenMacaulay.mvPolynomial_of_isBaseChange, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/CohenMacaulay/MvPolynomial.lean, line 1484. The attribute's comment: “The base change M ⊗_R R[x_1, …, x_n] is presented abstractly, as an S-module N with an R-linear f : M →ₗ[R] N satisfying IsBaseChange S f for S = MvPolynomial σ R, as in tag 0AAG and in Mathlib's RingTheory.Sequence.IsWeaklyRegular.of_flat_of_isBaseChange; the variables are indexed by an arbitrary finite type rather than by Fin n; and the finiteness of M, which the source keeps inside Definition 0AAH, is assumed explicitly. See the module docstring.”. References: EGA IV (6.3.6); EGA IV (6.11.9), “more general”.
Cohen–Macaulayness ascends along a polynomial extension. Let
Rbe a Noetherian ring, letMbe a finite Cohen–MacaulayR-module, and letN, together with anR-linear mapf : M →ₗ[R] N, be the base change ofMto the polynomial ringS = MvPolynomial σ Rin finitely many variables. ThenNis a Cohen–MacaulayS-module.
public theorem IsCohenMacaulay.mvPolynomial_of_isBaseChange {R : Type*} [CommRing R]
[IsNoetherianRing R] {σ : Type*} [Finite σ] {M : Type*} [AddCommGroup M] [Module R M]
[Module.Finite R M] {N : Type*} [AddCommGroup N] [Module R N] [Module (MvPolynomial σ R) N]
[IsScalarTower R (MvPolynomial σ R) N] {f : M →ₗ[R] N} (hf : IsBaseChange (MvPolynomial σ R) f)
(hM : IsCohenMacaulay R M) : IsCohenMacaulay (MvPolynomial σ R) N
Sources
Section10.104 Cohen-Macaulay rings#
Section 10.104 of the Stacks Project, Tag 00N7. 10 tags here are carried by 10 declarations of the repository (all in StacksFrontier), quoted below from AxiomMath/Stacks at commit 5ed82d14.
Tag 00N8, a definition
Tag 00N8 in the Stacks Project.
IsCohenMacaulayLocalRing, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/CohenMacaulay/Defs.lean, line 201. References: EGA 0 (16.5.13), “local ring”; EGA 0 (16.5.1); EGA IV (5.7.1); EGA IV (7.5.3).
A Noetherian local ring
Ris called Cohen–Macaulay if it is Cohen–Macaulay as a module over itself.
def IsCohenMacaulayLocalRing (R : Type*) [CommRing R] [IsNoetherianRing R] [IsLocalRing R] :
Prop
Tag 02JN, a lemma
Tag 02JN in the Stacks Project.
Module.IsMaximalCohenMacaulay.isRegular_iff_ringKrullDim_add_length_eq_ringKrullDim, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/CohenMacaulay/RegularSequence/DimensionCriterion.lean, line 567. The attribute's comment: “R Cohen–Macaulay is Module.IsMaximalCohenMacaulay R R (Definition 00NF at M = R, equal to Definition 00N8 by Module.supportDim_self_eq_ringKrullDim); the source's dim(R/(x₁, …, x_i)) = dim(R) - i is stated additively, as in ringKrullDim_add_length_eq_ringKrullDim_of_isRegular; the extension is an append, and the local ring structures on the quotients are existentially bound. See the module docstring.”. References: EGA 0 (16.5.6), “M = R (CM local ring)”; EGA 0 (16.5.5), “M = R; a) ⇔ b)”; EGA 0 (16.5.7), “case M = R”; EGA 0 (16.5.9), “special case”; SGA 2 III (2.6), “M = R, CM local”.
Regular sequences in a Cohen–Macaulay local ring are those cutting out the right dimension. Let
(R, 𝔪)be a Noetherian local Cohen–Macaulay ring and letxs = x₁, …, x_cbe a list of elements of𝔪. Thenxsis a regular sequence if and only ifdim(R/(x₁, …, x_c)) + c = dim(R), and in that casexsextends by elements of𝔪to a regular sequence of lengthdim(R)and eachR/(x₁, …, x_i)is a Cohen–Macaulay local ring of dimensiondim(R) - i. The source's subtraction is moved to the other side of the equations, Krull dimensions being valued inWithBot ℕ∞; see the module docstring.
public theorem Module.IsMaximalCohenMacaulay.isRegular_iff_ringKrullDim_add_length_eq_ringKrullDim
{R : Type*} [CommRing R] [IsNoetherianRing R] [IsLocalRing R]
(hR : Module.IsMaximalCohenMacaulay R R) (xs : List R)
(hxs : ∀ x ∈ xs, x ∈ maximalIdeal R) :
(RingTheory.Sequence.IsRegular R xs ↔
ringKrullDim (R ⧸ Ideal.ofList xs) + xs.length = ringKrullDim R) ∧
(RingTheory.Sequence.IsRegular R xs →
(∃ ys : List R, (∀ y ∈ ys, y ∈ maximalIdeal R) ∧
RingTheory.Sequence.IsRegular R (xs ++ ys) ∧
((xs ++ ys).length : WithBot ℕ∞) = ringKrullDim R) ∧
∀ i ≤ xs.length, ∃ _ : IsLocalRing (R ⧸ Ideal.ofList (xs.take i)),
Module.IsMaximalCohenMacaulay (R ⧸ Ideal.ofList (xs.take i))
(R ⧸ Ideal.ofList (xs.take i)) ∧
ringKrullDim (R ⧸ Ideal.ofList (xs.take i)) + i = ringKrullDim R)
Tag 00N9, a lemma
Tag 00N9 in the Stacks Project.
Module.IsMaximalCohenMacaulay.length_eq_ringKrullDim, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/CohenMacaulay/Dimension.lean, line 897. The attribute's comment: “Cohen-Macaulayness of the Noetherian local ring R is the predicate Module.IsMaximalCohenMacaulay R R (Definition 00N8, i.e. depth_𝔪(R) = dim R); a maximal chain of primes is a RelSeries for the covering relation ⋖ on PrimeSpectrum R whose head is minimal and whose last is maximal; the source's name d for dim R is dropped. See the module docstring.”. References: EGA IV (15.4.1), “special case”.
Maximal chains of primes in a Cohen–Macaulay local ring. Let
Rbe a Noetherian local Cohen–Macaulay ring, that isdepth_𝔪(R) = dim(R). Then every maximal chain of primes ofR— one whose steps are covering pairs𝔭_i ⋖ 𝔭_{i + 1}, starting at a minimal prime and ending at the maximal ideal — has lengthdim(R).
public theorem Module.IsMaximalCohenMacaulay.length_eq_ringKrullDim
{R : Type*} [CommRing R] [IsNoetherianRing R] [IsLocalRing R]
(hR : Module.IsMaximalCohenMacaulay R R)
(s : RelSeries {(p, q) : PrimeSpectrum R × PrimeSpectrum R | p ⋖ q})
(hmin : IsMin s.head) (hmax : IsMax s.last) :
(s.length : WithBot ℕ∞) = ringKrullDim R
Tag 00NA, a lemma
Tag 00NA in the Stacks Project.
Module.IsMaximalCohenMacaulay.ringKrullDim_eq_height_add_ringKrullDim_quotient, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/CohenMacaulay/Dimension.lean, line 1321. The attribute's comment: “Cohen-Macaulayness of R is the hypothesis Module.IsMaximalCohenMacaulay R R, i.e. depth_𝔪(R) = dim R (Definition 00N8); dim(R_𝔭) is written 𝔭.height; the source's name d for dim R is dropped.”. References: EGA 0 (16.5.11), “case M = R”; EGA 0 (16.5.10), “(ii) for M = A”; EGA IV (15.4.1), “special case”.
The dimension formula in a Cohen–Macaulay local ring. If
Ris a Noetherian local Cohen–Macaulay ring, that isdepth_𝔪(R) = dim R, then every prime𝔭ofRsatisfiesdim R = dim R_𝔭 + dim R/𝔭, the dimension of the localisationR_𝔭being written as the height of𝔭.
public theorem Module.IsMaximalCohenMacaulay.ringKrullDim_eq_height_add_ringKrullDim_quotient
{R : Type*} [CommRing R] [IsNoetherianRing R] [IsLocalRing R]
(hR : Module.IsMaximalCohenMacaulay R R) (p : Ideal R) [p.IsPrime] :
ringKrullDim R = p.height + ringKrullDim (R ⧸ p)
Tag 00NB, a lemma
Tag 00NB in the Stacks Project.
Module.IsMaximalCohenMacaulay.of_isLocalization_atPrime, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/CohenMacaulay/Localization.lean, line 439. The attribute's comment: “Cohen-Macaulayness of a Noetherian local ring is the predicate Module.IsMaximalCohenMacaulay S S, i.e. depth_{𝔪_S}(S) = dim S (Definition 00N8); the localization is an abstract IsLocalization.AtPrime. See the module docstring.”. References: EGA 0 (16.5.10), “(i) for M = A”; EGA 0 (16.5.13), “partial”; EGA IV (6.11.5), “special case”.
Cohen–Macaulayness localizes at a prime. If
Ris a Noetherian local Cohen–Macaulay ring, that isdepth_𝔪(R) = dim R, then for every prime𝔭ofRthe local ringR_𝔭is Cohen–Macaulay:depth_{𝔭R_𝔭}(R_𝔭) = dim R_𝔭. The localization is anyR-algebraRₚwithIsLocalization.AtPrime Rₚ p.
public theorem Module.IsMaximalCohenMacaulay.of_isLocalization_atPrime {R : Type*} [CommRing R]
[IsNoetherianRing R] [IsLocalRing R] (hR : Module.IsMaximalCohenMacaulay R R) (p : Ideal R)
[p.IsPrime] (Rₚ : Type*) [CommRing Rₚ] [Algebra R Rₚ] [IsLocalization.AtPrime Rₚ p]
[IsLocalRing Rₚ] : Module.IsMaximalCohenMacaulay Rₚ Rₚ
Tag 00NC, a definition
Tag 00NC in the Stacks Project.
IsCohenMacaulayRing, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/CohenMacaulay/Defs.lean, line 243. References: EGA 0 (16.5.13); EGA IV (7.5.3).
A Noetherian ring
Ris Cohen–Macaulay if every localisationR_𝔭at a prime ideal𝔭is a Cohen–Macaulay local ring.
def IsCohenMacaulayRing (R : Type*) [CommRing R] [IsNoetherianRing R] : Prop
Tag 00ND, a lemma
Tag 00ND in the Stacks Project.
Module.IsMaximalCohenMacaulay.of_isLocalization_atPrime_mvPolynomial, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/CohenMacaulay/MvPolynomial.lean, line 1575. The attribute's comment: “Cohen-Macaulayness of a Noetherian local ring is Module.IsMaximalCohenMacaulay S S (Definition 00N8); that of a Noetherian ring (Definition 00NC) is spelled out as a condition on its localizations at primes, the hypothesis at the concrete Localization.AtPrime and the conclusion at an abstract IsLocalization.AtPrime; R[x_1, …, x_n] is MvPolynomial σ R for finite σ. See the module docstring.”. References: EGA IV (6.3.6); EGA IV (6.11.9).
A polynomial algebra over a Noetherian Cohen–Macaulay ring is Cohen–Macaulay. Let
Rbe a Noetherian ring all of whose local ringsR_𝔭are Cohen–Macaulay, and letσbe finite. Then for every prime𝔮ofR[x_i : i ∈ σ], every localizationSofR[x_i : i ∈ σ]at𝔮is a Cohen–Macaulay local ring.
public theorem Module.IsMaximalCohenMacaulay.of_isLocalization_atPrime_mvPolynomial {R : Type*}
[CommRing R] [IsNoetherianRing R]
(hR :
∀ (p : Ideal R) [p.IsPrime],
Module.IsMaximalCohenMacaulay (Localization.AtPrime p) (Localization.AtPrime p))
{σ : Type*} [Finite σ] (q : Ideal (MvPolynomial σ R)) [q.IsPrime] (S : Type*) [CommRing S]
[Algebra (MvPolynomial σ R) S] [IsLocalization.AtPrime S q] [IsLocalRing S] :
Module.IsMaximalCohenMacaulay S S
Tag 00NE, a lemma
Tag 00NE in the Stacks Project.
Module.IsMaximalCohenMacaulay.depth_lt_depth_or_isMaximalCohenMacaulay_of_exact, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/CohenMacaulay/Syzygy.lean, line 338. The attribute's comment: “Cohen-Macaulayness of the Noetherian local ring R is Module.IsMaximalCohenMacaulay R R, i.e. depth_𝔪(R) = dim R (Definition 00N8); R^{⊕n} is an arbitrary finite free module F; the alternative M = 0 is the hypothesis [Nontrivial M]; and depth(K) = depth(M) = d is maximal Cohen-Macaulayness of K and of M. See the module docstring.”.
Depth of a syzygy module over a Cohen–Macaulay local ring. Let
(R, 𝔪)be a Noetherian local Cohen–Macaulay ring, that isdepth_𝔪(R) = dim R, letFbe a finite freeR-module and let0 → K → F → M → 0be a short exact sequence ofR-modules, given byf : K →ₗ[R] Finjective,g : F →ₗ[R] Msurjective andFunction.Exact f g, withMnonzero. Then eitherdepth_𝔪(M) < depth_𝔪(K), ordepth_𝔪(K) = depth_𝔪(M) = dim R, i.e. bothKandMare maximal Cohen–Macaulay.The source states the third alternative as
depth(K) = depth(M) = dand the middle term asR^{⊕n}, and listsM = 0as a first alternative in place of the hypothesis[Nontrivial M].
public theorem IsMaximalCohenMacaulay.depth_lt_depth_or_isMaximalCohenMacaulay_of_exact
{R : Type*} [CommRing R] [IsNoetherianRing R] [IsLocalRing R]
(hR : IsMaximalCohenMacaulay R R) {K F M : Type*} [AddCommGroup K] [Module R K]
[AddCommGroup F] [Module R F] [Module.Free R F] [Module.Finite R F] [AddCommGroup M]
[Module R M] [Nontrivial M] {f : K →ₗ[R] F} {g : F →ₗ[R] M} (h : Function.Exact f g)
(hf : Function.Injective f) (hg : Function.Surjective g) :
depth R (maximalIdeal R) M < depth R (maximalIdeal R) K ∨
(IsMaximalCohenMacaulay R K ∧ IsMaximalCohenMacaulay R M)
Tag 00NG, a lemma
Tag 00NG in the Stacks Project.
Module.IsMaximalCohenMacaulay.exists_composableArrows_exact_free_and_isMaximalCohenMacaulay_left, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/CohenMacaulay/FreeComplex.lean, line 479. The attribute's comment: “Cohen-Macaulayness of the Noetherian local ring R is Module.IsMaximalCohenMacaulay R R, i.e. depth_𝔪(R) = dim R (Definition 00N8); the complex is a ComposableArrows (ModuleCat R) (d - e + 1) whose rightmost object is M, its interior exactness being Exact and the outer two conditions Mono and Epi as in ShortComplex.ShortExact. See the module docstring.”.
Finite free complexes with a maximal Cohen–Macaulay kernel. Let
(R, 𝔪)be a Noetherian local Cohen–Macaulay ring, that isdepth_𝔪(R) = dim R, of dimensiond, and letMbe a finiteR-module of depthe. Then there is an exact complex
0 → K → F_{d-e-1} → ⋯ → F₀ → M → 0of
R-modules with thed - emodulesFᵢfinite free andKmaximal Cohen–Macaulay. The complex is aComposableArrows (ModuleCat R) (d - e + 1)with rightmost objectM, whose exactness at the interior objectsFᵢisS.Exactand whose outer two exactness conditions areMono (S.map' 0 1)andEpi (S.map' (d - e) (d - e + 1)); the moduleKis its leftmost objectS.left.
public theorem exists_composableArrows_exact_free_and_isMaximalCohenMacaulay_left {R : Type u}
[CommRing R] [IsNoetherianRing R] [IsLocalRing R] (hR : Module.IsMaximalCohenMacaulay R R)
(M : ModuleCat.{u} R) [Module.Finite R M] {d e : ℕ} (hd : ringKrullDim R = d)
(he : Module.depth R (maximalIdeal R) M = e) :
∃ S : ComposableArrows (ModuleCat.{u} R) (d - e + 1),
S.right = M ∧ S.Exact ∧ Mono (S.map' 0 1) ∧ Epi (S.map' (d - e) (d - e + 1)) ∧
(∀ i, Module.Finite R (S.obj i)) ∧
(∀ (i : ℕ) (hi : i < d - e), Module.Free R (S.obj' (i + 1))) ∧
Module.IsMaximalCohenMacaulay R S.left
Tag 06LC, a lemma
Tag 06LC in the Stacks Project.
exists_isRegular_map_length_eq_ringKrullDim, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/CohenMacaulay/RegularSequence/LocalRingMap.lean, line 639.
The main theorem (Stacks Tag 06LC). Reduce to the engine lemma at
dthe finite value ofringKrullDim B.
theorem exists_isRegular_map_length_eq_ringKrullDim {A B : Type*} [CommRing A] [CommRing B]
[IsLocalRing A] [IsLocalRing B]
[IsNoetherianRing B] (hCM : IsCohenMacaulayLocalRing B) (φ : A →+* B)
(h : IsLocalRing.maximalIdeal B = (Ideal.map φ (IsLocalRing.maximalIdeal A)).radical) :
∃ f : List A,
(f.length : WithBot ℕ∞) = ringKrullDim B ∧ RingTheory.Sequence.IsRegular B (f.map φ)
Sources
Loading dependency explorer…
The dependency explorer needs JavaScript and its graph data.