15.43 Ascending properties… to 15.63 Spectral sequences for Tor
Section15.43 Ascending properties along regular ring maps#
Section 15.43 of the Stacks Project, Tag 07QJ. 4 tags here are carried by 4 declarations of the repository (all in StacksFrontier), quoted below from AxiomMath/Stacks at commit 5ed82d14.
Tag 07QK, a lemma
Tag 07QK in the Stacks Project.
isReduced_of_isRegularRingHom, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Regular/AscentAlongRegularRingHom.lean, line 79.
If
f : R →+* Sis regular,RandSare Noetherian, andRis reduced, thenSis reduced.
public theorem isReduced_of_isRegularRingHom {R : Type u} {S : Type v} [CommRing R] [CommRing S]
(f : R →+* S) (hf : IsRegularRingHom f) [IsNoetherianRing R]
[IsReduced R] : IsReduced S
Tag 0BFK, a lemma
Tag 0BFK in the Stacks Project.
isNormalRing_of_flat_of_isGeometricallyRegular_fiber, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Regular/AscentAlongRegularRingHom.lean, line 114. References: EGA IV (6.5.4), “(ii), regular fibres”.
Let
R → Sbe a regular map of Noetherian rings. IfRis normal, thenSis normal.
public theorem isNormalRing_of_flat_of_isGeometricallyRegular_fiber
(R : Type u) (S : Type v) [CommRing R] [CommRing S] [Algebra R S]
[IsNoetherianRing R] [IsNoetherianRing S] [Module.Flat R S]
(hR : IsNormalRing R)
(hfiber : ∀ (p : Ideal R) [p.IsPrime],
Algebra.IsGeometricallyRegular p.ResidueField (p.Fiber S)) :
IsNormalRing S
Tag 0H7S, a lemma
Tag 0H7S in the Stacks Project.
isRegularRing_of_isRegularRingHom, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Regular/AscentAlongRegularRingHom.lean, line 143.
The Noetherian target of a regular ring homomorphism from a regular ring is regular.
public theorem isRegularRing_of_isRegularRingHom
{R : Type u} {S : Type v} [CommRing R] [CommRing S]
(f : R →+* S) (hf : IsRegularRingHom f)
[IsNoetherianRing S] [IsRegularRing R] : IsRegularRing S
Tag 0H7T, a lemma
Tag 0H7T in the Stacks Project.
isCohenMacaulayRing_of_isRegularRingHom, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Regular/AscentAlongRegularRingHom.lean, line 211.
If
f : R →+* Sis regular,Sis Noetherian, andRis Noetherian and Cohen–Macaulay, thenSis Cohen–Macaulay.
public theorem isCohenMacaulayRing_of_isRegularRingHom
{R : Type u} {S : Type v} [CommRing R] [CommRing S]
[IsNoetherianRing R] [IsNoetherianRing S] (f : R →+* S)
(hf : IsRegularRingHom f) (hR : IsCohenMacaulayRing R) :
IsCohenMacaulayRing S
Sources
Section15.44 Permanence of properties under completion#
Section 15.44 of the Stacks Project, Tag 07NU. 10 tags here are carried by 10 declarations of the repository (all in StacksFrontier), quoted below from AxiomMath/Stacks at commit 5ed82d14.
Tag 07NU, the section
Tag 07NU in the Stacks Project.
AdicCompletion.noetherian_completeLocal_faithfullyFlat, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/AdicCompletion/PermanenceUnderCompletion.lean, line 34. The attribute's comment: “the completion of a Noetherian local ring”.
The completion of a Noetherian local ring
(A, 𝔪)is a Noetherian local ring with maximal ideal𝔪 A^∧, complete with respect to it, and faithfully flat overA.
theorem noetherian_completeLocal_faithfullyFlat (A : Type*) [CommRing A] [IsNoetherianRing A]
[IsLocalRing A] :
IsNoetherianRing (AdicCompletion (maximalIdeal A) A) ∧
IsLocalRing (AdicCompletion (maximalIdeal A) A) ∧
maximalIdeal (AdicCompletion (maximalIdeal A) A) =
(maximalIdeal A).map (algebraMap A (AdicCompletion (maximalIdeal A) A)) ∧
IsAdicComplete (maximalIdeal (AdicCompletion (maximalIdeal A) A))
(AdicCompletion (maximalIdeal A) A) ∧
Module.FaithfullyFlat A (AdicCompletion (maximalIdeal A) A)
Tag 07NV, a lemma
Tag 07NV in the Stacks Project.
ringKrullDim_adicCompletion_maximalIdeal, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/AdicCompletion/PermanenceOfProperties.lean, line 306. References: EGA IV (7.3.19), “partial”.
Stacks 07NV. A Noetherian local ring and its completion at the maximal ideal have the same Krull dimension.
public theorem ringKrullDim_adicCompletion_maximalIdeal {A : Type*} [CommRing A]
[IsNoetherianRing A] [IsLocalRing A] :
ringKrullDim A = ringKrullDim (AdicCompletion (maximalIdeal A) A)
Tag 07NW, a lemma
Tag 07NW in the Stacks Project.
depth_adicCompletion_maximalIdeal, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/AdicCompletion/PermanenceOfProperties.lean, line 372.
Stacks 07NW. A Noetherian local ring and its completion at the maximal ideal have the same depth.
public theorem depth_adicCompletion_maximalIdeal {A : Type*} [CommRing A]
[IsNoetherianRing A] [IsLocalRing A] :
Module.depth A (maximalIdeal A) A =
Module.depth (AdicCompletion (maximalIdeal A) A)
(maximalIdeal (AdicCompletion (maximalIdeal A) A))
(AdicCompletion (maximalIdeal A) A)
Tag 07NX, a lemma
Tag 07NX in the Stacks Project.
isMaximalCohenMacaulay_iff_adicCompletion_maximalIdeal, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/AdicCompletion/PermanenceOfProperties.lean, line 397.
Stacks 07NX. A Noetherian local ring is Cohen–Macaulay if and only if its completion at the maximal ideal is Cohen–Macaulay.
public theorem isMaximalCohenMacaulay_iff_adicCompletion_maximalIdeal {A : Type*} [CommRing A]
[IsNoetherianRing A] [IsLocalRing A] :
Module.IsMaximalCohenMacaulay A A ↔
Module.IsMaximalCohenMacaulay (AdicCompletion (IsLocalRing.maximalIdeal A) A)
(AdicCompletion (IsLocalRing.maximalIdeal A) A)
Tag 07NY, a lemma
Tag 07NY in the Stacks Project.
isRegularLocalRing_iff_adicCompletion_maximalIdeal, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/AdicCompletion/PermanenceOfProperties.lean, line 419. References: EGA 0 (17.1.5); EGA 0 (17.3.8.1), “local, J = maximal ideal”.
Stacks 07NY. A Noetherian local ring is regular if and only if its completion at the maximal ideal is regular.
public theorem isRegularLocalRing_iff_adicCompletion_maximalIdeal {A : Type*} [CommRing A]
[IsNoetherianRing A] [IsLocalRing A] :
IsRegularLocalRing A ↔
IsRegularLocalRing (AdicCompletion (IsLocalRing.maximalIdeal A) A)
Tag 0AP1, a lemma
Tag 0AP1 in the Stacks Project.
isDiscreteValuationRing_iff_adicCompletion_maximalIdeal, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/AdicCompletion/PermanenceOfProperties.lean, line 440.
Stacks 0AP1. A Noetherian local ring is a discrete valuation ring if and only if its completion at the maximal ideal is a discrete valuation ring.
public theorem isDiscreteValuationRing_iff_adicCompletion_maximalIdeal {A : Type*} [CommRing A]
[IsNoetherianRing A] [IsLocalRing A] :
(∃ _ : IsDomain A, IsDiscreteValuationRing A) ↔
∃ _ : IsDomain (AdicCompletion (IsLocalRing.maximalIdeal A) A),
IsDiscreteValuationRing (AdicCompletion (IsLocalRing.maximalIdeal A) A)
Tag 07NZ, a lemma
Tag 07NZ in the Stacks Project.
reducedness_and_adicCompletion, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/AdicCompletion/PermanenceOfProperties.lean, line 515. References: EGA IV (7.6.1), “more general”.
Stacks 07NZ. For a Noetherian local ring
A, a reduced completion forcesAto be reduced. The converse fails, even for a Noetherian local domain. IfAis Nagata, thenAis reduced if and only if its completion is reduced.
public theorem reducedness_and_adicCompletion (A : Type u) [CommRing A] [IsLocalRing A]
[IsNoetherianRing A] :
(IsAnalyticallyUnramified A → IsReduced A) ∧
(∃ (B : Type v) (_ : CommRing B) (_ : IsLocalRing B) (_ : IsNoetherianRing B)
(_ : IsDomain B), ¬ IsAnalyticallyUnramified B) ∧
(IsNagataRing A → (IsReduced A ↔ IsAnalyticallyUnramified A))
Tag 0FIZ, a lemma
Tag 0FIZ in the Stacks Project.
isNormalRing_of_isNormalRing_adicCompletion, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/AdicCompletion/PermanenceOfProperties.lean, line 547.
A Noetherian local ring is normal if its completion at the maximal ideal is normal.
public theorem isNormalRing_of_isNormalRing_adicCompletion
(A : Type u) [CommRing A] [IsNoetherianRing A] [IsLocalRing A]
(hA : IsNormalRing (AdicCompletion (IsLocalRing.maximalIdeal A) A)) :
IsNormalRing A
Tag 0C4G, a lemma
Tag 0C4G in the Stacks Project.
adicCompletionMap_flat_iff, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/AdicCompletion/PermanenceOfProperties.lean, line 684. References: SGA 3 VIIB (1.3.4), “partial”.
Stacks 0C4G. A local homomorphism of Noetherian local rings is flat if and only if the induced homomorphism between their completions at the maximal ideals is flat.
public theorem adicCompletionMap_flat_iff {A : Type u} {B : Type v}
[CommRing A] [CommRing B] [IsLocalRing A] [IsLocalRing B]
[IsNoetherianRing A] [IsNoetherianRing B] (f : A →+* B) [IsLocalHom f] :
(adicCompletionMap f (IsLocalRing.maximalIdeal A) (IsLocalRing.maximalIdeal B)
(IsLocalRing.map_maximalIdeal_le f)).Flat ↔ f.Flat
Tag 0AGX, a lemma
Tag 0AGX in the Stacks Project.
exists_adicCompletion_ringEquiv_of_flat, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/AdicCompletion/PermanenceOfProperties.lean, line 784.
Stacks 0AGX. A flat local homomorphism which identifies the maximal ideals and induces an isomorphism of residue fields induces an isomorphism of adic completions.
public theorem exists_adicCompletion_ringEquiv_of_flat
{A : Type u} {B : Type v} [CommRing A] [CommRing B] [IsLocalRing A] [IsLocalRing B]
[Algebra A B] [IsLocalHom (algebraMap A B)] [Module.Flat A B]
(hfg : (maximalIdeal A).FG)
(hmax : (maximalIdeal A).map (algebraMap A B) = maximalIdeal B)
(hres : Function.Bijective (ResidueField.map (algebraMap A B))) :
∃ e : AdicCompletion (maximalIdeal A) A ≃+* AdicCompletion (maximalIdeal B) B,
∀ a : A,
e (algebraMap A (AdicCompletion (maximalIdeal A) A) a) =
algebraMap B (AdicCompletion (maximalIdeal B) B) (algebraMap A B a)
Sources
Section15.45 Permanence of properties under étale maps#
Section 15.45 of the Stacks Project, Tag 0AGY. 5 tags here are carried by 8 declarations of the repository (all in StacksFrontier), quoted below from AxiomMath/Stacks at commit 5ed82d14.
Tag 0AGY, the section
Tag 0AGY in the Stacks Project.
RingHom.Etale.ringKrullDim_localization_atPrime_eq, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Etale/Height.lean, line 95. The tag is given by the attribute command at StacksFrontier/RingTheory/Etale/Height.lean, line 103. The attribute's comment: “Lemma 07QP of the section: for an étale ring map A → B and a prime 𝔮 ⊂ B lying over 𝔭 ⊂ A, dim A_𝔭 = dim B_𝔮.”. References: EGA IV (17.6.4), “affine/ring case”; EGA IV (6.1.3), “special case”.
Stacks Tag 07QP. For an étale ring map
f : A →+* B, ifqis a prime ofBlying over the primepofA, then the Krull dimensions of the localizationsA_pandB_qagree.
theorem RingHom.Etale.ringKrullDim_localization_atPrime_eq {A B : Type*} [CommRing A] [CommRing B]
{f : A →+* B} (hf : f.Etale) (p : Ideal A) [p.IsPrime] (q : Ideal B) [q.IsPrime]
(hlo : p = q.comap f) :
ringKrullDim (Localization.AtPrime p) = ringKrullDim (Localization.AtPrime q)
isNoetherianRing_localization_iff_of_etale, a lemma in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Etale/PermanenceOfProperties.lean, line 100. The attribute's comment: “Lemma 0AGZ of the section: for an étale ring map A → B and a prime 𝔮 ⊂ B lying over 𝔭 ⊂ A, A_𝔭 is Noetherian if and only if B_𝔮 is.”.
For an étale map, the local rings at primes lying over one another are Noetherian simultaneously.
public lemma isNoetherianRing_localization_iff_of_etale
{A B : Type*} [CommRing A] [CommRing B] [Algebra A B] [Algebra.Etale A B]
(p : Ideal A) [p.IsPrime] (q : Ideal B) [q.IsPrime] [q.LiesOver p] :
IsNoetherianRing (Localization.AtPrime p) ↔
IsNoetherianRing (Localization.AtPrime q)
isRegularLocalRing_localization_iff_of_etale, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Etale/PermanenceOfProperties.lean, line 132. The tag is given by the attribute command at StacksFrontier/RingTheory/Etale/PermanenceOfProperties.lean, line 161. The attribute's comment: “Lemma 0AH0 of the section: for an étale ring map A → B and a prime 𝔮 ⊂ B lying over 𝔭 ⊂ A, A_𝔭 is regular if and only if B_𝔮 is.”.
Local rings at corresponding primes under an étale ring map are regular simultaneously.
public theorem isRegularLocalRing_localization_iff_of_etale
{A B : Type*} [CommRing A] [CommRing B] [Algebra A B] [Algebra.Etale A B]
(p : Ideal A) [p.IsPrime] (q : Ideal B) [q.IsPrime] [q.LiesOver p] :
IsRegularLocalRing (Localization.AtPrime p) ↔
IsRegularLocalRing (Localization.AtPrime q)
exists_ringEquiv_pi_isDedekindDomain_and_isDiscreteValuationRing_atPrime_of_etale, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Etale/PermanenceOfProperties.lean, line 277. The tag is given by the attribute command at StacksFrontier/RingTheory/Etale/PermanenceOfProperties.lean, line 288. The attribute's comment: “Lemma 0AP2 of the section, its localization clause in corrected form: an étale algebra B over a Dedekind domain A is a finite product of Dedekind domains, and B_𝔮 is a discrete valuation ring for every maximal ideal 𝔮 ⊂ B with 𝔮 ∩ A ≠ (0). As written the clause asserts this for every maximal ideal, which is false: at a prime over (0) the local ring has dimension 0 by Lemma 07QP, see not_isDiscreteValuationRing_localization_of_etale_of_comap_eq_bot and the instance not_forall_isDiscreteValuationRing_localization_rat for the étale map ℚ → ℚ. The source's proof, through Lemmas 07QP, 0AH0 and Algebra 00PD, establishes the corrected clause.”.
An étale algebra over a Dedekind domain is a finite product of Dedekind domains, and its localizations at maximal ideals with nonzero contraction to the base are discrete valuation rings.
public theorem exists_ringEquiv_pi_isDedekindDomain_and_isDiscreteValuationRing_atPrime_of_etale
{A : Type u} {B : Type v} [CommRing A] [CommRing B] [Algebra A B] [Algebra.Etale A B]
[IsDedekindDomain A] :
(∃ (n : ℕ) (D : Fin n → Type v) (_ : ∀ i, CommRing (D i)),
(∀ i, IsDedekindDomain (D i)) ∧ Nonempty (B ≃+* ∀ i, D i)) ∧
∀ q : MaximalSpectrum B, q.asIdeal.comap (algebraMap A B) ≠ ⊥ →
∃ _ : IsDomain (Localization.AtPrime q.asIdeal),
IsDiscreteValuationRing (Localization.AtPrime q.asIdeal)
Tag 0AGZ, a lemma
Tag 0AGZ in the Stacks Project.
isNoetherianRing_localization_iff_of_flat_of_finiteType, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Etale/PermanenceOfProperties.lean, line 67.
For a flat finite type map, the local rings at primes lying over one another are Noetherian simultaneously.
public theorem isNoetherianRing_localization_iff_of_flat_of_finiteType
{A B : Type*} [CommRing A] [CommRing B] [Algebra A B]
[Module.Flat A B] [Algebra.FiniteType A B]
(p : Ideal A) [p.IsPrime] (q : Ideal B) [q.IsPrime] [q.LiesOver p] :
IsNoetherianRing (Localization.AtPrime p) ↔
IsNoetherianRing (Localization.AtPrime q)
Tag 07QP, a lemma
Tag 07QP in the Stacks Project.
RingHom.Etale.ringKrullDim_localization_atPrime_eq, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Etale/Height.lean, line 95. References: EGA IV (17.6.4), “affine/ring case”; EGA IV (6.1.3), “special case”.
Stacks Tag 07QP. For an étale ring map
f : A →+* B, ifqis a prime ofBlying over the primepofA, then the Krull dimensions of the localizationsA_pandB_qagree.
theorem RingHom.Etale.ringKrullDim_localization_atPrime_eq {A B : Type*} [CommRing A] [CommRing B]
{f : A →+* B} (hf : f.Etale) (p : Ideal A) [p.IsPrime] (q : Ideal B) [q.IsPrime]
(hlo : p = q.comap f) :
ringKrullDim (Localization.AtPrime p) = ringKrullDim (Localization.AtPrime q)
Tag 0AH0, a lemma
Tag 0AH0 in the Stacks Project.
isRegularLocalRing_localization_iff_of_etale, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Etale/PermanenceOfProperties.lean, line 132.
Local rings at corresponding primes under an étale ring map are regular simultaneously.
public theorem isRegularLocalRing_localization_iff_of_etale
{A B : Type*} [CommRing A] [CommRing B] [Algebra A B] [Algebra.Etale A B]
(p : Ideal A) [p.IsPrime] (q : Ideal B) [q.IsPrime] [q.LiesOver p] :
IsRegularLocalRing (Localization.AtPrime p) ↔
IsRegularLocalRing (Localization.AtPrime q)
Tag 0AP2, a lemma
Tag 0AP2 in the Stacks Project.
exists_ringEquiv_pi_isDedekindDomain_and_isDiscreteValuationRing_atPrime_of_etale, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Etale/PermanenceOfProperties.lean, line 277.
An étale algebra over a Dedekind domain is a finite product of Dedekind domains, and its localizations at maximal ideals with nonzero contraction to the base are discrete valuation rings.
public theorem exists_ringEquiv_pi_isDedekindDomain_and_isDiscreteValuationRing_atPrime_of_etale
{A : Type u} {B : Type v} [CommRing A] [CommRing B] [Algebra A B] [Algebra.Etale A B]
[IsDedekindDomain A] :
(∃ (n : ℕ) (D : Fin n → Type v) (_ : ∀ i, CommRing (D i)),
(∀ i, IsDedekindDomain (D i)) ∧ Nonempty (B ≃+* ∀ i, D i)) ∧
∀ q : MaximalSpectrum B, q.asIdeal.comap (algebraMap A B) ≠ ⊥ →
∃ _ : IsDomain (Localization.AtPrime q.asIdeal),
IsDiscreteValuationRing (Localization.AtPrime q.asIdeal)
Sources
Section15.46 Permanence of properties under henselization#
Section 15.46 of the Stacks Project, Tag 07QL. 13 tags here are carried by 13 declarations of the repository (all in StacksFrontier), quoted below from AxiomMath/Stacks at commit 5ed82d14.
Tag 07QM, a lemma
Tag 07QM in the Stacks Project.
henselization_faithfullyFlat_and_quotient_basis, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Henselian/PermanenceOfProperties/FlatnessAndReducedness.lean, line 322. The attribute's comment: “The identification _hRsh_res of ResidueField Rsh with κsep is carried, for faithfulness to the source statement, but is not needed by the proof: the basis comes from ind-étaleness of R → Rsh together with [IsSepClosed (ResidueField Rsh)]. Hence the leading underscore on that binder.”.
Stacks 07QM. Let
RhandRshbe respectively a henselization and a strict henselization of a local ringR, with residue field ofRshidentified with a separable closureκsepof the residue field ofR. ThenR → Rh → Rshis faithfully flat, the maximal ideals are generated by those below them, reduction modulo every power of the maximal ideal is unchanged by henselization, and the corresponding reduction ofRshhas a basis obtained by reducing one fixed family of elements ofRsh.
public theorem henselization_faithfullyFlat_and_quotient_basis.{u, v, w, t}
{R : Type u} {Rh : Type w} {Rsh : Type t} {κsep : Type v}
[CommRing R] [IsLocalRing R]
[CommRing Rh] [Algebra R Rh] [HenselianLocalRing Rh]
[IsLocalHom (algebraMap R Rh)]
[CommRing Rsh] [Algebra R Rsh] [Algebra Rh Rsh]
[IsScalarTower R Rh Rsh] [HenselianLocalRing Rsh]
[IsLocalHom (algebraMap Rh Rsh)]
[Field κsep] [Algebra (ResidueField R) κsep]
[IsSepClosure (ResidueField R) κsep] [IsSepClosed (ResidueField Rsh)]
(hRh_ind : (CommAlgCat.etale.{w} R).ind.{w} (CommAlgCat.of R Rh))
(hRh_res : Function.Bijective (ResidueField.map (algebraMap R Rh)))
(hRsh_ind : (CommAlgCat.etale.{t} R).ind.{t} (CommAlgCat.of R Rsh))
(_hRsh_res : ∃ e : κsep ≃+* ResidueField Rsh, ∀ x : R,
e (algebraMap (ResidueField R) κsep (residue R x)) =
residue Rsh (algebraMap R Rsh x)) :
Module.FaithfullyFlat R Rh ∧
Module.FaithfullyFlat Rh Rsh ∧
(maximalIdeal R).map (algebraMap R Rh) = maximalIdeal Rh ∧
(maximalIdeal R).map (algebraMap R Rsh) = maximalIdeal Rsh ∧
(maximalIdeal Rh).map (algebraMap Rh Rsh) = maximalIdeal Rsh ∧
(∀ n : ℕ, Function.Bijective
(Ideal.quotientMap ((maximalIdeal R ^ n).map (algebraMap R Rh))
(algebraMap R Rh) Ideal.le_comap_map)) ∧
∃ (ι : Type t) (x : ι → Rsh), ∀ n : ℕ,
letI : Algebra (R ⧸ maximalIdeal R ^ n)
(Rsh ⧸ (maximalIdeal R ^ n).map (algebraMap R Rsh)) :=
Ideal.Quotient.algebraQuotientOfLEComap Ideal.le_comap_map
∃ b : Module.Basis ι (R ⧸ maximalIdeal R ^ n)
(Rsh ⧸ (maximalIdeal R ^ n).map (algebraMap R Rsh)),
∀ i, b i = Ideal.Quotient.mk _ (x i)
Tag 07QN, a lemma
Tag 07QN in the Stacks Project.
henselization_formallyEtale_and_isFormallySmooth, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Henselian/PermanenceOfProperties/FlatnessAndReducedness.lean, line 503.
The maps from a local ring to its henselization, from its henselization to its strict henselization, and from the original ring to its strict henselization are formally étale. With the discrete topology on each source, they are formally smooth for the adic topology defined by the maximal ideal of the corresponding target.
public theorem henselization_formallyEtale_and_isFormallySmooth
(R Rh Rsh : Type u)
[CommRing R] [IsLocalRing R]
[CommRing Rh] [IsLocalRing Rh] [Algebra R Rh]
[CommRing Rsh] [IsLocalRing Rsh] [Algebra R Rsh] [Algebra Rh Rsh]
[IsScalarTower R Rh Rsh]
(κsep : Type v)
[Field κsep] [Algebra (ResidueField R) κsep]
[IsSepClosure (ResidueField R) κsep]
[IsHenselization R (ResidueField R) Rh]
[IsHenselization R κsep Rsh]
[IsLocalHom (algebraMap Rh Rsh)] :
Algebra.FormallyEtale R Rh ∧
Algebra.FormallyEtale Rh Rsh ∧
Algebra.FormallyEtale R Rsh ∧
(letI : TopologicalSpace R := ⊥
letI : DiscreteTopology R := ⟨rfl⟩
letI := (maximalIdeal Rh).adicTopology
letI : IsTopologicalRing Rh := (maximalIdeal Rh).ringFilterBasis.isTopologicalRing
letI : IsLinearTopology Rh Rh := (maximalIdeal Rh).isLinearTopology
IsFormallySmooth (algebraMap R Rh)) ∧
(letI : TopologicalSpace Rh := ⊥
letI : DiscreteTopology Rh := ⟨rfl⟩
letI := (maximalIdeal Rsh).adicTopology
letI : IsTopologicalRing Rsh := (maximalIdeal Rsh).ringFilterBasis.isTopologicalRing
letI : IsLinearTopology Rsh Rsh := (maximalIdeal Rsh).isLinearTopology
IsFormallySmooth (algebraMap Rh Rsh)) ∧
(letI : TopologicalSpace R := ⊥
letI : DiscreteTopology R := ⟨rfl⟩
letI := (maximalIdeal Rsh).adicTopology
letI : IsTopologicalRing Rsh := (maximalIdeal Rsh).ringFilterBasis.isTopologicalRing
letI : IsLinearTopology Rsh Rsh := (maximalIdeal Rsh).isLinearTopology
IsFormallySmooth (algebraMap R Rsh))
Tag 06LJ, a lemma
Tag 06LJ in the Stacks Project.
isNoetherianRing_iff_henselizations_and_completion_properties, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Henselian/PermanenceOfProperties/NoetherianCompletions.lean, line 641. References: EGA IV (18.6.6), “(iv), (v)”; EGA IV (18.8.8), “(iv)”.
A local ring is Noetherian if and only if its henselization is, if and only if its strict henselization is. In that case the latter two rings have complete Noetherian local completions; completion does not change the henselization, both completion maps are flat, the map from the completed ring to the completed strict henselization is formally smooth, strict henselization commutes with base change to the completion, and completing once more gives the completed strict henselization.
public theorem isNoetherianRing_iff_henselizations_and_completion_properties.{u, v, w}
(R Rh Rsh : Type u)
[CommRing R] [IsLocalRing R]
[CommRing Rh] [IsLocalRing Rh] [Algebra R Rh]
[CommRing Rsh] [IsLocalRing Rsh] [Algebra R Rsh]
(κsep : Type v) [Field κsep] [Algebra (ResidueField R) κsep]
[IsSepClosure (ResidueField R) κsep]
[IsHenselization R (ResidueField R) Rh]
[IsHenselization R κsep Rsh] :
let Rhat := AdicCompletion (maximalIdeal R) R
let Rhhat := AdicCompletion (maximalIdeal Rh) Rh
let Rshhat := AdicCompletion (maximalIdeal Rsh) Rsh
((IsNoetherianRing R ↔ IsNoetherianRing Rh) ∧
(IsNoetherianRing R ↔ IsNoetherianRing Rsh)) ∧
(∀ [Algebra Rh Rsh] [IsScalarTower R Rh Rsh]
[IsLocalHom (algebraMap Rh Rsh)], IsNoetherianRing R →
∃ (hRhatLocal : IsLocalRing Rhat)
(hRhhatLocal : IsLocalRing Rhhat)
(hRshhatLocal : IsLocalRing Rshhat),
letI : IsLocalRing Rhat := hRhatLocal
letI : IsLocalRing Rhhat := hRhhatLocal
letI : IsLocalRing Rshhat := hRshhatLocal
IsNoetherianRing Rhhat ∧ IsNoetherianRing Rshhat ∧
IsAdicComplete (maximalIdeal Rhhat) Rhhat ∧
IsAdicComplete (maximalIdeal Rshhat) Rshhat ∧
∃ e : Rhat ≃+* Rhhat,
(∀ x : R, e (algebraMap R Rhat x) =
algebraMap Rh Rhhat (algebraMap R Rh x)) ∧
RingHom.Flat (algebraMap Rh Rhhat) ∧
RingHom.Flat (algebraMap Rsh Rshhat) ∧
(∃ f : Rhat →+* Rshhat,
(∀ x : R, f (algebraMap R Rhat x) =
algebraMap Rsh Rshhat (algebraMap R Rsh x)) ∧
(letI : TopologicalSpace Rhat := (maximalIdeal Rhat).adicTopology
letI : IsTopologicalRing Rhat :=
(maximalIdeal Rhat).nonarchimedean.toIsTopologicalRing
letI : IsLinearTopology Rhat Rhat := (maximalIdeal Rhat).isLinearTopology
letI : TopologicalSpace Rshhat := (maximalIdeal Rshhat).adicTopology
letI : IsTopologicalRing Rshhat :=
(maximalIdeal Rshhat).nonarchimedean.toIsTopologicalRing
letI : IsLinearTopology Rshhat Rshhat := (maximalIdeal Rshhat).isLinearTopology
IsFormallySmooth.{w} f)) ∧
(let algRhRhat : Algebra Rh Rhat :=
(e.symm.toRingHom.comp (algebraMap Rh Rhhat)).toAlgebra
letI : Algebra Rh Rhat := algRhRhat
∃ hRhatMapLocal : IsLocalHom (algebraMap R Rhat),
letI : IsLocalHom (algebraMap R Rhat) := hRhatMapLocal
∃ algKhat : Algebra (ResidueField Rhat) κsep,
letI : Algebra (ResidueField Rhat) κsep := algKhat
(∀ x : ResidueField R,
algebraMap (ResidueField Rhat) κsep
(ResidueField.map (algebraMap R Rhat) x) =
algebraMap (ResidueField R) κsep x) ∧
IsSepClosure (ResidueField Rhat) κsep ∧
∃ hTensorLocal : IsLocalRing (Rhat ⊗[Rh] Rsh),
letI : IsLocalRing (Rhat ⊗[Rh] Rsh) := hTensorLocal
IsHenselization Rhat κsep (Rhat ⊗[Rh] Rsh) ∧
∃ ef : AdicCompletion (maximalIdeal (Rhat ⊗[Rh] Rsh))
(Rhat ⊗[Rh] Rsh) ≃+* Rshhat,
∀ x : Rsh,
ef (algebraMap (Rhat ⊗[Rh] Rsh)
(AdicCompletion (maximalIdeal (Rhat ⊗[Rh] Rsh))
(Rhat ⊗[Rh] Rsh))
(Algebra.TensorProduct.includeRight x)) =
algebraMap Rsh Rshhat x))
Tag 06DH, a lemma
Tag 06DH in the Stacks Project.
isReduced_tfae_henselization_strictHenselization, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Henselian/PermanenceOfProperties/FlatnessAndReducedness.lean, line 696. References: EGA IV (18.6.9), “(i), special case”; EGA IV (18.8.12), “(i), special case”.
Reducedness of a local ring, its henselization, and its strict henselization are equivalent.
public theorem isReduced_tfae_henselization_strictHenselization
(R Rh Rsh : Type u) [CommRing R] [CommRing Rh] [CommRing Rsh]
[IsLocalRing R] [IsLocalRing Rh] [IsLocalRing Rsh]
[Algebra R Rh] [Algebra R Rsh]
[IsLocalRing.IsHenselization R (IsLocalRing.ResidueField R) Rh]
(κsep : Type v) [Field κsep] [Algebra (IsLocalRing.ResidueField R) κsep]
[IsSepClosure (IsLocalRing.ResidueField R) κsep]
[IsLocalRing.IsHenselization R κsep Rsh] :
List.TFAE [IsReduced R, IsReduced Rh, IsReduced Rsh]
Tag 0ASE, a lemma
Tag 0ASE in the Stacks Project.
nilradical_map_eq_henselization_and_strictHenselization, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Henselian/PermanenceOfProperties/FlatnessAndReducedness.lean, line 778.
The nilradical of a henselization or strict henselization of a local ring is the extension of the nilradical of the base ring.
public theorem nilradical_map_eq_henselization_and_strictHenselization
(R Rh Rsh : Type u) [CommRing R] [CommRing Rh] [CommRing Rsh]
[IsLocalRing R] [IsLocalRing Rh] [IsLocalRing Rsh]
[Algebra R Rh] [Algebra R Rsh]
[IsLocalRing.IsHenselization R (IsLocalRing.ResidueField R) Rh]
(κsep : Type v) [Field κsep] [Algebra (IsLocalRing.ResidueField R) κsep]
[IsSepClosure (IsLocalRing.ResidueField R) κsep]
[IsLocalRing.IsHenselization R κsep Rsh] :
Ideal.map (algebraMap R Rh) (nilradical R) = nilradical Rh ∧
Ideal.map (algebraMap R Rsh) (nilradical R) = nilradical Rsh
Tag 06DI, a lemma
Tag 06DI in the Stacks Project.
isNormalDomain_tfae_henselization_strictHenselization, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Henselian/PermanenceOfProperties/NormalityAndDimension.lean, line 239. References: EGA IV (18.6.9), “(i), special case”; EGA IV (18.8.12), “(i), special case”.
Normality of a local ring, its henselization, and its strict henselization are equivalent.
public theorem isNormalDomain_tfae_henselization_strictHenselization
(R Rh Rsh : Type u) [CommRing R] [CommRing Rh] [CommRing Rsh]
[IsLocalRing R] [IsLocalRing Rh] [IsLocalRing Rsh]
[Algebra R Rh] [Algebra R Rsh]
[IsLocalRing.IsHenselization R (IsLocalRing.ResidueField R) Rh]
(κsep : Type v) [Field κsep] [Algebra (IsLocalRing.ResidueField R) κsep]
[IsSepClosure (IsLocalRing.ResidueField R) κsep]
[IsLocalRing.IsHenselization R κsep Rsh] :
List.TFAE [IsDomain R ∧ IsIntegrallyClosed R,
IsDomain Rh ∧ IsIntegrallyClosed Rh,
IsDomain Rsh ∧ IsIntegrallyClosed Rsh]
Tag 06LK, a lemma
Tag 06LK in the Stacks Project.
ringKrullDim_eq_henselization_eq_strictHenselization, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Henselian/PermanenceOfProperties/NormalityAndDimension.lean, line 351. References: SGA 5 I (3.1.3), “more general”.
A local ring, its henselization, and its strict henselization have equal Krull dimension.
public theorem ringKrullDim_eq_henselization_eq_strictHenselization
(R Rh Rsh : Type u)
[CommRing R] [IsLocalRing R]
[CommRing Rh] [IsLocalRing Rh] [Algebra R Rh]
[CommRing Rsh] [IsLocalRing Rsh] [Algebra R Rsh]
(κpsep : Type v) [Field κpsep] [Algebra (ResidueField R) κpsep]
[IsSepClosure (ResidueField R) κpsep]
[IsHenselization R (ResidueField R) Rh]
[IsHenselization R κpsep Rsh] :
ringKrullDim R = ringKrullDim Rh ∧ ringKrullDim Rh = ringKrullDim Rsh
Tag 06LL, a lemma
Tag 06LL in the Stacks Project.
ringDepth_eq_henselization_eq_strictHenselization, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Henselian/PermanenceOfProperties/DepthRegularityAndFibres.lean, line 193.
A Noetherian local ring, its henselization, and its strict henselization have equal depth.
public theorem ringDepth_eq_henselization_eq_strictHenselization
(R Rh Rsh : Type u)
[CommRing R] [IsLocalRing R] [IsNoetherianRing R]
[CommRing Rh] [IsLocalRing Rh] [Algebra R Rh]
[CommRing Rsh] [IsLocalRing Rsh] [Algebra R Rsh]
(κsep : Type v) [Field κsep] [Algebra (ResidueField R) κsep]
[IsSepClosure (ResidueField R) κsep]
[IsHenselization R (ResidueField R) Rh]
[IsHenselization R κsep Rsh] :
ringDepth R = ringDepth Rh ∧ ringDepth Rh = ringDepth Rsh
Tag 06LM, a lemma
Tag 06LM in the Stacks Project.
isMaximalCohenMacaulay_iff_henselizations, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Henselian/PermanenceOfProperties/DepthRegularityAndFibres.lean, line 231. References: EGA IV (18.6.10), “a)”; EGA IV (18.8.13), “a)”.
A Noetherian local ring is Cohen–Macaulay if and only if its henselization is, and if and only if its strict henselization is.
public theorem isMaximalCohenMacaulay_iff_henselizations
(R Rh Rsh : Type u)
[CommRing R] [IsLocalRing R] [IsNoetherianRing R]
[CommRing Rh] [IsLocalRing Rh] [Algebra R Rh]
[CommRing Rsh] [IsLocalRing Rsh] [Algebra R Rsh]
(ksep : Type v) [Field ksep] [Algebra (ResidueField R) ksep]
[IsSepClosure (ResidueField R) ksep]
[IsHenselization R (ResidueField R) Rh]
[IsHenselization R ksep Rsh] :
(Module.IsMaximalCohenMacaulay R R ↔ Module.IsMaximalCohenMacaulay Rh Rh) ∧
(Module.IsMaximalCohenMacaulay R R ↔ Module.IsMaximalCohenMacaulay Rsh Rsh)
Tag 06LN, a lemma
Tag 06LN in the Stacks Project.
isRegularLocalRing_iff_henselizations, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Henselian/PermanenceOfProperties/DepthRegularityAndFibres.lean, line 291. References: EGA IV (18.6.10); EGA IV (18.8.13).
A Noetherian local ring is regular if and only if its henselization is regular, and if and only if its strict henselization is regular.
public theorem isRegularLocalRing_iff_henselizations
(R Rh Rsh : Type u)
[CommRing R] [IsLocalRing R] [IsNoetherianRing R]
[CommRing Rh] [IsLocalRing Rh] [Algebra R Rh]
[CommRing Rsh] [IsLocalRing Rsh] [Algebra R Rsh]
(κsep : Type v) [Field κsep] [Algebra (ResidueField R) κsep]
[IsSepClosure (ResidueField R) κsep]
[IsHenselization R (ResidueField R) Rh]
[IsHenselization R κsep Rsh] :
(IsRegularLocalRing R ↔ IsRegularLocalRing Rh) ∧
(IsRegularLocalRing R ↔ IsRegularLocalRing Rsh)
Tag 0AP3, a lemma
Tag 0AP3 in the Stacks Project.
isDiscreteValuationRing_iff_henselizations, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Henselian/PermanenceOfProperties/DepthRegularityAndFibres.lean, line 375.
A Noetherian local ring is a discrete valuation ring if and only if its henselization is a discrete valuation ring, and if and only if its strict henselization is a discrete valuation ring.
public theorem isDiscreteValuationRing_iff_henselizations
(R Rh Rsh : Type u)
[CommRing R] [IsLocalRing R] [IsNoetherianRing R]
[CommRing Rh] [IsLocalRing Rh] [Algebra R Rh]
[CommRing Rsh] [IsLocalRing Rsh] [Algebra R Rsh]
(κsep : Type v) [Field κsep] [Algebra (ResidueField R) κsep]
[IsSepClosure (ResidueField R) κsep]
[IsHenselization R (ResidueField R) Rh]
[IsHenselization R κsep Rsh] :
((∃ _ : IsDomain R, IsDiscreteValuationRing R) ↔
∃ _ : IsDomain Rh, IsDiscreteValuationRing Rh) ∧
((∃ _ : IsDomain R, IsDiscreteValuationRing R) ↔
∃ _ : IsDomain Rsh, IsDiscreteValuationRing Rsh)
Tag 0AH1, a lemma
Tag 0AH1 in the Stacks Project.
IsFilteredColimitEtale.exists_fiber_algEquiv_pi_residueField, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Etale/IndEtaleFibres.lean, line 532. References: EGA IV (18.6.9), “more general”; SGA 1 IX (1.8), “decomposition direction”; SGA 1 IX (1.9), “partial, special case”; SGA 4½ Arcata (2.4.2), “Only-if direction”.
Let
Abe a commutative ring andBanA-algebra which is a filtered colimit of étaleA-algebras and which is a Noetherian ring. Letpbe a prime ofA. Then there are finitely many primesq : Fin r → Ideal B, all lying overp, such that:
- the fiber
B ⊗_A κ(p)is isomorphic, as aκ(p)-algebra, to the (finite) product∏ᵢ κ(qᵢ)of the residue fields;- each extension
κ(qᵢ)/κ(p)is separable algebraic;- the
qᵢare exactly the primes ofBlying overp(qis injective and its range is the set of primes lying overp).The
κ(p)-algebra structure on each residue fieldκ(qᵢ)is the canonical one induced byIdeal.ResidueField.mapfrom the structure mapA → B.
theorem IsFilteredColimitEtale.exists_fiber_algEquiv_pi_residueField
{A : Type u} {B : Type v} [CommRing A] [CommRing B] [Algebra A B] [IsNoetherianRing B]
(hcolim : IsFilteredColimitEtale.{u, v, x, y} A B) (p : Ideal A) [p.IsPrime] :
∃ (r : ℕ) (q : Fin r → Ideal B) (hq : ∀ i, (q i).IsPrime)
(hlo : ∀ i, (q i).LiesOver p),
-- (1) product decomposition of the fiber algebra, and
-- (2) separable algebraicity of each factor:
(letI : ∀ i, (q i).IsPrime := hq
letI : ∀ i, Algebra p.ResidueField (q i).ResidueField := fun i =>
(Ideal.ResidueField.map p (q i) (algebraMap A B) (hlo i).over).toAlgebra
Nonempty
(TensorProduct A p.ResidueField B ≃ₐ[p.ResidueField]
(∀ i, (q i).ResidueField)) ∧
(∀ i, Algebra.IsSeparable p.ResidueField (q i).ResidueField) ∧
(∀ i, Algebra.IsAlgebraic p.ResidueField (q i).ResidueField)) ∧
-- the `qᵢ` are precisely the primes of `B` lying over `p`:
Function.Injective q ∧
(∀ q' : Ideal B, ∀ _ : q'.IsPrime, q'.LiesOver p ↔ ∃ i, q i = q')
Tag 07QQ, a lemma
Tag 07QQ in the Stacks Project.
henselization_fibres_equiv_pi_residueFields, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Henselian/PermanenceOfProperties/DepthRegularityAndFibres.lean, line 421. References: EGA IV (18.8.12), “(ii), special case”.
Let
RhandRshbe respectively a henselization and a strict henselization of a Noetherian local ringR. Over every primepofR, their fibres are finite products of the residue fields at exactly the primes lying overp, and all the corresponding residue-field extensions are separable algebraic.
public theorem henselization_fibres_equiv_pi_residueFields
(R Rh Rsh : Type u) [CommRing R] [IsLocalRing R] [IsNoetherianRing R]
[CommRing Rh] [IsLocalRing Rh] [Algebra R Rh]
[CommRing Rsh] [IsLocalRing Rsh] [Algebra R Rsh]
[IsHenselization R (ResidueField R) Rh]
(κsep : Type v) [Field κsep] [Algebra (ResidueField R) κsep]
[IsSepClosure (ResidueField R) κsep]
[IsHenselization R κsep Rsh]
(p : Ideal R) [p.IsPrime] :
(∃ (t : ℕ) (q : Fin t → Ideal Rh) (hq : ∀ i, (q i).IsPrime)
(hlo : ∀ i, (q i).LiesOver p),
(letI : ∀ i, (q i).IsPrime := hq
letI : ∀ i, Algebra p.ResidueField (q i).ResidueField := fun i ↦
(Ideal.ResidueField.map p (q i) (algebraMap R Rh) (hlo i).over).toAlgebra
Nonempty
(TensorProduct R p.ResidueField Rh ≃ₐ[p.ResidueField]
(∀ i, (q i).ResidueField)) ∧
(∀ i, Algebra.IsSeparable p.ResidueField (q i).ResidueField) ∧
(∀ i, Algebra.IsAlgebraic p.ResidueField (q i).ResidueField)) ∧
Function.Injective q ∧
(∀ q' : Ideal Rh, ∀ _ : q'.IsPrime, q'.LiesOver p ↔ ∃ i, q i = q')) ∧
(∃ (s : ℕ) (r : Fin s → Ideal Rsh) (hr : ∀ i, (r i).IsPrime)
(hlo : ∀ i, (r i).LiesOver p),
(letI : ∀ i, (r i).IsPrime := hr
letI : ∀ i, Algebra p.ResidueField (r i).ResidueField := fun i ↦
(Ideal.ResidueField.map p (r i) (algebraMap R Rsh) (hlo i).over).toAlgebra
Nonempty
(TensorProduct R p.ResidueField Rsh ≃ₐ[p.ResidueField]
(∀ i, (r i).ResidueField)) ∧
(∀ i, Algebra.IsSeparable p.ResidueField (r i).ResidueField) ∧
(∀ i, Algebra.IsAlgebraic p.ResidueField (r i).ResidueField)) ∧
Function.Injective r ∧
(∀ r' : Ideal Rsh, ∀ _ : r'.IsPrime, r'.LiesOver p ↔ ∃ i, r i = r'))
Sources
Section15.47 Field extensions, revisited#
Section 15.47 of the Stacks Project, Tag 07P0. 5 tags here are carried by 7 declarations of the repository (all in StacksFrontier) and 2 registered declarations, quoted below from AxiomMath/Stacks at commit 5ed82d14.
Tag 07P1, a definition
Tag 07P1 in the Stacks Project.
Declarations registered for the tag:
_root_.PIndependentregistered withadd_to_stacksin StacksFrontier/FieldTheory/PBasisDifferentials.lean, line 121 (StacksFrontier): “p-independent families”._root_.PBasisregistered withadd_to_stacksin StacksFrontier/FieldTheory/PBasisDifferentials.lean, line 125 (StacksFrontier): “p-bases”.
Tag 07P2, a lemma
Tag 07P2 in the Stacks Project.
exists_pBasis_extending, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/FieldTheory/PBasis.lean, line 1319. The attribute's comment: “extension to p-basis”. References: EGA 0 (21.4.2), “more general”.
Stacks 07P2 (extension to p-basis). Every
p-independent family{x_i}overkextends to ap-basis: there is a subsetS ⊆ Kcontaining the range ofxwhose inclusionS → Kis ap-basis ofKoverk.
theorem exists_pBasis_extending
{I : Type*} (x : I → K) (p : ℕ) [hp : Fact (Nat.Prime p)] [CharP K p]
(hx : PIndependent k x p) :
∃ S : Set K, Set.range x ⊆ S ∧ PBasis k (Subtype.val : S → K) p
exists_pBasis, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/FieldTheory/PBasis.lean, line 1341. The attribute's comment: “existence of p-basis”. References: EGA 0 (21.4.2).
Stacks 07P2 (existence of p-basis). There is a subset of
Kthat is ap-basis ofKoverk.
theorem exists_pBasis (p : ℕ) [hp : Fact (Nat.Prime p)] [CharP K p] :
∃ S : Set K, PBasis k (Subtype.val : S → K) p
pIndependent_iff_linearIndependent_differentials, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/FieldTheory/PBasis.lean, line 1368. The attribute's comment: “(1)<=>(2)”. References: EGA 0 (21.2.4), “partial”; EGA 0 (21.2.5), “partial”; EGA 0 (21.4.5); EGA 0 (21.4.6), “(b) ⇔ (c)”.
Stacks 07P2 ((1)<=>(2)). For a family
x : I → K, the elements{x_i}arep-independent overkif and only if the differentials{d x_i}areK-linearly independent inΩ_{K/k}.
theorem pIndependent_iff_linearIndependent_differentials
{I : Type*} (x : I → K) (p : ℕ) [hp : Fact (Nat.Prime p)] [CharP K p] :
PIndependent k x p ↔
LinearIndependent K (fun i => (KaehlerDifferential.D k K) (x i))
pBasis_iff_basis_differentials, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/FieldTheory/PBasis.lean, line 1402. The attribute's comment: “(a)<=>(b)”. References: EGA 0 (21.4.5), “p-base case”; EGA 0 (21.1.7), “a)⇒c), special case”; EGA 0 (21.2.4), “special case”; EGA 0 (21.2.5), “special case”; EGA 0 (21.4.4), “more general”.
Stacks 07P2 ((a)<=>(b)). For a family
x : I → K, the elements{x_i}form ap-basis ofKoverkif and only if the differentials{d x_i}form aK-basis ofΩ_{K/k}.
theorem pBasis_iff_basis_differentials
{I : Type*} (x : I → K) (p : ℕ) [hp : Fact (Nat.Prime p)] [CharP K p] :
PBasis k x p ↔
(LinearIndependent K (fun i => (KaehlerDifferential.D k K) (x i)) ∧
⊤ ≤ Submodule.span K
(Set.range (fun i => (KaehlerDifferential.D k K) (x i))))
Tag 07P3, a lemma
Tag 07P3 in the Stacks Project.
intersection_subfields_07P3, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/FieldTheory/DirectedSubfields.lean, line 171. References: EGA 0 (21.8.1).
Let
K/kbe a field extension and{K_α}_{α ∈ A}a nonempty directed family of intermediate fields with intersectionk. Then for everynand everyK-subspaceV ⊆ K^{⊕n},Vmeetsk^{⊕n}nontrivially iffVmeets everyK_α^{⊕n}nontrivially.Here: *
hinf : ⨅ α, Kα α = ⊥encodes the conditionk = ⋂_α K_α(the intermediate field⊥is the copy ofkinK); *hdir : ∀ α α', ∃ α'', Kα α'' ≤ Kα α ⊓ Kα α'encodes downward directedness of the family; * the conditionk ⊆ K_αis automatic fromKα α : IntermediateField k K.
theorem intersection_subfields_07P3 {A : Type*} [Nonempty A]
(Kα : A → IntermediateField k K)
(hinf : ⨅ α, Kα α = ⊥)
(hdir : ∀ α α', ∃ α'', Kα α'' ≤ Kα α ⊓ Kα α')
(n : ℕ) (V : Submodule K (Fin n → K)) :
NonzeroSubset ((V : Set (Fin n → K)) ∩ coordSubset n (⊥ : IntermediateField k K)) ↔
∀ α, NonzeroSubset ((V : Set (Fin n → K)) ∩ coordSubset n (Kα α))
Tag 07P4, a lemma
Tag 07P4 in the Stacks Project.
iInf_ker_kaehlerDifferentialMap_eq_bot_and_frobeniusFieldRange_eq_iInf, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/FieldTheory/PBasisDifferentials.lean, line 631. References: EGA 0 (21.8.5), “k₀=K^p, L/K finite”; EGA 0 (21.8.3), “a) => c), k₀=F_p”.
Let
Kαbe a downward-directed family of subfields of a fieldKof characteristicp, each containing thep-th powers, and suppose their intersection is exactly the subfield ofp-th powers. Then the kernels of the canonical maps fromΩ[K/(ZMod p)]toΩ[K/(Kα α)]have trivial intersection. Moreover, after any finite extensionL / K, the intersection of the compositaL^p KαisL^p.
public theorem iInf_ker_kaehlerDifferentialMap_eq_bot_and_frobeniusFieldRange_eq_iInf
{p : ℕ} [Fact p.Prime] {K : Type u} [Field K] [CharP K p] [Algebra (ZMod p) K]
{A : Type v} (Kα : A → IntermediateField (ZMod p) K)
(hpow : ∀ α, (frobenius K p).fieldRange ≤ (Kα α).toSubfield)
(hiInf : (frobenius K p).fieldRange = ⨅ α, (Kα α).toSubfield)
(hdir : ∀ α α', ∃ α'', Kα α'' ≤ Kα α ⊓ Kα α') :
(⨅ α, LinearMap.ker (KaehlerDifferential.map (ZMod p) (Kα α) K K)) = ⊥ ∧
∀ (L : Type w) [Field L] [Algebra K L] [FiniteDimensional K L],
letI : CharP L p :=
charP_of_injective_algebraMap (algebraMap K L).injective p
(frobenius L p).fieldRange =
⨅ α, (frobenius L p).fieldRange ⊔ (Kα α).toSubfield.map (algebraMap K L)
Tag 07P5, a lemma
Tag 07P5 in the Stacks Project.
fractionFields_powerSeries_polynomial_subrings, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/FieldTheory/PBasisDifferentials.lean, line 1230. References: EGA 0 (21.8.8), “∩K_J=K^p, A_J⊂A finite”.
Let
xbe a p-basis of a fieldkof characteristicp. InsideA = k[[X₁, ..., Xₙ]][Y₁, ..., Yₘ], letAJbe obtained by taking coefficients in the subfield generated byk^pand thex ifori ∉ J, and replacing everyXandYby its p-th power. The fraction fields of theAJform a downward-directed family whose intersection is the p-th-power subfield and eachAJ ⊆ Ais finite.
public theorem fractionFields_powerSeries_polynomial_subrings
{p : ℕ} [Fact p.Prime] {k : Type u} [Field k] [CharP k p]
[Algebra (ZMod p) k] {I : Type v} (x : I → k)
(hx : _root_.PBasis (ZMod p) x p) (n m : ℕ) :
let kJ : Finset I → Subfield k := fun J =>
(frobenius k p).fieldRange ⊔ Subfield.closure (x '' {i | i ∉ J})
let A := MvPolynomial (Fin m) (MvPowerSeries (Fin n) k)
letI : IsDomain A := NoZeroDivisors.to_isDomain A
letI : CharP A p :=
charP_of_injective_algebraMap (algebraMap k A).injective p
let K := FractionRing A
letI : CharP K p :=
charP_of_injective_algebraMap (IsFractionRing.injective A K) p
let toA : (J : Finset I) →
MvPolynomial (Fin m) (MvPowerSeries (Fin n) ↥(kJ J)) →+* A := fun J =>
MvPolynomial.eval₂Hom
((MvPolynomial.C : MvPowerSeries (Fin n) k →+* A).comp
((MvPowerSeries.expand p (Nat.Prime.ne_zero Fact.out)).toRingHom.comp
(MvPowerSeries.map (kJ J).subtype)))
(fun i => MvPolynomial.X i ^ p)
let AJ : Finset I → Subring A := fun J => RingHom.range (toA J)
let KJ : Finset I → IntermediateField (ZMod p) K := fun J =>
IntermediateField.adjoin (ZMod p) ((algebraMap A K) '' (AJ J : Set A))
(∀ J, (frobenius K p).fieldRange ≤ (KJ J).toSubfield) ∧
(frobenius K p).fieldRange = ⨅ J, (KJ J).toSubfield ∧
(∀ J J', ∃ J'', KJ J'' ≤ KJ J ⊓ KJ J') ∧
∀ J, Module.Finite (AJ J) A
Sources
Section15.48 The singular locus#
Section 15.48 of the Stacks Project, Tag 07P6. 6 tags here are carried by 8 declarations of the repository (all in StacksFrontier), quoted below from AxiomMath/Stacks at commit 5ed82d14.
Tag 07P7, a definition
Tag 07P7 in the Stacks Project.
IsJ0, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Regular/SingularLocus.lean, line 172. The attribute's comment: “(1)”.
Stacks 07P7 (1). A commutative ring is J-0 if its regular locus contains a nonempty open subset.
public def IsJ0 (R : Type u) [CommRing R] : Prop
IsJ1, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Regular/SingularLocus.lean, line 178. The attribute's comment: “(2)”.
Stacks 07P7 (2). A commutative ring is J-1 if its regular locus is open.
public def IsJ1 (R : Type u) [CommRing R] : Prop
IsJ2, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Regular/SingularLocus.lean, line 184. The attribute's comment: “(3)”.
Stacks 07P7 (3). A commutative ring is J-2 if every finite type algebra over it is J-1.
public def IsJ2 (R : Type u) [CommRing R] : Prop
Tag 07P8, a lemma
Tag 07P8 in the Stacks Project.
isJ1_iff_zeroLocus_inter_regularLocus_contains_nonempty_open, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Regular/SingularLocus.lean, line 205.
Stacks 07P8. A Noetherian ring is J-1 if and only if, for every point
pof its regular locus,V(p)intersected with the regular locus contains a nonempty open subset ofV(p).
public theorem isJ1_iff_zeroLocus_inter_regularLocus_contains_nonempty_open
(R : Type u) [CommRing R] [IsNoetherianRing R] :
IsJ1 R ↔
∀ p : PrimeSpectrum R,
IsRegularLocalRing (Localization.AtPrime p.asIdeal) →
∃ U : Set (PrimeSpectrum R), IsOpen U ∧
(U ∩ PrimeSpectrum.zeroLocus p.asIdeal).Nonempty ∧
U ∩ PrimeSpectrum.zeroLocus p.asIdeal ⊆
PrimeSpectrum.zeroLocus p.asIdeal ∩
{x | IsRegularLocalRing (Localization.AtPrime x.asIdeal)}
Tag 07P9, a lemma
Tag 07P9 in the Stacks Project.
isJ1_of_forall_quotient_isJ0, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Regular/SingularLocus.lean, line 516.
Stacks 07P9. A Noetherian ring is J-1 if its quotient by every prime ideal is J-0.
public theorem isJ1_of_forall_quotient_isJ0 (R : Type u) [CommRing R] [IsNoetherianRing R]
(h : ∀ p : PrimeSpectrum R, IsJ0 (R ⧸ p.asIdeal)) :
IsJ1 R
Tag 07PA, a lemma
Tag 07PA in the Stacks Project.
isJ0_of_injective_finiteType, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Regular/SingularLocus.lean, line 613.
If an injective finite type map sends a Noetherian domain into a J-0 domain, then the source is J-0.
public theorem isJ0_of_injective_finiteType
(R : Type u) (S : Type v) [CommRing R] [CommRing S] [IsDomain R] [IsDomain S]
[IsNoetherianRing R] [Algebra R S] [Algebra.FiniteType R S]
(hinj : Function.Injective (algebraMap R S)) (hS : IsJ0 S) :
IsJ0 R
Tag 07PB, a lemma
Tag 07PB in the Stacks Project.
isJ0_of_finiteType_injective_of_isSeparable_fractionRing, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Regular/SingularLocus.lean, line 731. References: EGA IV (6.12.4.1).
Stacks 07PB. Let
R → Sbe an injective finite type map of domains. IfRis Noetherian and J-0 and the induced extension of fraction fields is separable, thenSis J-0.
public theorem isJ0_of_finiteType_injective_of_isSeparable_fractionRing
(R S : Type*) [CommRing R] [IsNoetherianRing R] [IsDomain R]
[CommRing S] [IsDomain S] [Algebra R S] [Algebra.FiniteType R S]
(hR : IsJ0 R) (hRS : Function.Injective (algebraMap R S))
(hsep :
letI : FaithfulSMul R S := (faithfulSMul_iff_algebraMap_injective R S).mpr hRS
letI : Algebra (FractionRing R) (FractionRing S) :=
FractionRing.liftAlgebra R (FractionRing S)
Algebra.IsSeparableExtension (FractionRing R) (FractionRing S)) :
IsJ0 S
Tag 07PC, a lemma
Tag 07PC in the Stacks Project.
isJ2_tfae, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Regular/SingularLocus.lean, line 1014. References: EGA IV (6.12.4).
Stacks 07PC. For a Noetherian ring
R, the following are equivalent:Ris J-2; every finite type domain algebra overRis J-0; every finite algebra overRis J-1; and every finite purely inseparable extension of a residue field ofRis the fraction field of a finite J-0 domain algebra overR.
public theorem isJ2_tfae (R : Type u) [CommRing R] [IsNoetherianRing R] :
List.TFAE
[ IsJ2 R,
∀ (S : Type u) [CommRing S] [Algebra R S] [Algebra.FiniteType R S] [IsDomain S],
IsJ0 S,
∀ (S : Type u) [CommRing S] [Algebra R S] [Module.Finite R S],
IsJ1 S,
∀ (p : PrimeSpectrum R) (L : Type u) [Field L]
[Algebra p.asIdeal.ResidueField L] [Module.Finite p.asIdeal.ResidueField L]
[IsPurelyInseparable p.asIdeal.ResidueField L],
letI : Algebra R L :=
((algebraMap p.asIdeal.ResidueField L).comp
(algebraMap R p.asIdeal.ResidueField)).toAlgebra
∃ R' : Subalgebra R L,
Module.Finite R R' ∧ IsJ0 R' ∧ IsFractionRing R' L ]
Sources
Section15.49 Regularity and derivations#
Section 15.49 of the Stacks Project, Tag 07PD. 7 tags here are carried by 11 declarations of the repository (all in StacksFrontier), quoted below from AxiomMath/Stacks at commit 5ed82d14.
Tag 07PE, a lemma
Tag 07PE in the Stacks Project.
Stacks.DerivationExtension.locDeriv, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Derivation/Extension.lean, line 111. The attribute's comment: “(2): the extension itself”.
The derivation of the localization
LextendingDalongR → L.
noncomputable def locDeriv : Derivation ℤ L L
Stacks.DerivationExtension.locDeriv_extendsAlong, a lemma in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Derivation/Extension.lean, line 155. The attribute's comment: “(2): the extension property of locDeriv”.
locDeriv D S LextendsDalong the canonical mapR → L.
lemma locDeriv_extendsAlong : ExtendsAlong (algebraMap R L) D (locDeriv D S L)
Stacks.DerivationExtension.locDeriv_unique, a lemma in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Derivation/Extension.lean, line 160. The attribute's comment: “(2): uniqueness of locDeriv”.
locDeriv D S Lis the only derivation ofLextendingDalongR → L.
lemma locDeriv_unique (Dloc : Derivation ℤ L L)
(hDloc : ExtendsAlong (algebraMap R L) D Dloc) : Dloc = locDeriv D S L
Stacks.DerivationExtension.exists_derivation_adicCompletion, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Derivation/Extension.lean, line 232. The attribute's comment: “(1)”.
A derivation
Don a ringRextends, along the canonical mapR → AdicCompletion I R, to a derivation of theI-adic completion ofR.
theorem exists_derivation_adicCompletion
(R : Type*) [CommRing R] (D : Derivation ℤ R R) (I : Ideal R) :
∃ Dcompl : Derivation ℤ (AdicCompletion I R) (AdicCompletion I R),
ExtendsAlong (algebraMap R (AdicCompletion I R)) D Dcompl
Stacks.DerivationExtension.exists_derivation_clear_denominators, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Derivation/Extension.lean, line 361. The attribute's comment: “(3)”.
Let
R'be a finite typeR-algebra and letg ∈ Rbe an element whose image inR'is a nonzerodivisor, such that the induced mapf : R_g → R'_gbetween the localizations at the powers ofgis bijective. Then for someN : ℕthe derivationg ^ N • Dextends, alongR → R', to a derivation ofR'.
theorem exists_derivation_clear_denominators
{R R' : Type*} [CommRing R] [CommRing R'] [Algebra R R']
[Algebra.FiniteType R R']
(D : Derivation ℤ R R) (g : R)
(Rg : Type*) [CommRing Rg] [Algebra R Rg]
[IsLocalization (Submonoid.powers g) Rg]
(R'g : Type*) [CommRing R'g] [Algebra R' R'g]
[IsLocalization (Submonoid.powers ((algebraMap R R') g)) R'g]
(f : Rg →+* R'g)
(hf_comm : f.comp (algebraMap R Rg) = (algebraMap R' R'g).comp (algebraMap R R'))
(hf_iso : Function.Bijective f)
(hg_nzd : (algebraMap R R') g ∈ nonZeroDivisors R') :
∃ (N : ℕ) (Δ : Derivation ℤ R' R'),
ExtendsAlong (algebraMap R R') (g ^ N • D) Δ
Tag 07PF, a lemma
Tag 07PF in the Stacks Project.
isRegularRing_quotient_span_singleton_of_isUnit_derivation, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Derivation/Regularity.lean, line 248.
The Jacobian criterion for hypersurfaces: if some derivation sends
fto a unit modulo(f), then the quotient of a regular ring by(f)is regular.
public theorem isRegularRing_quotient_span_singleton_of_isUnit_derivation
{R : Type*} [CommRing R] [IsRegularRing R] (f : R) (D : Derivation ℤ R R)
(hD : IsUnit (Ideal.Quotient.mk (Ideal.span {f}) (D f))) :
IsRegularRing (R ⧸ Ideal.span {f})
Tag 0GEE, a lemma
Tag 0GEE in the Stacks Project.
isRegularLocalRing_quotient_span_range_and_isRegular_of_isUnit_det_derivation, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Derivation/Regularity.lean, line 327.
A finite family in the maximal ideal of a regular local ring is a regular sequence and has regular local quotient if its values under a family of derivations form a matrix with unit determinant.
public theorem isRegularLocalRing_quotient_span_range_and_isRegular_of_isUnit_det_derivation
{R : Type*} [CommRing R] [IsRegularLocalRing R] {m : ℕ} (f : Fin m → R)
(hf : ∀ i, f i ∈ IsLocalRing.maximalIdeal R) (D : Fin m → Derivation ℤ R R)
(hD : IsUnit (Matrix.det fun i j => D i (f j))) :
IsRegularLocalRing (R ⧸ Ideal.span (Set.range f)) ∧
RingTheory.Sequence.IsRegular R (List.ofFn f)
Tag 07PG, a lemma
Tag 07PG in the Stacks Project.
isRegularRing_quotient_polynomial_sub_C_of_isUnit_derivation, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Derivation/Regularity.lean, line 407.
If a derivation of a regular ring sends
fto a unit, then the quotient of the polynomial ring byp(X) - fis regular for every integer polynomialp. In particular, this applies top = X ^ nfor every positive integern.
public theorem isRegularRing_quotient_polynomial_sub_C_of_isUnit_derivation
{R : Type*} [CommRing R] [IsRegularRing R] (f : R) (D : Derivation ℤ R R)
(hD : IsUnit (D f)) (p : Polynomial ℤ) :
IsRegularRing
(Polynomial R ⧸ Ideal.span
{p.map (algebraMap ℤ R) - Polynomial.C f})
Tag 07PH, a lemma
Tag 07PH in the Stacks Project.
exists_derivation_apply_ne_zero_of_not_pow_fractionRing, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Derivation/Regularity.lean, line 821.
If a domain
Bof prime characteristic is of finite type over a Noetherian complete local ring, then every element ofBthat is not a p-th power in its fraction field is detected by an ordinary derivation ofB.
public theorem exists_derivation_apply_ne_zero_of_not_pow_fractionRing
{p : ℕ} [Fact p.Prime] {R B K : Type*}
[CommRing R] [IsNoetherianRing R] [IsLocalRing R]
[IsAdicComplete (IsLocalRing.maximalIdeal R) R]
[CommRing B] [IsDomain B] [CharP B p] [Algebra R B] [Algebra.FiniteType R B]
[Field K] [Algebra B K] [IsFractionRing B K]
(f : B) (hf : ¬ ∃ x : K, algebraMap B K f = x ^ p) :
∃ D : Derivation ℤ B B, D f ≠ 0
Tag 07PI, a lemma
Tag 07PI in the Stacks Project.
isJ0_of_isPrecomplete_maximalIdeal, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Derivation/Regularity.lean, line 1155.
Stacks 07PI. A Noetherian local domain complete for its maximal-ideal-adic topology is J-0.
public theorem isJ0_of_isPrecomplete_maximalIdeal
(R : Type u) [CommRing R] [IsNoetherianRing R] [IsLocalRing R] [IsDomain R]
[IsPrecomplete (IsLocalRing.maximalIdeal R) R] : IsJ0 R
Tag 07PJ, a proposition
Tag 07PJ in the Stacks Project.
isJ2_of_standard_classes_and_finiteType, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Derivation/Regularity.lean, line 1408. References: EGA 0 (22.7.6); EGA IV (6.12.6), “(i)”; SGA 5 I (3.1.1), “affine case”.
Stacks 07PJ. Fields, Noetherian complete local rings, the integers, one-dimensional Noetherian local rings, one-dimensional Nagata rings, and characteristic-zero Dedekind domains are J-2; moreover, every finite type algebra over a J-2 ring is J-2.
public theorem isJ2_of_standard_classes_and_finiteType :
(∀ (K : Type u) [Field K], IsJ2 K) ∧
(∀ (R : Type u) [CommRing R] [IsNoetherianRing R] [IsLocalRing R]
[IsPrecomplete (IsLocalRing.maximalIdeal R) R], IsJ2 R) ∧
IsJ2 ℤ ∧
(∀ (R : Type u) [CommRing R] [IsNoetherianRing R] [IsLocalRing R],
ringKrullDim R = 1 → IsJ2 R) ∧
(∀ (R : Type u) [CommRing R],
IsNagataRing R → ringKrullDim R = 1 → IsJ2 R) ∧
(∀ (R : Type u) [CommRing R] [IsDedekindDomain R] [CharZero R],
IsJ2 R) ∧
(∀ (R : Type u) (S : Type v) [CommRing R] [CommRing S] [Algebra R S]
[Algebra.FiniteType R S], IsJ2 R → IsJ2 S)
Sources
Section15.50 Formal smoothness and regularity#
Section 15.50 of the Stacks Project, Tag 07PK. 3 tags here are carried by 3 declarations of the repository (all in StacksFrontier), quoted below from AxiomMath/Stacks at commit 5ed82d14.
Tag 07PL, a lemma
Tag 07PL in the Stacks Project.
exists_derivation_extension_of_formallySmoothNAdic, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/FormallySmooth/Regularity.lean, line 274.
A derivation of a Noetherian local ring extends across a local homomorphism to a complete Noetherian local ring that is formally smooth for its maximal-ideal-adic topology.
public theorem exists_derivation_extension_of_formallySmoothNAdic.{u, v}
{A : Type u} {B : Type v}
[CommRing A] [IsNoetherianRing A] [IsLocalRing A]
[CommRing B] [IsNoetherianRing B] [IsLocalRing B]
(f : A →+* B) [IsLocalHom f]
[IsAdicComplete (IsLocalRing.maximalIdeal B) B]
(hfs : RingHom.FormallySmoothNAdic.{max u v, u, v} f (IsLocalRing.maximalIdeal B))
(D : Derivation ℤ A A) :
∃ D' : Derivation ℤ B B, ∀ a : A, D' (f a) = f (D a)
Tag 07PM, a proposition
Tag 07PM in the Stacks Project.
isRegularRingHom_flat_geometricallyRegular_specialFiber_formallySmooth_tfae, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/FormallySmooth/Regularity.lean, line 1018. References: EGA 0 (19.7.1), “complete case”; EGA 0 (19.0.2), “I, complete case”; EGA IV (7.5.4), “(i)”; EGA IV (7.5.3), “(iv), special case”; SGA 1 III (1.7), “Noetherian complete case”; SGA 1 III (1.3), “special case”.
Let
f : A → Bbe a local homomorphism of Noetherian complete local rings, letkbe the residue field ofA, and letB̄ = k ⊗[A] Bbe the special fibre. The following are equivalent:
fis regular;fis flat andB̄is geometrically regular overk;fis flat andk → B̄is formally smooth for the maximal-ideal-adic topology;fis formally smooth for the maximal-ideal-adic topology onB.
public theorem isRegularRingHom_flat_geometricallyRegular_specialFiber_formallySmooth_tfae
{A : Type u} {B : Type v}
[CommRing A] [IsNoetherianRing A] [IsLocalRing A]
[IsAdicComplete (maximalIdeal A) A]
[CommRing B] [IsNoetherianRing B] [IsLocalRing B]
[IsAdicComplete (maximalIdeal B) B]
(f : A →+* B) [IsLocalHom f] :
letI : Algebra A B := f.toAlgebra
let k := ResidueField A
let Bbar := k ⊗[A] B
List.TFAE [
IsRegularRingHom f,
Module.Flat A B ∧ Algebra.IsGeometricallyRegular k Bbar,
Module.Flat A B ∧
RingHom.FormallySmoothNAdic.{max u v}
(algebraMap k Bbar) (maximalIdeal Bbar),
RingHom.FormallySmoothNAdic.{max u v} f (maximalIdeal B)]
Tag 0H7U, a theorem
Tag 0H7U in the Stacks Project.
isRegularRingHom_flat_geometricallyRegular_specialFiber_formallySmooth_tfae_0h7u, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/FormallySmooth/Regularity.lean, line 1271. References: EGA 0 (19.0.2), “I, A→A^∧ regular”; EGA 0 (19.7.1), “A → A^ regular”; EGA IV (7.5.4), “(i)”; EGA IV (7.5.3), “(iv), special case”; SGA 1 III (1.3), “special case”.
Let
f : A → Bbe a local homomorphism of Noetherian local rings and assume that the canonical map fromAto its maximal-ideal-adic completion is regular. Letkbe the residue field ofAand letB̄ = k ⊗[A] Bbe the special fibre. The following are equivalent:
fis regular;fis flat andB̄is geometrically regular overk;fis flat andk → B̄is formally smooth for the maximal-ideal-adic topology;fis formally smooth for the maximal-ideal-adic topology onB.
public theorem isRegularRingHom_flat_geometricallyRegular_specialFiber_formallySmooth_tfae_0h7u
{A : Type u} {B : Type v}
[CommRing A] [IsNoetherianRing A] [IsLocalRing A]
[CommRing B] [IsNoetherianRing B] [IsLocalRing B]
(f : A →+* B) [IsLocalHom f]
(hA : letI : WithIdeal A := ⟨maximalIdeal A⟩
IsRegularRingHom
(Completion.coeRingHom : A →+* Completion A)) :
letI : Algebra A B := f.toAlgebra
let k := ResidueField A
let Bbar := k ⊗[A] B
List.TFAE [
IsRegularRingHom f,
Module.Flat A B ∧ Algebra.IsGeometricallyRegular k Bbar,
Module.Flat A B ∧
RingHom.FormallySmoothNAdic.{max u v}
(algebraMap k Bbar) (maximalIdeal Bbar),
RingHom.FormallySmoothNAdic.{max u v} f (maximalIdeal B)]
Sources
Section15.51 G-rings#
Section 15.51 of the Stacks Project, Tag 07GG. 14 tags here are carried by 14 declarations of the repository (all in StacksFrontier), quoted below from AxiomMath/Stacks at commit 5ed82d14.
Tag 07GH, a definition
Tag 07GH in the Stacks Project.
IsGRing, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/GRing/Defs.lean, line 37.
A commutative ring is a G-ring if it is Noetherian and, for every prime ideal
p, the canonical map from its local ring atpto the completion of that local ring is regular.
public def IsGRing (R : Type u) [CommRing R] : Prop
Tag 07PN, a lemma
Tag 07PN in the Stacks Project.
isGRing_iff_quotientCompletion_isGeometricallyRegular, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/GRing/Criteria.lean, line 135.
A Noetherian ring is a G-ring if and only if every completed localization of a prime quotient, after base change to the residue field of the smaller prime, is geometrically regular.
public theorem isGRing_iff_quotientCompletion_isGeometricallyRegular
{R : Type u} [CommRing R] [IsNoetherianRing R] :
IsGRing R ↔
∀ (p q : PrimeSpectrum R) (_hqp : q.asIdeal ≤ p.asIdeal),
let Q := R ⧸ q.asIdeal
let S := Localization
(Submonoid.map (Ideal.Quotient.mk q.asIdeal) p.asIdeal.primeCompl)
@Algebra.IsGeometricallyRegular q.asIdeal.ResidueField
(AdicCompletion
((p.asIdeal.map (Ideal.Quotient.mk q.asIdeal)).map (algebraMap Q S)) S ⊗[Q]
q.asIdeal.ResidueField)
inferInstance inferInstance Algebra.TensorProduct.rightAlgebra
Tag 07PP, a lemma
Tag 07PP in the Stacks Project.
quasiFinite_preserves_geometricallyRegular_formalFibers_and_isGRing, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/GRing/Criteria.lean, line 268.
Let
R → Sbe a finite-type map of Noetherian rings and letq' ⊆ p'be primes ofSat which the map is quasi-finite atp'. Geometric regularity ascends from the corresponding formal fibre overRto that overS; it therefore ascends for every formal fibre of the local rings at the two primes. If the map is quasi-finite everywhere, it also carries the G-ring property fromRtoS.
public theorem quasiFinite_preserves_geometricallyRegular_formalFibers_and_isGRing
{R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S]
[IsNoetherianRing R] [IsNoetherianRing S] [Algebra.FiniteType R S]
(q' p' : Ideal S) [q'.IsPrime] [p'.IsPrime] (hq'p' : q' ≤ p')
[Algebra.QuasiFiniteAt R p'] :
((let T := AdicCompletion (maximalIdeal (Localization.AtPrime (Ideal.under R p')))
(Localization.AtPrime (Ideal.under R p')) ⊗[R] (Ideal.under R q').ResidueField
letI : Algebra (Ideal.under R q').ResidueField T :=
(Algebra.TensorProduct.includeRight (R := R)).toRingHom.toAlgebra
Algebra.IsGeometricallyRegular (Ideal.under R q').ResidueField T) →
(let T := AdicCompletion (maximalIdeal (Localization.AtPrime p'))
(Localization.AtPrime p') ⊗[S] q'.ResidueField
letI : Algebra q'.ResidueField T :=
(Algebra.TensorProduct.includeRight (R := S)).toRingHom.toAlgebra
Algebra.IsGeometricallyRegular q'.ResidueField T)) ∧
((∀ q : PrimeSpectrum (Localization.AtPrime (Ideal.under R p')),
let T := AdicCompletion (maximalIdeal (Localization.AtPrime (Ideal.under R p')))
(Localization.AtPrime (Ideal.under R p')) ⊗[Localization.AtPrime (Ideal.under R p')]
q.asIdeal.ResidueField
letI : Algebra q.asIdeal.ResidueField T :=
(Algebra.TensorProduct.includeRight : q.asIdeal.ResidueField →ₐ[
Localization.AtPrime (Ideal.under R p')] T).toRingHom.toAlgebra
Algebra.IsGeometricallyRegular q.asIdeal.ResidueField T) →
∀ q : PrimeSpectrum (Localization.AtPrime p'),
let T := AdicCompletion (maximalIdeal (Localization.AtPrime p'))
(Localization.AtPrime p') ⊗[Localization.AtPrime p'] q.asIdeal.ResidueField
letI : Algebra q.asIdeal.ResidueField T :=
(Algebra.TensorProduct.includeRight :
q.asIdeal.ResidueField →ₐ[Localization.AtPrime p'] T).toRingHom.toAlgebra
Algebra.IsGeometricallyRegular q.asIdeal.ResidueField T) ∧
(Algebra.QuasiFinite R S → IsGRing R → IsGRing S)
Tag 07PQ, a lemma
Tag 07PQ in the Stacks Project.
isGRing_iff_finiteFree_formalFibers_isRegularRing, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/GRing/Criteria.lean, line 566.
A Noetherian ring is a G-ring if and only if every formal fibre of every finite free algebra over it is a regular ring.
public theorem isGRing_iff_finiteFree_formalFibers_isRegularRing (R : Type u) [CommRing R]
[IsNoetherianRing R] :
IsGRing R ↔
∀ (S : Type (max u v)) [CommRing S] [Algebra R S] [Module.Finite R S]
[Module.Free R S],
∀ (q p : Ideal S) [q.IsPrime] [p.IsPrime], q ≤ p →
IsRegularRing
(AdicCompletion (maximalIdeal (Localization.AtPrime p))
(Localization.AtPrime p) ⊗[S] q.ResidueField)
Tag 07PR, a lemma
Tag 07PR in the Stacks Project.
isGeometricallyRegular_formalFiber_mvPolynomial_mvPowerSeries, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/GRing/Criteria.lean, line 1101. References: EGA 0 (22.3.4), “special case”.
If
Ais a polynomial ring inmvariables over the formal power-series ring innvariables over a fieldkof prime characteristic, then the generic formal fibre of the completion ofAat any prime ideal is geometrically regular over the fraction field ofA.
public theorem
isGeometricallyRegular_formalFiber_mvPolynomial_mvPowerSeries
{p m n : ℕ} [Fact p.Prime] (k : Type u) (A : Type v) (K : Type w) [Field k] [CharP k p]
[CommRing A] [Algebra k A]
(_ : A ≃ₐ[k] MvPolynomial (Fin m) (MvPowerSeries (Fin n) k))
[Field K] [Algebra A K] [IsFractionRing A K]
(q : Ideal A) [q.IsPrime] :
let T := AdicCompletion (maximalIdeal (Localization.AtPrime q))
(Localization.AtPrime q) ⊗[A] K
letI : Algebra K T :=
(Algebra.TensorProduct.includeRight : K →ₐ[A] T).toRingHom.toAlgebra
Algebra.IsGeometricallyRegular K T
Tag 07PS, a proposition
Tag 07PS in the Stacks Project.
isGRing_of_isPrecomplete_maximalIdeal, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/GRing/Criteria.lean, line 1375.
A Noetherian local ring complete for its maximal-ideal-adic topology is a G-ring.
public theorem isGRing_of_isPrecomplete_maximalIdeal
(R : Type u) [CommRing R] [IsNoetherianRing R] [IsLocalRing R]
[IsPrecomplete (maximalIdeal R) R] : IsGRing R
Tag 07PT, a lemma
Tag 07PT in the Stacks Project.
isGRing_iff_isRegularRingHom_adicCompletion_at_maximal, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/GRing/Henselization.lean, line 181.
A Noetherian ring is a G-ring if and only if the completion map of its localization at every maximal ideal is regular.
public theorem isGRing_iff_isRegularRingHom_adicCompletion_at_maximal
(R : Type u) [CommRing R] [IsNoetherianRing R] :
IsGRing R ↔
∀ (m : Ideal R) [m.IsMaximal],
IsRegularRingHom
(algebraMap (Localization.AtPrime m)
(AdicCompletion (IsLocalRing.maximalIdeal (Localization.AtPrime m))
(Localization.AtPrime m)))
Tag 07QR, a lemma
Tag 07QR in the Stacks Project.
isGRing_henselization_and_strictHenselization, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/GRing/Henselization.lean, line 843.
The henselization and strict henselization of a local G-ring are G-rings.
public theorem isGRing_henselization_and_strictHenselization
(R : Type u) (Rh : Type w) (Rsh : Type x)
[CommRing R] [IsLocalRing R]
[CommRing Rh] [IsLocalRing Rh] [Algebra R Rh]
[CommRing Rsh] [IsLocalRing Rsh] [Algebra R Rsh]
(κsep : Type v) [Field κsep] [Algebra (ResidueField R) κsep]
[IsSepClosure (ResidueField R) κsep]
[IsHenselization R (ResidueField R) Rh]
[IsHenselization R κsep Rsh]
(hR : IsGRing R) :
IsGRing Rh ∧ IsGRing Rsh
Tag 07PU, a lemma
Tag 07PU in the Stacks Project.
isGeometricallyRegular_formalFiber_polynomial, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/GRing/EssFiniteType.lean, line 390.
The formal fibre at a nonzero prime
rcontained in a maximal idealqofA[X], whereqlies over the maximal ideal of the Noetherian complete local domainAandrlies over zero, is geometrically regular overκ(r)when the fraction field ofAhas prime characteristic.
public theorem isGeometricallyRegular_formalFiber_polynomial
(p : ℕ) (_hp : p.Prime)
(A : Type u) [CommRing A] [IsDomain A] [IsNoetherianRing A] [IsLocalRing A]
[IsPrecomplete (maximalIdeal A) A] [CharP (FractionRing A) p]
(q r : Ideal (Polynomial A)) [q.IsMaximal] [r.IsPrime]
(hq : q.comap Polynomial.C = maximalIdeal A)
(_hr0 : r ≠ ⊥) (_hrq : r ≤ q) (hrA : r.comap Polynomial.C = ⊥) :
Algebra.IsGeometricallyRegular r.ResidueField
(r.ResidueField ⊗[Polynomial A]
AdicCompletion (maximalIdeal (Localization.AtPrime q))
(Localization.AtPrime q))
Tag 07PV, a proposition
Tag 07PV in the Stacks Project.
isGRing_of_essFiniteType, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/GRing/EssFiniteType.lean, line 657.
An algebra essentially of finite type over a G-ring is a G-ring.
public theorem isGRing_of_essFiniteType
{R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S]
[Algebra.EssFiniteType R S] (hR : IsGRing R) :
IsGRing S
Tag 07PX, a proposition
Tag 07PX in the Stacks Project.
isGRing_basic_examples, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/GRing/EssFiniteType.lean, line 763. References: SGA 3 VIB (10.10), “more general”.
Fields, Noetherian complete local rings, the integers, and Dedekind domains whose fraction fields have characteristic zero are G-rings. Moreover, a finite-type algebra over any G-ring is a G-ring.
public theorem isGRing_basic_examples :
(∀ (K : Type u) [Field K], IsGRing K) ∧
(∀ (R : Type u) [CommRing R] [IsNoetherianRing R] [IsLocalRing R]
[IsPrecomplete (IsLocalRing.maximalIdeal R) R], IsGRing R) ∧
IsGRing ℤ ∧
(∀ (R : Type u) [CommRing R] [IsDedekindDomain R] [CharZero (FractionRing R)],
IsGRing R) ∧
(∀ (R : Type u) (S : Type v) [CommRing R] [CommRing S] [Algebra R S]
[Algebra.FiniteType R S], IsGRing R → IsGRing S)
Tag 0A41, a lemma
Tag 0A41 in the Stacks Project.
exists_filteredColimit_henselianLocalGRing, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/GRing/EssFiniteType.lean, line 1077. References: EGA IV (18.6.14), “(iii)”.
A henselian local ring is a filtered colimit of henselian local G-rings with local transition maps.
public theorem exists_filteredColimit_henselianLocalGRing
(A : Type u) [CommRing A] [HenselianLocalRing A] :
∃ (J : Type u) (_ : SmallCategory J) (_ : IsFiltered J)
(F : J ⥤ CommRingCat.{u}) (c : Cocone F) (_ : IsColimit c),
(∀ j, HenselianLocalRing (F.obj j) ∧ IsGRing (F.obj j)) ∧
(∀ ⦃i j⦄ (f : i ⟶ j), IsLocalHom (F.map f).hom) ∧
Nonempty (c.pt ≅ CommRingCat.of A)
Tag 0AH2, a lemma
Tag 0AH2 in the Stacks Project.
isRegularRingHom_algebraMap_adicCompletion, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/GRing/Henselization.lean, line 214.
The canonical map from a G-ring to its completion with respect to any ideal is regular.
public theorem isRegularRingHom_algebraMap_adicCompletion
{A : Type u} [CommRing A] (hA : IsGRing A) (I : Ideal A) :
IsRegularRingHom (algebraMap A (AdicCompletion I A))
Tag 0AH3, a lemma
Tag 0AH3 in the Stacks Project.
isGRing_henselization, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/GRing/Henselization.lean, line 574.
The henselization of a G-ring along an ideal is a G-ring.
public theorem isGRing_henselization
{A : Type u} [CommRing A] (hA : IsGRing A) (I : Ideal A)
(Ah : Type v) [CommRing Ah] [Algebra A Ah]
(hh : HenselianPair Ah (I.map (algebraMap A Ah)))
(hι : ∀ (B : Type (max u v)) (_ : CommRing B) (J : Ideal B),
HenselianPair B J →
∀ f : A →+* B, I ≤ J.comap f →
∃! g : Ah →+* B,
g.comp (algebraMap A Ah) = f ∧ I.map (algebraMap A Ah) ≤ J.comap g) :
IsGRing Ah
Sources
Section15.52 Properties of formal fibres#
Section 15.52 of the Stacks Project, Tag 0BIR. 13 tags here are carried by 13 declarations of the repository (all in StacksFrontier), quoted below from AxiomMath/Stacks at commit 5ed82d14.
Tag 0BIS, a lemma
Tag 0BIS in the Stacks Project.
propertyRing_iff_quotientCompletion_fibers, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/FormalFibres/RingMapProperty/QuotientCompletion.lean, line 483.
Stacks 0BIS. A Noetherian ring has property
Pon all the formal fibres of its localizations at prime ideals if and only if the corresponding completed localizations of its prime quotients have propertyPafter extension to the residue field.
public theorem propertyRing_iff_quotientCompletion_fibers
{R : Type u} [CommRing R] [IsNoetherianRing R]
(P : RingMapProperty.{u, u}) :
IsPRing P R ↔
(∀ (p q : PrimeSpectrum R) (_hqp : q.asIdeal ≤ p.asIdeal),
let Q := R ⧸ q.asIdeal
let S := Localization
(Submonoid.map (Ideal.Quotient.mk q.asIdeal) p.asIdeal.primeCompl)
P (Algebra.TensorProduct.includeRight (R := Q)
(A := AdicCompletion
((p.asIdeal.map (Ideal.Quotient.mk q.asIdeal)).map (algebraMap Q S)) S)
(B := q.asIdeal.ResidueField)).toRingHom)
Tag 0BK8, a lemma
Tag 0BK8 in the Stacks Project.
fibersHaveProperty_iff_localizations_at_primes_and_maximals, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/FormalFibres/RingMapProperty/FibreLocalization.lean, line 622.
A fibre property which is local for localization may be checked on all maps of localizations at primes lying over one another, or only on those obtained from maximal ideals of the target.
public theorem fibersHaveProperty_iff_localizations_at_primes_and_maximals
(P : ∀ {k : Type u} {S : Type (max u v)} [Field k] [CommRing S], (k →+* S) → Prop)
(hPiso : RespectsIsomorphisms P)
(hP : IsLocalForLocalization P)
(A : Type u) (B : Type v) [CommRing A] [CommRing B] [Algebra A B]
[IsNoetherianRing B] :
(FibersHaveProperty P A B ↔
∀ (q : Ideal B) [q.IsPrime],
letI : Algebra (Localization.AtPrime (q.under A)) (Localization.AtPrime q) :=
Localization.AtPrime.algebraOfLiesOver (q.under A) q
FibersHaveProperty P (Localization.AtPrime (q.under A)) (Localization.AtPrime q)) ∧
((∀ (q : Ideal B) [q.IsPrime],
letI : Algebra (Localization.AtPrime (q.under A)) (Localization.AtPrime q) :=
Localization.AtPrime.algebraOfLiesOver (q.under A) q
FibersHaveProperty P (Localization.AtPrime (q.under A)) (Localization.AtPrime q)) ↔
∀ (m : Ideal B) [m.IsMaximal],
letI : Algebra (Localization.AtPrime (m.under A)) (Localization.AtPrime m) :=
Localization.AtPrime.algebraOfLiesOver (m.under A) m
FibersHaveProperty P (Localization.AtPrime (m.under A)) (Localization.AtPrime m))
Tag 0BIT, a lemma
Tag 0BIT in the Stacks Project.
quasiFinite_preserves_formalFiberProperty, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/FormalFibres/RingMapProperty/QuasiFiniteFormalFibres.lean, line 615.
Stacks 0BIT. Let
R → Sbe a finite-type map of Noetherian rings and letq' ⊆ p'be primes ofS. If the map is quasi-finite atp', then a property of field-to-Noetherian-ring maps satisfying base change along finitely generated field extensions and detection on localizations passes from the relevant formal fiber overRto that overS. Consequently it passes between the formal fibers of the two local rings, and a quasi-finiteR-algebra over aP-ring is aP-ring.
public theorem quasiFinite_preserves_formalFiberProperty
(P : RingMapProperty.{max u v w, max u v w x})
(hbaseChange : ∀ (k K : Type (max u v w)) (A : Type (max u v w x))
[Field k] [Field K] [CommRing A]
[Algebra k K] [Algebra k A] [IsNoetherianRing A] [Algebra.EssFiniteType k K]
[IsNoetherianRing (A ⊗[k] K)],
P (algebraMap k A) →
P (Algebra.TensorProduct.includeRight (R := k) (A := A) (B := K)).toRingHom)
(hlocal : ∀ (k : Type (max u v w)) (A : Type (max u v w x))
[Field k] [CommRing A] [Algebra k A]
[IsNoetherianRing A],
(∀ q : PrimeSpectrum A,
P (algebraMap k (Localization.AtPrime q.asIdeal))) ↔ P (algebraMap k A))
{R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S]
[IsNoetherianRing R] [IsNoetherianRing S] [Algebra.FiniteType R S]
(q' p' : Ideal S) [q'.IsPrime] [p'.IsPrime] (_hq'p' : q' ≤ p')
[Algebra.QuasiFiniteAt R p'] :
(P.Holds.{u, u, max v w, x} (Algebra.TensorProduct.includeRight (R := R)
(A := AdicCompletion (maximalIdeal (Localization.AtPrime (Ideal.under R p')))
(Localization.AtPrime (Ideal.under R p')))
(B := (Ideal.under R q').ResidueField)).toRingHom →
P.Holds.{v, v, max u w, x} (Algebra.TensorProduct.includeRight (R := S)
(A := AdicCompletion (maximalIdeal (Localization.AtPrime p'))
(Localization.AtPrime p')) (B := q'.ResidueField)).toRingHom) ∧
(FormalFibersHaveAt.{u, max v w, x} P
(Localization.AtPrime (Ideal.under R p')) →
FormalFibersHaveAt.{v, max u w, x} P (Localization.AtPrime p')) ∧
(Algebra.QuasiFinite R S → IsPRingAt.{u, max v w, x} P R →
IsPRingAt.{v, max u w, x} P S)
Tag 0BIU, a lemma
Tag 0BIU in the Stacks Project.
isPRing_iff_formalFibersHave_localization_maximal, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/FormalFibres/Localization.lean, line 308.
For a property of ring maps satisfying ascent through regular maps and faithfully flat descent, a Noetherian ring is a
P-ring exactly when the formal fibres of its localizations at maximal ideals haveP.
public theorem isPRing_iff_formalFibersHave_localization_maximal
{R : Type u} [CommRing R] [IsNoetherianRing R]
(P : RingMapProperty.{max u v, max u v w})
(hC : ∀ (A B C : Type (max u v))
[CommRing A] [CommRing B] [CommRing C]
[Algebra A B] [Algebra B C] [Algebra A C] [IsScalarTower A B C]
[IsNoetherianRing A] [IsNoetherianRing B] [IsNoetherianRing C]
[Module.Flat A B] [Module.Flat B C],
(∀ p : PrimeSpectrum A,
P.Holds (algebraMap p.asIdeal.ResidueField (p.asIdeal.Fiber B))) →
(∀ q : PrimeSpectrum B,
Algebra.IsGeometricallyRegular q.asIdeal.ResidueField (q.asIdeal.Fiber C)) →
∀ p : PrimeSpectrum A,
P.Holds (algebraMap p.asIdeal.ResidueField (p.asIdeal.Fiber C)))
(hD : ∀ (A B C : Type (max u v))
[CommRing A] [CommRing B] [CommRing C]
[Algebra A B] [Algebra B C] [Algebra A C] [IsScalarTower A B C]
[IsNoetherianRing A] [IsNoetherianRing B] [IsNoetherianRing C]
[Module.Flat A B] [Module.FaithfullyFlat B C],
(∀ p : PrimeSpectrum A,
P.Holds (algebraMap p.asIdeal.ResidueField (p.asIdeal.Fiber C))) →
∀ p : PrimeSpectrum A,
P.Holds (algebraMap p.asIdeal.ResidueField (p.asIdeal.Fiber B))) :
IsPRingAt.{u, v, w} P R ↔
∀ (m : Ideal R) [m.IsMaximal],
FormalFibersHaveAt.{u, v, w} P
(Localization.AtPrime m)
Tag 0BIV, a proposition
Tag 0BIV in the Stacks Project.
isPRing_of_essFiniteType, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/FormalFibres/EssFiniteType.lean, line 249. References: EGA IV (7.4.3), “(ii)”; EGA IV (7.6.5).
Stacks 0BIV. If a property of maps from fields to Noetherian rings satisfies properties (A)--(D), then an essentially finite-type algebra over a
P-ring is aP-ring.
public theorem isPRing_of_essFiniteType
(P : RingMapProperty.{max u v, max u v})
(hA : ∀ (k K A : Type (max u v)) [Field k] [Field K] [CommRing A]
[Algebra k K] [Algebra k A] [IsNoetherianRing A] [Algebra.EssFiniteType k K]
[IsNoetherianRing (A ⊗[k] K)],
P (algebraMap k A) →
P (Algebra.TensorProduct.includeRight (R := k) (A := A) (B := K)).toRingHom)
(_hB : ∀ (k A : Type (max u v)) [Field k] [CommRing A] [Algebra k A]
[IsNoetherianRing A],
(∀ q : PrimeSpectrum A, P (algebraMap k (Localization.AtPrime q.asIdeal))) ↔
P (algebraMap k A))
(hC : ∀ (A B C : Type (max u v))
[CommRing A] [CommRing B] [CommRing C]
[Algebra A B] [Algebra B C] [Algebra A C] [IsScalarTower A B C]
[IsNoetherianRing A] [IsNoetherianRing B] [IsNoetherianRing C]
[Module.Flat A B] [Module.Flat B C],
(∀ p : PrimeSpectrum A,
P.Holds (algebraMap p.asIdeal.ResidueField (p.asIdeal.Fiber B))) →
(∀ q : PrimeSpectrum B,
Algebra.IsGeometricallyRegular q.asIdeal.ResidueField (q.asIdeal.Fiber C)) →
∀ p : PrimeSpectrum A,
P.Holds (algebraMap p.asIdeal.ResidueField (p.asIdeal.Fiber C)))
(hD : ∀ (A B C : Type (max u v))
[CommRing A] [CommRing B] [CommRing C]
[Algebra A B] [Algebra B C] [Algebra A C] [IsScalarTower A B C]
[IsNoetherianRing A] [IsNoetherianRing B] [IsNoetherianRing C]
[Module.Flat A B] [Module.FaithfullyFlat B C],
(∀ p : PrimeSpectrum A,
P.Holds (algebraMap p.asIdeal.ResidueField (p.asIdeal.Fiber C))) →
∀ p : PrimeSpectrum A,
P.Holds (algebraMap p.asIdeal.ResidueField (p.asIdeal.Fiber B)))
{R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S]
[Algebra.EssFiniteType R S]
(hR : IsPRingAt.{u, v, v} P R) :
IsPRingAt.{v, u, u} P S
Tag 0BK9, a lemma
Tag 0BK9 in the Stacks Project.
fibersHaveProperty_adicCompletion_of_isPRing, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/FormalFibres/Localization.lean, line 566. References: EGA IV (7.4.6).
If
Ais aP-ring,Pis local for localization, andPdescends along faithfully flat maps in flat towers of Noetherian rings, then all fibres of the map fromAto its completion along any ideal have propertyP.
public theorem fibersHaveProperty_adicCompletion_of_isPRing
(P : RingMapProperty.{u, u})
(hlocal : IsLocalForLocalization (fun f => P f))
(hdescent : ∀ {R S T : Type u} [CommRing R] [CommRing S] [CommRing T]
[Algebra R S] [Algebra S T] [Algebra R T] [IsScalarTower R S T]
[IsNoetherianRing R] [IsNoetherianRing S] [IsNoetherianRing T]
[Module.Flat R S] [Module.FaithfullyFlat S T],
FibersHaveProperty (fun f => P f) R T →
FibersHaveProperty (fun f => P f) R S)
{A : Type u} [CommRing A] [IsNoetherianRing A]
(hA : IsPRing P A) (I : Ideal A) :
FibersHaveProperty (fun f => P f) A (AdicCompletion I A)
Tag 0BKA, a lemma
Tag 0BKA in the Stacks Project.
isPRing_henselization, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/FormalFibres/Henselization.lean, line 558. References: EGA IV (18.7.2), “Forward implication”.
A henselization of a pair over a
P-ring is again aP-ring whenPis local on the target, ascends along regular maps, descends along faithfully flat maps, and is preserved by separable algebraic extensions of the ground field.
public theorem isPRing_henselization :
∀ (P : RingMapProperty.{max u v, max u v}),
(∀ (k R : Type (max u v)) [Field k] [CommRing R] [Algebra k R]
[IsNoetherianRing R],
(∀ q : PrimeSpectrum R, P (algebraMap k (Localization.AtPrime q.asIdeal))) ↔
P (algebraMap k R)) →
(∀ (R S T : Type (max u v))
[CommRing R] [CommRing S] [CommRing T]
[Algebra R S] [Algebra S T] [Algebra R T] [IsScalarTower R S T]
[IsNoetherianRing R] [IsNoetherianRing S] [IsNoetherianRing T]
[Module.Flat R S] [Module.Flat S T],
(∀ p : PrimeSpectrum R,
P.Holds (algebraMap p.asIdeal.ResidueField (p.asIdeal.Fiber S))) →
(∀ q : PrimeSpectrum S,
Algebra.IsGeometricallyRegular q.asIdeal.ResidueField (q.asIdeal.Fiber T)) →
∀ p : PrimeSpectrum R,
P.Holds (algebraMap p.asIdeal.ResidueField (p.asIdeal.Fiber T))) →
(∀ (R S T : Type (max u v))
[CommRing R] [CommRing S] [CommRing T]
[Algebra R S] [Algebra S T] [Algebra R T] [IsScalarTower R S T]
[IsNoetherianRing R] [IsNoetherianRing S] [IsNoetherianRing T]
[Module.Flat R S] [Module.FaithfullyFlat S T],
(∀ p : PrimeSpectrum R,
P.Holds (algebraMap p.asIdeal.ResidueField (p.asIdeal.Fiber T))) →
∀ p : PrimeSpectrum R,
P.Holds (algebraMap p.asIdeal.ResidueField (p.asIdeal.Fiber S))) →
(∀ (k K R : Type (max u v))
[Field k] [Field K] [CommRing R]
[Algebra k K] [Algebra K R] [Algebra k R] [IsScalarTower k K R]
[IsNoetherianRing R],
Algebra.IsAlgebraic k K → Algebra.IsSeparable k K →
P (algebraMap k R) → P (algebraMap K R)) →
∀ {A : Type u} {Ah : Type v} [CommRing A] [CommRing Ah] [Algebra A Ah]
(I : Ideal A),
HenselianPair Ah (I.map (algebraMap A Ah)) →
(∀ (B : Type (max u v)) (_ : CommRing B) (J : Ideal B),
HenselianPair B J →
∀ f : A →+* B, I ≤ J.comap f →
∃! g : Ah →+* B,
g.comp (algebraMap A Ah) = f ∧ I.map (algebraMap A Ah) ≤ J.comap g) →
IsPRingAt.{u, v, v} P A →
IsPRingAt.{v, u, u} P Ah
Tag 0C36, a lemma
Tag 0C36 in the Stacks Project.
isPRing_henselization_and_strictHenselization, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/FormalFibres/Henselization.lean, line 1209. References: EGA IV (18.7.2), “partial”.
The henselization and strict henselization of a local
P-ring areP-rings whenPis local on the target, ascends along regular maps, descends along faithfully flat maps, and is preserved by separable algebraic extensions of the ground field.
public theorem isPRing_henselization_and_strictHenselization
(P : RingMapProperty.{max u (max v (max w x)), max u (max v (max w x))})
(hB : ∀ (k R : Type (max u (max v (max w x))))
[Field k] [CommRing R] [Algebra k R]
[IsNoetherianRing R],
(∀ q : PrimeSpectrum R, P (algebraMap k (Localization.AtPrime q.asIdeal))) ↔
P (algebraMap k R))
(hC : ∀ (R S T : Type (max u (max v (max w x))))
[CommRing R] [CommRing S] [CommRing T]
[Algebra R S] [Algebra S T] [Algebra R T] [IsScalarTower R S T]
[IsNoetherianRing R] [IsNoetherianRing S] [IsNoetherianRing T]
[Module.Flat R S] [Module.Flat S T],
(∀ p : PrimeSpectrum R,
P.Holds (algebraMap p.asIdeal.ResidueField (p.asIdeal.Fiber S))) →
(∀ q : PrimeSpectrum S,
Algebra.IsGeometricallyRegular q.asIdeal.ResidueField (q.asIdeal.Fiber T)) →
∀ p : PrimeSpectrum R,
P.Holds (algebraMap p.asIdeal.ResidueField (p.asIdeal.Fiber T)))
(hD : ∀ (R S T : Type (max u (max v (max w x))))
[CommRing R] [CommRing S] [CommRing T]
[Algebra R S] [Algebra S T] [Algebra R T] [IsScalarTower R S T]
[IsNoetherianRing R] [IsNoetherianRing S] [IsNoetherianRing T]
[Module.Flat R S] [Module.FaithfullyFlat S T],
(∀ p : PrimeSpectrum R,
P.Holds (algebraMap p.asIdeal.ResidueField (p.asIdeal.Fiber T))) →
∀ p : PrimeSpectrum R,
P.Holds (algebraMap p.asIdeal.ResidueField (p.asIdeal.Fiber S)))
(hE : ∀ (k K R : Type (max u (max v (max w x))))
[Field k] [Field K] [CommRing R]
[Algebra k K] [Algebra K R] [Algebra k R] [IsScalarTower k K R]
[IsNoetherianRing R],
Algebra.IsAlgebraic k K → Algebra.IsSeparable k K →
P (algebraMap k R) → P (algebraMap K R))
(R : Type u) (Rh : Type w) (Rsh : Type x)
[CommRing R] [IsLocalRing R]
[CommRing Rh] [IsLocalRing Rh] [Algebra R Rh]
[CommRing Rsh] [IsLocalRing Rsh] [Algebra R Rsh]
(ksep : Type v) [Field ksep] [Algebra (ResidueField R) ksep]
[IsSepClosure (ResidueField R) ksep]
[IsHenselization R (ResidueField R) Rh]
[IsHenselization R ksep Rsh]
(hR : IsPRingAt.{u, max v (max w x), max v (max w x)} P R) :
IsPRingAt.{w, max u (max v x), max u (max v x)} P Rh ∧
IsPRingAt.{x, max u (max v w), max u (max v w)} P Rsh
Tag 0BIW, a lemma
Tag 0BIW in the Stacks Project.
geometricReducedness_satisfies_formalFibre_properties, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/FormalFibres/Examples/GeometricallyReduced.lean, line 387. References: EGA IV (7.5.3), “(viii) reduced”; EGA IV (7.9.7), “partial”.
Stacks 0BIW. Geometric reducedness satisfies properties (A)--(E) for formal fibres: base change by a finitely generated field extension, detection on local rings, ascent along a regular map, faithfully flat descent, and separable algebraic extension of the base field.
public theorem geometricReducedness_satisfies_formalFibre_properties :
(∀ (k : Type u) (k' : Type v) (R : Type w) [Field k] [Field k'] [CommRing R]
[Algebra k k'] [Algebra k R] [Algebra.EssFiniteType k k'] [IsNoetherianRing R],
Algebra.IsGeometricallyReduced k R →
Algebra.IsGeometricallyReduced k' (k' ⊗[k] R)) ∧
(∀ (k : Type u) (R : Type v) [Field k] [CommRing R] [Algebra k R]
[IsNoetherianRing R],
(∀ (p : Ideal R) [p.IsPrime],
Algebra.IsGeometricallyReduced k (Localization.AtPrime p)) ↔
Algebra.IsGeometricallyReduced k R) ∧
(∀ (A : Type u) (B : Type v) (C : Type w)
[CommRing A] [CommRing B] [CommRing C]
[Algebra A B] [Algebra B C] [Algebra A C] [IsScalarTower A B C]
[IsNoetherianRing A] [IsNoetherianRing B] [IsNoetherianRing C]
[Module.Flat A B] [Module.Flat B C],
(∀ (p : Ideal A) [p.IsPrime],
Algebra.IsGeometricallyReduced p.ResidueField (p.Fiber B)) →
(∀ (q : Ideal B) [q.IsPrime],
Algebra.IsGeometricallyRegular q.ResidueField (q.Fiber C)) →
∀ (p : Ideal A) [p.IsPrime],
Algebra.IsGeometricallyReduced p.ResidueField (p.Fiber C)) ∧
(∀ (A : Type u) (B : Type v) (C : Type w)
[CommRing A] [CommRing B] [CommRing C]
[Algebra A B] [Algebra B C] [Algebra A C] [IsScalarTower A B C]
[IsNoetherianRing A] [IsNoetherianRing B] [IsNoetherianRing C]
[Module.Flat A B] [Module.FaithfullyFlat B C],
(∀ (p : Ideal A) [p.IsPrime],
Algebra.IsGeometricallyReduced p.ResidueField (p.Fiber C)) →
∀ (p : Ideal A) [p.IsPrime],
Algebra.IsGeometricallyReduced p.ResidueField (p.Fiber B)) ∧
(∀ (k : Type u) (k' : Type v) (R : Type w)
[Field k] [Field k'] [CommRing R]
[Algebra k k'] [Algebra k R] [Algebra k' R] [IsScalarTower k k' R]
[Algebra.IsSeparable k k'] [IsNoetherianRing R],
Algebra.IsGeometricallyReduced k R → Algebra.IsGeometricallyReduced k' R)
Tag 0BIX, a lemma
Tag 0BIX in the Stacks Project.
geometricNormality_satisfies_formalFibre_properties, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/FormalFibres/Examples/GeometricallyNormal.lean, line 425. References: EGA IV (7.3.10), “special case”.
Geometric normality satisfies properties (A)--(E) for formal fibres: base change by a finitely generated field extension, detection on local rings, ascent along a regular map, faithfully flat descent, and separable algebraic extension of the base field.
public theorem geometricNormality_satisfies_formalFibre_properties :
(∀ (k : Type u) (k' : Type v) (R : Type w) [Field k] [Field k'] [CommRing R]
[Algebra k k'] [Algebra k R] [Algebra.EssFiniteType k k'] [IsNoetherianRing R],
Algebra.IsGeometricallyNormal k R →
Algebra.IsGeometricallyNormal k' (k' ⊗[k] R)) ∧
(∀ (k : Type u) (R : Type v) [Field k] [CommRing R] [Algebra k R]
[IsNoetherianRing R],
(∀ (p : Ideal R) [p.IsPrime],
Algebra.IsGeometricallyNormal k (Localization.AtPrime p)) ↔
Algebra.IsGeometricallyNormal k R) ∧
(∀ (A : Type u) (B : Type v) (C : Type w)
[CommRing A] [CommRing B] [CommRing C]
[Algebra A B] [Algebra B C] [Algebra A C] [IsScalarTower A B C]
[IsNoetherianRing A] [IsNoetherianRing B] [IsNoetherianRing C]
[Module.Flat A B] [Module.Flat B C],
(∀ (p : Ideal A) [p.IsPrime],
Algebra.IsGeometricallyNormal p.ResidueField (p.Fiber B)) →
(∀ (q : Ideal B) [q.IsPrime],
Algebra.IsGeometricallyRegular q.ResidueField (q.Fiber C)) →
∀ (p : Ideal A) [p.IsPrime],
Algebra.IsGeometricallyNormal p.ResidueField (p.Fiber C)) ∧
(∀ (A : Type u) (B : Type v) (C : Type w)
[CommRing A] [CommRing B] [CommRing C]
[Algebra A B] [Algebra B C] [Algebra A C] [IsScalarTower A B C]
[IsNoetherianRing A] [IsNoetherianRing B] [IsNoetherianRing C]
[Module.Flat A B] [Module.FaithfullyFlat B C],
(∀ (p : Ideal A) [p.IsPrime],
Algebra.IsGeometricallyNormal p.ResidueField (p.Fiber C)) →
∀ (p : Ideal A) [p.IsPrime],
Algebra.IsGeometricallyNormal p.ResidueField (p.Fiber B)) ∧
(∀ (k : Type u) (k' : Type v) (R : Type w)
[Field k] [Field k'] [CommRing R]
[Algebra k k'] [Algebra k R] [Algebra k' R] [IsScalarTower k k' R]
[Algebra.IsSeparable k k'] [IsNoetherianRing R],
Algebra.IsGeometricallyNormal k R → Algebra.IsGeometricallyNormal k' R)
Tag 0BIY, a lemma
Tag 0BIY in the Stacks Project.
serreProperty_satisfies_formalFiberAxioms, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/FormalFibres/Examples/SerreCondition.lean, line 240. The attribute's comment: “The source fixes n ≥ 1, so _hn : 1 ≤ n is carried for faithfulness even though the proof does not use it — each of the five axioms holds for (Sₙ) at every n. Hence the leading underscore on that binder.”.
Stacks 0BIY. For
n ≥ 1, the property that the target of a map from a field to a Noetherian ring satisfies(Sₙ)has properties (A)--(E).
public theorem serreProperty_satisfies_formalFiberAxioms
(n : ℕ) (_hn : 1 ≤ n) :
(∀ (k : Type u) (K : Type v) (R : Type w)
[Field k] [Field K] [CommRing R] [Algebra k K]
[Algebra k R] [IsNoetherianRing R] [Algebra.EssFiniteType k K],
HasSerreCondition R n → HasSerreCondition (R ⊗[k] K) n) ∧
(∀ (k : Type u) (R : Type v) [Field k] [CommRing R]
[Algebra k R] [IsNoetherianRing R],
(∀ p : PrimeSpectrum R,
HasSerreCondition (Localization.AtPrime p.asIdeal) n) ↔
HasSerreCondition R n) ∧
(∀ (A : Type u) (B : Type v) (C : Type w)
[CommRing A] [CommRing B] [CommRing C]
[Algebra A B] [Algebra B C] [Algebra A C] [IsScalarTower A B C]
[IsNoetherianRing A] [IsNoetherianRing B] [IsNoetherianRing C]
[Module.Flat A B] [Module.Flat B C],
(∀ p : PrimeSpectrum A, HasSerreCondition (p.asIdeal.Fiber B) n) →
(∀ q : PrimeSpectrum B,
Algebra.IsGeometricallyRegular q.asIdeal.ResidueField (q.asIdeal.Fiber C)) →
∀ p : PrimeSpectrum A, HasSerreCondition (p.asIdeal.Fiber C) n) ∧
(∀ (A : Type u) (B : Type v) (C : Type w)
[CommRing A] [CommRing B] [CommRing C]
[Algebra A B] [Algebra B C] [Algebra A C] [IsScalarTower A B C]
[IsNoetherianRing A] [IsNoetherianRing B] [IsNoetherianRing C]
[Module.Flat A B] [Module.FaithfullyFlat B C],
(∀ p : PrimeSpectrum A, HasSerreCondition (p.asIdeal.Fiber C) n) →
∀ p : PrimeSpectrum A, HasSerreCondition (p.asIdeal.Fiber B) n) ∧
(∀ (k : Type u) (K : Type v) (R : Type w)
[Field k] [Field K] [CommRing R]
[Algebra k K] [Algebra k R] [Algebra K R] [IsScalarTower k K R]
[IsNoetherianRing R] [Algebra.IsAlgebraic k K] [Algebra.IsSeparable k K],
HasSerreCondition R n → HasSerreCondition R n)
Tag 0BJ9, a lemma
Tag 0BJ9 in the Stacks Project.
cohenMacaulayProperty_satisfies_formalFiberAxioms, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/FormalFibres/Examples/SerreCondition.lean, line 406. References: EGA IV (7.5.3), “(iii) Cohen-Macaulay”.
Stacks 0BJ9. The property of a map from a field to a Noetherian ring that its target is Cohen–Macaulay satisfies properties (A)--(E): it is preserved by finitely generated field extension, is local on the target, passes through a composition of flat maps when the second map is regular, descends through a faithfully flat second map, and is unchanged upon replacing the ground field by a separable algebraic extension.
public theorem cohenMacaulayProperty_satisfies_formalFiberAxioms
(P : RingMapProperty.{u, u})
(hP : ∀ (k R : Type u) [Field k] [CommRing R] [Algebra k R]
[IsNoetherianRing R], P (algebraMap k R) ↔ Module.IsCohenMacaulay R R) :
(∀ (k K R : Type u) [Field k] [Field K] [CommRing R] [Algebra k K]
[Algebra k R] [IsNoetherianRing R] [Algebra.EssFiniteType k K],
P (algebraMap k R) →
P (Algebra.TensorProduct.includeRight (R := k) (A := R) (B := K)).toRingHom) ∧
(∀ (k R : Type u) [Field k] [CommRing R] [Algebra k R] [IsNoetherianRing R],
(∀ p : PrimeSpectrum R,
P (algebraMap k (Localization.AtPrime p.asIdeal))) ↔ P (algebraMap k R)) ∧
(∀ (A B C : Type u) [CommRing A] [CommRing B] [CommRing C]
[Algebra A B] [Algebra B C] [Algebra A C] [IsScalarTower A B C]
[IsNoetherianRing A] [IsNoetherianRing B] [IsNoetherianRing C]
[Module.Flat A B] [Module.Flat B C],
(∀ p : PrimeSpectrum A,
P (algebraMap p.asIdeal.ResidueField (p.asIdeal.Fiber B))) →
(∀ q : PrimeSpectrum B,
Algebra.IsGeometricallyRegular q.asIdeal.ResidueField (q.asIdeal.Fiber C)) →
∀ p : PrimeSpectrum A,
P (algebraMap p.asIdeal.ResidueField (p.asIdeal.Fiber C))) ∧
(∀ (A B C : Type u) [CommRing A] [CommRing B] [CommRing C]
[Algebra A B] [Algebra B C] [Algebra A C] [IsScalarTower A B C]
[IsNoetherianRing A] [IsNoetherianRing B] [IsNoetherianRing C]
[Module.Flat A B] [Module.FaithfullyFlat B C],
(∀ p : PrimeSpectrum A,
P (algebraMap p.asIdeal.ResidueField (p.asIdeal.Fiber C))) →
∀ p : PrimeSpectrum A,
P (algebraMap p.asIdeal.ResidueField (p.asIdeal.Fiber B))) ∧
(∀ (k K R : Type u) [Field k] [Field K] [CommRing R]
[Algebra k K] [Algebra k R] [Algebra K R] [IsScalarTower k K R]
[IsNoetherianRing R] [Algebra.IsAlgebraic k K] [Algebra.IsSeparable k K],
P (algebraMap k R) → P (algebraMap K R))
Tag 0BIZ, a lemma
Tag 0BIZ in the Stacks Project.
propertyRk_after_finiteExtensions_satisfies_formalFibre_properties, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/FormalFibres/Examples/RegularInCodimension.lean, line 648.
For fixed
n, the property that every finite extension of the ground field makes an algebra satisfy Serre's condition(R_n)satisfies properties (A)--(E) for formal fibres: base change by a finitely generated field extension, detection on local rings, ascent along a regular map, faithfully flat descent, and separable algebraic extension of the base field.
public theorem propertyRk_after_finiteExtensions_satisfies_formalFibre_properties (n : ℕ) :
(∀ (k : Type u) (k' : Type v) (R : Type w) [Field k] [Field k'] [CommRing R]
[Algebra k k'] [Algebra k R] [Algebra.EssFiniteType k k'] [IsNoetherianRing R],
(∀ (K : Type u) [Field K] [Algebra k K] [FiniteDimensional k K],
HasPropertyRk (K ⊗[k] R) n) →
∀ (K : Type v) [Field K] [Algebra k' K] [FiniteDimensional k' K],
HasPropertyRk (K ⊗[k'] (k' ⊗[k] R)) n) ∧
(∀ (k : Type u) (R : Type v) [Field k] [CommRing R] [Algebra k R]
[IsNoetherianRing R],
(∀ (p : Ideal R) [p.IsPrime],
∀ (K : Type u) [Field K] [Algebra k K] [FiniteDimensional k K],
HasPropertyRk (K ⊗[k] Localization.AtPrime p) n) ↔
∀ (K : Type u) [Field K] [Algebra k K] [FiniteDimensional k K],
HasPropertyRk (K ⊗[k] R) n) ∧
(∀ (A : Type u) (B : Type v) (C : Type w)
[CommRing A] [CommRing B] [CommRing C]
[Algebra A B] [Algebra B C] [Algebra A C] [IsScalarTower A B C]
[IsNoetherianRing A] [IsNoetherianRing B] [IsNoetherianRing C]
[Module.Flat A B] [Module.Flat B C],
(∀ (p : Ideal A) [p.IsPrime],
∀ (K : Type u) [Field K] [Algebra p.ResidueField K]
[FiniteDimensional p.ResidueField K],
HasPropertyRk (K ⊗[p.ResidueField] p.Fiber B) n) →
(∀ (q : Ideal B) [q.IsPrime],
Algebra.IsGeometricallyRegular q.ResidueField (q.Fiber C)) →
∀ (p : Ideal A) [p.IsPrime],
∀ (K : Type u) [Field K] [Algebra p.ResidueField K]
[FiniteDimensional p.ResidueField K],
HasPropertyRk (K ⊗[p.ResidueField] p.Fiber C) n) ∧
(∀ (A : Type u) (B : Type v) (C : Type w)
[CommRing A] [CommRing B] [CommRing C]
[Algebra A B] [Algebra B C] [Algebra A C] [IsScalarTower A B C]
[IsNoetherianRing A] [IsNoetherianRing B] [IsNoetherianRing C]
[Module.Flat A B] [Module.FaithfullyFlat B C],
(∀ (p : Ideal A) [p.IsPrime],
∀ (K : Type u) [Field K] [Algebra p.ResidueField K]
[FiniteDimensional p.ResidueField K],
HasPropertyRk (K ⊗[p.ResidueField] p.Fiber C) n) →
∀ (p : Ideal A) [p.IsPrime],
∀ (K : Type u) [Field K] [Algebra p.ResidueField K]
[FiniteDimensional p.ResidueField K],
HasPropertyRk (K ⊗[p.ResidueField] p.Fiber B) n) ∧
(∀ (k : Type u) (k' : Type v) (R : Type w)
[Field k] [Field k'] [CommRing R]
[Algebra k k'] [Algebra k R] [Algebra k' R] [IsScalarTower k k' R]
[Algebra.IsSeparable k k'] [IsNoetherianRing R],
(∀ (K : Type u) [Field K] [Algebra k K] [FiniteDimensional k K],
HasPropertyRk (K ⊗[k] R) n) →
∀ (K : Type v) [Field K] [Algebra k' K] [FiniteDimensional k' K],
HasPropertyRk (K ⊗[k'] R) n)
Sources
Section15.53 Excellent rings#
Section 15.53 of the Stacks Project, Tag 07QS. 6 tags here are carried by 7 declarations of the repository (all in StacksFrontier), quoted below from AxiomMath/Stacks at commit 5ed82d14.
Tag 07QT, a definition
Tag 07QT in the Stacks Project.
IsQuasiExcellent, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Excellent/Basic.lean, line 173. The attribute's comment: “(1)”. References: EGA IV (7.8.2), “(ii), (iii)”.
A commutative ring is quasi-excellent if it is Noetherian, a G-ring, and J-2.
public def IsQuasiExcellent (R : Type u) [CommRing R] : Prop
IsExcellent, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Excellent/Basic.lean, line 178. The attribute's comment: “(2)”. References: EGA IV (7.8.2).
A commutative ring is excellent if it is quasi-excellent and universally catenary.
public def IsExcellent (R : Type u) [CommRing R] : Prop
Tag 07QU, a lemma
Tag 07QU in the Stacks Project.
isQuasiExcellent_and_isExcellent_of_essFiniteType, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Excellent/Basic.lean, line 282. References: EGA IV (7.8.3), “more general”; EGA IV (7.8.4), “more general”.
An algebra essentially of finite type over a quasi-excellent ring is quasi-excellent, and an algebra essentially of finite type over an excellent ring is excellent.
public theorem isQuasiExcellent_and_isExcellent_of_essFiniteType
{R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S]
[Algebra.EssFiniteType R S] :
(IsQuasiExcellent R → IsQuasiExcellent S) ∧
(IsExcellent R → IsExcellent S)
Tag 07QW, a proposition
Tag 07QW in the Stacks Project.
isExcellent_of_standard_classes_and_finiteType, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Excellent/Basic.lean, line 386. References: EGA IV (7.8.3), “(iii), part of (ii)”; EGA IV (7.8.6), “(i), affine case”; EGA IV (6.12.6), “special case”; SGA 3 VIB (10.10), “more general”.
Stacks 07QW. Fields, Noetherian complete local rings, the integers, and Dedekind domains whose fraction fields have characteristic zero are excellent; moreover, every finite-type algebra over an excellent ring is excellent.
public theorem isExcellent_of_standard_classes_and_finiteType :
(∀ (K : Type u) [Field K], IsExcellent K) ∧
(∀ (R : Type u) [CommRing R] [IsNoetherianRing R] [IsLocalRing R]
[IsPrecomplete (IsLocalRing.maximalIdeal R) R], IsExcellent R) ∧
IsExcellent ℤ ∧
(∀ (R : Type u) [CommRing R] [IsDedekindDomain R] [CharZero (FractionRing R)],
IsExcellent R) ∧
(∀ (R : Type u) (S : Type v) [CommRing R] [CommRing S] [Algebra R S]
[Algebra.FiniteType R S], IsExcellent R → IsExcellent S)
Tag 0BJ0, a lemma
Tag 0BJ0 in the Stacks Project.
isNagataRing_iff_formalFibers_geometricallyReduced, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Excellent/Basic.lean, line 480. References: EGA IV (7.6.4), “local case, a'')<=>b)”; EGA IV (7.7.3), “A local Noetherian”; EGA IV (7.7.4), “formal fibres clause”.
Stacks 0BJ0. A Noetherian local ring is Nagata if and only if all its formal fibres are geometrically reduced.
public theorem isNagataRing_iff_formalFibers_geometricallyReduced
(A : Type u) [CommRing A] [IsNoetherianRing A] [IsLocalRing A] :
IsNagataRing A ↔
∀ q : PrimeSpectrum A,
Algebra.IsGeometricallyReduced q.asIdeal.ResidueField
(q.asIdeal.Fiber (AdicCompletion (maximalIdeal A) A))
Tag 07QV, a lemma
Tag 07QV in the Stacks Project.
isNagataRing_of_isQuasiExcellent, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Excellent/Basic.lean, line 351. References: EGA IV (7.8.3), “more general”; EGA IV (7.8.4), “(iii)”.
Stacks 07QV. A quasi-excellent commutative ring is a Nagata ring.
public theorem isNagataRing_of_isQuasiExcellent {R : Type u} [CommRing R]
(hR : IsQuasiExcellent R) : IsNagataRing R
Tag 0C23, a lemma
Tag 0C23 in the Stacks Project.
isNormalRing_adicCompletion_maximalIdeal, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/AdicCompletion/PermanenceOfProperties.lean, line 572. References: EGA IV (7.8.3), “(v) normal ascends”.
Stacks Tag 0C23. The completion of a Noetherian normal local ring whose formal fibres are normal is a normal ring.
public theorem isNormalRing_adicCompletion_maximalIdeal
(A : Type u) [CommRing A] [IsNoetherianRing A] [IsLocalRing A]
(hA : IsNormalRing A)
(hformal : ∀ (p : Ideal A) [p.IsPrime],
IsNormalRing (p.Fiber (AdicCompletion (IsLocalRing.maximalIdeal A) A))) :
IsNormalRing (AdicCompletion (IsLocalRing.maximalIdeal A) A)
Sources
Section15.55 Injective abelian groups#
Section 15.55 of the Stacks Project, Tag 01D6. 1 tag here is carried by 1 declaration of the repository (in StacksFrontier), quoted below from AxiomMath/Stacks at commit 5ed82d14.
Tag 01D7, a lemma
Tag 01D7 in the Stacks Project.
AddCommGrpCat.injective_iff_divisible, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/Algebra/Module/Injective/Criteria.lean, line 114.
Stacks 01D7. An abelian group is an injective object in the category of abelian groups if and only if it is divisible.
Divisibility is Baer's criterion over
ℤ: an injective group is Baer, and dividingxbynis extending toℤthe mapnℤ → Jdetermined byn ↦ x. Conversely a divisible group is injective, which is Mathlib'sAddCommGrpCat.injective_of_divisible.
theorem AddCommGrpCat.injective_iff_divisible (J : Type u) [AddCommGroup J] :
Injective (C := AddCommGrpCat) (AddCommGrpCat.of J) ↔ Nonempty (DivisibleBy J ℕ)
Sources
Section15.56 Injective modules#
Section 15.56 of the Stacks Project, Tag 01D8. 9 tags here are carried by 11 declarations of the repository (all in StacksFrontier) and 3 registered declarations, quoted below from AxiomMath/Stacks at commit 5ed82d14.
Tag 0AVD, a definition
Tag 0AVD in the Stacks Project.
Module.injective_iff_exact_linearYoneda, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/Algebra/Module/Injective/Criteria.lean, line 74.
Stacks 0AVD. An
R-moduleJis injective if and only if its contravariant Hom functorHom_R(-, J)is exact.Exactness of a functor out of
(ModuleCat R)ᵒᵖis tested after composing with the forgetful functor to abelian groups, where the composite is the preadditive Yoneda functor atJ, for which Mathlib already characterises injectivity.
theorem Module.injective_iff_exact_linearYoneda (R : Type u) [CommRing R]
(J : Type v) [AddCommGroup J] [Module R J] :
Module.Injective R J ↔
exactFunctor _ _ ((linearYoneda R (ModuleCat.{v} R)).obj (ModuleCat.of R J))
Tag 0AUL, a lemma
Tag 0AUL in the Stacks Project.
CategoryTheory.Abelian.comparison, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/Algebra/Homology/DerivedCategory/Ext/YonedaExtOne.lean, line 205. The attribute's comment: “the comparison itself; isCanonicalExtOneComparison_comparison is its defining properties and eq_comparison_of_isCanonical their uniqueness”.
The canonical comparison data. Its equivalence is
comparisonEquiv, and its covariant and contravariant maps are Yoneda composition withExt.mk₀read through that equivalence.
noncomputable def comparison : ExtOneComparison (C := C)
CategoryTheory.Abelian.isCanonicalExtOneComparison_comparison, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/Algebra/Homology/DerivedCategory/Ext/YonedaExtOne.lean, line 243. The attribute's comment: “the comparison has the announced properties: canonicity, representation of the two maps by pushout and pullback, naturality in both variables, additivity for Baer sums, and agreement with both connecting maps”. References: EGA 0 (12.3.2), “more general”; SGA 7 VII (3.4), “special case”.
The comparison is canonical.
comparisonsends a short exact sequence to its derived extension class, represents its covariant and contravariant maps by pushout and pullback of short exact sequences, is natural in both variables, takes Baer sums to sums inExt¹, and matches the boundary maps of the two long exactExtsequences.
theorem isCanonicalExtOneComparison_comparison :
IsCanonicalExtOneComparison (comparison (C := C))
CategoryTheory.Abelian.eq_comparison_of_isCanonical, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/Algebra/Homology/DerivedCategory/Ext/YonedaExtOne.lean, line 282. The attribute's comment: “uniqueness of the canonical comparison”.
The canonical comparison is unique. Any comparison with the properties of
IsCanonicalExtOneComparisoniscomparison.
theorem eq_comparison_of_isCanonical (c' : ExtOneComparison (C := C))
(hc' : IsCanonicalExtOneComparison c') : c' = comparison
Tag 0AVE, a lemma
Tag 0AVE in the Stacks Project.
Module.injective_iff_subsingleton_ext_one, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/Algebra/Module/Injective/Criteria.lean, line 152.
Stacks 0AVE. An
R-moduleJis injective if and only ifExt¹_R(M, J)vanishes for everyR-moduleM.Mathlib's
CategoryTheory.injective_iff_subsingleton_ext_oneis this criterion for an object of an abelian category with anExttheory; here it is read off for modules, the quantifier running overR-modules rather than over objects ofModuleCat R. The two agree because every object ofModuleCat.{v} RisModuleCat.of Rof its own carrier.
theorem Module.injective_iff_subsingleton_ext_one (R : Type u) [Ring R] [Small.{v} R]
(J : Type v) [AddCommGroup J] [Module R J] :
Module.Injective R J ↔
∀ (M : Type v) [AddCommGroup M] [Module R M],
Subsingleton (Abelian.Ext (ModuleCat.of R M) (ModuleCat.of R J) 1)
Declarations registered for the tag:
CategoryTheory.injective_iff_subsingleton_ext_oneregistered withadd_to_stacksin StacksFrontier/Algebra/Module/Injective/Criteria.lean, line 167 (StacksFrontier). References: SGA 6 I (5.7), “(ii) ⇒ (i)”.
Tag 0AVF, a lemma
Tag 0AVF in the Stacks Project.
Declarations registered for the tag:
ModuleCat.injective_iff_subsingleton_ext_quotient_oneregistered withadd_to_stacksin StacksFrontier/Algebra/Module/Injective/Criteria.lean, line 170 (StacksFrontier): “injectivity is equivalent to vanishing Ext^1 from quotients by ideals”.ModuleCat.ext_quotient_one_subsingleton_iffregistered withadd_to_stacksin StacksFrontier/Algebra/Module/Injective/Criteria.lean, line 173 (StacksFrontier): “vanishing Ext^1 is equivalent to extending maps from ideals”.
Tag 01D9, a definition
Tag 01D9 in the Stacks Project.
CharacterModule.dualFunctor, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/Algebra/Module/CharacterModule/Duality.lean, line 55. The attribute's comment: “the contravariant functor M ↦ M^∨”.
The contravariant functor
M ↦ M^∨ = Hom_ℤ(M, ℚ/ℤ)on modules over a commutative ring, acting on a linear map by precomposition (CharacterModule.dual).
noncomputable def dualFunctor (R : Type u) [CommRing R] :
(ModuleCat.{u} R)ᵒᵖ ⥤ ModuleCat.{u} R
freeModuleCoverFunctor, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/Algebra/Module/CharacterModule/EnoughInjectives.lean, line 108. The attribute's comment: “the free module on the underlying set of a module, with its natural surjection”.
The functor sending an
R-moduleMto the natural epimorphismF(M) → M, whereF(M)is the free module on the underlying set ofM. Landing in the full subcategory of the arrow category spanned by the epimorphisms retains the surjectivity of each cover.
noncomputable def freeModuleCoverFunctor (R : Type u) [CommRing R] :
ModuleCat.{u} R ⥤ (MorphismProperty.epimorphisms (ModuleCat.{u} R)).Arrow ⊤ ⊤
Tag 01DA, a lemma
Tag 01DA in the Stacks Project.
CharacterModule.dualFunctor_exact, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/Algebra/Module/CharacterModule/Duality.lean, line 118.
The contravariant character-dual functor on modules over a commutative ring is exact.
theorem dualFunctor_exact (R : Type u) [CommRing R] :
exactFunctor (ModuleCat.{u} R)ᵒᵖ (ModuleCat.{u} R) (dualFunctor R)
Tag 01DB, a lemma
Tag 01DB in the Stacks Project.
CharacterModule.eval_injective, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/Algebra/Module/CharacterModule/Duality.lean, line 140.
The canonical evaluation map from an additive commutative group into its double character module is injective.
theorem eval_injective (M : Type u) [AddCommGroup M] :
Function.Injective (AddMonoidHom.eval : M →+ CharacterModule (CharacterModule M))
Tag 01DC, a lemma
Tag 01DC in the Stacks Project.
jModule_injective, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/Algebra/Module/CharacterModule/EnoughInjectives.lean, line 141.
Stacks Tag 01DC, Lemma 15.56.8. For every
R-moduleM(withRcommutative), theR-moduleJ(M) = (F(M^∨))^∨is injective. This ischaracterModule_finsupp_injectivefor the index typeM^∨.
theorem jModule_injective (R : Type*) [CommRing R] (M : Type*) [AddCommGroup M] :
Module.Injective R (JModule R M)
Tag 01DD, a lemma
Tag 01DD in the Stacks Project.
moduleCat_hasFunctorialInjectiveEmbeddings, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/Algebra/Module/CharacterModule/EnoughInjectives.lean, line 254.
Stacks Project, Tag 01DD. The canonical maps
M → J(M) = (F(M^∨))^∨form a covariant functor fromR-modules to arrows ofR-modules whose source projection is the identity, each of whose components is a monomorphism, and each of whose targets is an injective module.
theorem moduleCat_hasFunctorialInjectiveEmbeddings :
IsFunctorialInjectiveEmbeddings₁ (ModuleCat.{max u v} R) (jModuleArrowFunctor R) ∧
IsFunctorialInjectiveEmbeddings₂ (ModuleCat.{max u v} R) (jModuleArrowFunctor R) ∧
IsFunctorialInjectiveEmbeddings₃ (ModuleCat.{max u v} R) (jModuleArrowFunctor R)
Sources
Section15.57 Derived categories of modules#
Section 15.57 of the Stacks Project, Tag 0914. 3 tags here are carried by 3 declarations of the repository (all in StacksFrontier), quoted below from AxiomMath/Stacks at commit 5ed82d14.
Tag 0915, a lemma
Tag 0915 in the Stacks Project.
isKInjective_restrictScalars_of_flat, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/Homology/KInjective/ChangeOfRings.lean, line 99. References: SGA 4 V (4.9), “special case”.
Stacks Tag 0915. Let
f : R → Sbe a flat ring map of commutative rings. IfIis a K-injective complex ofS-modules, then its restriction of scalarsres_f Iis a K-injective complex ofR-modules.This is the adjoint criterion
CochainComplex.isKInjective_mapHomologicalComplex(Stacks 13.31.9) applied to the extension–restriction adjunction(- ⊗_R S) ⊣ res_f(Stacks 05DQ,ModuleCat.extendRestrictScalarsAdj): the left adjoint- ⊗_R Spreserves acyclicity byacyclic_extendScalarsComplex_of_flat, which is where flatness enters.
theorem isKInjective_restrictScalars_of_flat
{R S : Type u₁} [CommRing R] [CommRing S] (f : R →+* S) (hf : f.Flat)
(I : CochainComplex (ModuleCat.{max v u₁} S) ℤ) (hI : I.IsKInjective) :
((CochainComplex.restrictScalars f).obj I).IsKInjective
Tag 0916, a lemma
Tag 0916 in the Stacks Project.
isKInjective_of_restrictScalars_of_isEpi, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/Homology/KInjective/ChangeOfRings.lean, line 162.
Stacks 0916. Let
R → Sbe an epimorphism of commutative rings. If a complex ofS-modules is K-injective when regarded as a complex ofR-modules, then it is K-injective as a complex ofS-modules.Given an acyclic complex
KofS-modules and a chain mapf : K → I, restriction of scalars keepsKacyclic, so the hypothesis supplies a null-homotopy ofres f. Restriction of scalars is full and faithful here, so that homotopy is the image of a null-homotopy offitself.
theorem isKInjective_of_restrictScalars_of_isEpi [Algebra.IsEpi R S]
(I : CochainComplex (ModuleCat.{max w u₁ u₂} S) ℤ)
(hI : CochainComplex.IsKInjective
(((ModuleCat.restrictScalars (algebraMap R S)).mapHomologicalComplex
(ComplexShape.up ℤ)).obj I :
CochainComplex (ModuleCat.{max w u₁ u₂} R) ℤ)) :
CochainComplex.IsKInjective I
Tag 0917, a lemma
Tag 0917 in the Stacks Project.
coextend_isKInjective, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/Homology/KInjective/ChangeOfRings.lean, line 230.
Stacks Tag 0917. If
Iis a K-injective complex ofR-modules, then its degreewise coextension of scalarsHom_R(S, I)is a K-injective complex ofS-modules.This is the adjoint criterion
CochainComplex.isKInjective_mapHomologicalComplexfor the adjunctionModuleCat.restrictCoextendScalarsAdj f, whose left adjoint(-)_Rpreserves acyclicity byrestrictScalars_acyclic.
theorem coextend_isKInjective {R : Type u₁} {S : Type u₂} [Ring R] [Ring S] (f : R →+* S)
(I : CochainComplex (ModuleCat.{max v u₂} R) ℤ) (hI : I.IsKInjective) :
((coextendComplex.{u₁, u₂, v} f).obj I).IsKInjective
Sources
Section15.58 Computing Tor#
Section 15.58 of the Stacks Project, Tag 064F. 2 tags here are carried by 2 declarations of the repository (all in StacksFrontier), quoted below from AxiomMath/Stacks at commit 5ed82d14.
Tag 064G, an equation
Tag 064G in the Stacks Project.
CochainComplex.ComputingTor.derivedTensorProduct, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/Homology/Tor/Computing.lean, line 517.
Stacks 064G. For every
R-moduleM, the total left derived tensor product- ⊗ᴸ_R M : D⁻(R) ⟶ D⁻(R)exists.
public def derivedTensorProduct (M : ModuleCat.{u} R) : TotalDerivedTensor M
Tag 064H, an equation
Tag 064H in the Stacks Project.
CochainComplex.DerivedExtensionScalars.derivedExtensionScalars, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/Homology/Tor/DerivedExtensionScalars.lean, line 190. References: SGA 4½ Rapport (4.1), “special case”.
Stacks 064H. Derived extension of scalars on bounded-above derived categories. This is the dual of the bounded-below right derived functor of extension of scalars on opposite module categories, where projective modules become injective objects.
public def derivedExtensionScalars (f : R →+* A)
[HasDerivedCategory.{wR} (ModuleCat.{max uA (max uR v)} R)]
[HasDerivedCategory.{wA} (ModuleCat.{max uA (max uR v)} A)]
[HasDerivedCategory (ModuleCat.{max uA (max uR v)} R)ᵒᵖ]
[HasDerivedCategory (ModuleCat.{max uA (max uR v)} A)ᵒᵖ] :
DerivedCategory.Minus (ModuleCat.{max uA (max uR v)} R) ⥤
DerivedCategory.Minus (ModuleCat.{max uA (max uR v)} A)
Sources
Section15.59 Tensor products of complexes#
Section 15.59 of the Stacks Project, Tag 0GWN. 4 tags here are carried by 5 declarations of the repository (all in StacksFrontier), quoted below from AxiomMath/Stacks at commit 5ed82d14.
Tag 0FNI, a lemma
Tag 0FNI in the Stacks Project.
TotalTensorComplex.cochainComplex_symmetricMonoidalCategory, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/Homology/TensorComplex/Monoidal.lean, line 115.
The category of cochain complexes of modules over a commutative ring, with tensor product given by the total complex of the degreewise tensor product, is symmetric monoidal. On the summand of bidegree
(p, q), its braiding is the ordinary symmetry of tensor products multiplied by the Koszul sign(-1)^(p*q).
public theorem cochainComplex_symmetricMonoidalCategory (R : Type u) [CommRing R] :
∃ s : SymmetricCategory (CochainComplex (ModuleCat R) ℤ),
∀ (K L : CochainComplex (ModuleCat R) ℤ) (p q n : ℤ) (h : p + q = n),
HomologicalComplex.ιTensorObj K L p q n h ≫
(s.toBraidedCategory.braiding K L).hom.f n =
((p * q).negOnePow : ℤˣ) •
((β_ (K.X p) (L.X q)).hom ≫
HomologicalComplex.ιTensorObj L K q p n (by simpa [add_comm] using h))
Tag 064I, a lemma
Tag 064I in the Stacks Project.
TotalTensorComplex.tensorTotal_preserves_homotopy_and_descends, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/Homology/TensorComplex/Monoidal.lean, line 128. References: SGA 4½ Etat 0 (1.3.3), “tensor over ModuleCat R”.
Tensoring with a fixed complex and taking the total complex preserves homotopic maps, and therefore induces an endofunctor of the homotopy category of complexes.
public theorem tensorTotal_preserves_homotopy_and_descends {R : Type u} [CommRing R]
(P : CochainComplex (ModuleCat.{u} R) ℤ) :
let T := (curriedTensor (ModuleCat.{u} R)).map₂CochainComplex.flip.obj P
(∀ {L M : CochainComplex (ModuleCat.{u} R) ℤ} {f g : L ⟶ M},
homotopic (ModuleCat.{u} R) (ComplexShape.up ℤ) f g →
homotopic (ModuleCat.{u} R) (ComplexShape.up ℤ) (T.map f) (T.map g)) ∧
∃ T' : HomotopyCategory (ModuleCat.{u} R) (ComplexShape.up ℤ) ⥤
HomotopyCategory (ModuleCat.{u} R) (ComplexShape.up ℤ),
HomotopyCategory.quotient (ModuleCat.{u} R) (ComplexShape.up ℤ) ⋙ T' =
T ⋙ HomotopyCategory.quotient (ModuleCat.{u} R) (ComplexShape.up ℤ)
Tag 0GWP, a lemma
Tag 0GWP in the Stacks Project.
TotalTensorComplex.homotopyCategory_symmetricMonoidalCategory, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/Homology/TensorComplex/Monoidal.lean, line 179.
The homotopy category of cochain complexes of modules over a commutative ring is symmetric monoidal under the total tensor product. Its associator and Koszul braiding are induced from the corresponding canonical constraints on complexes.
public theorem homotopyCategory_symmetricMonoidalCategory (R : Type u) [CommRing R] :
∃ sC : SymmetricCategory (CochainComplex (ModuleCat.{u} R) ℤ),
(∀ (K L : CochainComplex (ModuleCat.{u} R) ℤ) (p q n : ℤ) (h : p + q = n),
HomologicalComplex.ιTensorObj K L p q n h ≫
(sC.toBraidedCategory.braiding K L).hom.f n =
((p * q).negOnePow : ℤˣ) •
((β_ (K.X p) (L.X q)).hom ≫
HomologicalComplex.ιTensorObj L K q p n (by simpa [add_comm] using h))) ∧
letI := sC
∃ mK : MonoidalCategory
(HomotopyCategory (ModuleCat.{u} R) (ComplexShape.up ℤ)),
letI := mK
∃ sK : SymmetricCategory
(HomotopyCategory (ModuleCat.{u} R) (ComplexShape.up ℤ)),
letI := sK
Nonempty
(HomotopyCategory.quotient (ModuleCat.{u} R) (ComplexShape.up ℤ)).Braided
Tag 064J, a lemma
Tag 064J in the Stacks Project.
TotalTensorComplex.tleft_isTriangulated, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/Homology/TensorComplex/Monoidal.lean, line 260.
Tensoring on the left with a fixed complex and totalizing is an exact functor of triangulated categories on the homotopy category.
Stated for an arbitrary preadditive monoidal category whose tensor product is additive in each variable, which is the generality the statement holds in. Module categories are the case of interest, at any module universe: the instances above hold for
ModuleCat.{max u v} Ras well as forModuleCat.{u} R.
public theorem tleft_isTriangulated (G : CochainComplex C ℤ) :
∃ e : (Tleft G).CommShift ℤ,
@Functor.IsTriangulated _ _ _ _ _ _ (Tleft G) e _ _ _ _ _ _ _ _
TotalTensorComplex.tright_isTriangulated, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/Homology/TensorComplex/Monoidal.lean, line 269.
Tensoring on the right with a fixed complex and totalizing is an exact functor of triangulated categories on the homotopy category. This is genuinely distinct from
tleft_isTriangulated: the two differ by the Koszul sign in the commutativity constraint.
public theorem tright_isTriangulated (G : CochainComplex C ℤ) :
∃ e : (Tright G).CommShift ℤ,
@Functor.IsTriangulated _ _ _ _ _ _ (Tright G) e _ _ _ _ _ _ _ _
Sources
Section15.60 Derived tensor product#
Section 15.60 of the Stacks Project, Tag 06XY. 16 tags here are carried by 20 declarations of the repository (all in StacksFrontier), quoted below from AxiomMath/Stacks at commit 5ed82d14.
Tag 06XZ, a definition
Tag 06XZ in the Stacks Project.
CochainComplex.KFlat, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/Algebra/Homology/KFlat.lean, line 49.
A cochain complex
KofR-modules is K-flat if the total complexTot(M ⊗_R K)is acyclic for every acyclic cochain complexMofR-modules. Here⊗is the monoidal product of cochain complexes, i.e. the total complex of the tensor product double complex with the Koszul sign convention.
def CochainComplex.KFlat (K : CochainComplex (ModuleCat.{max u v} R) ℤ) : Prop
Tag 06Y0, a lemma
Tag 06Y0 in the Stacks Project.
CochainComplex.KFlat.kFlat_tright_preserves_quasiIso, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/Homology/KFlat/QuasiIso.lean, line 60.
Tensoring with a K-flat complex and taking the total complex preserves quasi-isomorphisms in the homotopy category.
public theorem kFlat_tright_preserves_quasiIso {R : Type u} [CommRing R]
(K : CochainComplex (ModuleCat.{max u v} R) ℤ) (hK : K.KFlat) :
HomotopyCategory.quasiIso (ModuleCat.{max u v} R) (ComplexShape.up ℤ) ≤
(HomotopyCategory.quasiIso (ModuleCat.{max u v} R) (ComplexShape.up ℤ)).inverseImage
(Tright K)
Tag 06Y1, a lemma
Tag 06Y1 in the Stacks Project.
CochainComplex.KFlat.ScalarBaseChange.kFlat_extendScalars, a lemma in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/Homology/KFlat/ScalarBaseChange.lean, line 693.
Stacks 06Y1. Extension of scalars along
φ : R →+* R'carries a K-flat complex ofR-modules to a K-flat complex ofR'-modules: tensoring overR'with the base change is, after restriction of scalars, tensoring overR, and restriction of scalars reflects acyclicity.The two rings inhabit independent universes
uRanduA, as they do in the source, where they are related only by a ring map; the module universemax v uR uAis independent of both and large enough to hold the modules of either ring.CochainComplex.kFlat_baseChangeinStacksFrontier.Homology.KFlat.BaseChangeis the specialization of this statement to a single common universe.
public lemma kFlat_extendScalars (φ : R →+* R')
(K : CochainComplex (ModuleCat.{max v uR uA} R) ℤ)
(hK : CochainComplex.KFlat.{uR, max v uA} K) :
CochainComplex.KFlat.{uA, max v uR} ((extendScalarsLarge.{v, uR, uA} φ).obj K)
Tag 0795, a lemma
Tag 0795 in the Stacks Project.
CochainComplex.KFlat.tensor, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/Homology/KFlat/Basic.lean, line 629.
(Stacks tag 0795, Lemma 15.60.4) If
KandLare K-flat complexes ofR-modules, thenTot(K ⊗_R L)(i.e. the monoidal tensor productK ⊗ L) is K-flat.For acyclic
M, K-flatness ofKmakesM ⊗ Kacyclic, then K-flatness ofLmakes(M ⊗ K) ⊗ Lacyclic, and acyclicity transfers toM ⊗ (K ⊗ L)across the associator.
theorem CochainComplex.KFlat.tensor (K L : CochainComplex (ModuleCat R) ℤ)
(hK : K.KFlat) (hL : L.KFlat) : (K ⊗ L).KFlat
Tag 06Y2, a lemma
Tag 06Y2 in the Stacks Project.
CochainComplex.KFlat.kFlat_two_out_of_three_of_distTriang, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/Homology/KFlat/Triangle.lean, line 52.
K-flatness is a two-out-of-three property in a distinguished triangle of the homotopy category.
theorem kFlat_two_out_of_three_of_distTriang
{R : Type u} [CommRing R] {K₁ K₂ K₃ : CochainComplex (ModuleCat.{u} R) ℤ}
(f : (HomotopyCategory.quotient (ModuleCat.{u} R) (ComplexShape.up ℤ)).obj K₁ ⟶
(HomotopyCategory.quotient (ModuleCat.{u} R) (ComplexShape.up ℤ)).obj K₂)
(g : (HomotopyCategory.quotient (ModuleCat.{u} R) (ComplexShape.up ℤ)).obj K₂ ⟶
(HomotopyCategory.quotient (ModuleCat.{u} R) (ComplexShape.up ℤ)).obj K₃)
(h : (HomotopyCategory.quotient (ModuleCat.{u} R) (ComplexShape.up ℤ)).obj K₃ ⟶
((HomotopyCategory.quotient (ModuleCat.{u} R) (ComplexShape.up ℤ)).obj K₁)⟦(1 : ℤ)⟧)
(hT : Triangle.mk f g h ∈
distTriang (HomotopyCategory (ModuleCat.{u} R) (ComplexShape.up ℤ))) :
(K₂.KFlat → K₃.KFlat → K₁.KFlat) ∧
(K₁.KFlat → K₃.KFlat → K₂.KFlat) ∧
(K₁.KFlat → K₂.KFlat → K₃.KFlat)
Tag 0BYH, a lemma
Tag 0BYH in the Stacks Project.
KFlatTwoOutOfThree.kFlat_two_out_of_three, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/Homology/KFlat/Basic.lean, line 544.
Two-out-of-three for K-flatness (Stacks Tag 0BYH, Lemma 15.60.6). Given a short exact sequence of complexes
0 → K₁ → K₂ → K₃ → 0with everyK₃^nflat, if at least two ofK₁, K₂, K₃are K-flat, then all three are.Case analysis on the disjunction
h, completing the missing third K-flatness via the corresponding directional lemma.
theorem kFlat_two_out_of_three {R : Type u} [CommRing R] (S : ShortComplex (Cx R))
(hse : S.ShortExact) (hflat : ∀ n : ℤ, Module.Flat R (S.X₃.X n))
(h : (CochainComplex.KFlat S.X₁ ∧ CochainComplex.KFlat S.X₂) ∨
(CochainComplex.KFlat S.X₁ ∧ CochainComplex.KFlat S.X₃) ∨
(CochainComplex.KFlat S.X₂ ∧ CochainComplex.KFlat S.X₃)) :
CochainComplex.KFlat S.X₁ ∧ CochainComplex.KFlat S.X₂ ∧ CochainComplex.KFlat S.X₃
Tag 064K, a lemma
Tag 064K in the Stacks Project.
CochainComplex.KFlat.kFlat_of_flat, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/Homology/KFlat/Flat.lean, line 510. References: SGA 4 XVII (4.1.7), “(ii), modules over ring”.
Stacks 064K. A bounded above cochain complex of flat modules is K-flat.
public theorem kFlat_of_flat {R : Type u} [CommRing R]
(P : CochainComplex (ModuleCat.{max u v} R) ℤ) (d : ℤ) [P.IsStrictlyLE d]
[∀ n : ℤ, Module.Flat R (P.X n)] :
P.KFlat
Tag 06Y3, a lemma
Tag 06Y3 in the Stacks Project.
CochainComplex.KFlat.kFlat_colimit, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/Homology/KFlat/Flat.lean, line 543.
A filtered colimit of K-flat complexes of modules is K-flat.
public theorem kFlat_colimit {R : Type u} [CommRing R]
{J : Type v} [Category.{w} J] [Small.{max u x} J] [LocallySmall.{max u x} J] [IsFiltered J]
(K : J ⥤ CochainComplex (ModuleCat.{max u x} R) ℤ)
(hK : ∀ j, (K.obj j).KFlat) : (colimit K).KFlat
Tag 0E8F, a lemma
Tag 0E8F in the Stacks Project.
CochainComplex.KFlat.kFlat_of_tensor_finitelyPresented_acyclic, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/Homology/KFlat/FinitelyPresented.lean, line 534.
Stacks 0E8F. A cochain complex whose tensor product with every finitely presented module is acyclic is K-flat.
public theorem kFlat_of_tensor_finitelyPresented_acyclic {R : Type u} [CommRing R]
(K : CochainComplex (ModuleCat.{u} R) ℤ)
(hK : ∀ M : ModuleCat.{u} R, Module.FinitePresentation R M →
(K ⊗ (HomologicalComplex.single (ModuleCat.{u} R) (ComplexShape.up ℤ) 0).obj M).Acyclic) :
K.KFlat
Tag 06Y4, a lemma
Tag 06Y4 in the Stacks Project.
CochainComplex.KFlat.exists_kFlat_resolution, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/Homology/KFlat/Resolution.lean, line 126.
Stacks 06Y4. Every cochain complex of modules admits a termwise-surjective quasi-isomorphism from a K-flat complex with flat terms.
theorem exists_kFlat_resolution {R : Type u} [CommRing R]
(M : CochainComplex (ModuleCat.{max u v} R) ℤ) :
∃ (K : CochainComplex (ModuleCat.{max u v} R) ℤ) (f : K ⟶ M),
K.KFlat ∧
(∀ n : ℤ, Module.Flat R (K.X n)) ∧
QuasiIso f ∧
∀ n : ℤ, Function.Surjective (f.f n).hom
Tag 09PB, a remark
Tag 09PB in the Stacks Project.
CochainComplex.KFlat.property_of_coproducts_of_two_out_of_three_of_shifts, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/Homology/KFlat/FilteredColimitShifts.lean, line 1375.
Every complex has a split filtered resolution whose graded pieces are coproducts of shifts of the ring and whose filtration yields the canonical telescope triangle. Moreover, a property of objects of
D(R)that is preserved by coproducts, satisfies two-out-of-three for distinguished triangles, and holds for every shift ofR, holds for every object ofD(R).
theorem property_of_coproducts_of_two_out_of_three_of_shifts {R : Type u} [Ring R]
[Small.{v} R] :
(∀ M : CochainComplex (ModuleCat.{v} R) ℤ, Nonempty (SplitFilteredFreeResolution M)) ∧
∀ (T : DerivedCategory (ModuleCat.{v} R) → Prop),
(∀ {I : Type v} (K : I → DerivedCategory (ModuleCat.{v} R)) [HasCoproduct K],
(∀ i, T (K i)) → T (∐ K)) →
(∀ (Δ : Triangle (DerivedCategory (ModuleCat.{v} R))),
Δ ∈ distinguishedTriangles →
(T Δ.obj₁ → T Δ.obj₂ → T Δ.obj₃) ∧
(T Δ.obj₁ → T Δ.obj₃ → T Δ.obj₂) ∧
(T Δ.obj₂ → T Δ.obj₃ → T Δ.obj₁)) →
(∀ k : ℤ, T (((DerivedCategory.singleFunctor (ModuleCat.{v} R) 0).obj
(ModuleCat.of R (Shrink.{v} R)))⟦k⟧)) →
∀ K, T K
Tag 064L, a lemma
Tag 064L in the Stacks Project.
CochainComplex.DerivedTensor.quasiIso_trightCochain_map, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/Homology/Tor/DerivedTensorKFlatResolution.lean, line 124.
A quasi-isomorphism between K-flat complexes remains a quasi-isomorphism after tensoring on the right with any complex. This is the companion of
quasiIso_tleftCochain_map(Stacks 064L), whose fixed factor is the left one.
theorem quasiIso_trightCochain_map
{P Q : CochainComplex (ModuleCat.{max u v} R) ℤ} (α : P ⟶ Q) [QuasiIso α]
(hP : P.KFlat) (hQ : Q.KFlat) (L : CochainComplex (ModuleCat.{max u v} R) ℤ) :
QuasiIso ((TrightCochain L).map α)
CochainComplex.DerivedTensor.quasiIso_tleftCochain_map, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/Homology/Tor/DerivedTensorLargeUniverse.lean, line 200.
A quasi-isomorphism between K-flat complexes remains a quasi-isomorphism after tensoring on the left with any complex and taking the total complex.
public theorem quasiIso_tleftCochain_map {R : Type u} [CommRing R]
{P Q : CochainComplex (ModuleCat.{max u v} R) ℤ} (α : P ⟶ Q) [QuasiIso α]
(hP : P.KFlat) (hQ : Q.KFlat) (L : CochainComplex (ModuleCat.{max u v} R) ℤ) :
QuasiIso ((TleftCochain L).map α)
Tag 064M, a definition
Tag 064M in the Stacks Project.
CochainComplex.DerivedTensor.derivedTensorProduct, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/Homology/Tor/DerivedTensorFunctorLargeUniverse.lean, line 63. References: SGA 4 XVII (4.1.7), “(i), modules over ring”.
The derived tensor product with
M, computed by a K-flat resolution of a representative ofM.
public noncomputable def derivedTensorProduct
(M : DerivedCategory (ModuleCat.{max u v} R)) :
DerivedCategory (ModuleCat.{max u v} R) ⥤ DerivedCategory (ModuleCat.{max u v} R)
CochainComplex.DerivedTensor.derivedTensorProduct_commShift, an instance in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/Homology/Tor/DerivedTensorFunctorLargeUniverse.lean, line 79.
The derived tensor product commutes with the shift functors.
public noncomputable instance derivedTensorProduct_commShift
(M : DerivedCategory (ModuleCat.{max u v} R)) :
(derivedTensorProduct M).CommShift ℤ
CochainComplex.DerivedTensor.derivedTensorProduct_isTriangulated, an instance in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/Homology/Tor/DerivedTensorFunctorLargeUniverse.lean, line 100.
The derived tensor product is an exact functor of triangulated categories.
public noncomputable instance derivedTensorProduct_isTriangulated
(M : DerivedCategory (ModuleCat.{max u v} R)) :
(derivedTensorProduct M).IsTriangulated
CochainComplex.DerivedTensor.derivedTensorProduct_iso_lift_of_kFlat_resolution, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/Homology/Tor/DerivedTensorFunctorLargeUniverse.lean, line 207.
A K-flat resolution of any representative of
Mcomputes the derived tensor product. The comparison is a natural isomorphism, uniquely determined by its pullback to the homotopy category.
public theorem derivedTensorProduct_iso_lift_of_kFlat_resolution
(M : DerivedCategory (ModuleCat.{max u v} R))
(P K : CochainComplex (ModuleCat.{max u v} R) ℤ) (f : K ⟶ P) [QuasiIso f]
(hK : K.KFlat)
(_eP : (DerivedCategory.Qh (C := ModuleCat.{max u v} R)).obj
((HomotopyCategory.quotient (ModuleCat.{max u v} R) (ComplexShape.up ℤ)).obj P) ≅ M) :
let W := HomotopyCategory.quasiIso (ModuleCat.{max u v} R) (ComplexShape.up ℤ)
let F := Tright K ⋙ DerivedCategory.Qh
let hF : W.IsInvertedBy F := fun _ _ g hg ↦
Localization.inverts DerivedCategory.Qh W _
(CochainComplex.KFlat.kFlat_tright_preserves_quasiIso K hK g hg)
let F' := Localization.lift F hF DerivedCategory.Qh
Nonempty (DerivedCategory.Qh ⋙ derivedTensorProduct M ≅ F) ∧
∀ α : DerivedCategory.Qh ⋙ derivedTensorProduct M ≅ F,
∃! e : derivedTensorProduct M ≅ F',
Functor.isoWhiskerLeft DerivedCategory.Qh e =
α ≪≫ (Localization.fac F hF DerivedCategory.Qh).symm
Tag 0BYI, a lemma
Tag 0BYI in the Stacks Project.
CochainComplex.DerivedTensor.canonicalSymmetricDerivedTensorProduct, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/Homology/Tor/DerivedTensor.lean, line 754.
Stacks 0BYI. The canonical derived tensor product, equipped with its symmetry functorial in both complexes and represented on K-flat complexes in degrees
pandqby the ordinary tensor braiding with the sign(-1) ^ (p * q).
public noncomputable def canonicalSymmetricDerivedTensorProduct
(R : Type u) [CommRing R]
[HasDerivedCategory (ModuleCat.{u} R)] : SymmetricDerivedTensorProduct R
Tag 0BYJ, a lemma
Tag 0BYJ in the Stacks Project.
CochainComplex.DerivedTensor.derivedTensorProduct_associator, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/Homology/Tor/DerivedTensor.lean, line 1066.
Stacks 0BYJ. The derived tensor product is associative up to a canonical isomorphism, functorial in all three complexes. On K-flat representatives this is the standard associator of tensor products of complexes.
public theorem derivedTensorProduct_associator
(R : Type u) [CommRing R] [HasDerivedCategory (ModuleCat.{u} R)] :
let D := DerivedCategory (ModuleCat.{u} R)
let C := CochainComplex (ModuleCat.{u} R) ℤ
let Q := DerivedCategory.Q (C := ModuleCat.{u} R)
let T := canonicalDerivedTensorProduct R
∃ associator : ∀ K L M : D,
(T.tensor.obj ((T.tensor.obj K).obj L)).obj M ≅
(T.tensor.obj K).obj ((T.tensor.obj L).obj M),
(∀ {K K' L L' M M' : D} (f : K ⟶ K') (g : L ⟶ L') (h : M ⟶ M'),
(T.tensor.map ((T.tensor.map f).app L ≫ (T.tensor.obj K').map g)).app M ≫
(T.tensor.obj ((T.tensor.obj K').obj L')).map h ≫
(associator K' L' M').hom =
(associator K L M).hom ≫
(T.tensor.map f).app ((T.tensor.obj L).obj M) ≫
(T.tensor.obj K').map
((T.tensor.map g).app M ≫ (T.tensor.obj L').map h)) ∧
∀ (K L M : C) (hK : K.KFlat) (hL : L.KFlat) (hM : M.KFlat),
let hKL := CochainComplex.KFlat.tensor R K L hK hL
let hLM := CochainComplex.KFlat.tensor R L M hL hM
(associator (Q.obj K) (Q.obj L) (Q.obj M)).hom ≫
(T.tensor.obj (Q.obj K)).map (T.comparison L M hL hM).hom ≫
(T.comparison K (L ⊗ M) hK hLM).hom =
(T.tensor.map (T.comparison K L hK hL).hom).app (Q.obj M) ≫
(T.comparison (K ⊗ L) M hKL hM).hom ≫
Q.map (HomologicalComplex.associator K L M).hom
Tag 0G6M, a lemma
Tag 0G6M in the Stacks Project.
CochainComplex.KFlat.exists_kFlat_factorization_up_to_homotopy, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/Homology/KFlat/Resolution.lean, line 310.
A morphism from a K-flat complex factors up to homotopy through another K-flat complex which maps to the target by a quasi-isomorphism. When the source has flat terms, the intermediate complex can be chosen with flat terms.
theorem exists_kFlat_factorization_up_to_homotopy
{R : Type u} [CommRing R] {K L : CochainComplex (ModuleCat.{u} R) ℤ} (a : K ⟶ L)
(hK : K.KFlat) :
∃ (N : CochainComplex (ModuleCat.{u} R) ℤ) (b : K ⟶ N) (c : N ⟶ L),
N.KFlat ∧
QuasiIso c ∧
Nonempty (Homotopy a (b ≫ c)) ∧
((∀ n : ℤ, Module.Flat R (K.X n)) → ∀ n : ℤ, Module.Flat R (N.X n))
Sources
Section15.61 Derived change of rings#
Section 15.61 of the Stacks Project, Tag 06Y5. 5 tags here are carried by 5 declarations of the repository (all in StacksFrontier), quoted below from AxiomMath/Stacks at commit 5ed82d14.
Tag 06Y6, a lemma
Tag 06Y6 in the Stacks Project.
CochainComplex.DerivedTensor.canonicalDerivedTensorChangeOfRings, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/Homology/Tor/DerivedChangeOfRings.lean, line 1057.
The derived tensor product
- ⊗ᴸ_R NfromD(R)toD(A), with derived extension of scalars, derived tensoring overAand the change-of-rings isomorphism normalized by their counits.
public noncomputable def canonicalDerivedTensorChangeOfRings
{R : Type uR} {A : Type uA} [CommRing R] [CommRing A] (f : R →+* A)
(N : CochainComplex (ModuleCat.{max v uR uA} A) ℤ)
[HasDerivedCategory.{wR} (ModuleCat.{max v uR uA} R)]
[HasDerivedCategory.{wA} (ModuleCat.{max v uR uA} A)] :
DerivedTensorChangeOfRings f N
Tag 0BYK, a lemma
Tag 0BYK in the Stacks Project.
CochainComplex.DerivedTensor.exists_derivedTensorNatTrans_isIso_of_quasiIso, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/Homology/Tor/DerivedTensorFunctoriality.lean, line 115.
A map
f : L ⟶ Nof complexes ofA-modules induces a natural transformation1 ⊗ᴸ fbetween any chosen left-derived models of the change-of-rings tensor functors- ⊗ᴸ_R Land- ⊗ᴸ_R N. The compatibility equation says that this is the transformation induced by the ordinary tensor map1 ⊗ f. Iffis a quasi-isomorphism, the induced transformation is an isomorphism of functors.The source ring universe
uR, the target ring universeuAand the module universe are mutually independent: the two rings are related by nothing butφ, and the modules of both rings have to fit in one category, so they live atmax v uR uA.
public theorem exists_derivedTensorNatTrans_isIso_of_quasiIso
{R : Type uR} {A : Type uA} [CommRing R] [CommRing A] (φ : R →+* A)
{L N : CochainComplex (ModuleCat.{max v uR uA} A) ℤ}
(f : L ⟶ N)
(FL FN : DerivedCategory (ModuleCat.{max v uR uA} R) ⥤
DerivedCategory (ModuleCat.{max v uR uA} A))
(αL : DerivedCategory.Q ⋙ FL ⟶
(extendScalarsLarge.{v, uR, uA} φ ⋙ tensorRightLarge.{uA, max v uR} L) ⋙
DerivedCategory.Q)
(αN : DerivedCategory.Q ⋙ FN ⟶
(extendScalarsLarge.{v, uR, uA} φ ⋙ tensorRightLarge.{uA, max v uR} N) ⋙
DerivedCategory.Q)
[CategoryTheory.Functor.IsLeftDerivedFunctor FL αL
(HomologicalComplex.quasiIso (ModuleCat.{max v uR uA} R) (ComplexShape.up ℤ))]
[CategoryTheory.Functor.IsLeftDerivedFunctor FN αN
(HomologicalComplex.quasiIso (ModuleCat.{max v uR uA} R) (ComplexShape.up ℤ))] :
letI : MonoidalCategoryStruct (ModuleCat.{max v uR uA} A) :=
ModuleCat.liftedModuleMonoidalStruct.{uA, max v uR}
letI : MonoidalCategory (ModuleCat.{max v uR uA} A) :=
ModuleCat.liftedModuleMonoidal.{uA, max v uR}
let tensorMap :
(extendScalarsLarge.{v, uR, uA} φ ⋙ tensorRightLarge.{uA, max v uR} L) ⋙
DerivedCategory.Q ⟶
(extendScalarsLarge.{v, uR, uA} φ ⋙ tensorRightLarge.{uA, max v uR} N) ⋙
DerivedCategory.Q :=
CategoryTheory.Functor.whiskerRight
(CategoryTheory.Functor.whiskerLeft (extendScalarsLarge.{v, uR, uA} φ)
((CategoryTheory.MonoidalCategory.curriedTensor
(ModuleCat.{max v uR uA} A)).map₂CochainComplex.flip.map f))
DerivedCategory.Q
∃ t : FL ⟶ FN,
CategoryTheory.Functor.whiskerLeft DerivedCategory.Q t ≫ αN = αL ≫ tensorMap ∧
(HomologicalComplex.quasiIso (ModuleCat.{max v uR uA} A) (ComplexShape.up ℤ) f →
IsIso t)
Tag 0GMT, a lemma
Tag 0GMT in the Stacks Project.
CochainComplex.DerivedExtensionScalars.derivedExtensionScalarsAdjunction, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/Homology/Tor/DerivedChangeOfRingsAdjunction.lean, line 99.
Stacks 0GMT. Derived extension of scalars along a homomorphism of commutative rings is left adjoint to derived restriction of scalars. The extension functor may be any model equipped with the total-left-derived universal property, since uniqueness of left derived functors identifies it with the model computed by K-flat resolutions.
public def derivedExtensionScalarsAdjunction
{R : Type uR} {A : Type uA} [CommRing R] [CommRing A] (f : R →+* A)
[HasDerivedCategory.{wR} (ModuleCat.{max uR uA uM} R)]
[HasDerivedCategory.{wA} (ModuleCat.{max uR uA uM} A)] :
letI : (ModuleCat.extendScalars.{uR, uA, max uR uA uM} f).IsLeftAdjoint :=
(ModuleCat.extendRestrictScalarsAdj.{max uR uM, uR, uA} f).isLeftAdjoint
letI : (ModuleCat.restrictScalars.{max uR uA uM, uR, uA} f).IsRightAdjoint :=
(ModuleCat.extendRestrictScalarsAdj.{max uR uM, uR, uA} f).isRightAdjoint
letI : (ModuleCat.restrictScalars.{max uR uA uM, uR, uA} f).IsLeftAdjoint :=
(ModuleCat.restrictCoextendScalarsAdj.{max uR uM, uR, uA} f).isLeftAdjoint
∀ (F : CategoryTheory.Functor (DerivedCategory (ModuleCat.{max uR uA uM} R))
(DerivedCategory (ModuleCat.{max uR uA uM} A)))
(comparison : DerivedCategory.Q ⋙ F ⟶
(ModuleCat.extendScalars.{uR, uA, max uR uA uM} f).mapHomologicalComplex
(ComplexShape.up ℤ) ⋙ DerivedCategory.Q)
[F.IsLeftDerivedFunctor comparison
(HomologicalComplex.quasiIso (ModuleCat.{max uR uA uM} R) (ComplexShape.up ℤ))],
F ⊣ (ModuleCat.restrictScalars.{max uR uA uM, uR, uA} f).mapDerivedCategory
Tag 08YT, a remark
Tag 08YT in the Stacks Project.
CochainComplex.DerivedChangeOfRings.derivedTensorModuleStructuresDiffer, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/Homology/Tor/ChangeOfRings.lean, line 574.
In the example
R = k[x,y],A = R/(xy), andN = R/(x), the objectsN_R ⊗_R^ᴸ AandN ⊗_R^ᴸ A_RofD(A)are not isomorphic. The returned data includes the two displayed K-flat resolutions and augmentations, their quasi-isomorphism certificates, and the canonical identifications withA → AandN[1] ⊕ N.
public noncomputable def derivedTensorModuleStructuresDiffer
(k : Type u) [CommRing k] [Nontrivial k] :
DerivedTensorComparison k
Tag 08YU, a lemma
Tag 08YU in the Stacks Project.
CochainComplex.DerivedTensor.IteratedChangeOfRings.derivedTensorProduct_doubleBaseChange, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/Homology/Tor/IteratedDerivedChangeOfRings.lean, line 1174.
Canonical associativity of derived change of rings, with its signed interchange. The ordinary maps send
(x ⊗ n) ⊗ ktox ⊗ (n ⊗ k)and to(-1)^(deg n * deg k) (x ⊗ k) ⊗ n, respectively. These equations and the specified counits ofDerivedTensorChangeOfRingsfix the derived comparisons, including for nonflatNandK.
rightFactoridentifies the complex used bytogetherwithN ⊗ᴸ_B K;baseFactoridentifies the second signed factor withN ⊗ᴸ_B C. The final isomorphism to extension of scalars followed by tensoring is exactly the change-of-rings projection. All comparisons are natural in the object ofD(A).
public theorem derivedTensorProduct_doubleBaseChange
{A : Type uA} {B : Type uB} {C : Type uC} [CommRing A] [CommRing B] [CommRing C]
(f : A →+* B) (g : B →+* C)
(N : CochainComplex (ModuleCat.{max v uA uB uC} B) ℤ)
(K : CochainComplex (ModuleCat.{max v uA uB uC} C) ℤ) :
let Q_A := DerivedCategory.Q (C := ModuleCat.{max v uA uB uC} A)
let Q_B := DerivedCategory.Q (C := ModuleCat.{max v uA uB uC} B)
let Q_C := DerivedCategory.Q (C := ModuleCat.{max v uA uB uC} C)
let W_A := HomologicalComplex.quasiIso
(ModuleCat.{max v uA uB uC} A) (ComplexShape.up ℤ)
let PN := CochainComplex.KFlat.chosenResolution.{uB, max v uA uC} N
let LK := CochainComplex.KFlat.chosenResolution.{uC, max v uA uB} K
let AN := canonicalDerivedTensorChangeOfRings.{uA, uB, max v uA uB uC} f N
let AP := canonicalDerivedTensorChangeOfRings.{uA, uB, max v uA uB uC} f PN.complex
let BK := canonicalDerivedTensorChangeOfRings.{uB, uC, max v uA uB uC} g K
let BL := canonicalDerivedTensorChangeOfRings.{uB, uC, max v uA uB uC} g LK.complex
let AC := canonicalDerivedTensorChangeOfRings.{uA, uC, max v uA uB uC}
(g.comp f) (BL.directTensor.obj PN.complex)
let AL := canonicalDerivedTensorChangeOfRings.{uA, uC, max v uA uB uC}
(g.comp f) LK.complex
let AK := canonicalDerivedTensorChangeOfRings.{uA, uC, max v uA uB uC} (g.comp f) K
let CP := canonicalDerivedTensorChangeOfRings.{uC, uC, max v uA uB uC}
(RingHom.id C)
((extendScalarsLarge.{max v uA uB uC, uB, uC} g).obj PN.complex)
let iterated := AN.F ⋙ BK.F
let together := AC.F
let signed := AK.F ⋙ CP.F
∃ (replaceN : AP.F ≅ AN.F) (replaceK : BL.F ≅ BK.F) (replaceAK : AL.F ≅ AK.F),
replaceN.hom = AP.map AN PN.π ∧
replaceK.hom = BL.map BK LK.π ∧
replaceAK.hom = AL.map AK LK.π ∧
∃ (rightFactor : BK.F.obj (Q_B.obj N) ≅ Q_C.obj (BL.directTensor.obj PN.complex))
(baseFactor : BK.B.obj (Q_B.obj N) ≅
Q_C.obj ((extendScalarsLarge.{max v uA uB uC, uB, uC} g).obj PN.complex)),
BL.F.map (Q_B.map PN.π) ≫ replaceK.hom.app (Q_B.obj N) ≫ rightFactor.hom =
BL.alphaF.app PN.complex ∧
BK.B.map (Q_B.map PN.π) ≫ baseFactor.hom = BK.alphaB.app PN.complex ∧
∃ (ordinaryAssociator : AP.directTensor ⋙ BL.directTensor ≅ AC.directTensor)
(ordinaryInterchange : AP.directTensor ⋙ BL.directTensor ≅
AL.directTensor ⋙ CP.directTensor),
(∀ (M : CochainComplex (ModuleCat.{max v uA uB uC} A) ℤ)
(i j k : ℤ) (x : M.X i) (n : PN.complex.X j) (l : LK.complex.X k),
(ordinaryAssociator.hom.app M).f ((i + j) + k)
(BL.tensorElement (AP.directTensor.obj M) (i + j) k ((i + j) + k) rfl
(AP.tensorElement M i j (i + j) rfl x n) l) =
AC.tensorElement M i (j + k) ((i + j) + k) (by omega) x
(BL.tensorElement PN.complex j k (j + k) rfl n l)) ∧
(∀ (M : CochainComplex (ModuleCat.{max v uA uB uC} A) ℤ)
(i j k : ℤ) (x : M.X i) (n : PN.complex.X j) (l : LK.complex.X k),
(ordinaryInterchange.hom.app M).f ((i + j) + k)
(BL.tensorElement (AP.directTensor.obj M) (i + j) k ((i + j) + k) rfl
(AP.tensorElement M i j (i + j) rfl x n) l) =
(-1 : C) ^ (j * k).natAbs •
CP.tensorElement (AL.directTensor.obj M) (i + k) j ((i + j) + k)
(by omega) (AL.tensorElement M i k (i + k) rfl x l)
((1 : C) ⊗ₜ[B,g] n)) ∧
let replaceIterated := Functor.isoWhiskerRight replaceN BL.F ≪≫
Functor.isoWhiskerLeft AN.F replaceK
let replaceSigned := Functor.isoWhiskerRight replaceAK CP.F
let direct := (AP.directTensor ⋙ BL.directTensor) ⋙ Q_C
let iteratedComparison : Q_A ⋙ iterated ⟶ direct :=
Functor.whiskerLeft Q_A replaceIterated.inv ≫ compositeCounit.{uA, uB, uC, v} AP BL
let togetherComparison : Q_A ⋙ together ⟶ direct :=
AC.alphaF ≫ Functor.whiskerRight ordinaryAssociator.inv Q_C
let signedCounit := Functor.whiskerLeft Q_A replaceSigned.inv ≫
compositeCounit.{uA, uC, uC, max v uB} AL CP
iterated.IsLeftDerivedFunctor iteratedComparison W_A ∧
together.IsLeftDerivedFunctor togetherComparison W_A ∧
∃ (doubleBaseChange : iterated ≅ together)
(signedComparison : iterated ≅ signed)
(baseChangeComparison : iterated ≅ AC.B ⋙ AC.G),
Functor.whiskerLeft Q_A doubleBaseChange.hom ≫ togetherComparison =
iteratedComparison ∧
(∀ e : iterated ≅ together,
Functor.whiskerLeft Q_A e.hom ≫ togetherComparison = iteratedComparison →
e = doubleBaseChange) ∧
Functor.whiskerLeft Q_A signedComparison.hom ≫ signedCounit =
iteratedComparison ≫ Functor.whiskerRight ordinaryInterchange.hom Q_C ∧
(∀ e : iterated ≅ signed,
Functor.whiskerLeft Q_A e.hom ≫ signedCounit =
iteratedComparison ≫ Functor.whiskerRight ordinaryInterchange.hom Q_C →
e = signedComparison) ∧
baseChangeComparison = doubleBaseChange ≪≫ AC.changeOfRings
Sources
Section15.62 Tor independence#
Section 15.62 of the Stacks Project, Tag 065Y. 7 tags here are carried by 9 declarations of the repository (all in StacksFrontier), quoted below from AxiomMath/Stacks at commit 5ed82d14.
Tag 065Z, an equation
Tag 065Z in the Stacks Project.
RingTheory.TorIndependence.canonicalBaseChangeComparison_paste, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/Homology/Tor/BaseChangeIndependence/ComparisonPasting.lean, line 457. The attribute's comment: “the comparison of a horizontal composite of two commutative squares of rings is the composite of the two comparisons, read through the composition isomorphisms of derived extension of scalars; this is what compatibility of the comparison with localizing a square amounts to”.
The pasting law of Tag 065Z. For two commutative squares of commutative rings stacked on top of one another, the comparison of the outer square agrees with the comparison of the lower square, extended along the upper left map, followed by the comparison of the upper square — both read through the composition isomorphisms of derived extension of scalars.
Both sides are determined by the same counit equation at K-flat complexes, so the identity reduces to the underived comparison on pure tensors.
public theorem canonicalBaseChangeComparison_paste
(f : R →+* A) (g₁ : R →+* R') (h₁ : A →+* A') (i₁ : R' →+* A')
(g₂ : R' →+* R'') (h₂ : A' →+* A'') (i₂ : R'' →+* A'')
(sq₁ : h₁.comp f = i₁.comp g₁) (sq₂ : h₂.comp i₁ = i₂.comp g₂)
(X : DerivedCategory (ModuleCat.{u} A)) :
(totalDerivedExtensionScalarsComp.{u, u} g₁ g₂).hom.app
((ModuleCat.restrictScalars.{u} f).mapDerivedCategory.obj X) ≫
(canonicalBaseChangeComparison.{u, w} f (g₂.comp g₁) (h₂.comp h₁) i₂
(comp_comp_eq_comp_comp f g₁ h₁ i₁ g₂ h₂ i₂ sq₁ sq₂)).app X =
(totalDerivedExtensionScalars.{u, u, u} g₂).functor.map
((canonicalBaseChangeComparison.{u, w} f g₁ h₁ i₁ sq₁).app X) ≫
(canonicalBaseChangeComparison.{u, w} i₁ g₂ h₂ i₂ sq₂).app
((totalDerivedExtensionScalars.{u, u, u} h₁).functor.obj X) ≫
(ModuleCat.restrictScalars.{u} i₂).mapDerivedCategory.map
((totalDerivedExtensionScalarsComp.{u, u} h₁ h₂).hom.app X)
RingTheory.TorIndependence.canonicalBaseChangeComparison_localization, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/Homology/Tor/BaseChangeIndependence/ComparisonPasting.lean, line 511. The attribute's comment: “the comparison is compatible with localizing a square at a prime: pasting a square with the localization square of its right-hand column composes the two comparisons”.
Tag 065Z is compatible with localizing a square at a prime. Pasting a commutative square of rings with the localization square of its right-hand column at a prime
yofA'composes the two comparisons: the comparison of the square
R → A,R → R'_{y ∩ R'},A → A'_y,R'_{y ∩ R'} → A'_yis the comparison of the given square, extended along
R' → R'_{y ∩ R'}, followed by the comparison of the localization square. This isRingTheory.TorIndependence.canonicalBaseChangeComparison_pastewith the localization square as its second floor.Note that the localization square is not a pushout square; Tag 065Z attaches a comparison to every commutative square, and that is all this uses.
public theorem canonicalBaseChangeComparison_localization
(f : R →+* A) (g : R →+* R') (h : A →+* A') (i : R' →+* A')
(sq : h.comp f = i.comp g) (y : Ideal A') [y.IsPrime]
[HasDerivedCategory.{w} (ModuleCat.{u} (Localization.AtPrime (y.comap i)))]
[HasDerivedCategory.{w} (ModuleCat.{u} (Localization.AtPrime y))]
(X : DerivedCategory (ModuleCat.{u} A)) :
(totalDerivedExtensionScalarsComp.{u, u} g
(algebraMap R' (Localization.AtPrime (y.comap i)))).hom.app
((ModuleCat.restrictScalars.{u} f).mapDerivedCategory.obj X) ≫
(canonicalBaseChangeComparison.{u, w} f
((algebraMap R' (Localization.AtPrime (y.comap i))).comp g)
((algebraMap A' (Localization.AtPrime y)).comp h)
(Localization.localRingHom (y.comap i) y i rfl)
(comp_comp_eq_comp_comp f g h i (algebraMap R' (Localization.AtPrime (y.comap i)))
(algebraMap A' (Localization.AtPrime y))
(Localization.localRingHom (y.comap i) y i rfl) sq
(comp_algebraMap_eq_localRingHom_comp i y))).app X =
(totalDerivedExtensionScalars.{u, u, u}
(algebraMap R' (Localization.AtPrime (y.comap i)))).functor.map
((canonicalBaseChangeComparison.{u, w} f g h i sq).app X) ≫
(canonicalBaseChangeComparison.{u, w} i
(algebraMap R' (Localization.AtPrime (y.comap i)))
(algebraMap A' (Localization.AtPrime y))
(Localization.localRingHom (y.comap i) y i rfl)
(comp_algebraMap_eq_localRingHom_comp i y)).app
((totalDerivedExtensionScalars.{u, u, u} h).functor.obj X) ≫
(ModuleCat.restrictScalars.{u}
(Localization.localRingHom (y.comap i) y i rfl)).mapDerivedCategory.map
((totalDerivedExtensionScalarsComp.{u, u} h
(algebraMap A' (Localization.AtPrime y))).hom.app X)
RingTheory.TorIndependence.derivedBaseChangeComparison, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/Homology/Tor/Independence.lean, line 1049.
Let
R → A,R → R',A → A', andR' → A'be a commutative square of commutative rings. There is a natural comparisonK ⊗ᴸ_R R' ⟶ K ⊗ᴸ_A A'inD(R').The first component of the result is the underived comparison, normalized on pure tensors. The second is its canonical lift between any chosen models of the two total left-derived functors; the displayed factorization records canonicity as well as functoriality in
K.
public noncomputable def derivedBaseChangeComparison
{R : Type uR} {A : Type uA} {R' : Type uRp} {A' : Type uAp}
[CommRing R] [CommRing A] [CommRing R'] [CommRing A']
[HasDerivedCategory (ModuleCat.{max v uR uA uRp uAp} R)]
[HasDerivedCategory (ModuleCat.{max v uR uA uRp uAp} A)]
[HasDerivedCategory (ModuleCat.{max v uR uA uRp uAp} R')]
[HasDerivedCategory (ModuleCat.{max v uR uA uRp uAp} A')]
(f : R →+* A) (g : R →+* R') (h : A →+* A') (i : R' →+* A')
(sq : h.comp f = i.comp g) :
let Res_f := ModuleCat.restrictScalars.{max v uR uA uRp uAp} f
let Res_i := ModuleCat.restrictScalars.{max v uR uA uRp uAp} i
let Ext_g := ModuleCat.extendScalars.{uR, uRp, max v uR uA uRp uAp} g
let Ext_h := ModuleCat.extendScalars.{uA, uAp, max v uR uA uRp uAp} h
letI : (ModuleCat.restrictScalars.{max v uR uA uRp uAp} f).IsLeftAdjoint :=
(ModuleCat.restrictCoextendScalarsAdj.{max v uR uA uRp uAp, uR, uA} f).isLeftAdjoint
letI : (ModuleCat.restrictScalars.{max v uR uA uRp uAp} f).IsRightAdjoint :=
(ModuleCat.extendRestrictScalarsAdj.{max v uR uA uRp uAp, uR, uA} f).isRightAdjoint
letI : (ModuleCat.restrictScalars.{max v uR uA uRp uAp} i).IsLeftAdjoint :=
(ModuleCat.restrictCoextendScalarsAdj.{max v uR uA uRp uAp, uRp, uAp} i).isLeftAdjoint
letI : (ModuleCat.restrictScalars.{max v uR uA uRp uAp} i).IsRightAdjoint :=
(ModuleCat.extendRestrictScalarsAdj.{max v uR uA uRp uAp, uRp, uAp} i).isRightAdjoint
let F_R := Res_f ⋙ Ext_g
let F_A := Ext_h ⋙ Res_i
let U_g := Ext_g.mapHomologicalComplex (ComplexShape.up ℤ) ⋙
DerivedCategory.Q (C := ModuleCat.{max v uR uA uRp uAp} R')
let U_h := Ext_h.mapHomologicalComplex (ComplexShape.up ℤ) ⋙
DerivedCategory.Q (C := ModuleCat.{max v uR uA uRp uAp} A')
∀ (L_g : DerivedCategory (ModuleCat.{max v uR uA uRp uAp} R) ⥤
DerivedCategory (ModuleCat.{max v uR uA uRp uAp} R'))
(L_h : DerivedCategory (ModuleCat.{max v uR uA uRp uAp} A) ⥤
DerivedCategory (ModuleCat.{max v uR uA uRp uAp} A'))
(alpha_g : DerivedCategory.Q (C := ModuleCat.{max v uR uA uRp uAp} R) ⋙ L_g ⟶ U_g)
(alpha_h : DerivedCategory.Q (C := ModuleCat.{max v uR uA uRp uAp} A) ⋙ L_h ⟶ U_h),
[L_g.IsLeftDerivedFunctor alpha_g
(HomologicalComplex.quasiIso (ModuleCat.{max v uR uA uRp uAp} R) (ComplexShape.up ℤ))] →
[L_h.IsLeftDerivedFunctor alpha_h
(HomologicalComplex.quasiIso (ModuleCat.{max v uR uA uRp uAp} A) (ComplexShape.up ℤ))] →
let DRes_f := Res_f.mapDerivedCategory
let DRes_i := Res_i.mapDerivedCategory
let beta_R :
DerivedCategory.Q (C := ModuleCat.{max v uR uA uRp uAp} A) ⋙ (DRes_f ⋙ L_g) ⟶
F_R.mapHomologicalComplex (ComplexShape.up ℤ) ⋙
DerivedCategory.Q (C := ModuleCat.{max v uR uA uRp uAp} R') :=
(Functor.associator _ _ _).inv ≫
Functor.whiskerRight Res_f.mapDerivedCategoryFactors.hom L_g ≫
(Functor.associator _ _ _).hom ≫
Functor.whiskerLeft (Res_f.mapHomologicalComplex (ComplexShape.up ℤ)) alpha_g ≫
(Functor.associator _ _ _).inv ≫
Functor.whiskerRight
(Functor.mapHomologicalComplexCompIso (Iso.refl F_R)
(ComplexShape.up ℤ)).hom
(DerivedCategory.Q (C := ModuleCat.{max v uR uA uRp uAp} R'))
let beta_A :
DerivedCategory.Q (C := ModuleCat.{max v uR uA uRp uAp} A) ⋙ (L_h ⋙ DRes_i) ⟶
F_A.mapHomologicalComplex (ComplexShape.up ℤ) ⋙
DerivedCategory.Q (C := ModuleCat.{max v uR uA uRp uAp} R') :=
(Functor.associator _ _ _).inv ≫
Functor.whiskerRight alpha_h DRes_i ≫
(Functor.associator _ _ _).hom ≫
Functor.whiskerLeft (Ext_h.mapHomologicalComplex (ComplexShape.up ℤ))
Res_i.mapDerivedCategoryFactors.hom ≫
(Functor.associator _ _ _).inv ≫
Functor.whiskerRight
(Functor.mapHomologicalComplexCompIso (Iso.refl F_A)
(ComplexShape.up ℤ)).hom
(DerivedCategory.Q (C := ModuleCat.{max v uR uA uRp uAp} R'))
Σ' (tau0 : F_R ⟶ F_A),
{tau : DRes_f ⋙ L_g ⟶ L_h ⋙ DRes_i //
(∀ (M : ModuleCat.{max v uR uA uRp uAp} A) (r' : R') (m : M),
tau0.app M (r' ⊗ₜ[R,g] m) = (i r') ⊗ₜ[A,h] m) ∧
Functor.whiskerLeft (DerivedCategory.Q (C := ModuleCat.{max v uR uA uRp uAp} A)) tau ≫
beta_A =
beta_R ≫ Functor.whiskerRight
(NatTrans.mapHomologicalComplex tau0 (ComplexShape.up ℤ))
(DerivedCategory.Q (C := ModuleCat.{max v uR uA uRp uAp} R'))}
Tag 0660, a definition
Tag 0660 in the Stacks Project.
RingTheory.TorIndependence.TorIndependent, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/Homology/Tor/Independence.lean, line 94. References: SGA 6 III (1.5), “affine case”.
Two
R-algebras are Tor independent overRwhen their positive-degree Tor modules overRvanish.
public def TorIndependent (R : Type uR) (A : Type uA) (B : Type uB)
[CommRing R] [CommRing A] [CommRing B] [Algebra R A] [Algebra R B] : Prop
Tag 0661, a lemma
Tag 0661 in the Stacks Project.
RingTheory.TorIndependence.derivedBaseChangeComparison_isIso_of_torIndependent, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/Homology/Tor/IndependenceBaseChange.lean, line 768.
Stacks 0661. If
AandR'are Tor independent overR, then the canonical comparison from derived base change overRto derived base change overAis an isomorphism, for every pushout square with upper-right cornerA'.
public theorem derivedBaseChangeComparison_isIso_of_torIndependent
{R : Type uR} {A : Type uA} {R' : Type uRp} {A' : Type uAp}
[CommRing R] [CommRing A] [CommRing R'] [CommRing A']
[Algebra R A] [Algebra R R'] [Algebra R A'] [Algebra A A'] [Algebra R' A']
[IsScalarTower R A A'] [IsScalarTower R R' A'] [Algebra.IsPushout R A R' A']
[HasDerivedCategory (ModuleCat.{max v uR uA uRp uAp} R)]
[HasDerivedCategory (ModuleCat.{max v uR uA uRp uAp} A)]
[HasDerivedCategory (ModuleCat.{max v uR uA uRp uAp} R')]
[HasDerivedCategory (ModuleCat.{max v uR uA uRp uAp} A')]
(hTor : TorIndependent R A R') :
let f : R →+* A := algebraMap R A
let g : R →+* R' := algebraMap R R'
let h : A →+* A' := algebraMap A A'
let i : R' →+* A' := algebraMap R' A'
let sq : h.comp f = i.comp g := by
exact (IsScalarTower.algebraMap_eq R A A').symm.trans
(IsScalarTower.algebraMap_eq R R' A')
let Ext_g := ModuleCat.extendScalars.{uR, uRp, max v uR uA uRp uAp} g
let Ext_h := ModuleCat.extendScalars.{uA, uAp, max v uR uA uRp uAp} h
letI : Ext_g.IsLeftAdjoint :=
(ModuleCat.extendRestrictScalarsAdj.{max v uR uA uRp uAp, uR, uRp}
g).isLeftAdjoint
letI : Ext_h.IsLeftAdjoint :=
(ModuleCat.extendRestrictScalarsAdj.{max v uR uA uRp uAp, uA, uAp}
h).isLeftAdjoint
let U_g := Ext_g.mapHomologicalComplex (ComplexShape.up ℤ) ⋙
DerivedCategory.Q (C := ModuleCat.{max v uR uA uRp uAp} R')
let U_h := Ext_h.mapHomologicalComplex (ComplexShape.up ℤ) ⋙
DerivedCategory.Q (C := ModuleCat.{max v uR uA uRp uAp} A')
∀ (L_g : DerivedCategory (ModuleCat.{max v uR uA uRp uAp} R) ⥤
DerivedCategory (ModuleCat.{max v uR uA uRp uAp} R'))
(L_h : DerivedCategory (ModuleCat.{max v uR uA uRp uAp} A) ⥤
DerivedCategory (ModuleCat.{max v uR uA uRp uAp} A'))
(alpha_g : DerivedCategory.Q (C := ModuleCat.{max v uR uA uRp uAp} R) ⋙ L_g ⟶ U_g)
(alpha_h : DerivedCategory.Q (C := ModuleCat.{max v uR uA uRp uAp} A) ⋙ L_h ⟶ U_h),
[L_g.IsLeftDerivedFunctor alpha_g
(HomologicalComplex.quasiIso (ModuleCat.{max v uR uA uRp uAp} R)
(ComplexShape.up ℤ))] →
[L_h.IsLeftDerivedFunctor alpha_h
(HomologicalComplex.quasiIso (ModuleCat.{max v uR uA uRp uAp} A)
(ComplexShape.up ℤ))] →
let comparison := derivedBaseChangeComparison f g h i sq
L_g L_h alpha_g alpha_h
IsIso comparison.2.1
Tag 08HW, a lemma
Tag 08HW in the Stacks Project.
RingTheory.TorIndependence.isIso_torExtensionMap_of_flat, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/Homology/Tor/Independence.lean, line 352.
Stacks 08HW. If
R'is flat overR,A'is flat overA ⊗[R] R', andB'is flat overR' ⊗[R] B, the canonical scalar-extended change-of-rings map on ordinary Tor is an isomorphism. The diagram is lifted to the maximum of its six independent universes so that Mathlib's categorical Tor and extension-of-scalars constructions apply.
public theorem isIso_torExtensionMap_of_flat
(R : Type uR) (R' : Type uS) (A : Type uA) (B : Type uB)
(A' : Type uC) (B' : Type uD)
[CommRing R] [CommRing R'] [CommRing A] [CommRing B] [CommRing A'] [CommRing B']
[Algebra R R'] [Algebra R A] [Algebra R B] [Algebra R A'] [Algebra R B']
[Algebra R' A'] [Algebra R' B'] [IsScalarTower R R' A'] [IsScalarTower R R' B']
(fA : A →ₐ[R] A') (fB : B →ₐ[R] B')
(hR' : RingHom.Flat (algebraMap R R'))
(hA' : RingHom.Flat (Algebra.TensorProduct.lift fA
(IsScalarTower.toAlgHom R R' A') (fun _ _ ↦ Commute.all _ _)).toRingHom)
(hB' : RingHom.Flat (Algebra.TensorProduct.lift
(IsScalarTower.toAlgHom R R' B') fB (fun _ _ ↦ Commute.all _ _)).toRingHom)
(i : ℕ) :
IsIso (TorChangeOfRings.extensionMap TorChangeOfRings.canonicalSystem_nonempty
(ULift.{max uR uS uA uB uC uD} R) (ULift.{max uR uS uA uB uC uD} R')
(ULift.{max uR uS uA uB uC uD} A) (ULift.{max uR uS uA uB uC uD} B)
(ULift.{max uR uS uA uB uC uD} A') (ULift.{max uR uS uA uB uC uD} B')
i fA.ulift fB.ulift)
Tag 0FXF, a lemma
Tag 0FXF in the Stacks Project.
RingTheory.TorIndependence.torIndependent_tensorProduct_of_flat, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/Homology/Tor/Independence.lean, line 566.
Stacks 0FXF. Tor independence of two algebras is preserved by extension of scalars along a flat map of commutative rings.
public theorem torIndependent_tensorProduct_of_flat
(R : Type uR) (R' : Type uS) (A : Type uA) (B : Type uB)
[CommRing R] [CommRing R'] [CommRing A] [CommRing B]
[Algebra R A] [Algebra R B] [Algebra R R']
(h : TorIndependent R A B)
(hR' : RingHom.Flat (algebraMap R R')) :
let _ : Algebra R' (A ⊗[R] R') := Algebra.TensorProduct.rightAlgebra
let _ : Algebra R' (B ⊗[R] R') := Algebra.TensorProduct.rightAlgebra
TorIndependent R' (A ⊗[R] R') (B ⊗[R] R')
Tag 0DJD, a lemma
Tag 0DJD in the Stacks Project.
RingTheory.TorIndependence.derivedBaseChangeHomologyIso_of_flat, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/Homology/Tor/FlatBaseChangeHomology.lean, line 200.
Stacks 0DJD. Under the flatness hypotheses of Tag 08HW, the cohomology of
(M ⊗ᴸ_A A') ⊗ᴸ_{R'} B'is canonically and naturally isomorphic, as a module overA' ⊗[R'] B', to the extension of scalars of the cohomology ofM ⊗ᴸ_R BalongA ⊗[R] B → A' ⊗[R'] B'.
public def derivedBaseChangeHomologyIso_of_flat
(R R' A B A' B' : Type u)
[CommRing R] [CommRing R'] [CommRing A] [CommRing B] [CommRing A'] [CommRing B']
[Algebra R R'] [Algebra R A] [Algebra R B] [Algebra R A'] [Algebra R B']
[Algebra R' A'] [Algebra R' B'] [IsScalarTower R R' A'] [IsScalarTower R R' B']
(fA : A →ₐ[R] A') (fB : B →ₐ[R] B')
(hR' : RingHom.Flat (algebraMap R R'))
(hA' : RingHom.Flat (Algebra.TensorProduct.lift fA
(IsScalarTower.toAlgHom R R' A') (fun _ _ ↦ Commute.all _ _)).toRingHom)
(hB' : RingHom.Flat (Algebra.TensorProduct.lift
(IsScalarTower.toAlgHom R R' B') fB (fun _ _ ↦ Commute.all _ _)).toRingHom)
(i : ℤ) :
let C := A ⊗[R] B
let C' := A' ⊗[R'] B'
let extAA' := (totalDerivedExtensionScalars.{u, u, u} fA.toRingHom).functor
let extAC := (totalDerivedExtensionScalars.{u, u, u}
(Algebra.TensorProduct.includeLeftRingHom : A →+* C)).functor
let extA'C' := (totalDerivedExtensionScalars.{u, u, u}
(Algebra.TensorProduct.includeLeftRingHom : A' →+* C')).functor
let g : C →+* C' :=
TorChangeOfRings.tensorProductMap R R' A B A' B' fA fB
extAA' ⋙ extA'C' ⋙ DerivedCategory.homologyFunctor (ModuleCat.{u} C') i ≅
extAC ⋙ DerivedCategory.homologyFunctor (ModuleCat.{u} C) i ⋙
ModuleCat.extendScalars g
Tag 08HX, a lemma
Tag 08HX in the Stacks Project.
RingTheory.TorIndependence.torIndependent_localizations_tfae, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/Homology/Tor/Independence.lean, line 706.
Stacks 08HX. For
R-algebrasAandB, the following are equivalent:
AandBare Tor independent overR;A_pandB_qare Tor independent overR_rwheneverpandqlie overr;- every positive-degree Tor module of
AandBvanishes after localization at every prime ofA ⊗[R] B.
public theorem torIndependent_localizations_tfae
(R A B : Type u) [CommRing R] [CommRing A] [CommRing B]
[Algebra R A] [Algebra R B] :
List.TFAE [
TorIndependent R A B,
(∀ (r : PrimeSpectrum R) (p : PrimeSpectrum A) (q : PrimeSpectrum B)
(hp : r.asIdeal = p.asIdeal.comap (algebraMap R A))
(hq : r.asIdeal = q.asIdeal.comap (algebraMap R B)),
letI : p.asIdeal.LiesOver r.asIdeal := ⟨hp⟩
letI : q.asIdeal.LiesOver r.asIdeal := ⟨hq⟩
letI : Algebra (Localization.AtPrime r.asIdeal)
(Localization.AtPrime p.asIdeal) :=
Localization.AtPrime.algebraOfLiesOver r.asIdeal p.asIdeal
letI : Algebra (Localization.AtPrime r.asIdeal)
(Localization.AtPrime q.asIdeal) :=
Localization.AtPrime.algebraOfLiesOver r.asIdeal q.asIdeal
TorIndependent (Localization.AtPrime r.asIdeal)
(Localization.AtPrime p.asIdeal) (Localization.AtPrime q.asIdeal)),
(∀ (i : ℕ), 0 < i → ∀ s : PrimeSpectrum (A ⊗[R] B),
letI := TorChangeOfRings.moduleStructure
TorChangeOfRings.canonicalSystem_nonempty R A B i
Subsingleton
(LocalizedModule s.asIdeal.primeCompl (TorChangeOfRings.torObj R i A B)))]
Sources
Section15.63 Spectral sequences for Tor#
Section 15.63 of the Stacks Project, Tag 061Y. 4 tags here are carried by 4 declarations of the repository (all in StacksFrontier), quoted below from AxiomMath/Stacks at commit 5ed82d14.
Tag 061Z, an example
Tag 061Z in the Stacks Project.
CochainComplex.Tor.exists_spectral_sequences_tor_homology_and_terms, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/Algebra/Homology/SpectralSequence/Tor.lean, line 1258. References: EGA III (6.3.2), “Q• = module M, K bdd”; EGA III (7.6.4), “(i) spectral sequence”.
Let
Kbe a bounded-below chain complex ofR-modules and letMbe anR-module. There is a bounded-below free resolutionPofM, and the two filtrations ofK ⊗[R] Pgive spectral sequences abutting to its homology.The first has second page
Torⱼᴿ(Hᵢ(K), M)and differential of bidegree(1, -2). The second has first pageTorⱼᴿ(Kᵢ, M); under the displayed identifications, its first differential is the map on Tor induced byKᵢ ⟶ Kᵢ₋₁.
public theorem exists_spectral_sequences_tor_homology_and_terms
(R : Type u) [CommRing R]
(K : CochainComplex (ModuleCat.{v} R) ℤ)
(hK : ∃ a : ℤ, ∀ i : ℤ, a < i → IsZero (K.X i))
(M : ModuleCat.{w} R) :
let K' := ((ModuleCat.uliftFunctor.{max u w, v} R).mapHomologicalComplex
(ComplexShape.up ℤ)).obj K
let M' := (ModuleCat.uliftFunctor.{max u v, w} R).obj M
∃ (P : CochainComplex (ModuleCat.{max u v w} R) ℤ),
∃ (ε : P ⟶ (HomologicalComplex.single (ModuleCat.{max u v w} R)
(ComplexShape.up ℤ) 0).obj M')
(_ : QuasiIso ε),
(∀ i : ℤ, Module.Free R (P.X i)) ∧
(∀ i : ℤ, 0 < i → IsZero (P.X i)) ∧
Nonempty (P.homology 0 ≅ M') ∧
(∀ i : ℤ, i ≠ 0 → IsZero (P.homology i)) ∧
∃ (E : FirstTorSpectralSequence (ModuleCat.{max u v w} R))
(E' : SecondTorSpectralSequence (ModuleCat.{max u v w} R))
(_e₂ : ∀ i j : ℤ, (E.page 2).X (i, j) ≅ TorInDegree.{u, max v w} R j (K'.homology (-i)) M')
(e₁ : ∀ i j : ℤ, (E'.page 1).X (i, j) ≅ TorInDegree.{u, max v w} R j (K'.X (-i)) M'),
let T := HomologicalComplex.mapBifunctor K' P (moduleTensorBifunctor.{u, max v w} R)
(ComplexShape.up ℤ)
∃ (F F' : HomologicalFiltration T)
(S : TorFiltrationData E F false)
(S' : TorFiltrationData E' F' true),
F.step = tensorFiltrationSteps.{u, max v w} R K' P false ∧
F'.step = tensorFiltrationSteps.{u, max v w} R K' P true ∧
(∀ n, ∃ a b : ℤ, a ≤ b ∧ F.step a n = ⊥ ∧ F.step b n = ⊤) ∧
(∀ n, ∃ a b : ℤ, a ≤ b ∧ F'.step a n = ⊥ ∧ F'.step b n = ⊤) ∧
S.Converges ∧ S'.Converges ∧
∀ i j : ℤ,
(e₁ i j).inv ≫ (E'.page 1).d (i, j) (i - 1, j) ≫ (e₁ (i - 1) j).hom =
torInDegreeMap.{u, max v w} R j (K'.d (-i) (-(i - 1))) M'
Tag 068F, an example
Tag 068F in the Stacks Project.
CochainComplex.Tor.ChangeOfRingsSpectralSequence.exists_tor_change_of_rings_spectral_sequence, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/Homology/Tor/ChangeOfRingsSpectralSequence.lean, line 452. References: EGA III (6.9.3), “special case”; EGA III (6.9.3.2), “special case”; EGA III (6.9.3.3), “special case”; SGA 7 VIII (2.1), “special case”.
Stacks 068F. Let
R → Sbe a homomorphism of commutative rings,ManR-module andNanS-module. There is a free resolutionP^•ofMoverRsuch that the homology ofP^• ⊗_R S, with its naturalS-module structure, computesTor_*^R(M, S), and there is a spectral sequenceThe second-page identification is displayed, and the last clause records the abutment; the twoTor_n^S(Tor_m^R(M, S), N) ⟹ Tor_{n+m}^R(M, N).Nonemptyclauses before it record that the homology of the two base-changed complexes isTor_*^R(M, S)andTor_*^R(M, N)after restricting scalars alongR → S.
public theorem exists_tor_change_of_rings_spectral_sequence
(R S : Type u) [CommRing R] [CommRing S] (f : R →+* S)
(M : ModuleCat.{max u v} R) (N : ModuleCat.{max u v} S) :
∃ (P : CochainComplex (ModuleCat.{max u v} R) ℤ),
∃ (ε : P ⟶ (HomologicalComplex.single (ModuleCat.{max u v} R)
(ComplexShape.up ℤ) 0).obj M)
(_ : QuasiIso ε),
(∀ i : ℤ, Module.Free R (P.X i)) ∧
(∀ i : ℤ, 0 < i → IsZero (P.X i)) ∧
Nonempty (P.homology 0 ≅ M) ∧
(∀ i : ℤ, i ≠ 0 → IsZero (P.homology i)) ∧
(∀ i : ℤ, Nonempty
((ModuleCat.restrictScalars f).obj ((baseChangeComplex f P).homology (-i)) ≅
TorInDegree.{u, v} R i M
((ModuleCat.restrictScalars f).obj (ModuleCat.of S (ULift.{v} S))))) ∧
(∀ n : ℤ, Nonempty
((ModuleCat.restrictScalars f).obj
((baseChangeTensorComplex f P N).homology (-n)) ≅
TorInDegree.{u, v} R n M ((ModuleCat.restrictScalars f).obj N))) ∧
∃ (E : FirstTorSpectralSequence (ModuleCat.{max u v} S))
(_e₂ : ∀ i j : ℤ, (E.page 2).X (i, j) ≅
TorInDegree.{u, v} S j ((baseChangeComplex f P).homology (-i)) N),
HomologicalSpectralSequenceAbutsTo E
(fun n ↦ (baseChangeTensorComplex f P N).homology (-n))
Tag 0620, an example
Tag 0620 in the Stacks Project.
RingTheory.TorBaseChange.exists_tor_base_change_spectral_sequence, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/Homology/Tor/BaseChangeSpectralSequence.lean, line 715. References: EGA III (6.9.8), “(6.9.8.1)”.
If
A → Band theB-modulesMandNare flat overA, then forB' = B ⊗[A] A',M' = M ⊗[B] B', andN' = N ⊗[B] B', there is a homological spectral sequenceTorᴬᵢ(Torᴮⱼ(M, N), A') ⇒ Torᴮʳᵢ₊ⱼ(M', N').Both sides are viewed as
A-modules in order to state the spectral sequence in one abelian category.
public theorem exists_tor_base_change_spectral_sequence
(A B A' : Type u) [CommRing A] [CommRing B] [CommRing A']
[Algebra A B] [Algebra A A'] (M N : ModuleCat.{max u v} B)
[Module.Flat A B]
[Module.Flat A ((ModuleCat.restrictScalars (algebraMap A B)).obj M)]
[Module.Flat A ((ModuleCat.restrictScalars (algebraMap A B)).obj N)] :
∃ (E : CochainComplex.Tor.FirstTorSpectralSequence (ModuleCat.{max u v} A))
(_e₂ : ∀ i j : ℤ,
(E.page 2).X (i, j) ≅
@CochainComplex.Tor.TorInDegree.{u, v} A _ j
(restrictScalars A B
(@CochainComplex.Tor.TorInDegree.{u, v} B _ i M N))
(restrictScalars A A' (@regularModule.{u, v} A' _))),
CochainComplex.Tor.HomologicalSpectralSequenceAbutsTo E
(fun n ↦
(ModuleCat.restrictScalars
(algebraMap A (BaseChangedAlgebra A B A'))).obj
(@CochainComplex.Tor.TorInDegree.{u, v} (BaseChangedAlgebra A B A') _ n
(@baseChange.{u, v} A B A' _ _ _ _ _ M)
(@baseChange.{u, v} A B A' _ _ _ _ _ N)))
Tag 0662, an example
Tag 0662 in the Stacks Project.
CochainComplex.DerivedTensorSpectralSequence.exists_derived_tensor_spectral_sequences, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/Algebra/Homology/SpectralSequence/DerivedTensor.lean, line 1317.
Stacks 0662. For two bounded-above objects
K,Lof the derived category of a commutative ringRthere are two convergent spectral sequences'E_2^{p,q} = H^p(K ⊗^L H^q(L))and''E_2^{p,q} = H^p(H^q(K) ⊗^L L), both abutting toH^{p+q}(K ⊗^L L).They are the spectral sequences of the two canonical filtrations of the total tensor complex
P^• ⊗ Q^•of bounded-above complexes of projectives representingKandL; the abutment isomorphism is the one induced by those representatives and the canonical K-flat comparison of the derived tensor product, and the derived second-page isomorphisms factor through the filtered-complex second-page isomorphisms.
public theorem exists_derived_tensor_spectral_sequences
(R : Type u) [CommRing R]
(K L : DerivedCategory.Minus (ModuleCat.{u} R)) :
∃ (P Q : CochainComplex (ModuleCat.{u} R) ℤ) (bP bQ : ℤ),
P.IsStrictlyLE bP ∧ (∀ i : ℤ, Projective (P.X i)) ∧
Q.IsStrictlyLE bQ ∧ (∀ i : ℤ, Projective (Q.X i)) ∧
∃ (hPflat : P.KFlat) (hQflat : Q.KFlat)
(eK : K.1 ≅ DerivedCategory.Q.obj P)
(eL : L.1 ≅ DerivedCategory.Q.obj Q)
(E : AssociatedFiltrationSpectralSequence ((tensorLeft P).obj Q)
(firstDegreeFiltration P Q bP bQ))
(E' : AssociatedFiltrationSpectralSequence ((tensorLeft P).obj Q)
(secondDegreeFiltration P Q bP bQ))
(firstFilteredE₂Iso : ∀ p q : ℤ,
filteredPageObject ((tensorLeft P).obj Q) (firstDegreeFiltration P Q bP bQ)
2 p q ≅
((tensorLeft P).obj ((single (ModuleCat.{u} R) (ComplexShape.up ℤ) 0).obj
(Q.homology q))).homology p)
(secondFilteredE₂Iso : ∀ p q : ℤ,
filteredPageObject ((tensorLeft P).obj Q) (secondDegreeFiltration P Q bP bQ)
2 p q ≅
((tensorLeft ((single (ModuleCat.{u} R) (ComplexShape.up ℤ) 0).obj
(P.homology q))).obj Q).homology p)
(firstE₂Iso : ∀ p q : ℤ, (E.spectralSequence.page 2).X (p, q) ≅
((tensorLeft P).obj ((single (ModuleCat.{u} R) (ComplexShape.up ℤ) 0).obj
(Q.homology q))).homology p)
(secondE₂Iso : ∀ p q : ℤ, (E'.spectralSequence.page 2).X (p, q) ≅
((tensorLeft ((single (ModuleCat.{u} R) (ComplexShape.up ℤ) 0).obj
(P.homology q))).obj Q).homology p)
(abutmentIso : ∀ n : ℤ, ((tensorLeft P).obj Q).homology n ≅
(DerivedCategory.homologyFunctor (ModuleCat.{u} R) n).obj
(((CochainComplex.DerivedTensor.canonicalDerivedTensorProductFunctor R).obj
K.1).obj L.1))
(firstOrdinaryToDerivedE₂Iso : ∀ p q : ℤ,
((tensorLeft P).obj ((single (ModuleCat.{u} R) (ComplexShape.up ℤ) 0).obj
(Q.homology q))).homology p ≅
(DerivedCategory.homologyFunctor (ModuleCat.{u} R) p).obj
(((CochainComplex.DerivedTensor.canonicalDerivedTensorProductFunctor R).obj K.1).obj
((DerivedCategory.singleFunctor (ModuleCat.{u} R) 0).obj
((DerivedCategory.homologyFunctor (ModuleCat.{u} R) q).obj L.1))))
(secondOrdinaryToDerivedE₂Iso : ∀ p q : ℤ,
((tensorLeft ((single (ModuleCat.{u} R) (ComplexShape.up ℤ) 0).obj
(P.homology q))).obj Q).homology p ≅
(DerivedCategory.homologyFunctor (ModuleCat.{u} R) p).obj
(((CochainComplex.DerivedTensor.canonicalDerivedTensorProductFunctor R).obj
((DerivedCategory.singleFunctor (ModuleCat.{u} R) 0).obj
((DerivedCategory.homologyFunctor (ModuleCat.{u} R) q).obj K.1))).obj L.1))
(firstDerivedE₂Iso : ∀ p q : ℤ, (E.spectralSequence.page 2).X (p, q) ≅
(DerivedCategory.homologyFunctor (ModuleCat.{u} R) p).obj
(((CochainComplex.DerivedTensor.canonicalDerivedTensorProductFunctor R).obj K.1).obj
((DerivedCategory.singleFunctor (ModuleCat.{u} R) 0).obj
((DerivedCategory.homologyFunctor (ModuleCat.{u} R) q).obj L.1))))
(secondDerivedE₂Iso : ∀ p q : ℤ, (E'.spectralSequence.page 2).X (p, q) ≅
(DerivedCategory.homologyFunctor (ModuleCat.{u} R) p).obj
(((CochainComplex.DerivedTensor.canonicalDerivedTensorProductFunctor R).obj
((DerivedCategory.singleFunctor (ModuleCat.{u} R) 0).obj
((DerivedCategory.homologyFunctor (ModuleCat.{u} R) q).obj K.1))).obj L.1)),
(∀ p q : ℤ, (firstE₂Iso p q).hom =
(E.pageIso 2 p q (by omega)).hom ≫ (firstFilteredE₂Iso p q).hom) ∧
(∀ p q : ℤ, (secondE₂Iso p q).hom =
(E'.pageIso 2 p q (by omega)).hom ≫ (secondFilteredE₂Iso p q).hom) ∧
(∀ p q : ℤ, (firstDerivedE₂Iso p q).hom =
(firstE₂Iso p q).hom ≫ (firstOrdinaryToDerivedE₂Iso p q).hom) ∧
(∀ p q : ℤ, (secondDerivedE₂Iso p q).hom =
(secondE₂Iso p q).hom ≫ (secondOrdinaryToDerivedE₂Iso p q).hom) ∧
(∀ n : ℤ,
(abutmentIso n).symm =
(DerivedCategory.homologyFunctor (ModuleCat.{u} R) n).mapIso
(((CochainComplex.DerivedTensor.canonicalDerivedTensorProductFunctor
R).mapIso eK).app L.1 ≪≫
((CochainComplex.DerivedTensor.canonicalDerivedTensorProductFunctor R).obj
(DerivedCategory.Q.obj P)).mapIso eL ≪≫
(CochainComplex.DerivedTensor.canonicalDerivedTensorProduct R).comparison P Q
hPflat hQflat) ≪≫
(DerivedCategory.homologyFunctorFactors (ModuleCat.{u} R) n).app
((tensorLeft P).obj Q))
Sources
Loading dependency explorer…
The dependency explorer needs JavaScript and its graph data.