10.24 Glueing functions to 10.43 Geometrically reduced…
Section10.24 Glueing functions#
Section 10.24 of the Stacks Project, Tag 00EI. 5 tags here are carried by 7 declarations of the repository (all in StacksFrontier), quoted below from AxiomMath/Stacks at commit 5ed82d14.
Tag 00EK, a lemma
Tag 00EK in the Stacks Project.
IsLocalizedModule.Away.injective_pi_and_exact_of_span_range_eq_top, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Module/Localization/Exactness.lean, line 294.
Let
Rbe a commutative semiring, letf : ι → Rbe a family of elements generating the unit ideal and letMbe anR-module. LetMf ibe the localization ofMaway fromf i, with localization mapg i, and letMff i jbe the localization ofMaway fromf i * f j, reached fromMf ibyl i jand fromMf jbyr i j. Then the sequence0 → M → ∏ i, Mf i → ∏ (i, j), Mff i jis exact, the first map beingm ↦ (g i m)and the second(m i) ↦ (l i j (m i) - r i j (m j)).
public theorem injective_pi_and_exact_of_span_range_eq_top
(hf : Ideal.span (Set.range f) = ⊤)
(hlr : ∀ i j, (l i j).comp (g i) = (r i j).comp (g j)) :
Function.Injective (LinearMap.pi g) ∧
Function.Exact (LinearMap.pi g) (LinearMap.pi fun p : ι × ι ↦
(l p.1 p.2).comp (LinearMap.proj p.1) - (r p.1 p.2).comp (LinearMap.proj p.2))
Tag 00EJ, a lemma
Tag 00EJ in the Stacks Project.
alphaLin_injective, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Localization/Glueing/Functions.lean, line 125. The attribute's comment: “exactness at R, i.e. injectivity of α”.
If
fgenerates the unit ideal, thenαis injective.
theorem alphaLin_injective (hf : Ideal.span (Set.range f) = ⊤) :
Function.Injective (alphaLin R n f)
ker_betaLin_eq_range_alphaLin, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Localization/Glueing/Functions.lean, line 234. The attribute's comment: “exactness at the middle term, i.e. ker β = im α”.
If
fgenerates the unit ideal, then the kernel ofβequals the range ofα.
theorem ker_betaLin_eq_range_alphaLin (hf : Ideal.span (Set.range f) = ⊤) :
LinearMap.ker (betaLin R n f) = LinearMap.range (alphaLin R n f)
Tag 00EM, a lemma
Tag 00EM in the Stacks Project.
PrimeSpectrum.exists_ringEquiv_prod_of_isOpen_of_isCompl, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Spectrum/Prime/ConnectedComponents.lean, line 538.
A disjoint open cover of
Spec Ryields a product decomposition ofR.Let
Rbe a commutative ring withSpec(R) = U ⊔ Vfor two open subsetsU, V. Then there is an idempotente ∈ Rsuch that, settingR₁ := R⧸(1-e)andR₂ := R⧸e:
- the canonical ring map
φ := RingHom.quotientProdOneSub e : R →+* R₁ × R₂lifts to a ring isomorphismR ≃+* R₁ × R₂;Spec(R₁)is homeomorphic toU(as a subspace ofSpec R) andSpec(R₂)is homeomorphic toV, with both homeomorphisms realised by the canonical maps of the product decomposition, i.e. viaPrimeSpectrum.primeSpectrumProdHomeo;- each factor is simultaneously a quotient and a localization of
R: the quotient maps makeR₁a localization ateandR₂a localization at1 - e.
theorem PrimeSpectrum.exists_ringEquiv_prod_of_isOpen_of_isCompl
{R : Type*} [CommRing R]
{U V : Set (PrimeSpectrum R)}
(hU : IsOpen U) (hV : IsOpen V)
(h : IsCompl U V) :
∃ e : R, IsIdempotentElem e ∧
∃ φ : R ≃+* (R ⧸ Ideal.span ({1 - e} : Set R)) ×
(R ⧸ Ideal.span ({e} : Set R)),
(φ : R →+* (R ⧸ Ideal.span ({1 - e} : Set R)) ×
(R ⧸ Ideal.span ({e} : Set R))) = RingHom.quotientProdOneSub e ∧
(∃ eU : PrimeSpectrum (R ⧸ Ideal.span ({1 - e} : Set R)) ≃ₜ U,
∀ p, (eU p).1 =
PrimeSpectrum.comap
(φ : R →+* (R ⧸ Ideal.span ({1 - e} : Set R)) ×
(R ⧸ Ideal.span ({e} : Set R)))
(PrimeSpectrum.primeSpectrumProdHomeo.symm (Sum.inl p))) ∧
(∃ eV : PrimeSpectrum (R ⧸ Ideal.span ({e} : Set R)) ≃ₜ V,
∀ p, (eV p).1 =
PrimeSpectrum.comap
(φ : R →+* (R ⧸ Ideal.span ({1 - e} : Set R)) ×
(R ⧸ Ideal.span ({e} : Set R)))
(PrimeSpectrum.primeSpectrumProdHomeo.symm (Sum.inr p))) ∧
IsLocalization.Away e (R ⧸ Ideal.span ({1 - e} : Set R)) ∧
IsLocalization.Away (1 - e) (R ⧸ Ideal.span ({e} : Set R))
Tag 0565, a lemma
Tag 0565 in the Stacks Project.
bigLambda_injective_iff_bigPhi_injective, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Localization/Glueing/Functions.lean, line 429.
The map
Λ : M → ⨁_i M_{f_i},m ↦ (m/1, ..., m/1), is injective if and only if the mapΦ : M → ⨁_i M,m ↦ (f_1 m, ..., f_n m), is injective.
theorem bigLambda_injective_iff_bigPhi_injective
(n : ℕ) (f : Fin n → R) :
Function.Injective (bigLambda (M := M) n f) ↔ Function.Injective (bigPhi (M := M) n f)
Tag 00EQ, a lemma
Tag 00EQ in the Stacks Project.
ModuleGluingData.psi_apply_of_mem_gluedModule, a lemma in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Localization/Glueing/Modules.lean, line 272. The attribute's comment: “moreover clause: ψ i j (m/1) = m/1 for m in the glued module”.
For
m ∈ gluedModule, the gluing relation holds:ψ i j (m_i/1) = m_j/1.
lemma psi_apply_of_mem_gluedModule
(D : ModuleGluingData ι f) (m : D.gluedModule) (i j : ι) :
D.ψ i j (LocalizedModule.mkLinearMap (Submonoid.powers (f j))
(D.M i) ((m : D.DirectSumM) i)) =
LocalizedModule.mkLinearMap (Submonoid.powers (f i)) (D.M j) ((m : D.DirectSumM) j)
ModuleGluingData.proj_isLocalizedModule, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Localization/Glueing/Modules.lean, line 452. The attribute's comment: “localization comparison”.
Stacks 00EQ (localization comparison). For finite module gluing data, projection to the
i-th component is the localization map at the powers off i. Thus the induced canonical map from the localization of the glued module toD.M iis an isomorphism.
theorem proj_isLocalizedModule (D : ModuleGluingData ι f) (i : ι) :
IsLocalizedModule (Submonoid.powers (f i)) (D.proj i)
Sources
Section10.25 Zerodivisors and total rings of fractions#
Section 10.25 of the Stacks Project, Tag 02LV. 4 tags here are carried by 7 declarations of the repository (all in StacksFrontier) and 3 registered declarations, quoted below from AxiomMath/Stacks at commit 5ed82d14.
Tag 00EU, a lemma
Tag 00EU in the Stacks Project.
Declarations registered for the tag:
Ring.KrullDimLE.of_isLocalizationregistered withadd_to_stacksin StacksFrontier/MathlibRegistrations/Ch10.lean, line 132 (StacksFrontier): “localization at a minimal prime is zero-dimensional”.Ring.KrullDimLE.isNilpotent_iff_mem_maximalIdealregistered withadd_to_stacksin StacksFrontier/MathlibRegistrations/Ch10.lean, line 134 (StacksFrontier): “maximal ideal consists of nilpotents”.Ring.KrullDimLE.isField_of_isReducedregistered withadd_to_stacksin StacksFrontier/MathlibRegistrations/Ch10.lean, line 136 (StacksFrontier): “reduced case: the localization is a field”. References: EGA IV (5.8.4), “partial”.
Tag 00EW, a lemma
Tag 00EW in the Stacks Project.
isField_localizationAtPrime_of_minimal, a lemma in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/MinimalPrimes/Reduced.lean, line 112. The attribute's comment: “2, the factors are fields”. References: EGA 0 (1.5.8), “reduced ring”; EGA IV (20.1.3.1), “field-stalk clause”.
The localization of a reduced ring at a minimal prime is a field.
lemma isField_localizationAtPrime_of_minimal (R : Type*) [CommRing R] [IsReduced R]
(p : Ideal R) (hp : p ∈ minimalPrimes R) :
haveI : p.IsPrime := hp.isPrime
IsField (Localization.AtPrime p)
localizationProdMap_injective, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/MinimalPrimes/Reduced.lean, line 154. The attribute's comment: “2, injectivity; the factors are fields by isField_localizationAtPrime_of_minimal”.
The map
R → ∏_{p minimal} R_pfrom a reduced commutative ring to the product of localizations at minimal primes is injective.
theorem localizationProdMap_injective (R : Type*) [CommRing R] [IsReduced R] :
Function.Injective (localizationProdMap R)
exists_injective_ringHom_pi_field, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/MinimalPrimes/Reduced.lean, line 166. The attribute's comment: “1”.
A reduced commutative ring embeds into a product of fields, indexed by a type in the universe of
R.
theorem exists_injective_ringHom_pi_field.{u} {R : Type u} [CommRing R]
[IsReduced R] :
∃ (ι : Type u) (K : ι → Type u) (_ : ∀ i, Field (K i))
(f : R →+* (∀ i, K i)), Function.Injective f
iUnion_minimalPrimes_eq_zeroDivisors, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/MinimalPrimes/Reduced.lean, line 205. The attribute's comment: “3”. References: EGA IV (20.1.3.1), “special case”.
The union of the minimal primes of a reduced commutative ring equals its set of zero divisors.
theorem iUnion_minimalPrimes_eq_zeroDivisors (R : Type*) [CommRing R] [IsReduced R] :
(⋃ p ∈ minimalPrimes R, (p : Set R)) = zeroDivisorSet R
Tag 02LW, a lemma
Tag 02LW in the Stacks Project.
fractionRing_equiv_fractionRing_localization, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Localization/FractionRing.lean, line 54.
The total ring of fractions of
Ris isomorphic (as a ring) to the total ring of fractions ofS⁻¹R, wheneverSis a multiplicative subset ofRconsisting of nonzerodivisors.
theorem fractionRing_equiv_fractionRing_localization
(R : Type*) [CommRing R] (S : Submonoid R) (hS : S ≤ nonZeroDivisors R) :
Nonempty (FractionRing R ≃+* FractionRing (Localization S))
fractionRing_equiv_fractionRing_fractionRing, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Localization/FractionRing.lean, line 71.
The total ring of fractions of
Ris isomorphic to the total ring of fractions of its own total ring of fractions:Q(R) ≅ Q(Q(R)).
theorem fractionRing_equiv_fractionRing_fractionRing
(R : Type*) [CommRing R] :
Nonempty (FractionRing R ≃+* FractionRing (FractionRing R))
Tag 02LX, a lemma
Tag 02LX in the Stacks Project.
total_fraction_ring_isoProd_localization_atPrime, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Localization/FractionRing.lean, line 183. References: EGA II (6.4.7), “partial”.
Let
Rbe a commutative ring whose set of minimal primes is finite and enumerated without repetition asq_1, ..., q_t(encoded by an injective familyq : Fin t → Ideal Rof minimal primes; the zerodivisor hypothesis forces it to enumerate every minimal prime). Assume moreover that the union of the minimal primes equals the set of zerodivisors ofR. Then the total ring of fractionsQ(R) = FractionRing Ris isomorphic, as anR-algebra, to the finite product of the localizationsR_{q_i}.(An
R-algebra isomorphism between these localizations is automatically the canonical map induced by the universal property, since it must commute with the structure maps fromR.)
theorem total_fraction_ring_isoProd_localization_atPrime
{R : Type*} [CommRing R] (t : ℕ) (q : Fin t → Ideal R)
(hmin : ∀ i, q i ∈ minimalPrimes R)
(hinj : Function.Injective q)
(hzd : zeroDivisorsSet R = ⋃ i, (q i : Set R)) :
haveI : ∀ i, (q i).IsPrime := fun i => (hmin i).isPrime
Nonempty (FractionRing R ≃ₐ[R] (∀ i, Localization.AtPrime (q i)))
Sources
Section10.26 Irreducible components of spectra#
Section 10.26 of the Stacks Project, Tag 00ER. 4 tags here are carried by 4 declarations of the repository (all in StacksFrontier) and 1 registered declaration, quoted below from AxiomMath/Stacks at commit 5ed82d14.
Tag 090M, a lemma
Tag 090M in the Stacks Project.
Declarations registered for the tag:
PrimeSpectrum.instSpectralSpaceregistered withadd_to_stacksin StacksFrontier/RingTheory/Spectrum/Prime/Profinite.lean, line 216 (StacksFrontier): “the spectrum of a ring is a spectral space”. References: EGA I (1.1.8), “more general”; EGA I (1.1.10), “more general”.
Tag 00ET, a lemma
Tag 00ET in the Stacks Project.
PrimeSpectrum.irreducibleClosedThroughEquiv, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Spectrum/Prime/IrreducibleComponents.lean, line 53. The attribute's comment: “(1)”.
Part (1): The irreducible closed subsets of
Spec(R)passing through𝔭correspond to the prime ideals of any localizationSofRat𝔭.
def irreducibleClosedThroughEquiv :
irreducibleClosedThrough R 𝔭 ≃ { q : Ideal S // q.IsPrime }
PrimeSpectrum.irreducibleComponentsThroughEquiv, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Spectrum/Prime/IrreducibleComponents.lean, line 149. The attribute's comment: “(2)”. References: EGA IV (5.1.12), “special case”.
Part (2): The irreducible components of
Spec(R)passing through𝔭correspond to the minimal prime ideals of any localizationSofRat𝔭.
def irreducibleComponentsThroughEquiv :
irreducibleComponentsThrough R 𝔭 ≃ minimalPrimes S
Tag 00EV, a lemma
Tag 00EV in the Stacks Project.
PrimeSpectrum.exists_disjoint_basicOpen_of_mem_minimalPrimes, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/MinimalPrimes/Reduced.lean, line 290.
Let
𝔭be a minimal prime ofRand letW ⊆ Spec Rbe a quasi-compact open not containing𝔭. Then somef ∉ 𝔭hasD(f)disjoint fromW.
theorem PrimeSpectrum.exists_disjoint_basicOpen_of_mem_minimalPrimes
{R : Type*} [CommSemiring R]
{𝔭 : Ideal R} (h𝔭min : 𝔭 ∈ minimalPrimes R)
{W : TopologicalSpace.Opens (PrimeSpectrum R)}
(hW : IsCompact (W : Set (PrimeSpectrum R)))
(h𝔭W : (⟨𝔭, h𝔭min.isPrime⟩ : PrimeSpectrum R) ∉ W) :
∃ f ∉ 𝔭,
Disjoint (PrimeSpectrum.basicOpen f : Set (PrimeSpectrum R))
(W : Set (PrimeSpectrum R))
Tag 04MG, a lemma
Tag 04MG in the Stacks Project.
spec_profinite_tfae, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Spectrum/Prime/Profinite.lean, line 184.
For a ring
Rthe following are equivalent:Spec Ris profinite;Spec Ris Hausdorff;Spec Ris totally disconnected; every quasi-compact open ofSpec Ris closed; there are no nontrivial inclusions between primes ofR; every prime ofRis maximal; every prime ofRis a minimal prime; every basic openD(f)is closed.
theorem spec_profinite_tfae (R : Type*) [CommRing R] :
[ -- (1) X is profinite: compact, Hausdorff, and totally disconnected
CompactSpace (PrimeSpectrum R) ∧ T2Space (PrimeSpectrum R) ∧
TotallyDisconnectedSpace (PrimeSpectrum R),
-- (2) X is Hausdorff
T2Space (PrimeSpectrum R),
-- (3) X is totally disconnected
TotallyDisconnectedSpace (PrimeSpectrum R),
-- (4) every quasi-compact open subset of X is closed
∀ U : Set (PrimeSpectrum R), IsOpen U → IsCompact U → IsClosed U,
-- (5) no nontrivial inclusions between prime ideals
∀ p q : Ideal R, p.IsPrime → q.IsPrime → p ≤ q → p = q,
-- (6) every prime ideal is maximal
∀ p : Ideal R, p.IsPrime → p.IsMaximal,
-- (7) every prime ideal is a minimal prime
∀ p : Ideal R, p.IsPrime → p ∈ minimalPrimes R,
-- (8) every standard open D(f) is closed
∀ f : R, IsClosed (PrimeSpectrum.basicOpen f : Set (PrimeSpectrum R)) ].TFAE
Sources
Section10.27 Examples of spectra of rings#
Section 10.27 of the Stacks Project, Tag 00EX. 4 tags here are carried by 8 declarations of the repository (all in StacksFrontier), quoted below from AxiomMath/Stacks at commit 5ed82d14.
Tag 00EY, an example
Tag 00EY in the Stacks Project.
IntXSqSubFour.isPrime_iff, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Spectrum/Prime/Examples.lean, line 178.
Classification of
Spec(R)(Stacks Tag 00EY). An idealpofR = ℤ[x]/(x² - 4)is prime if and only if it is one of the listed ideals:(2, x̄), or(q, x̄ - 2)/(q, x̄ + 2)for some odd primeq, or one of the two generic primes(x̄ - 2),(x̄ + 2).A prime contains
x̄ - 2orx̄ + 2, since their product is0. The evaluationsR → ℤ,x̄ ↦ ±2, are surjective with kernels(x̄ ∓ 2), so the primes containingx̄ ∓ 2are the preimages of the primes(0)and(q)ofℤ; forq = 2both preimages are(2, x̄).
theorem isPrime_iff (p : Ideal IntXSqSubFour) :
p.IsPrime ↔
(p = p2 ∨
(∃ q : ℕ, q.Prime ∧ Odd q ∧ (p = pMinus q ∨ p = pPlus q)) ∨
p = gMinus ∨ p = gPlus)
Tag 00EZ, an example
Tag 00EZ in the Stacks Project.
Polynomial.isPrime_int_trichotomy, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Spectrum/Prime/Examples.lean, line 303.
Stacks Tag 00EZ (Description of
Spec(ℤ[x])).Every prime ideal
𝔭ofℤ[x]has one of the following forms: *𝔭 = (0); *𝔭 = (f)withfirreducible inℤ[x]; this covers the nonzero primes with𝔭 ∩ ℤ = (0)and the primes(q)(takef = q) for a prime numberq; *𝔭 = (q, f)for a prime numberqandfirreducible inℤ[x]whose reduction moduloqis irreducible in(ℤ/qℤ)[x].The Stacks text omits the primes
(q), which lie over(q)without being of the third form.
theorem Polynomial.isPrime_int_trichotomy
(𝔭 : Ideal ℤ[X]) (h𝔭 : 𝔭.IsPrime) :
𝔭 = ⊥ ∨
(∃ f : ℤ[X], Irreducible f ∧ 𝔭 = Ideal.span {f}) ∨
(∃ (q : ℕ) (f : ℤ[X]), q.Prime ∧
Irreducible f ∧
Irreducible (f.map (Int.castRingHom (ZMod q))) ∧
𝔭 = Ideal.span {(C (q : ℤ)), f})
Tag 00F0, an example
Tag 00F0 in the Stacks Project.
Polynomial.isPrime_iff_eq_bot_or_eq_span_or_eq_span_pair, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Spectrum/Prime/Polynomial.lean, line 312. The attribute's comment: “for R[X] over any principal ideal domain R; the tag is the case R = k[x]”.
Stacks 00F0, both directions: the prime ideals of
R[X], forRa principal ideal domain. The tag is the caseR = k[x]for a fieldk.
theorem isPrime_iff_eq_bot_or_eq_span_or_eq_span_pair [IsDomain R] [IsPrincipalIdealRing R]
(P : Ideal R[X]) :
P.IsPrime ↔ P = ⊥ ∨ (∃ f : R[X], Irreducible f ∧ P = span {f}) ∨
(∃ (p : R) (f : R[X]), Irreducible p ∧
Irreducible (Ideal.Quotient.mk (span {C p}) f) ∧ P = span {C p, f})
Tag 00F1, an example
Tag 00F1 in the Stacks Project.
NodalCubicAffineOpen.quotientSpanAlgEquiv, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Spectrum/Prime/Examples.lean, line 615. The attribute's comment: “R ≅ ℚ[A, B]/(A³ - B² + AB)”.
The isomorphism
ℚ[A, B] / (A³ - B² + A·B) ≃ₐ[ℚ] Rinduced byφ.
def quotientSpanAlgEquiv :
(MvPolynomial (Fin 2) ℚ ⧸ Ideal.span {((MvPolynomial.X 0 : MvPolynomial (Fin 2) ℚ) ^ 3 -
MvPolynomial.X 1 ^ 2 + MvPolynomial.X 0 * MvPolynomial.X 1)}) ≃ₐ[ℚ] R
NodalCubicAffineOpen.isOpenEmbedding_comap_inclRToRa, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Spectrum/Prime/Examples.lean, line 792. The attribute's comment: “θ : Spec R_a → Spec R is an open embedding”.
The inclusion
R ↪ R_ainduces an open embeddingθ : Spec R_a → Spec R.
theorem isOpenEmbedding_comap_inclRToRa (a : ℚ)
(ha0 : a ≠ 0) (ha1 : a ≠ 1) :
Topology.IsOpenEmbedding
(PrimeSpectrum.comap (inclRToRa a ha0 ha1).toRingHom)
NodalCubicAffineOpen.range_comap_inclRToRa, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Spectrum/Prime/Examples.lean, line 806. The attribute's comment: “the image of θ is Spec R ∖ {𝔪_a}”.
The image of
θ : Spec R_a → Spec Ris exactly the complement of the closed point𝔪_ainSpec R.
theorem range_comap_inclRToRa (a : ℚ)
(ha0 : a ≠ 0) (ha1 : a ≠ 1) :
Set.range (PrimeSpectrum.comap (inclRToRa a ha0 ha1).toRingHom) =
{p : PrimeSpectrum R | p ≠ mRPoint a}
NodalCubicAffineOpen.range_comap_inclRToRa_ne_basicOpen, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Spectrum/Prime/Examples.lean, line 847.
Headline. The image of
θ : Spec R_a → Spec Ris not the basic openD(f)of any elementf ∈ R. HenceSpec R_a ⊂ Spec Ris an affine open which is not standard / principal.
theorem range_comap_inclRToRa_ne_basicOpen (a : ℚ)
(ha0 : a ≠ 0) (ha1 : a ≠ 1) (ha12 : a ≠ 1 / 2) (f : R) :
Set.range (PrimeSpectrum.comap (inclRToRa a ha0 ha1).toRingHom) ≠
(PrimeSpectrum.basicOpen f : Set (PrimeSpectrum R))
NodalCubicAffineOpen.not_exists_isLocalization, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Spectrum/Prime/Examples.lean, line 892. The attribute's comment: “R_a is not a localization of R”.
R_ais not a localization ofR: there is no submonoidS ⊆ Rfor whichR_abecomes the localizationS⁻¹ RviainclRToRa.
theorem not_exists_isLocalization (a : ℚ)
(ha0 : a ≠ 0) (ha1 : a ≠ 1) (ha12 : a ≠ 1 / 2) :
let _ : Algebra R (Ra a ha0 ha1) := (inclRToRa a ha0 ha1).toAlgebra
¬ ∃ (S : Submonoid R), IsLocalization S (Ra a ha0 ha1)
Sources
Section10.28 A meta-observation about prime ideals#
Section 10.28 of the Stacks Project, Tag 05K7. 8 tags here are carried by 4 declarations of the repository (all in StacksFrontier) and 9 registered declarations, quoted below from AxiomMath/Stacks at commit 5ed82d14.
Tag 05K8, a lemma
Tag 05K8 in the Stacks Project.
ideal_eq_mul_colon_of_isPrincipal, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Ideal/Colon.lean, line 29.
For a commutative ring
R, a principal idealJand an idealIwithI ≤ J, the idealIfactors as the product ofJwith the colon ideal(I : J).
theorem ideal_eq_mul_colon_of_isPrincipal {R : Type*} [CommRing R]
(I J : Ideal R) (hJ : J.IsPrincipal) (hIJ : I ≤ J) :
I = J * (I.colon J)
Tag 05KA, an example
Tag 05KA in the Stacks Project.
isOkaFamilyUniversal_meetsSubmonoidFamily, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/Algebra/OkaFamily.lean, line 93.
Stacks Tag 05KA. For a commutative semiring
Rand a multiplicative subsetSofR, the family of ideals meetingSis an Oka family.
theorem isOkaFamilyUniversal_meetsSubmonoidFamily {R : Type*} [CommSemiring R]
(S : Submonoid R) : IsOkaFamilyUniversal (meetsSubmonoidFamily S)
Tag 05KB, an example
Tag 05KB in the Stacks Project.
Declarations registered for the tag:
Ideal.isOka_fgregistered withadd_to_stacksin StacksFrontier/Algebra/OkaFamily.lean, line 32 (StacksFrontier): “the Oka-family conclusion”.
Tag 05KC, an example
Tag 05KC in the Stacks Project.
Declarations registered for the tag:
Ideal.isOka_isPrincipalregistered withadd_to_stacksin StacksFrontier/Algebra/OkaFamily.lean, line 33 (StacksFrontier).
Tag 05KF, a lemma
Tag 05KF in the Stacks Project.
Declarations registered for the tag:
Ideal.isPrime_of_maximally_disjointregistered withadd_to_stacksin StacksFrontier/RingTheory/Ideal/MaximalCriteriaForPrime.lean, line 23 (StacksFrontier).
Tag 05KG, a lemma
Tag 05KG in the Stacks Project.
Declarations registered for the tag:
Ideal.isOka_fgregistered withadd_to_stacksin StacksFrontier/RingTheory/Ideal/MaximalCriteriaForPrime.lean, line 27 (StacksFrontier): “(1):Ideal.FGis an Oka predicate”.Ideal.IsOka.isPrime_of_maximal_notregistered withadd_to_stacksin StacksFrontier/RingTheory/Ideal/MaximalCriteriaForPrime.lean, line 28 (StacksFrontier): “(1)”.IsNoetherianRing.of_primeregistered withadd_to_stacksin StacksFrontier/RingTheory/Ideal/MaximalCriteriaForPrime.lean, line 32 (StacksFrontier): “(2)”.isNoetherianRing_iff_ideal_fgregistered withadd_to_stacksin StacksFrontier/RingTheory/Ideal/MaximalCriteriaForPrime.lean, line 33 (StacksFrontier): “(2)”.
Tag 05KH, a lemma
Tag 05KH in the Stacks Project.
Declarations registered for the tag:
Ideal.IsOka.isPrime_of_maximal_notregistered withadd_to_stacksin StacksFrontier/MathlibRegistrations/Ch10.lean, line 278 (StacksFrontier): “(1), for the Oka familySubmodule.IsPrincipal(Ideal.isOka_isPrincipal)”.IsPrincipalIdealRing.of_primeregistered withadd_to_stacksin StacksFrontier/MathlibRegistrations/Ch10.lean, line 281 (StacksFrontier): “(2)”.
Tag 05KI, a lemma
Tag 05KI in the Stacks Project.
Ideal.isPrime_of_maximal_disjoint_nonZeroDivisors, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Ideal/MaximalCriteriaForPrime.lean, line 64. The attribute's comment: “(1)”.
An ideal maximal among the ideals which do not contain a nonzerodivisor is prime.
theorem Ideal.isPrime_of_maximal_disjoint_nonZeroDivisors {R : Type*} [CommSemiring R]
(I : Ideal R) (hI : Maximal (fun J : Ideal R ↦ Disjoint (J : Set R) (R⁰ : Set R)) I) :
I.IsPrime
isDomain_of_forall_nonzero_prime_containsNonZeroDivisor, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Ideal/MaximalCriteriaForPrime.lean, line 74. The attribute's comment: “(2)”.
(Characterization of a domain.) If
Ris nonzero and every nonzero prime ideal ofRcontains a nonzerodivisor, thenRis a domain.
theorem isDomain_of_forall_nonzero_prime_containsNonZeroDivisor [Nontrivial R]
(h : ∀ P : Ideal R, P.IsPrime → P ≠ ⊥ →
¬ Disjoint (P : Set R) (nonZeroDivisors R : Set R)) :
IsDomain R
Sources
Section10.29 Images of ring maps of finite presentation#
Section 10.29 of the Stacks Project, Tag 00F5. 10 tags here are carried by 6 declarations of the repository (all in StacksFrontier) and 16 registered declarations, quoted below from AxiomMath/Stacks at commit 5ed82d14.
Tag 00F6, a lemma
Tag 00F6 in the Stacks Project.
Declarations registered for the tag:
QuasiSeparatedSpace.isRetrocompact_iff_isCompactregistered withadd_to_stacksin StacksFrontier/RingTheory/Spectrum/Prime/Constructible/Defs.lean, line 27 (StacksFrontier): “(1) ↔ (2)”. References: EGA 0 (9.1.6); SGA 3 VIA (2.6.3), “special case”.PrimeSpectrum.isCompact_isOpen_iffregistered withadd_to_stacksin StacksFrontier/RingTheory/Spectrum/Prime/Constructible/Defs.lean, line 28 (StacksFrontier): “(2) ↔ (3)”.PrimeSpectrum.isCompact_isOpen_iff_idealregistered withadd_to_stacksin StacksFrontier/RingTheory/Spectrum/Prime/Constructible/Defs.lean, line 29 (StacksFrontier): “(2) ↔ (4)”.
Tag 00F7, a lemma
Tag 00F7 in the Stacks Project.
PrimeSpectrum.isCompact_preimage_comap_of_isOpen, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Spectrum/Prime/Constructible/Chevalley.lean, line 76. The attribute's comment: “(1)”.
Stacks 00F7 (first assertion): for a ring map
φ : R → S, the induced continuous mapSpec(S) → Spec(R)is quasi-compact, i.e. the preimage of every quasi-compact open ofSpec(R)is quasi-compact inSpec(S).
theorem PrimeSpectrum.isCompact_preimage_comap_of_isOpen
{R S : Type*} [CommSemiring R] [CommSemiring S] (φ : R →+* S)
(V : Set (PrimeSpectrum R)) (hV : IsOpen V) (hVc : IsCompact V) :
IsCompact ((PrimeSpectrum.comap φ) ⁻¹' V)
PrimeSpectrum.isConstructible_preimage_comap, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Spectrum/Prime/Constructible/Chevalley.lean, line 91. The attribute's comment: “(2)”.
Stacks 00F7 (second assertion): for a ring map
φ : R → Sand any constructible subsetE ⊆ Spec(R), the preimage(comap φ)⁻¹(E)is constructible inSpec(S).
theorem PrimeSpectrum.isConstructible_preimage_comap
{R S : Type*} [CommSemiring R] [CommSemiring S] (φ : R →+* S)
(E : Set (PrimeSpectrum R)) (hE : Topology.IsConstructible E) :
Topology.IsConstructible ((PrimeSpectrum.comap φ) ⁻¹' E)
Tag 0G1P, a lemma
Tag 0G1P in the Stacks Project.
Declarations registered for the tag:
PrimeSpectrum.exists_constructibleSetData_iffregistered withadd_to_stacksin StacksFrontier/RingTheory/Spectrum/Prime/Constructible/Defs.lean, line 31 (StacksFrontier).PrimeSpectrum.BasicConstructibleSetDataregistered withadd_to_stacksin StacksFrontier/RingTheory/Spectrum/Prime/Constructible/Defs.lean, line 32 (StacksFrontier): “the data of aD(f) ∩ V(g₁, …, gₘ)”.PrimeSpectrum.BasicConstructibleSetData.toSetregistered withadd_to_stacksin StacksFrontier/RingTheory/Spectrum/Prime/Constructible/Defs.lean, line 34 (StacksFrontier): “the set it describes”.PrimeSpectrum.ConstructibleSetData.toSetregistered withadd_to_stacksin StacksFrontier/RingTheory/Spectrum/Prime/Constructible/Defs.lean, line 35 (StacksFrontier): “the finite union”.
Tag 00F8, a lemma
Tag 00F8 in the Stacks Project.
PrimeSpectrum.exists_range_eq_of_isConstructible_finitePresentation, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Spectrum/Prime/Constructible/Image.lean, line 31.
Stacks 00F8. Every constructible subset of
Spec Ris the image ofSpec Sfor a finitely presentedR-algebraS.
theorem exists_range_eq_of_isConstructible_finitePresentation {R : Type u} [CommRing R]
{s : Set (PrimeSpectrum R)} (hs : IsConstructible s) :
∃ (S : Type u) (_ : CommRing S) (f : R →+* S),
f.FinitePresentation ∧ Set.range (comap f) = s
Tag 00F9, a lemma
Tag 00F9 in the Stacks Project.
Declarations registered for the tag:
PrimeSpectrum.localization_away_isOpenEmbeddingregistered withadd_to_stacksin StacksFrontier/RingTheory/Spectrum/Prime/Constructible/Chevalley.lean, line 103 (StacksFrontier): “Spec R_f → Spec Ris an open embedding”. References: EGA I (1.3.6), “partial”; EGA I (1.6.2), “special case”.Topology.IsConstructible.image_of_isOpenEmbeddingregistered withadd_to_stacksin StacksFrontier/RingTheory/Spectrum/Prime/Constructible/Chevalley.lean, line 105 (StacksFrontier): “constructibility transports along an open embedding with retrocompact range”. References: SGA 3 VIB (3.7), “partial”.PrimeSpectrum.localization_away_comap_rangeregistered withadd_to_stacksin StacksFrontier/RingTheory/Spectrum/Prime/Constructible/Chevalley.lean, line 108 (StacksFrontier): “the range ofSpec R_f → Spec RisD(f)”. References: EGA I (1.2.6), “special case”; EGA I (1.6.2), “special case”.PrimeSpectrum.isRetrocompact_basicOpenregistered withadd_to_stacksin StacksFrontier/RingTheory/Spectrum/Prime/Constructible/Chevalley.lean, line 112 (StacksFrontier): “D(f)is retrocompact”.
Tag 00FA, a lemma
Tag 00FA in the Stacks Project.
Declarations registered for the tag:
PrimeSpectrum.isClosedEmbedding_comap_of_surjectiveregistered withadd_to_stacksin StacksFrontier/RingTheory/Spectrum/Prime/Constructible/Chevalley.lean, line 117 (StacksFrontier): “Spec (R/I) → Spec Ris a closed embedding”. References: EGA I (1.2.4), “more general”.PrimeSpectrum.isRetrocompact_zeroLocus_compl_of_fgregistered withadd_to_stacksin StacksFrontier/RingTheory/Spectrum/Prime/Constructible/Chevalley.lean, line 119 (StacksFrontier): “the complement ofV(I)is retrocompact for a finitely generatedI”.Topology.IsConstructible.image_of_isClosedEmbeddingregistered withadd_to_stacksin StacksFrontier/RingTheory/Spectrum/Prime/Constructible/Chevalley.lean, line 121 (StacksFrontier): “constructibility transports along a closed embedding with retrocompact range”.range_comap_of_surjectiveregistered withadd_to_stacksin StacksFrontier/RingTheory/Spectrum/Prime/Constructible/Chevalley.lean, line 123 (StacksFrontier): “the range ofSpec (R/I) → Spec RisV(I)”.
Tag 00FB, a lemma
Tag 00FB in the Stacks Project.
Polynomial.image_comap_C_basicOpen_eq_biUnion_basicOpen_coeffs, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Spectrum/Prime/Polynomial.lean, line 103. The attribute's comment: “Second part”.
Stacks 00FB, second part. Let
Rbe a ring andf ∈ R[x]. The image of the standard openD(f) ⊆ Spec(R[x])under the mapSpec(R[x]) → Spec(R)is the union of the standard opensD(a),arunning over the coefficients off; in particular it is a quasi-compact open.
public theorem image_comap_C_basicOpen_eq_biUnion_basicOpen_coeffs {R : Type*} [CommRing R]
(f : R[X]) :
PrimeSpectrum.comap (C : R →+* R[X]) '' (basicOpen f : Set (PrimeSpectrum R[X])) =
⋃ a ∈ f.coeffs, (basicOpen a : Set (PrimeSpectrum R))
Tag 00FC, a lemma
Tag 00FC in the Stacks Project.
PrimeSpectrum.isNilpotent_baseChange_mulLeft_iff_mem_zeroLocus, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Spectrum/Prime/Constructible/Chevalley.lean, line 190.
For
Afree of ranknoverRandf : A, the set of primespat which multiplication byfbecomes nilpotent over the residue field is the zero locus of the firstncoefficients of the characteristic polynomial of multiplication byf.
theorem PrimeSpectrum.isNilpotent_baseChange_mulLeft_iff_mem_zeroLocus
{R A : Type*} [CommRing R] [CommRing A] [Algebra R A]
(n : ℕ) (e : A ≃ₗ[R] (Fin n → R))
(f : A) (p : PrimeSpectrum R) :
IsNilpotent
(LinearMap.baseChange p.asIdeal.ResidueField
(LinearMap.mulLeft R f)) ↔
p ∈ PrimeSpectrum.zeroLocus
((fun i : Fin n =>
(charPolyOfEquiv e (LinearMap.mulLeft R f)).coeff i) '' Set.univ)
Tag 00FD, a lemma
Tag 00FD in the Stacks Project.
image_comap_C_basicOpen_inter_zeroLocus, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Spectrum/Prime/Constructible/Chevalley.lean, line 216.
Stacks Tag 00FD. Let
Rbe a ring andf, g ∈ R[x]polynomials whose leading coefficient ofgis a unit ofR. Then the image ofD(f) ∩ V(g)under the structure mapSpec(R[x]) → Spec(R)is a finite union of standard opens: there existr_1, …, r_n ∈ Rwith image= ⋃ᵢ D(rᵢ).Since the leading coefficient of
gis a unit,gis associate to the monic polynomialg' = (leadingCoeff g)⁻¹ • g, soV(g) = V(g'). For monicg',R[x]/(g')is finite free overR, and Mathlib'sPolynomial.exists_image_comap_of_monicproduces a finite sett ⊆ Rwith image= (V(t))ᶜ = ⋃_{r ∈ t} D(r), which we reindex byFin n.
theorem image_comap_C_basicOpen_inter_zeroLocus
{R : Type*} [CommRing R] (f g : R[X]) (hg : IsUnit g.leadingCoeff) :
∃ (n : ℕ) (r : Fin n → R),
comap (C : R →+* R[X]) ''
((basicOpen f : Set (PrimeSpectrum R[X])) ∩ zeroLocus {g}) =
⋃ i, (basicOpen (r i) : Set (PrimeSpectrum R))
Tag 00FE, a theorem
Tag 00FE in the Stacks Project.
Declarations registered for the tag:
PrimeSpectrum.isConstructible_comap_imageregistered withadd_to_stacksin StacksFrontier/RingTheory/Spectrum/Prime/Constructible/Chevalley.lean, line 251 (StacksFrontier): “Chevalley's theorem”. References: EGA IV (1.8.4.1), “affine source”; EGA IV (1.9.5), “(viii), special case”; EGA IV (1.8.4), “affine case”; EGA IV (1.8.5), “affine case”; EGA IV (9.5.1), “affine case”; SGA 3 VIB (3.7), “special case”; SGA 3 VIB (4.2), “special case”; SGA 1 IV (6.2), “affine case”.
Sources
Section10.30 More on images#
Section 10.30 of the Stacks Project, Tag 00FF. 6 tags here are carried by 6 declarations of the repository (all in StacksFrontier) and 1 registered declaration, quoted below from AxiomMath/Stacks at commit 5ed82d14.
Tag 00FG, a lemma
Tag 00FG in the Stacks Project.
GenericFinitePresentation.generic_finite_presentation, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Spectrum/Prime/Constructible/GenericFinitePresentation/AwayMapMul.lean, line 662.
Generic finite presentation. An inclusion of domains of finite type admits nonzero
f ∈ Randg ∈ Ssuch thatR[1/f] → S[1/(fg)]is of finite presentation. The domain hypothesis onRfollows from injectivity.
theorem GenericFinitePresentation.generic_finite_presentation
{R S : Type*} [CommRing R] [CommRing S] [IsDomain S] [Algebra R S]
[Algebra.FiniteType R S] (hinj : Function.Injective (algebraMap R S)) :
∃ (f : R) (g : S), f ≠ 0 ∧ g ≠ 0 ∧ (awayMapMul f g).FinitePresentation
Tag 00FH, a lemma
Tag 00FH in the Stacks Project.
image_constructible_contains_open_dense_in_closure, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Spectrum/Prime/Constructible/GenericFinitePresentation/ConstructibleImage.lean, line 650.
Stacks 00FH (Lemma 10.30.2). Let
φ : R →+* Sbe a ring map of finite type, letE ⊆ Spec Sbe constructible, and letξ ∈ Spec Rlie in the imagef(E)ofEunderf = PrimeSpectrum.comap φ. Thenclosure {ξ} ∩ f(E)contains a subsetDthat is open and dense in the subspaceclosure {ξ}.
theorem image_constructible_contains_open_dense_in_closure
{R S : Type*} [CommRing R] [CommRing S] (φ : R →+* S)
(hφ : φ.FiniteType)
(E : Set (PrimeSpectrum S)) (hE : Topology.IsConstructible E)
(ξ : PrimeSpectrum R)
(hξ : ξ ∈ PrimeSpectrum.comap φ '' E) :
∃ D : Set (closure {ξ} : Set (PrimeSpectrum R)),
IsOpen D ∧ Dense D ∧
(Subtype.val '' D) ⊆ closure {ξ} ∩ (PrimeSpectrum.comap φ '' E)
Tag 00FI, a lemma
Tag 00FI in the Stacks Project.
main_equivalence, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Spectrum/Prime/Surjective.lean, line 112.
Main equivalence: conditions (1), (2), (3), (4) are equivalent.
theorem main_equivalence
{R S : Type*} [CommRing R] [CommRing S] (φ : R →+* S) :
(SpecSurjective φ ↔ RadicalContractionEq φ) ∧
(RadicalContractionEq φ ↔ RadicalIdealContractionEq φ) ∧
(RadicalIdealContractionEq φ ↔ PrimeContractionEq φ) ∧
(PrimeContractionEq φ ↔ SpecSurjective φ)
Tag 00FJ, a lemma
Tag 00FJ in the Stacks Project.
domain_image_dense_set_points_generic_point_tfae, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Spectrum/Prime/Surjective.lean, line 306. References: EGA 0 (2.1.5), “special case”; EGA I (1.2.7), “special case”.
Let
Rbe a domain andφ : R →+* Sa ring map. Then the following are equivalent: 1.φis injective. 2. The range of the induced mapPrimeSpectrum.comap φis dense inPrimeSpectrum R. 3. There exists a primeqofSwhose preimage underφis the zero ideal ofR.
theorem domain_image_dense_set_points_generic_point_tfae :
List.TFAE
[ Function.Injective φ
, Dense (Set.range (PrimeSpectrum.comap φ))
, ∃ q : PrimeSpectrum S, (PrimeSpectrum.comap φ q).asIdeal = ⊥ ]
Tag 0CAN, a lemma
Tag 0CAN in the Stacks Project.
Declarations registered for the tag:
Ideal.exists_minimalPrimes_comap_eqregistered withadd_to_stacksin StacksFrontier/RingTheory/Spectrum/Prime/Surjective.lean, line 331 (StacksFrontier): “atI = ⊥, where minimality overf⁻¹(⊥)is the tag's hypothesis thatpbe a minimal prime lying in the image”. References: EGA 0 (1.5.8).
Tag 0H7L, a lemma
Tag 0H7L in the Stacks Project.
contraction_ne_bot_of_algebraic, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/IntegralClosure/ContractionNeBot.lean, line 46. The attribute's comment: “first sentence”.
Algebraic core (Stacks 0H7L). Let
A ⊆ Bbe an inclusion of integral domains, modeled by an injectivealgebraMap A B. LetK = Frac(A)andL = Frac(B)be their fields of fractions, with the induced field embeddingK ↪ L(encoded by the algebra structureAlgebra K Land the scalar towersA → K → L,A → B → L). Assume the extensionK ⊆ Lis algebraic. IfJis a nonzero ideal ofB, then its contractionA ∩ J = comap (algebraMap A B) Jis a nonzero ideal ofA.
theorem contraction_ne_bot_of_algebraic
(A B K L : Type*)
[CommRing A] [CommRing B] [IsDomain A] [IsDomain B]
[Algebra A B] (hinj : Function.Injective (algebraMap A B))
[Field K] [Algebra A K] [IsFractionRing A K]
[Field L] [Algebra B L] [IsFractionRing B L]
[Algebra A L] [Algebra K L]
[IsScalarTower A B L] [IsScalarTower A K L]
[Algebra.IsAlgebraic K L]
(J : Ideal B) (hJ : J ≠ ⊥) :
Ideal.comap (algebraMap A B) J ≠ ⊥
PrimeSpectrum.not_dense_image_comap_of_isAlgebraic, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/IntegralClosure/ContractionNeBot.lean, line 67. The attribute's comment: “second sentence”.
Let
A → Bbe an algebraic ring map from a reduced ring into a domain. Then the image inSpec Aof a proper closed subset ofSpec Bis not dense.
theorem PrimeSpectrum.not_dense_image_comap_of_isAlgebraic {A B : Type*} [CommRing A]
[CommRing B] [IsReduced A] [IsDomain B] [Algebra A B] [Algebra.IsAlgebraic A B]
{Z : Set (PrimeSpectrum B)} (hZ : IsClosed Z) (hZ' : Z ≠ Set.univ) :
¬ Dense (PrimeSpectrum.comap (algebraMap A B) '' Z)
Sources
Section10.31 Noetherian rings#
Section 10.31 of the Stacks Project, Tag 00FM. 10 tags here are carried by 7 declarations of the repository (all in StacksFrontier) and 8 registered declarations, quoted below from AxiomMath/Stacks at commit 5ed82d14.
Tag 00FN, a lemma
Tag 00FN in the Stacks Project.
Declarations registered for the tag:
Algebra.FiniteType.isNoetherianRingregistered withadd_to_stacksin StacksFrontier/RingTheory/Noetherian/Spec.lean, line 54 (StacksFrontier): “(1)”. References: EGA 0 (22.3.1), “Noetherianity of A”; EGA 0 (23.2.5), “Noetherian clause”; EGA II (2.1.5), “sufficiency”; EGA IV (1.4.1), “more general”; EGA IV (1.5.3), “affine case”; SGA 3 VIB (10.10), “more general”; SGA 5 V (5.1.4), “special case”.IsLocalization.isNoetherianRingregistered withadd_to_stacksin StacksFrontier/RingTheory/Noetherian/Spec.lean, line 64 (StacksFrontier): “(2)”. References: EGA 0 (10.3.1.1), “B is Noetherian”.
Tag 0306, a lemma
Tag 0306 in the Stacks Project.
mvPowerSeries_fin_isNoetherianRing, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/MvPowerSeries/Noetherian.lean, line 165.
The formal power series ring in
nvariables over a Noetherian commutative ring is Noetherian.
theorem mvPowerSeries_fin_isNoetherianRing
(R : Type*) [CommRing R] [IsNoetherianRing R] (n : ℕ) :
IsNoetherianRing (MvPowerSeries (Fin n) R)
Tag 00FO, a lemma
Tag 00FO in the Stacks Project.
Declarations registered for the tag:
Algebra.FiniteType.isNoetherianRingregistered withadd_to_stacksin StacksFrontier/MathlibRegistrations/Ch10.lean, line 138 (StacksFrontier): “over any Noetherian base; fields and ℤ are Noetherian”. References: EGA 0 (22.3.1), “Noetherianity of A”; EGA 0 (23.2.5), “Noetherian clause”; EGA II (2.1.5), “sufficiency”; EGA IV (1.4.1), “more general”; EGA IV (1.5.3), “affine case”; SGA 3 VIB (10.10), “more general”; SGA 5 V (5.1.4), “special case”.
Tag 00FP, a lemma
Tag 00FP in the Stacks Project.
Declarations registered for the tag:
Module.finitePresentation_of_finiteregistered withadd_to_stacksin StacksFrontier/MathlibRegistrations/Ch10.lean, line 141 (StacksFrontier): “(1) finite modules are finitely presented”. References: EGA 0 (1.0.5), “more general”; EGA 0 (1.3.5), “more general”.Submodule.FG.of_leregistered withadd_to_stacksin StacksFrontier/MathlibRegistrations/Ch10.lean, line 142 (StacksFrontier): “(2) submodules of finite modules are finite”.Algebra.FinitePresentation.of_finiteTyperegistered withadd_to_stacksin StacksFrontier/MathlibRegistrations/Ch10.lean, line 143 (StacksFrontier): “(3) finite type algebras are finitely presented”. References: EGA IV (1.4.1); SGA 1 IX (4.7), “special case”; SGA 1 IX (4.10), “affine Noetherian base”; SGA 3 V (6.1), “affine case”.
Tag 00FQ, a lemma
Tag 00FQ in the Stacks Project.
Declarations registered for the tag:
PrimeSpectrum.instNoetherianSpaceregistered withadd_to_stacksin StacksFrontier/RingTheory/Noetherian/Spec.lean, line 68 (StacksFrontier). References: EGA I (1.1.6).
Tag 00FR, a lemma
Tag 00FR in the Stacks Project.
Declarations registered for the tag:
minimalPrimes.finite_of_isNoetherianRingregistered withadd_to_stacksin StacksFrontier/RingTheory/Noetherian/Spec.lean, line 75 (StacksFrontier). References: EGA 0 (1.1.1), “Minimal primes over (0)”; EGA 0 (2.2.5), “affine case”; EGA 0 (2.2.5), “ring-theoretic form”.
Tag 0CY6, a lemma
Tag 0CY6 in the Stacks Project.
noetherian_base_change_finite_type, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Noetherian/Spec.lean, line 100. References: EGA I (6.3.8), “affine case”; EGA IV (1.5.5), “affine case”; EGA I (10.13.5), “(ii)”; EGA I (6.6.7), “affine case”; EGA II (2.1.5), “sufficiency”; EGA IV (1.3.5), “affine schemes”; EGA IV (6.7.1.1), “special case”; SGA 1 III (1.4), “partial”; SGA 5 V (5.1.4), “special case”; SGA 5 V (5.1.5), “special case”; SGA 6 X (7.15), “special case”; SGA 6 X (7.17), “special case”.
If
R → R'is of finite type andSis a NoetherianR-algebra, then the base changeR' ⊗[R] Sis a Noetherian ring.The proof transports the result along the commutativity isomorphism
S ⊗[R] R' ≃ R' ⊗[R] S, after observing that base change preserves finite type and applying the Hilbert basis theorem.
theorem noetherian_base_change_finite_type
(R R' S : Type*) [CommRing R] [CommRing R'] [CommRing S]
[Algebra R R'] [Algebra R S]
[Algebra.FiniteType R R'] [IsNoetherianRing S] :
IsNoetherianRing (TensorProduct R R' S)
Tag 045I, a lemma
Tag 045I in the Stacks Project.
tensorProduct_isNoetherianRing_of_finitelyGenerated_fieldExtension, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Noetherian/TensorProduct.lean, line 73. References: EGA IV (4.7.3), “(i), special case”; EGA IV (6.7.1), “Affine X, special case”; EGA IV (6.7.1.1), “more general”; SGA 1 III (1.4), “special case”; SGA 5 V (5.1.5), “special case”.
Stacks Tag 045I. Let
kbe a field andRa Noetherian commutativek-algebra. IfK/kis a finitely generated field extension (finitely generated as a field, expressed by(⊤ : IntermediateField k K).FG), then thek-algebraK ⊗[k] Ris Noetherian.
theorem tensorProduct_isNoetherianRing_of_finitelyGenerated_fieldExtension
(k : Type*) [Field k]
(R : Type*) [CommRing R] [Algebra k R] [IsNoetherianRing R]
(K : Type*) [Field K] [Algebra k K]
(hK : (⊤ : IntermediateField k K).FG) :
IsNoetherianRing (K ⊗[k] R)
Tag 0BX1, a lemma
Tag 0BX1 in the Stacks Project.
exists_injective_localizationAwayToAtPrime_of_isDomain, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Localization/AwayToAtPrime.lean, line 93. The attribute's comment: “(1)”.
Case (1):
Ran integral domain. There existsf ∉ psuch that the canonical mapR_f → R_pis injective. (One may takef = 1.)
theorem exists_injective_localizationAwayToAtPrime_of_isDomain
{R : Type*} [CommRing R] [IsDomain R] (p : Ideal R) [p.IsPrime] :
∃ f : R, ∃ hf : f ∉ p, Function.Injective (localizationAwayToAtPrime f p hf)
exists_injective_localizationAwayToAtPrime_of_isNoetherianRing, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Localization/AwayToAtPrime.lean, line 103. The attribute's comment: “(2)”.
Case (2):
RNoetherian. There existsf ∉ psuch that the canonical mapR_f → R_pis injective.
theorem exists_injective_localizationAwayToAtPrime_of_isNoetherianRing
{R : Type*} [CommRing R] [IsNoetherianRing R] (p : Ideal R) [p.IsPrime] :
∃ f : R, ∃ hf : f ∉ p, Function.Injective (localizationAwayToAtPrime f p hf)
exists_injective_localizationAwayToAtPrime_of_isReduced_finite_minimalPrimes, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Localization/AwayToAtPrime.lean, line 135. The attribute's comment: “(3)”.
Case (3):
Rreduced with finitely many minimal primes not contained inp. There existsf ∉ psuch that the canonical mapR_f → R_pis injective.The hypothesis is weaker than the
(minimalPrimes R).Finiteof 0BX1 (3), which implies it bySet.Finite.subset _ (Set.sep_subset _ _).
theorem exists_injective_localizationAwayToAtPrime_of_isReduced_finite_minimalPrimes
{R : Type*} [CommRing R] [IsReduced R] (p : Ideal R) [p.IsPrime]
(hfin : {q ∈ minimalPrimes R | ¬ q ≤ p}.Finite) :
∃ f : R, ∃ hf : f ∉ p, Function.Injective (localizationAwayToAtPrime f p hf)
Tag 06RN, a lemma
Tag 06RN in the Stacks Project.
surjective_endomorphism_noetherian_isomorphism, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Noetherian/Endomorphism.lean, line 68.
The bijective endomorphism above is genuinely a ring isomorphism: there is a
RingEquive : R ≃+* Rthat agrees withφon every element.
theorem surjective_endomorphism_noetherian_isomorphism
(R : Type*) [CommRing R] [IsNoetherianRing R] (φ : R →+* R)
(hφ : Function.Surjective φ) : ∃ e : R ≃+* R, ∀ x, e x = φ x
Sources
Section10.32 Locally nilpotent ideals#
Section 10.32 of the Stacks Project, Tag 0AMF. 7 tags here are carried by 9 declarations of the repository (all in StacksFrontier) and 3 registered declarations, quoted below from AxiomMath/Stacks at commit 5ed82d14.
Tag 00IL, a definition
Tag 00IL in the Stacks Project.
Ideal.LocallyNilpotent, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Nilpotent/Ideal.lean, line 91. The attribute's comment: “locally nilpotent”. References: SGA 6 VI (6.1).
An ideal
I ⊂ Ris locally nilpotent if every element ofIis nilpotent, i.e. for everyx ∈ Ithere existsn ∈ ℕwithx ^ n = 0.
def LocallyNilpotent (I : Ideal R) : Prop
Ideal.Nilpotent, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Nilpotent/Ideal.lean, line 97. The attribute's comment: “nilpotent”.
An ideal
I ⊂ Ris nilpotent if there existsn ∈ ℕwithI ^ n = 0, where0 = ⊥is the zero ideal.
def Nilpotent (I : Ideal R) : Prop
Tag 0EGG, an example
Tag 0EGG in the Stacks Project.
Stacks.LocallyNilpotentNotNilpotent.idealJ_le_nilradical, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Nilpotent/Ideal.lean, line 188.
J ≤ nilradical S, i.e. every element ofJis nilpotent.
theorem idealJ_le_nilradical : idealJ k ≤ nilradical (S_ring k)
Stacks.LocallyNilpotentNotNilpotent.not_isNilpotent_idealJ, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Nilpotent/Ideal.lean, line 215.
Jis not nilpotent: there is nomwithJ ^ m = 0.
theorem not_isNilpotent_idealJ : ¬ IsNilpotent (idealJ k)
Tag 0544, a lemma
Tag 0544 in the Stacks Project.
Ideal.IsLocallyNilpotent0544.map, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Nilpotent/Ideal.lean, line 141. References: EGA III (5.4.6), “more general”.
If
R → R'is a ring map andI ⊂ Ris a locally nilpotent ideal, then the extended idealIR' = I.map fis locally nilpotent inR'.
theorem Ideal.IsLocallyNilpotent0544.map
{R R' : Type*} [CommRing R] [CommRing R']
(f : R →+* R') (I : Ideal R)
(hI : Ideal.IsLocallyNilpotent0544 I) :
Ideal.IsLocallyNilpotent0544 (I.map f)
Tag 0AMG, a lemma
Tag 0AMG in the Stacks Project.
Stacks.NilpotentIdeal.PowerMap.isUnit_quotient_mk_iff, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Nilpotent/Lifting.lean, line 145. References: EGA 0 (19.10.3), “more general”; EGA 0 (7.1.12), “special case”.
Units are detected modulo a locally nilpotent ideal.
theorem isUnit_quotient_mk_iff (hI : ∀ x ∈ I, IsNilpotent x) {x : R} :
IsUnit x ↔ IsUnit ((Ideal.Quotient.mk I) x)
Tag 00IM, a lemma
Tag 00IM in the Stacks Project.
Declarations registered for the tag:
Ideal.exists_pow_le_of_le_radical_of_fgregistered withadd_to_stacksin StacksFrontier/RingTheory/Nilpotent/Ideal.lean, line 123 (StacksFrontier). References: EGA I (6.1.6), “affine case”.Ideal.fg_of_isNoetherianRingregistered withadd_to_stacksin StacksFrontier/RingTheory/Nilpotent/Ideal.lean, line 125 (StacksFrontier): “every ideal of a Noetherian ring is finitely generated”.Ideal.FG.isNilpotent_iff_le_nilradicalregistered withadd_to_stacksin StacksFrontier/RingTheory/Nilpotent/Ideal.lean, line 127 (StacksFrontier): “locally nilpotent = nilpotent”. References: EGA I (6.1.6), “affine case”.
Tag 05BU, a lemma
Tag 05BU in the Stacks Project.
exists_isIdempotentElem_add_sq_sub_mul_sum, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Idempotents/IntegerPolynomial.lean, line 72.
Let
Abe a possibly noncommutative ring and lete ∈ Abe such thatx = e ^ 2 - eis nilpotent. Then there is an idempotent of the forme + x * (∑ a i j • (e ^ i * x ^ j))with integer coefficientsa i j.
theorem exists_isIdempotentElem_add_sq_sub_mul_sum {e : A} (he : IsNilpotent (e ^ 2 - e)) :
∃ (N : ℕ) (a : ℕ → ℕ → ℤ), IsIdempotentElem (e + (e ^ 2 - e) *
∑ i ∈ Finset.range N, ∑ j ∈ Finset.range N, a i j • (e ^ i * (e ^ 2 - e) ^ j))
Tag 0CAP, a lemma
Tag 0CAP in the Stacks Project.
Stacks.NilpotentIdeal.PowerMap.powMap_bijective, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Nilpotent/Lifting.lean, line 229. The attribute's comment: “(1)”.
If
Iis locally nilpotent andn ≥ 1is invertible inR/I, then thenth power map1 + x ↦ (1 + x)^non1 + Iis a bijection.
theorem powMap_bijective
(hI : ∀ x ∈ I, IsNilpotent x) {n : ℕ} (hn : 1 ≤ n)
(hnu : IsUnit ((n : R ⧸ I))) :
Function.Bijective (powMap I n)
Stacks.NilpotentIdeal.PowerMap.isUnit_pow_iff, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Nilpotent/Lifting.lean, line 238. The attribute's comment: “(2)”.
If
Iis locally nilpotent andn ≥ 1is invertible inR/I, then a unitu ∈ Rˣis annth power inRif and only if its image inR/Iis annth power (as a unit) inR/I.
theorem isUnit_pow_iff
(hI : ∀ x ∈ I, IsNilpotent x) {n : ℕ} (hn : 1 ≤ n)
(hnu : IsUnit ((n : R ⧸ I))) (u : Rˣ) :
(∃ v : Rˣ, u = v ^ n) ↔
(∃ w : (R ⧸ I)ˣ, (Ideal.Quotient.mk I (u : R) : R ⧸ I) = (w : R ⧸ I) ^ n)
Sources
Section10.33 Curiosity#
Section 10.33 of the Stacks Project, Tag 02JG. 2 tags here are carried by 2 declarations of the repository (all in StacksFrontier), quoted below from AxiomMath/Stacks at commit 5ed82d14.
Tag 02JH, a lemma
Tag 02JH in the Stacks Project.
localization_isClosed_range_comap_isClosed, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Localization/ClosedImage.lean, line 89.
Let
Sbe a multiplicative subset of a ringR. If the image ofSpec(S⁻¹R) → Spec(R)is closed, thenS⁻¹Ris isomorphic to a quotientR ⧸ Ifor some idealI ⊆ R.
theorem localization_isClosed_range_comap_isClosed
(R : Type*) [CommRing R] (S : Submonoid R)
(hclosed :
IsClosed (Set.range (PrimeSpectrum.comap (algebraMap R (Localization S))))) :
∃ I : Ideal R, Nonempty (Localization S ≃+* (R ⧸ I))
Tag 02JI, a lemma
Tag 02JI in the Stacks Project.
IsLocalization.exists_ringEquiv_prod_of_isClosed_range, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Localization/ClosedImage.lean, line 286.
Let
S ⊆ Rbe a multiplicative subset such that the image ofSpec(S⁻¹R) → Spec Ris closed. IfRis Noetherian, orSpec Ris a Noetherian topological space, orSis finitely generated as a monoid, thenR ≅ S⁻¹R × R'for some ringR'.
theorem exists_ringEquiv_prod_of_isClosed_range
(hclosed : IsClosed (Set.range (comap (algebraMap R A))))
(h : IsNoetherianRing R ∨ NoetherianSpace (PrimeSpectrum R) ∨ S.FG) :
∃ (R' : Type u) (_ : CommRing R'), Nonempty (R ≃+* A × R')
Sources
Section10.34 Hilbert Nullstellensatz#
Section 10.34 of the Stacks Project, Tag 00FS. 2 tags here are carried by 6 declarations of the repository (all in StacksFrontier) and 2 registered declarations, quoted below from AxiomMath/Stacks at commit 5ed82d14.
Tag 00FV, a theorem
Tag 00FV in the Stacks Project.
Stacks.HilbertNullstellensatz.module_finite_quotient_of_finiteType, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Jacobson/HilbertNullstellensatz.lean, line 54. The attribute's comment: “part (1), for an arbitrary finite type algebra over the field”. References: EGA IV (10.4.5), “a⇒b′ over a field”.
Hilbert Nullstellensatz, part (1), for a finite type algebra: if
Ais ak-algebra of finite type over a fieldkand𝔪 ⊆ Ais a maximal ideal, then the residue fieldκ(𝔪) = A ⧸ 𝔪is a finite extension ofk.The quotient
A ⧸ 𝔪is a field byIdeal.Quotient.field, and it is of finite type overkbecauseAis, so Zariski's lemma over the Jacobson ringkapplies.
public theorem module_finite_quotient_of_finiteType (k A : Type*) [Field k] [CommRing A]
[Algebra k A] [Algebra.FiniteType k A] (𝔪 : Ideal A) [𝔪.IsMaximal] :
Module.Finite k (A ⧸ 𝔪)
Stacks.HilbertNullstellensatz.eq_sInf_isMaximal_of_finiteType, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Jacobson/HilbertNullstellensatz.lean, line 68. The attribute's comment: “part (2), for an arbitrary finite type algebra over the field”. References: EGA IV (10.4.6), “partial”.
Hilbert Nullstellensatz, part (2), for a finite type algebra: a radical ideal
Iof ak-algebraAof finite type over a fieldkis the infimum of the maximal ideals ofAcontainingI.A finite type algebra over a field is a Jacobson ring, and in a Jacobson ring a radical ideal equals its Jacobson radical, which is by definition that infimum.
public theorem eq_sInf_isMaximal_of_finiteType (k A : Type*) [Field k] [CommRing A] [Algebra k A]
[Algebra.FiniteType k A] (I : Ideal A) (hI : I.IsRadical) :
I = sInf {J : Ideal A | I ≤ J ∧ J.IsMaximal}
Stacks.HilbertNullstellensatz.module_finite_quotient_mvPolynomial, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Jacobson/HilbertNullstellensatz.lean, line 88. The attribute's comment: “part (1)”.
Hilbert Nullstellensatz, part (1): for a field
k, finitely many variablesιand a maximal ideal𝔪of the polynomial ringk[x_i : i ∈ ι], the residue fieldκ(𝔪) = k[x_i : i ∈ ι] ⧸ 𝔪is a finite extension ofk.
public theorem module_finite_quotient_mvPolynomial (k : Type*) [Field k] (ι : Type*) [Finite ι]
(𝔪 : Ideal (MvPolynomial ι k)) [𝔪.IsMaximal] :
Module.Finite k (MvPolynomial ι k ⧸ 𝔪)
Stacks.HilbertNullstellensatz.eq_sInf_isMaximal_mvPolynomial, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Jacobson/HilbertNullstellensatz.lean, line 97. The attribute's comment: “part (2)”.
Hilbert Nullstellensatz, part (2): for a field
kand finitely many variablesι, a radical idealIof the polynomial ringk[x_i : i ∈ ι]is the infimum of the maximal ideals containingI.
public theorem eq_sInf_isMaximal_mvPolynomial (k : Type*) [Field k] (ι : Type*) [Finite ι]
(I : Ideal (MvPolynomial ι k)) (hI : I.IsRadical) :
I = sInf {J : Ideal (MvPolynomial ι k) | I ≤ J ∧ J.IsMaximal}
Stacks.HilbertNullstellensatz.coe_eq_iInter_isMaximal_mvPolynomial, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Jacobson/HilbertNullstellensatz.lean, line 106. The attribute's comment: “part (2), as an intersection of the underlying sets”.
Hilbert Nullstellensatz, part (2), as an equality of sets: a radical ideal
Iof the polynomial ringk[x_i : i ∈ ι]over a fieldkin finitely many variables is, as a subset of the polynomial ring, the intersection of the maximal ideals containingI.
public theorem coe_eq_iInter_isMaximal_mvPolynomial (k : Type*) [Field k] (ι : Type*) [Finite ι]
(I : Ideal (MvPolynomial ι k)) (hI : I.IsRadical) :
(I : Set (MvPolynomial ι k)) =
⋂ J ∈ {J : Ideal (MvPolynomial ι k) | I ≤ J ∧ J.IsMaximal},
(J : Set (MvPolynomial ι k))
Declarations registered for the tag:
finite_of_finite_type_of_isJacobsonRingregistered withadd_to_stacksin StacksFrontier/RingTheory/Jacobson/HilbertNullstellensatz.lean, line 118 (StacksFrontier): “part (1) is this applied to the fieldA ⧸ 𝔪, which is of finite type overk; seeStacks.HilbertNullstellensatz.module_finite_quotient_of_finiteType”. References: EGA IV (10.4.5), “a⇒b′”.MvPolynomial.isJacobsonRingregistered withadd_to_stacksin StacksFrontier/RingTheory/Jacobson/HilbertNullstellensatz.lean, line 124 (StacksFrontier): “part (2): a radical ideal of a Jacobson ring equals its Jacobson radical, which is the infimum of the maximal ideals containing it; seeStacks.HilbertNullstellensatz.eq_sInf_isMaximal_mvPolynomial”.
Tag 00FY, a lemma
Tag 00FY in the Stacks Project.
exists_isField_localizationAway_and_finite_of_finiteType, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Jacobson/Nullstellensatz.lean, line 108.
Let
R ⊂ KwithKa field andKof finite type overRas anR-algebra. Then there existsf ∈ Rsuch that the localizationR_fis a field, andKis a finite extension ofR_f.
theorem exists_isField_localizationAway_and_finite_of_finiteType (R K : Type*)
[CommRing R] [Field K]
[Algebra R K] (hRK : Function.Injective (algebraMap R K))
[Algebra.FiniteType R K] :
∃ f : R, IsField (Localization.Away f) ∧
∃ (_ : Algebra (Localization.Away f) K)
(_ : IsScalarTower R (Localization.Away f) K),
Module.Finite (Localization.Away f) K
Sources
Section10.35 Jacobson rings#
Section 10.35 of the Stacks Project, Tag 00FZ. 22 tags here are carried by 21 declarations of the repository (all in StacksFrontier) and 10 registered declarations, quoted below from AxiomMath/Stacks at commit 5ed82d14.
Tag 00G0, a definition
Tag 00G0 in the Stacks Project.
Declarations registered for the tag:
IsJacobsonRingregistered withadd_to_stacksin StacksFrontier/RingTheory/Jacobson/Defs.lean, line 30 (StacksFrontier): “a Jacobson ring”. References: EGA IV (10.4.1).isJacobsonRing_iffregistered withadd_to_stacksin StacksFrontier/RingTheory/Jacobson/Defs.lean, line 32 (StacksFrontier): “the defining condition: every radical ideal is its own Jacobson radical, i.e. the intersection of the maximal ideals containing it”.
Tag 00G1, a lemma
Tag 00G1 in the Stacks Project.
Declarations registered for the tag:
isJacobsonRing_of_finiteTyperegistered withadd_to_stacksin StacksFrontier/RingTheory/Jacobson/Defs.lean, line 34 (StacksFrontier): “in the generality of a Jacobson base ring”. References: EGA IV (10.4.7), “special case”; EGA IV (10.4.6), “in particular”; SGA 3 VIA (1.1.2), “partial”.
Tag 00G2, a lemma
Tag 00G2 in the Stacks Project.
Declarations registered for the tag:
isJacobsonRing_iff_prime_eqregistered withadd_to_stacksin StacksFrontier/RingTheory/Jacobson/Defs.lean, line 39 (StacksFrontier): “themprdirection”.
Tag 00G3, a lemma
Tag 00G3 in the Stacks Project.
Declarations registered for the tag:
PrimeSpectrum.isJacobsonRing_iff_jacobsonSpaceregistered withadd_to_stacksin StacksFrontier/RingTheory/Jacobson/Defs.lean, line 40 (StacksFrontier). References: EGA IV (10.4.2), “special case”; EGA IV (10.4.1), “ring: Spec(A) Jacobson”.
Tag 034J, a lemma
Tag 034J in the Stacks Project.
exists_prime_vCapD_singleton_isField_of_not_isJacobsonRing, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Jacobson/Constructions.lean, line 488. The attribute's comment: “(1)”. References: EGA IV (10.4.5), “b) => a)”.
(Non-Jacobson direction, Stacks 034J (1).) If
Ris not a Jacobson ring, then there exist a prime idealpand an elementfsuch thatpis not maximal,f ∉ p,V(p) ∩ D(f) = {p}, and(R/p)_fis a field.
theorem exists_prime_vCapD_singleton_isField_of_not_isJacobsonRing {R : Type*} [CommRing R]
(hR : ¬ IsJacobsonRing R) :
∃ (p : PrimeSpectrum R) (f : R),
(¬ p.asIdeal.IsMaximal) ∧
(f ∉ p.asIdeal) ∧
(vCapD p f = {p}) ∧
IsField (Localization.Away (Ideal.Quotient.mk p.asIdeal f))
vCapD_infinite_of_isJacobsonRing, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Jacobson/Constructions.lean, line 596. The attribute's comment: “(2)”. References: EGA IV (10.4.5), “a) => b)”.
(Jacobson direction, Stacks 034J (2).) If
Ris a Jacobson ring, then for every prime idealpthat is not maximal and every elementf ∉ p, the setV(p) ∩ D(f)is infinite.
theorem vCapD_infinite_of_isJacobsonRing {R : Type*} [CommRing R]
(hR : IsJacobsonRing R) (p : PrimeSpectrum R) (f : R)
(hp : ¬ p.asIdeal.IsMaximal) (hf : f ∉ p.asIdeal) :
(vCapD p f).Infinite
Tag 00G4, a lemma
Tag 00G4 in the Stacks Project.
isJacobsonRing_of_domain_noetherian_dim_le_one_infinite_maximalSpectrum, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Jacobson/Examples.lean, line 180. References: EGA IV (10.4.3), “principal ideal ring”; EGA IV (10.5.2), “special case”; EGA IV (10.7.1), “partial”.
A Noetherian domain in which every nonzero prime ideal is maximal and which has infinitely many maximal ideals is a Jacobson ring.
theorem isJacobsonRing_of_domain_noetherian_dim_le_one_infinite_maximalSpectrum
(R : Type*) [CommRing R] [IsDomain R] [IsNoetherianRing R]
(hdim : ∀ I : Ideal R, I.IsPrime → I ≠ ⊥ → I.IsMaximal)
(hinf : Infinite (MaximalSpectrum R)) :
IsJacobsonRing R
int_isJacobsonRing, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Jacobson/Examples.lean, line 218. References: EGA IV (10.4.3), “example ℤ”.
The ring
ℤis a Jacobson ring.
theorem int_isJacobsonRing : IsJacobsonRing ℤ
Tag 02CC, an example
Tag 02CC in the Stacks Project.
prod_field_isJacobsonRing, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Jacobson/Examples.lean, line 508.
Let
Abe an infinite type and(k α)a family of fields. Then the product ring∀ α, k αis a Jacobson ring.
theorem prod_field_isJacobsonRing
(A : Type*) [Infinite A] (k : A → Type*) [∀ α, Field (k α)] :
IsJacobsonRing (∀ α, k α)
Tag 00G5, an example
Tag 00G5 in the Stacks Project.
isField_of_isDomain_finite_maximalIdeal, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Jacobson/Examples.lean, line 236. References: EGA IV (10.7.1), “partial”.
A Jacobson domain with finitely many maximal ideals is a field.
theorem isField_of_isDomain_finite_maximalIdeal
{R : Type*} [CommRing R] [IsDomain R] [IsJacobsonRing R]
(hfin : {m : Ideal R | m.IsMaximal}.Finite) :
IsField R
Tag 00GA, a lemma
Tag 00GA in the Stacks Project.
isMaximal_of_isAlgebraic_residueField, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Jacobson/Constructions.lean, line 139.
Stacks tag 00GA: if
q ⊆ Sis a prime lying over a maximal idealm ⊆ Rand the residue field extensionκ(q)/κ(m)is algebraic, thenqis maximal.
theorem isMaximal_of_isAlgebraic_residueField
{R S : Type*} [CommRing R] [CommRing S] (f : R →+* S)
{m : Ideal R} [m.IsMaximal] {q : Ideal S} [q.IsPrime]
(hlies : m = q.comap f)
[Algebra m.ResidueField q.ResidueField]
(hcompat : (algebraMap m.ResidueField q.ResidueField) =
Ideal.ResidueField.map m q f hlies)
[Algebra.IsAlgebraic m.ResidueField q.ResidueField] :
q.IsMaximal
Tag 00FT, a lemma
Tag 00FT in the Stacks Project.
exists_monic_aeval_not_bijective_of_rank_lt_card, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Jacobson/Nullstellensatz.lean, line 155.
Let
kbe a field andVa nonzerok-vector space withdim_k V < |k|(as cardinals). Then for everyk-linear operatorT : V → Vthere is a monic polynomialPof degree≥ 1such thatP(T)is not bijective (i.e. not invertible).
theorem exists_monic_aeval_not_bijective_of_rank_lt_card
{k : Type u} [Field k] {V : Type v} [AddCommGroup V] [Module k V]
[Nontrivial V]
(h : Cardinal.lift.{u} (Module.rank k V) < Cardinal.lift.{v} (Cardinal.mk k))
(T : V →ₗ[k] V) :
∃ P : k[X], P.Monic ∧ 1 ≤ P.natDegree ∧ ¬ Function.Bijective (aeval T P)
Tag 00FU, a theorem
Tag 00FU in the Stacks Project.
Algebra.isAlgebraic_quotient_of_adjoin_eq_top_of_card_lt, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Jacobson/Nullstellensatz.lean, line 471. The attribute's comment: “(1)”.
The residue fields of an algebra generated by fewer than
#kelements are algebraic over the fieldk.
theorem Algebra.isAlgebraic_quotient_of_adjoin_eq_top_of_card_lt {k : Type u} {S : Type v}
{I : Type w} [Field k] [CommRing S] [Algebra k S] (x : I → S)
(hgen : Algebra.adjoin k (Set.range x) = ⊤) (hI : lift.{u} #I < lift.{w} #k)
(m : Ideal S) [m.IsMaximal] : Algebra.IsAlgebraic k (S ⧸ m)
isJacobsonRing_of_adjoin_eq_top_of_card_lt, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Jacobson/Nullstellensatz.lean, line 483. The attribute's comment: “(2)”.
An algebra generated by fewer than
#kelements over a fieldkis a Jacobson ring.
theorem isJacobsonRing_of_adjoin_eq_top_of_card_lt {k : Type u} {S : Type v} {I : Type w}
[Field k] [CommRing S] [Algebra k S] (x : I → S)
(hgen : Algebra.adjoin k (Set.range x) = ⊤) (hI : lift.{u} #I < lift.{w} #k) :
IsJacobsonRing S
Tag 046V, a lemma
Tag 046V in the Stacks Project.
Algebra.isAlgebraic_tensorProduct_quotient_of_card_lt, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Jacobson/Nullstellensatz.lean, line 404. The attribute's comment: “(1)”.
Every residue field of
K ⊗[k] Sis algebraic overKwhen#S < #K.
theorem Algebra.isAlgebraic_tensorProduct_quotient_of_card_lt (k : Type t) [CommSemiring k]
(S : Type v) [CommRing S] [Algebra k S] (K : Type w) [Field K] [Algebra k K]
(hcard : lift.{w} #S < lift.{v} #K) (m : Ideal (K ⊗[k] S)) [m.IsMaximal] :
Algebra.IsAlgebraic K ((K ⊗[k] S) ⧸ m)
isJacobsonRing_tensorProduct_of_card_lt, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Jacobson/Nullstellensatz.lean, line 412. The attribute's comment: “(2)”.
The base change
K ⊗[k] Sis Jacobson when#S < #K.
theorem isJacobsonRing_tensorProduct_of_card_lt (k : Type t) [CommSemiring k]
(S : Type v) [CommRing S] [Algebra k S] (K : Type w) [Field K] [Algebra k K]
(hcard : lift.{w} #S < lift.{v} #K) : IsJacobsonRing (K ⊗[k] S)
Tag 00G6, a lemma
Tag 00G6 in the Stacks Project.
Declarations registered for the tag:
isJacobsonRing_localizationregistered withadd_to_stacksin StacksFrontier/RingTheory/Jacobson/Constructions.lean, line 50 (StacksFrontier): “R_fis Jacobson; Mathlib states it for anySwithIsLocalization.Away f S, soS := Localization.Away fgives the Stacks form.”. References: EGA IV (10.4.3), “special case”; EGA IV (10.4.7), “special case”.IsLocalization.orderIsoOfMaximalregistered withadd_to_stacksin StacksFrontier/RingTheory/Jacobson/Constructions.lean, line 54 (StacksFrontier): “the maximal ideals ofR_fcorrespond to the maximal ideals ofRnot containingf; Mathlib packages the correspondence as an order isomorphism, whose forward map is contraction alongalgebraMap R R_f.”.
Tag 00G7, an example
Tag 00G7 in the Stacks Project.
nonempty_ringEquiv_rat, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Jacobson/Examples.lean, line 373.
ℤ_{(2)}[1/2]is isomorphic toℚas a ring.
theorem nonempty_ringEquiv_rat : Nonempty (StacksR_at_2 ≃+* ℚ)
Tag 00G8, an example
Tag 00G8 in the Stacks Project.
specMapZQ_specQPoint_eq_genericPoint, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Jacobson/Examples.lean, line 478.
The inclusion
ℤ → ℚsends the unique point ofSpec(ℚ)to the generic point(0)ofSpec(ℤ).
theorem specMapZQ_specQPoint_eq_genericPoint :
specMapZQ specQPoint = specZGenericPoint
Tag 00G9, a lemma
Tag 00G9 in the Stacks Project.
jacobson_quotient, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Jacobson/Constructions.lean, line 92.
Let
Rbe a Jacobson ring andI ⊆ Ran ideal. ThenR ⧸ Iis Jacobson, and maximal ideals ofR ⧸ Icorrespond (viaIdeal.comap (Ideal.Quotient.mk I)) to maximal ideals ofRcontainingI.
theorem jacobson_quotient
{R : Type*} [CommRing R] [IsJacobsonRing R] (I : Ideal R) :
IsJacobsonRing (R ⧸ I) ∧
∃ e : {M : Ideal (R ⧸ I) // M.IsMaximal} ≃
{J : Ideal R // J.IsMaximal ∧ I ≤ J},
∀ (M : {M : Ideal (R ⧸ I) // M.IsMaximal}),
(e M).1 = Ideal.comap (Ideal.Quotient.mk I) M.1
Tag 0CY7, a lemma
Tag 0CY7 in the Stacks Project.
Algebra.ker_algebraMap_isMaximal_of_finiteType_of_isJacobsonRing, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Jacobson/FiniteType.lean, line 86. References: EGA IV (10.4.6), “preimage of max ideal”.
Stacks 0CY7. Let
Rbe a Jacobson ring and letKbe a field which is of finite type as anR-algebra. ThenRingHom.ker (algebraMap R K)is a maximal ideal ofR. In particular, ifRis a subring ofKthenRis a field; thatKis then finite overRisfinite_of_finite_type_of_isJacobsonRing.
public theorem Algebra.ker_algebraMap_isMaximal_of_finiteType_of_isJacobsonRing
(R K : Type*) [CommRing R] [Field K] [Algebra R K] [IsJacobsonRing R]
[Algebra.FiniteType R K] :
(RingHom.ker (algebraMap R K)).IsMaximal
Tag 00GB, a proposition
Tag 00GB in the Stacks Project.
Declarations registered for the tag:
isJacobsonRing_of_finiteTyperegistered withadd_to_stacksin StacksFrontier/MathlibRegistrations/Ch10.lean, line 146 (StacksFrontier): “(1) S is Jacobson”. References: EGA IV (10.4.7), “special case”; EGA IV (10.4.6), “in particular”; SGA 3 VIA (1.1.2), “partial”.AlgebraicGeometry.Scheme.Hom.closePoints_subset_preimage_closedPointsregistered withadd_to_stacksin StacksFrontier/MathlibRegistrations/Ch10.lean, line 147 (StacksFrontier): “(2) closed points map to closed points (scheme form)”. References: EGA IV (10.4.7); EGA IV (10.9.2), “more general”.finite_of_finite_type_of_isJacobsonRingregistered withadd_to_stacksin StacksFrontier/MathlibRegistrations/Ch10.lean, line 149 (StacksFrontier): “(3) residue field extension is finite (applied to R/m → S/m')”. References: EGA IV (10.4.5), “a⇒b′”.
Tag 00GC, a lemma
Tag 00GC in the Stacks Project.
isJacobsonRing_of_finiteType_int, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Jacobson/Examples.lean, line 229.
A finite type algebra over
ℤis a Jacobson ring.
theorem isJacobsonRing_of_finiteType_int (B : Type*) [CommRing B] [Algebra ℤ B]
[Algebra.FiniteType ℤ B] : IsJacobsonRing B
Tag 00GD, a lemma
Tag 00GD in the Stacks Project.
stacks00GD_closedPoints_inter_image_subset_subspaceClosedPoints, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Jacobson/Constructions.lean, line 266. The attribute's comment: “Only the trivial inclusion X₀ ∩ f(E) ⊆ f(E)₀ of part (1), for an arbitrary ring map and arbitrary E. The Jacobson, finite-type and constructibility content of 00GD, the reverse inclusion and part (2) are not formalized.”.
Stacks 00GD, trivial inclusion of part (1) (
X₀ ∩ f(E) ⊆ f(E)₀).Let
φ : R →+* Sbe any ring map and letE ⊆ Spec Sbe any subset; writef = Spec(φ) : Spec S → Spec R. Any closed point ofSpec Rlying in the imagef(E)is closed in the subspace topology onf(E).This is the inclusion the Stacks proof of Tag 00GD describes as "trivial". The full statement of Tag 00GD requires the Jacobson and finite-type hypotheses (used in the reverse inclusion and the harder part (2)).
theorem stacks00GD_closedPoints_inter_image_subset_subspaceClosedPoints
{R S : Type*} [CommRing R] [CommRing S] (φ : R →+* S)
(E : Set (PrimeSpectrum S)) :
closedPoints (PrimeSpectrum R) ∩ (PrimeSpectrum.comap φ '' E)
⊆ subspaceClosedPoints (PrimeSpectrum.comap φ '' E)
Tag 00GE, a lemma
Tag 00GE in the Stacks Project.
PrimeSpectrum.isConstructible_comap_image_of_finiteType, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Spectrum/Prime/Constructible/Chevalley.lean, line 269. The attribute's comment: “first step of the proof only: images of constructible sets are constructible”. References: SGA 1 IV (6.2), “affine source and target”.
The first step in Stacks 00GE: for a finite-type map out of a Noetherian ring, the image of a constructible set is constructible. The closed-point square of 00GE is not formalized here.
theorem PrimeSpectrum.isConstructible_comap_image_of_finiteType
{R S : Type*} [CommRing R] [CommRing S] [IsNoetherianRing R]
(φ : R →+* S) (hφ : φ.FiniteType)
{E : Set (PrimeSpectrum S)} (hE : Topology.IsConstructible E) :
Topology.IsConstructible (PrimeSpectrum.comap φ '' E)
Tag 00GG, an example
Tag 00GG in the Stacks Project.
idempotent_matrices_classified_by_rank, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/LinearAlgebra/Matrix/Idempotent.lean, line 114. The attribute's comment: “linear-algebra part: idempotents are classified by rank”.
Stacks Tag 00GG (example of idempotent matrices).
Let
Kbe a field and consider the affine scheme ofn × nidempotent matrices, i.e. the spectrum ofR = K[{t_{ij}}] / 𝔞where𝔞is the ideal generated by the entries ofT² - T. ItsK-points are exactly the matricesMwithM * M = M.The example asserts that, by linear algebra, each idempotent matrix
Mis conjugate (under theGLₙ-actiong, T ↦ g T g⁻¹) to a diagonal matrixdiag(1, …, 1, 0, …, 0)withr = rank Mones, and that an idempotent is classified up to conjugation by its rank. Consequently distinct ranks give distinct conjugation orbits — these are precisely the irreducible components of the scheme, and orbits of different rank are disjoint.We record the linear-algebra heart of the example: for idempotent
M, N,
MandNare conjugate iff they have the same rank (classification by rank, which makes distinct-rank orbits disjoint), andMis conjugate to the standard idempotentdiag(1, …, 1, 0, …, 0)carryingrank Mones (existence of the diagonal normal form).This holds over every commutative local ring; the field in the example is a special case.
Here
IsConj M Nunfolds to∃ g : (Matrix (Fin n) (Fin n) K)ˣ, g * M = N * g, i.e.g * M * g⁻¹ = N, which is exactly theGLₙ-conjugation action of the statement.
theorem idempotent_matrices_classified_by_rank
(M N : Matrix (Fin n) (Fin n) K) (hM : M * M = M) (hN : N * N = N) :
(IsConj M N ↔ M.rank = N.rank) ∧
IsConj M (Matrix.diagonal (fun i : Fin n => if (i : ℕ) < M.rank then (1 : K) else 0))
Matrix.trace_eq_rank_of_isIdempotentElem, a lemma in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/LinearAlgebra/Matrix/Idempotent.lean, line 128. The attribute's comment: “the trace separates the orbits in characteristic 0”.
The trace of an idempotent matrix over a commutative local ring is its rank, cast to the ring. In characteristic zero, distinct ranks therefore give distinct traces.
lemma Matrix.trace_eq_rank_of_isIdempotentElem (M : Matrix (Fin n) (Fin n) K)
(hM : IsIdempotentElem M) : M.trace = (M.rank : K)
Sources
Section10.36 Finite and integral ring extensions#
Section 10.36 of the Stacks Project, Tag 00GH. 23 tags here are carried by 13 declarations of the repository (all in StacksFrontier) and 24 registered declarations, quoted below from AxiomMath/Stacks at commit 5ed82d14.
Tag 00GI, a definition
Tag 00GI in the Stacks Project.
Declarations registered for the tag:
RingHom.IsIntegralElemregistered withadd_to_stacksin StacksFrontier/RingTheory/IntegralClosure/Defs.lean, line 30 (StacksFrontier): “(1)”.
Tag 052I, a lemma
Tag 052I in the Stacks Project.
isIntegral_of_fg_stable, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/IntegralClosure/AwayExactSequence.lean, line 183.
General determinant-trick lemma: if
Mis a finitely-generatedR-submodule of anR-algebraBthat contains1and is stable under multiplication byα, thenαis integral overR.
theorem isIntegral_of_fg_stable
{R B : Type*} [CommRing R] [Ring B] [Algebra R B]
(M : Submodule R B) (hMfg : M.FG) (h1 : (1 : B) ∈ M)
(α : B) (hstable : ∀ z ∈ M, α * z ∈ M) :
IsIntegral R α
Tag 00GM, a lemma
Tag 00GM in the Stacks Project.
Declarations registered for the tag:
Algebra.finite_adjoin_of_finite_of_isIntegralregistered withadd_to_stacksin StacksFrontier/MathlibRegistrations/Ch10.lean, line 152 (StacksFrontier): “integral implies contained in a finite subalgebra”. References: EGA 0 (1.0.5), “more general”; EGA II (6.1.2), “more general”.IsIntegral.of_mem_of_fgregistered withadd_to_stacksin StacksFrontier/MathlibRegistrations/Ch10.lean, line 154 (StacksFrontier): “contained in a finite subalgebra implies integral”. References: EGA 0 (1.0.5), “partial”; EGA II (6.3.1), “special case”.
Tag 02JJ, a lemma
Tag 02JJ in the Stacks Project.
Algebra.finite_iff_exists_finset_adjoin_eq_top_and_isIntegral, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/IntegralClosure/Basic.lean, line 369. References: EGA II (6.1.2), “more general”.
An algebra is module-finite if and only if it is generated as an algebra by a finite set of integral elements.
theorem Algebra.finite_iff_exists_finset_adjoin_eq_top_and_isIntegral
(R S : Type*) [CommRing R] [CommRing S] [Algebra R S] :
Module.Finite R S ↔
∃ (s : Finset S), Algebra.adjoin R (s : Set S) = ⊤ ∧ ∀ x ∈ s, IsIntegral R x
Declarations registered for the tag:
Algebra.finite_iff_isIntegral_and_finiteTyperegistered withadd_to_stacksin StacksFrontier/RingTheory/IntegralClosure/Basic.lean, line 361 (StacksFrontier): “finite = integral + finite type”. References: EGA 0 (1.0.5); EGA II (6.1.2), “more general”.
Tag 00GN, a lemma
Tag 00GN in the Stacks Project.
Declarations registered for the tag:
RingHom.IsIntegral.transregistered withadd_to_stacksin StacksFrontier/RingTheory/IntegralClosure/Basic.lean, line 395 (StacksFrontier): “integrality is stable under composition”. References: EGA II (6.1.5), “(ii), integral, affine”.
Tag 00GO, a lemma
Tag 00GO in the Stacks Project.
Declarations registered for the tag:
integralClosureregistered withadd_to_stacksin StacksFrontier/RingTheory/IntegralClosure/Defs.lean, line 33 (StacksFrontier): “the integral elements form a subalgebra”. References: EGA III (4.3.5), “more general”; EGA IV (14.5.5); EGA IV (18.10.10), “affine case”; EGA IV (18.10.8), “special case”; EGA IV (18.12.14), “partial”; EGA IV (8.12.11), “special case”; EGA IV (9.5.7); SGA 3 VIB (5.6.0); SGA 5 VI (1.4.7); SGA 7 X (2.26); SGA 7 XIII (0.2), “partial”.mem_integralClosure_iffregistered withadd_to_stacksin StacksFrontier/RingTheory/IntegralClosure/Defs.lean, line 45 (StacksFrontier): “its underlying set is the set of integral elements”.
Tag 0CY8, a lemma
Tag 0CY8 in the Stacks Project.
isIntegral_pi_iff, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/IntegralClosure/Pi.lean, line 66.
Stacks Tag 0CY8 (finite product integral). Let
ιbe a finite index type and letφ_i : R_i → S_ibe ring maps (recorded as theAlgebra (R i) (S i)instances). For the product rings∏ R_i = ∀ i, R iand∏ S_i = ∀ i, S iwith the product algebra structure, an elements = (s_i)_iof∏ S_iis integral over∏ R_iif and only if each components_iis integral overR_i.
theorem isIntegral_pi_iff (ι : Type*) [Finite ι] (R : ι → Type*) (S : ι → Type*)
[∀ i, CommRing (R i)] [∀ i, CommRing (S i)] [∀ i, Algebra (R i) (S i)]
(s : ∀ i, S i) :
IsIntegral (∀ i, R i) s ↔ ∀ i, IsIntegral (R i) (s i)
Tag 00GP, a definition
Tag 00GP in the Stacks Project.
Declarations registered for the tag:
integralClosureregistered withadd_to_stacksin StacksFrontier/RingTheory/IntegralClosure/Defs.lean, line 48 (StacksFrontier): “(1)”. References: EGA III (4.3.5), “more general”; EGA IV (14.5.5); EGA IV (18.10.10), “affine case”; EGA IV (18.10.8), “special case”; EGA IV (18.12.14), “partial”; EGA IV (8.12.11), “special case”; EGA IV (9.5.7); SGA 3 VIB (5.6.0); SGA 5 VI (1.4.7); SGA 7 X (2.26); SGA 7 XIII (0.2), “partial”.IsIntegrallyClosedInregistered withadd_to_stacksin StacksFrontier/RingTheory/IntegralClosure/Defs.lean, line 49 (StacksFrontier): “(2)”.isIntegrallyClosedIn_iffregistered withadd_to_stacksin StacksFrontier/RingTheory/IntegralClosure/Defs.lean, line 50 (StacksFrontier): “(2), unfolded”.
Tag 0CY9, a lemma
Tag 0CY9 in the Stacks Project.
IsIntegralClosure.pi_iff, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/IntegralClosure/Basic.lean, line 203.
Stacks 0CY9. Let
R i → S ibe a finite family of ring maps and letS' ibe an algebra whose canonical map toS iidentifies it with the integral closure ofR iinS i. Then∏ i, S' iis the integral closure of∏ i, R iin∏ i, S i, and conversely. TakingS' = Rthis says that∏ i, R i → ∏ i, S iis integrally closed if and only if eachR i → S iis.
public theorem IsIntegralClosure.pi_iff {ι : Type*} [Finite ι] {R S S' : ι → Type*}
[∀ i, CommRing (R i)] [∀ i, CommRing (S i)] [∀ i, CommSemiring (S' i)]
[∀ i, Algebra (R i) (S i)] [∀ i, Algebra (S' i) (S i)] :
IsIntegralClosure (∀ i, S' i) (∀ i, R i) (∀ i, S i) ↔
∀ i, IsIntegralClosure (S' i) (R i) (S i)
Tag 0307, a lemma
Tag 0307 in the Stacks Project.
Stacks.IntegralClosureLocalization.isLocalization_integralClosure, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/MinimalPrimeResidueLocalization/IntegralClosure.lean, line 88.
Integral closure commutes with localization: if
Rfis the localization ofRatMandSfthe localization ofSat the image ofM, thenintegralClosure Rf Sfis the localization ofintegralClosure R Sat the image ofM.
public theorem isLocalization_integralClosure (M : Submonoid R) [IsLocalization M Rf]
[IsLocalization (Algebra.algebraMapSubmonoid S M) Sf] :
letI := integralClosureAlgebra R S Rf Sf
IsLocalization (Algebra.algebraMapSubmonoid ↥(integralClosure R S) M)
↥(integralClosure Rf Sf)
Tag 034K, a lemma
Tag 034K in the Stacks Project.
isIntegral_iff_isIntegral_localization_atPrime, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/IntegralClosure/Localization.lean, line 137.
Stacks Tag 034K. Let
φ : R → Sbe a ring map andx ∈ S. Thenxis integral overRif and only if, for every maximal idealp ⊆ R, the imagex_pofxinS_pis integral overR_p(whereR_p,S_pare the localizations atpas above, andS_pis regarded as anR_p-algebra via the induced mapφ_p : R_p → S_p). Only the maximal ideals are needed; for the all-primes equivalence as the tag states it, which this implies, seeisIntegral_iff_forall_isPrime.
theorem isIntegral_iff_isIntegral_localization_atPrime
(R S : Type*) [CommRing R] [CommRing S] [Algebra R S] (x : S) :
IsIntegral R x ↔
∀ (p : Ideal R) [p.IsMaximal], IsIntegral (Localization.AtPrime p)
(algebraMap S (Localization (Algebra.algebraMapSubmonoid S p.primeCompl)) x)
isIntegral_iff_forall_isPrime, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/IntegralClosure/Localization.lean, line 172.
Stacks Tag 034K, as the tag states it. Let
φ : R → Sbe a ring map andx ∈ S. Thenxis integral overRif and only if, for every prime idealp ⊆ R, the imagex_pofxinS_pis integral overR_p.The substantive direction is
isIntegral_iff_isIntegral_localization_atPrime, which needs the hypothesis only at the maximal ideals; integrality at an arbitrary prime follows from integrality overRby base change.
theorem isIntegral_iff_forall_isPrime (R S : Type*) [CommRing R] [CommRing S] [Algebra R S]
(x : S) :
IsIntegral R x ↔ ∀ (p : Ideal R) [p.IsPrime], IsIntegral (Localization.AtPrime p)
(algebraMap S (Localization (Algebra.algebraMapSubmonoid S p.primeCompl)) x)
Tag 02JK, a lemma
Tag 02JK in the Stacks Project.
Declarations registered for the tag:
Algebra.IsIntegral.tensorProductregistered withadd_to_stacksin StacksFrontier/RingTheory/IntegralClosure/Basic.lean, line 381 (StacksFrontier): “(1)”. References: EGA II (6.1.5), “(iii), integral, affine”.Module.Finite.base_changeregistered withadd_to_stacksin StacksFrontier/RingTheory/IntegralClosure/Basic.lean, line 384 (StacksFrontier): “(2)”. References: EGA III (2.6.2.1), “special case”; EGA II (6.1.5), “(iii), finite, affine”; SGA 1 III (1.4), “partial”.
Tag 02JL, a lemma
Tag 02JL in the Stacks Project.
Declarations registered for the tag:
RingHom.isIntegral_ofLocalizationSpanregistered withadd_to_stacksin StacksFrontier/MathlibRegistrations/Ch10.lean, line 196 (StacksFrontier): “(1): integrality can be checked on the localizations at elements generating the unit ideal”. References: SGA 4 IV (8.5.5), “special case”.RingHom.finite_ofLocalizationSpanregistered withadd_to_stacksin StacksFrontier/MathlibRegistrations/Ch10.lean, line 198 (StacksFrontier): “(2): finiteness can be checked on the localizations at elements generating the unit ideal”.
Tag 02JM, a lemma
Tag 02JM in the Stacks Project.
Declarations registered for the tag:
RingHom.IsIntegral.tower_topregistered withadd_to_stacksin StacksFrontier/RingTheory/IntegralClosure/Basic.lean, line 390 (StacksFrontier): “(1)”. References: EGA II (6.1.5), “(v), special case”.RingHom.Finite.of_comp_finiteregistered withadd_to_stacksin StacksFrontier/RingTheory/IntegralClosure/Basic.lean, line 392 (StacksFrontier): “(2)”.
Tag 0308, a lemma
Tag 0308 in the Stacks Project.
integral_closure_transitive, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/IntegralClosure/Basic.lean, line 346.
Stacks Tag 0308 (transitivity of integral closure): the integral closure of
B'inCequals the integral closure ofAinC, as subrings ofC.
theorem integral_closure_transitive (f : A →+* B) (g : B →+* C) :
Cprime f g = Dsub f g
Tag 00GQ, a lemma
Tag 00GQ in the Stacks Project.
integral_overring_surjective, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Spectrum/Prime/Integral.lean, line 71. References: EGA IV (6.15.5), “special case”.
Lying over: if
f : R →+* Sis an injective integral ring map, then the induced mapSpec S → Spec Ris surjective.
theorem integral_overring_surjective
{R S : Type*} [CommRing R] [CommRing S] (f : R →+* S)
(hf : f.IsIntegral) (hinj : Function.Injective f) :
Function.Surjective (PrimeSpectrum.comap f)
Tag 00GR, a lemma
Tag 00GR in the Stacks Project.
Declarations registered for the tag:
isField_of_isIntegral_of_isFieldregistered withadd_to_stacksin StacksFrontier/MathlibRegistrations/Ch10.lean, line 156 (StacksFrontier): “integral case: R is a field”. References: EGA II (6.4.5.1), “special case”.Algebra.IsIntegral.isAlgebraicregistered withadd_to_stacksin StacksFrontier/MathlibRegistrations/Ch10.lean, line 157 (StacksFrontier): “integral case: K is algebraic over R”.Algebra.IsIntegral.of_finiteregistered withadd_to_stacksin StacksFrontier/MathlibRegistrations/Ch10.lean, line 158 (StacksFrontier): “finite case: finite implies integral (so R is a field via isField_of_isIntegral_of_isField)”. References: EGA 0 (1.0.5), “partial, special case”; EGA II (6.1.2), “special case”; EGA II (6.3.1), “special case”.Algebra.IsAlgebraic.of_finiteregistered withadd_to_stacksin StacksFrontier/MathlibRegistrations/Ch10.lean, line 160 (StacksFrontier): “finite case: K is a finite algebraic extension”.
Tag 00GS, a lemma
Tag 00GS in the Stacks Project.
Algebra.IsIntegral.isMaximal_of_isPrime, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Ideal/GoingUp.lean, line 41. The attribute's comment: “(3) If S is integral over k then every prime of S is a maximal ideal.”.
Stacks 00GS (3). Every prime ideal of an integral algebra over a field is maximal: its contraction to the field is the zero ideal, which is maximal.
theorem Algebra.IsIntegral.isMaximal_of_isPrime {k S : Type*} [Field k] [CommRing S] [Algebra k S]
[Algebra.IsIntegral k S] (P : Ideal S) [P.IsPrime] : P.IsMaximal
Declarations registered for the tag:
IsField.of_isDomain_of_finiteregistered withadd_to_stacksin StacksFrontier/RingTheory/Ideal/GoingUp.lean, line 31 (StacksFrontier): “(1) IfSis a domain and finite dimensional over the fieldk, thenSis a field; finite dimensionality isModule.Finite k S.”. References: EGA II (6.3.10), “special case”.isField_of_isIntegral_of_isField'registered withadd_to_stacksin StacksFrontier/RingTheory/Ideal/GoingUp.lean, line 34 (StacksFrontier): “(2) IfSis integral overkand a domain, thenSis a field; Mathlib states it for an integral extension of any ringRwithIsField R, applied toField.toIsField k.”.
Tag 00GT, a lemma
Tag 00GT in the Stacks Project.
not_le_and_not_le_of_comap_eq_of_ne, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Spectrum/Prime/Integral.lean, line 101.
In an integral extension there are no inclusions between distinct primes with the same contraction: if
q ≠ q'are primes ofSwith equal contractions alongalgebraMap R S, then neither contains the other.
theorem not_le_and_not_le_of_comap_eq_of_ne
(R S : Type*) [CommRing R] [CommRing S] [Algebra R S] [Algebra.IsIntegral R S]
(q q' : Ideal S) [q.IsPrime] [q'.IsPrime]
(hcomap : q.comap (algebraMap R S) = q'.comap (algebraMap R S))
(hne : q ≠ q') : ¬ q ≤ q' ∧ ¬ q' ≤ q
Tag 05DR, a lemma
Tag 05DR in the Stacks Project.
Declarations registered for the tag:
Algebra.QuasiFinite.finite_comap_preimage_singletonregistered withadd_to_stacksin StacksFrontier/RingTheory/Spectrum/Prime/Integral.lean, line 65 (StacksFrontier): “in the generality of a quasi-finite algebra”.
Tag 00GU, a lemma
Tag 00GU in the Stacks Project.
Declarations registered for the tag:
Ideal.exists_ideal_gt_liesOver_of_ltregistered withadd_to_stacksin StacksFrontier/RingTheory/Spectrum/Prime/Integral.lean, line 63 (StacksFrontier): “for any algebra with the going-up property; an integral one has it byAlgebra.HasGoingUp.of_isIntegral”.
Tag 0564, a lemma
Tag 0564 in the Stacks Project.
Module.FinitePresentation.restrictScalars_iff, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/IntegralClosure/Basic.lean, line 133.
Stacks 0564. Let
R → Sbe a finite and finitely presented ring map and letMbe anS-module, regarded as anR-module by restriction of scalars. ThenMis finitely presented as anR-module if and only ifMis finitely presented as anS-module.
public theorem restrictScalars_iff (R S M : Type*) [CommRing R] [CommRing S] [Algebra R S]
[AddCommGroup M] [Module R M] [Module S M] [IsScalarTower R S M]
[Module.Finite R S] [Algebra.FinitePresentation R S] :
Module.FinitePresentation R M ↔ Module.FinitePresentation S M
Tag 052J, a lemma
Tag 052J in the Stacks Project.
shortExact_fmap_gmap, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/IntegralClosure/AwayExactSequence.lean, line 351.
Stacks Tag 052J. Under the hypothesis that
Ris integrally closed inR_xor inR_y, the sequence0 → R → R[x/y] ⊕ R[y/x] → R[x/y, y/x] → 0is a short exact sequence ofR-modules: 1.fis injective; 2.im f = ker g; 3.gis surjective.
theorem shortExact_fmap_gmap
(hx : x ∈ R⁰) (hy : y ∈ R⁰)
(hint : (∀ α : Localization.Away x, IsIntegral R α → α ∈ (⊥ : Subalgebra R (Localization.Away
x))) ∨
(∀ α : Localization.Away y, IsIntegral R α → α ∈ (⊥ : Subalgebra R (Localization.Away
y)))) :
Function.Injective (fmap x y) ∧
LinearMap.range (fmap x y) = LinearMap.ker (gmap x y) ∧
Function.Surjective (gmap x y)
Sources
Section10.37 Normal rings#
Section 10.37 of the Stacks Project, Tag 037B. 14 tags here are carried by 11 declarations of the repository (all in StacksFrontier) and 8 registered declarations, quoted below from AxiomMath/Stacks at commit 5ed82d14.
Tag 0309, a definition
Tag 0309 in the Stacks Project.
Declarations registered for the tag:
IsIntegrallyClosedregistered withadd_to_stacksin StacksFrontier/RingTheory/IntegrallyClosed/Defs.lean, line 20 (StacksFrontier). References: EGA IV (14.5.5); EGA IV (7.5.3), “(vi), partial”.isIntegrallyClosed_iffregistered withadd_to_stacksin StacksFrontier/RingTheory/IntegrallyClosed/Defs.lean, line 23 (StacksFrontier): “identified with the Stacks wording”.
Tag 034L, a lemma
Tag 034L in the Stacks Project.
integralClosure_isNormalDomain, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/IntegrallyClosed/Stability.lean, line 151. References: EGA II (6.3.7), “special case”; EGA II (6.3.8), “special case”; EGA II (6.3.9), “special case”; EGA IV (14.5.5), “partial”.
Stacks Tag 034L. If
Sis a normal domain, then the integral closure ofRinSis a normal domain.
theorem integralClosure_isNormalDomain
{R S : Type*} [CommRing R] [CommRing S] [Algebra R S]
(hS : IsNormalDomain S) :
IsNormalDomain (integralClosure R S)
Tag 00GW, a definition
Tag 00GW in the Stacks Project.
isAlmostIntegral_iff, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/IntegralClosure/AlmostIntegral.lean, line 71. The attribute's comment: “(1)”.
For a domain
R, an elementgof the fraction field is almost integral overRif and only if there is a nonzeror ∈ Rwithr • g ^ nin the image ofRfor alln.
theorem isAlmostIntegral_iff (g : FractionRing R) :
IsAlmostIntegral R g ↔
∃ r : R, r ≠ 0 ∧ ∀ n, r • g ^ n ∈ (algebraMap R (FractionRing R)).range
IsCompletelyNormal, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/IntegralClosure/AlmostIntegral.lean, line 79. The attribute's comment: “(2)”.
A domain
Ris completely normal if every almost integral element of its fraction field lies in the image ofR.
def IsCompletelyNormal (R : Type*) [CommRing R] [IsDomain R] : Prop
Tag 00GY, a lemma
Tag 00GY in the Stacks Project.
Declarations registered for the tag:
IsLocalization.isDomain_of_le_nonZeroDivisorsregistered withadd_to_stacksin StacksFrontier/RingTheory/IntegrallyClosed/Defs.lean, line 121 (StacksFrontier): “the localization is a domain”.isIntegrallyClosed_of_isLocalizationregistered withadd_to_stacksin StacksFrontier/RingTheory/IntegrallyClosed/Defs.lean, line 123 (StacksFrontier): “the localization is integrally closed”. References: EGA II (8.11.8), “partial”.
Tag 00GZ, a lemma
Tag 00GZ in the Stacks Project.
Declarations registered for the tag:
PrincipalIdealRing.to_uniqueFactorizationMonoidregistered withadd_to_stacksin StacksFrontier/RingTheory/IntegrallyClosed/Stability.lean, line 101 (StacksFrontier): “a principal ideal domain is a unique factorization domain”.UniqueFactorizationMonoid.instIsIntegrallyClosedregistered withadd_to_stacksin StacksFrontier/RingTheory/IntegrallyClosed/Stability.lean, line 103 (StacksFrontier): “a unique factorization domain is integrally closed in its field of fractions”.
Tag 0BI0, a lemma
Tag 0BI0 in the Stacks Project.
PowerSeries.instIsIntegrallyClosed, an instance in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/PowerSeries/IntegrallyClosed.lean, line 312. References: EGA IV (21.13.9), “(iv)”.
The formal power series ring
R⟦X⟧over a Noetherian normal domainRis a normal domain: it is integrally closed in its fraction field. Together withPowerSeries.instIsNoetherianRingandPowerSeries.instIsDomainthis says thatR⟦X⟧is a Noetherian normal domain.
public instance instIsIntegrallyClosed {R : Type*} [CommRing R] [IsDomain R] [IsNoetherianRing R]
[IsIntegrallyClosed R] : IsIntegrallyClosed R⟦X⟧
Tag 030B, a lemma
Tag 030B in the Stacks Project.
Declarations registered for the tag:
isIntegrallyClosed_of_isLocalizationregistered withadd_to_stacksin StacksFrontier/MathlibRegistrations/Ch10.lean, line 119 (StacksFrontier): “(1) ⇒ (2) and (1) ⇒ (3)”. References: EGA II (8.11.8), “partial”.IsIntegrallyClosed.of_isLocalization_maximalregistered withadd_to_stacksin StacksFrontier/MathlibRegistrations/Ch10.lean, line 122 (StacksFrontier): “(3) ⇒ (1)”.
Tag 00GV, a definition
Tag 00GV in the Stacks Project.
IsNormalRing, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/IntegrallyClosed/Defs.lean, line 28. References: EGA IV (5.13.5); EGA IV (5.13.6).
A commutative ring
Ris normal if for every prime idealpthe localizationR_pis an integrally closed integral domain.
def IsNormalRing (R : Type*) [CommRing R] : Prop
Tag 034M, a lemma
Tag 034M in the Stacks Project.
IsNormalRing.isIntegrallyClosed, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/IntegrallyClosed/Defs.lean, line 201. References: EGA IV (6.14.1.1), “(i) necessity”.
A normal ring
Ris integrally closed in its total ring of fractionsQ(R) = FractionRing R.
theorem IsNormalRing.isIntegrallyClosed
{R : Type*} [CommRing R] (hR : IsNormalRing R) :
IsIntegrallyClosed R
Tag 037C, a lemma
Tag 037C in the Stacks Project.
IsNormalRing.isLocalization, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/IntegrallyClosed/Defs.lean, line 74.
A localization of a normal ring is a normal ring.
theorem IsNormalRing.isLocalization {R : Type*} [CommRing R] (h : IsNormalRing R)
(M : Submonoid R) (S : Type*) [CommRing S] [Algebra R S] [IsLocalization M S] :
IsNormalRing S
Tag 00H1, a lemma
Tag 00H1 in the Stacks Project.
polynomial_ring_normal, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/IntegrallyClosed/Polynomial.lean, line 60.
Stacks Lemma 10.37.14: if
Ris a normal ring, then the polynomial ringR[x](Polynomial R) is a normal ring.
theorem polynomial_ring_normal (R : Type*) [CommRing R] (hR : IsNormalRing R) :
IsNormalRing (Polynomial R)
Tag 0CYA, a lemma
Tag 0CYA in the Stacks Project.
isNormalRing_pi, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/IntegrallyClosed/Stability.lean, line 277.
A finite product of normal rings is normal. (Stacks Lemma 10.37.16, tag
0CYA.)
theorem isNormalRing_pi
{ι : Type*} [Finite ι] {R : ι → Type*} [∀ i, CommRing (R i)]
(h : ∀ i, IsNormalRing (R i)) :
IsNormalRing (∀ i, R i)
Tag 030C, a lemma
Tag 030C in the Stacks Project.
isIntegrallyClosed_tfae_of_finite_minimalPrimes, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/IntegrallyClosed/ProductOfDomains.lean, line 256. References: EGA IV (5.13.5), “Noeth ⇒ product of doms”; EGA IV (6.14.1.1), “(i)”.
Stacks 030C. Let
Rbe a reduced ring with finitely many minimal primes. Then the following are equivalent: (1)Ris a normal ring, i.e. all its localizations at primes are normal domains; (2)Ris integrally closed in its total ring of fractions; (3)Ris a finite product of normal domains; (4) the canonical map fromRto the product of the quotientsR/𝔭by its minimal primes is bijective and each such quotient is integrally closed.
theorem isIntegrallyClosed_tfae_of_finite_minimalPrimes {R : Type u} [CommRing R]
[IsReduced R] (hR : (minimalPrimes R).Finite) :
List.TFAE
[ ∀ (p : Ideal R) [p.IsPrime],
IsDomain (Localization.AtPrime p) ∧ IsIntegrallyClosed (Localization.AtPrime p),
IsIntegrallyClosed R,
∃ (n : ℕ) (A : Fin n → Type u) (_ : ∀ i, CommRing (A i)),
(∀ i, IsDomain (A i)) ∧ (∀ i, IsIntegrallyClosed (A i)) ∧
Nonempty (R ≃+* ∀ i, A i),
(∀ p ∈ minimalPrimes R, IsIntegrallyClosed (R ⧸ p)) ∧
Function.Bijective
(RingHom.pi fun p : minimalPrimes R => Ideal.Quotient.mk (p : Ideal R)) ]
Tag 037D, a lemma
Tag 037D in the Stacks Project.
directLimit_isNormalRing, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/IntegrallyClosed/Defs.lean, line 488. References: EGA IV (5.13.6), “more general”.
Let
(ι, ≤)be a directed nonempty preorder, let(G_i)be a family of commutative rings, and letφ_{ij} : G_i →+* G_j(fori ≤ j) be ring homomorphisms forming a directed system of rings. If everyG_iis a normal ring, then the directed colimitRing.DirectLimit G φis a normal ring.
theorem directLimit_isNormalRing
(hdir : DirectedSystem G (fun i j h => φ i j h))
(hnormal : ∀ i, IsNormalRing (G i)) :
IsNormalRing (Ring.DirectLimit G (fun i j h => φ i j h))
Sources
Section10.38 Going down for integral over normal#
Section 10.38 of the Stacks Project, Tag 037E. 5 tags here are carried by 5 declarations of the repository (all in StacksFrontier) and 2 registered declarations, quoted below from AxiomMath/Stacks at commit 5ed82d14.
Tag 00H2, a definition
Tag 00H2 in the Stacks Project.
RingHom.IsIntegralElemOverIdeal, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/IntegralClosure/OverIdeal.lean, line 67.
An element
g ∈ Sis integral over the idealI ⊂ Rwith respect to the ring mapφ : R →+* Sif there exists a monic polynomialP ∈ R[X]of degreedsuch that every coefficientP.coeff jlies inI ^ (d - j), andPevaluated atgviaφis zero inS.Since
Pis monic withd = P.natDegree, the leading coefficientP.coeff dequals1 ∈ I ^ 0 = ⊤, and the coefficients above the degree vanish, so the condition∀ j, P.coeff j ∈ I ^ (d - j)is exactly the Stacks requirement on the non-leading coefficientsa_j ∈ I ^ (d - j)forj < d.
def IsIntegralElemOverIdeal {R S : Type*} [CommRing R] [Ring S]
(φ : R →+* S) (I : Ideal R) (g : S) : Prop
Tag 00H3, a lemma
Tag 00H3 in the Stacks Project.
isIntegralElem_of_isIntegralOverIdeal, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/IntegralClosure/OverIdeal.lean, line 226. The attribute's comment: “Forward implication only: integral over I implies C s * X integral over reesAlgebra I. The converse half of the equivalence is not formalized.”.
If
s : Sis integral over the idealI ⊂ R(with respect toφ : R →+* S), thenC s · X ∈ S[X]is integral over the Rees subalgebrareesAlgebra Iviewed insideS[X]via the coefficient-wise extension ofφ.
theorem isIntegralElem_of_isIntegralOverIdeal (φ : R →+* S) (I : Ideal R) (s : S)
(h : IsIntegralOverIdeal φ I s) :
(reesToPolyS φ I).IsIntegralElem (C s * X)
isIntegralElem_of_isIntegralElemOverIdeal, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/IntegralClosure/OverIdealIntegrallyClosed.lean, line 92. The attribute's comment: “Forward implication only: integral over I implies C s * X integral over reesAlgebra I. The converse half of the equivalence is not formalized.”.
[Stacks, Tag 00H3], the forward implication. If
s : Sis integral over the idealI ⊆ Rwith respect toφ : R →+* S, thenC s · X ∈ S[X]is integral over the Rees subalgebrareesAlgebra I, viewed insideS[X]along the coefficientwise extension ofφ.A monic witness of degree zero is
1, whose vanishing atsmakess = 0, and thenC s · Xis zero andXis a witness; otherwiseforwardWitnessmultiplies thei-th coefficient byX ^ (n - i)to land in the Rees algebra.
theorem isIntegralElem_of_isIntegralElemOverIdeal (φ : R →+* S) (I : Ideal R) (s : S)
(h : φ.IsIntegralElemOverIdeal I s) :
(reesToPolyS φ I).IsIntegralElem (C s * X)
Tag 00H4, a lemma
Tag 00H4 in the Stacks Project.
zero_isIntegralElemOverIdeal, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/IntegralClosure/OverIdeal.lean, line 264. The attribute's comment: “Partial: only that 0 is integral over I. Closure under addition, and hence the submodule conclusion of 00H4, is not formalized.”.
The zero element of
Sis integral over any idealI ⊂ R, witnessed by the polynomialX. (Partial component of Stacks00H4.)
theorem zero_isIntegralElemOverIdeal
{R : Type*} {S : Type*} [CommRing R] [Ring S]
(φ : R →+* S) (I : Ideal R) :
RingHom.IsIntegralElemOverIdeal φ I (0 : S)
mul_left_isIntegralElemOverIdeal, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/IntegralClosure/OverIdeal.lean, line 290. The attribute's comment: “Partial: only closure under R-scalar multiplication. Closure under addition, and hence the submodule conclusion of 00H4, is not formalized.”.
If
g ∈ Sis integral over the idealIandr ∈ R, thenφ r * gis integral overI. (Partial component of Stacks00H4: closure underR-scalar multiplication, with the action expressed through the ring mapφ.)
theorem mul_left_isIntegralElemOverIdeal
{R : Type*} {S : Type*} [CommRing R] [CommRing S]
(φ : R →+* S) (I : Ideal R) (r : R) (g : S)
(h : RingHom.IsIntegralElemOverIdeal φ I g) :
RingHom.IsIntegralElemOverIdeal φ I (φ r * g)
Tag 00H5, a lemma
Tag 00H5 in the Stacks Project.
Declarations registered for the tag:
Polynomial.exists_monic_aeval_eq_zero_forall_mem_pow_of_mem_mapregistered withadd_to_stacksin StacksFrontier/RingTheory/IntegralClosure/OverIdeal.lean, line 322 (StacksFrontier).
Tag 00H7, a lemma
Tag 00H7 in the Stacks Project.
Declarations registered for the tag:
minpoly.isIntegrallyClosed_eq_field_fractionsregistered withadd_to_stacksin StacksFrontier/RingTheory/Ideal/GoingDown/Criteria.lean, line 21 (StacksFrontier): “the minimal polynomial over the fraction field is the base change of the minimal polynomial over the integrally closed base, so its coefficients lie in the base”.
Sources
Section10.39 Flat modules and flat ring maps#
Section 10.39 of the Stacks Project, Tag 00H9. 18 tags here are carried by 20 declarations of the repository (all in StacksFrontier) and 19 registered declarations, quoted below from AxiomMath/Stacks at commit 5ed82d14.
Tag 00HB, a definition
Tag 00HB in the Stacks Project.
Declarations registered for the tag:
Module.Flatregistered withadd_to_stacksin StacksFrontier/RingTheory/Flat/Defs.lean, line 22 (StacksFrontier): “(1)”. References: EGA 0 (10.3.1.2); EGA 0 (10.3.1.3); EGA 0 (6.1.1); EGA IV (6.1.3); EGA IV (2.1.12); SGA 1 IV (4.3); SGA 3 VIIB (2.2.1), “special case”; SGA 4 V (1.1), “special case”; SGA 4 XVII (5.5.6.3); SGA 4½ Etat 0 (6.2), “special case”; SGA 5 IIIB (5.10); SGA 5 IIIB (6.1), “partial”; SGA 6 X (7.18.1).Module.Flat.iff_lTensor_exactregistered withadd_to_stacksin StacksFrontier/RingTheory/Flat/Defs.lean, line 23 (StacksFrontier): “(1), as the exactness condition the tag states”. References: EGA 0 (6.1.1); EGA 0 (6.4.1), “a)”; EGA III (6.1.1), “special case”; EGA IV (2.2.7), “partial”; SGA 4 V (1.1), “special case”; SGA 4 V (1.7.2), “(i) ⇔ (ii), special case”; SGA 4½ Etat 0 (6.2), “special case”; SGA 6 0 (2.9), “affine case”; SGA 7 VII (3.7.6), “partial”.Module.FaithfullyFlatregistered withadd_to_stacksin StacksFrontier/RingTheory/Flat/Defs.lean, line 34 (StacksFrontier): “(2)”. References: EGA 0 (22.4.8); EGA 0 (6.4.1); EGA 0 (6.6.1); EGA IV (2.2.4), “special case”; SGA 1 IV (2.1).Module.FaithfullyFlat.iff_exact_iff_lTensor_exactregistered withadd_to_stacksin StacksFrontier/RingTheory/Flat/Defs.lean, line 40 (StacksFrontier): “(2), as the exactness condition the tag states”. References: EGA 0 (6.6.1), “more general”; EGA IV (2.2.7), “special case”; EGA 0 (6.4.1), “(a) <=> (d)”; SGA 1 IV (2.1); SGA 1 IV (2.6), “(i)⇒(iv)”; SGA 4½ Arcata (1.4.2), “Clause (i), special case”.RingHom.Flatregistered withadd_to_stacksin StacksFrontier/RingTheory/Flat/Defs.lean, line 49 (StacksFrontier): “(3)”. References: SGA 6 I (3.7), “special case”.
Tag 0BBY, a lemma
Tag 0BBY in the Stacks Project.
ideal_smul_top_inf, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Flat/ShortExact.lean, line 208. References: EGA 0 (6.1.3), “second formula”.
Stacks Tag 0BBY: for a flat module
M,IM ∩ JM = (I ∩ J) M.
theorem ideal_smul_top_inf (R : Type*) [CommRing R] (I J : Ideal R)
(M : Type*) [AddCommGroup M] [Module R M] [Module.Flat R M] :
(I • (⊤ : Submodule R M)) ⊓ (J • (⊤ : Submodule R M))
= (I ⊓ J) • (⊤ : Submodule R M)
Tag 05UT, a lemma
Tag 05UT in the Stacks Project.
colimit_flat_of_flat, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Flat/DirectLimit.lean, line 757. References: EGA 0 (6.1.2); EGA 0 (6.2.3), “constant ring system”; EGA 0 (6.3.4), “partial”; SGA 3 V (4.1.2), “partial”; SGA 4 V (1.2), “special case”; SGA 4 VI (8.6.4), “special case”; SGA 4 XVII (5.5.1.2), “partial”; SGA 4 XVII (5.5.6.3), “partial”.
Stacks 05UT: the direct limit (colimit) of a directed system of flat \(R\)-modules is flat.
theorem colimit_flat_of_flat
{R : Type*} [CommRing R]
{ι : Type*} [Preorder ι] [IsDirected ι (· ≤ ·)] [Nonempty ι] [DecidableEq ι]
(G : ι → Type*) [(i : ι) → AddCommGroup (G i)] [(i : ι) → Module R (G i)]
(f : (i j : ι) → i ≤ j → G i →ₗ[R] G j) [DirectedSystem G (fun i j h => f i j h)]
[∀ i, Module.Flat R (G i)] :
Module.Flat R (Module.DirectLimit G f)
Tag 00HC, a lemma
Tag 00HC in the Stacks Project.
Declarations registered for the tag:
RingHom.Flat.compregistered withadd_to_stacksin StacksFrontier/RingTheory/Flat/Basic.lean, line 54 (StacksFrontier): “a composition of flat ring maps is flat”. References: EGA 0 (6.7.5), “Affine schemes”; EGA IV (11.3.10.2), “1°, special case”; EGA IV (2.1.6), “special case”; EGA IV (7.3.5), “special case”; EGA 0 (6.6.4), “flat maps compose”; SGA 3 VIIB (1.3.3), “(i), special case”; SGA 6 III (3.4), “special case”.RingHom.FaithfullyFlat.stableUnderCompositionregistered withadd_to_stacksin StacksFrontier/RingTheory/Flat/Basic.lean, line 62 (StacksFrontier): “a composition of faithfully flat ring maps is faithfully flat”. References: EGA IV (2.2.13), “(iii)”; EGA 0 (6.6.4), “ff maps compose”.Module.Flat.transregistered withadd_to_stacksin StacksFrontier/RingTheory/Flat/Basic.lean, line 66 (StacksFrontier): “a flat module over a flat algebra is flat over the base”. References: EGA 0 (10.2.5), “(a)”; EGA 0 (6.2.1), “more general”; EGA 0 (6.7.5), “special case”; EGA IV (11.3.10.2), “1°”; EGA IV (2.1.5), “special case”; EGA IV (2.1.6), “special case”; EGA IV (2.2.11), “(iii), special case”; EGA IV (7.3.5), “special case”; EGA 0 (6.6.4), “necessity, flat case”; SGA 1 IV (5.9), “(i)”; SGA 3 VIIB (1.3.3), “(i), special case”.Module.FaithfullyFlat.transregistered withadd_to_stacksin StacksFrontier/RingTheory/Flat/Basic.lean, line 78 (StacksFrontier): “a faithfully flat module over a faithfully flat algebra is faithfully flat”. References: EGA IV (11.3.10.2), “1°, special case”; EGA IV (2.2.10), “special case”; EGA IV (2.2.11), “special case”; EGA IV (2.2.13), “(iii)”; EGA 0 (6.6.4), “necessity, ff case”.
Tag 00HD, a lemma
Tag 00HD in the Stacks Project.
Declarations registered for the tag:
Module.Flat.iff_rTensor_exactregistered withadd_to_stacksin StacksFrontier/MathlibRegistrations/Ch10.lean, line 165 (StacksFrontier): “(1) flat iff - ⊗ M exact (links Mathlib's Flat to the Stacks definition)”. References: EGA 0 (6.1.1); EGA III (6.1.1), “special case”; EGA IV (2.2.7), “partial”; SGA 4 V (1.1), “special case”; SGA 4 V (1.7.2), “(i) ⇔ (ii), special case”; SGA 4½ Etat 0 (6.2), “special case”; SGA 6 0 (2.9), “affine case”; SGA 7 VII (3.7.6), “partial”.Module.Flat.iff_rTensor_preserves_injective_linearMapregistered withadd_to_stacksin StacksFrontier/MathlibRegistrations/Ch10.lean, line 167 (StacksFrontier): “(1) <=> (2)”. References: EGA 0 (6.1.1); EGA IV (2.2.7), “partial”; EGA IV (21.5.3), “partial”; SGA 3 I (5.3.1.1), “partial”.Module.Flat.iff_rTensor_injective'registered withadd_to_stacksin StacksFrontier/MathlibRegistrations/Ch10.lean, line 168 (StacksFrontier): “(1) <=> (3)”. References: EGA 0 (6.1.1), “special case”.Module.Flat.iff_rTensor_injectiveregistered withadd_to_stacksin StacksFrontier/MathlibRegistrations/Ch10.lean, line 169 (StacksFrontier): “(1) <=> (4)”. References: EGA 0 (6.1.1), “more general”; EGA 0 (6.7.3), “Algebraic reduction”.
Tag 05UU, a lemma
Tag 05UU in the Stacks Project.
StacksColimitRingsFlat.flat_of_forall_flat, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Flat/DirectLimit.lean, line 195. The attribute's comment: “(1)”. References: EGA 0 (6.2.3), “special case”.
If
Mis anR-module that is flat as anR_i-module for everyi(via the structure mapR_i → R), thenMis flat as anR-module.
theorem flat_of_forall_flat
[Nonempty ι] [IsDirected ι (· ≤ ·)] [DirectedSystem G (fun i j h => (φ i j h : G i → G j))]
(M : Type*) [AddCommGroup M] [Module (ColimitRing G φ) M]
(hflat : ∀ i : ι, @Module.Flat (G i) M _ _ (Module.compHom M (structHom G φ i))) :
Module.Flat (ColimitRing G φ) M
StacksColimitRingsFlat.colimitModule_flat, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Flat/DirectLimit.lean, line 469. The attribute's comment: “(2)”. References: EGA 0 (6.1.2), “more general”; EGA 0 (6.2.3); SGA 4 VI (8.6.4), “special case”.
If each
M_iis a flatR_i-module and thef_{ii'}are a compatible system ofφ_{ii'}-semilinear maps, then the colimitM = colim_i M_iis a flatR-module.
theorem colimitModule_flat
[Nonempty ι] [IsDirected ι (· ≤ ·)] [DecidableEq ι]
[DirectedSystem G (fun i j h => (φ i j h : G i → G j))]
(M : ι → Type*) [(i : ι) → AddCommGroup (M i)] [(i : ι) → Module (G i) (M i)]
(hflat : ∀ i : ι, Module.Flat (G i) (M i))
(f : (i j : ι) → (h : i ≤ j) → M i →ₛₗ[φ i j h] M j)
(hf_id : ∀ (i : ι) (x : M i), f i i le_rfl x = x)
(hf_comp : ∀ (i j k : ι) (hij : i ≤ j) (hjk : j ≤ k) (x : M i),
f j k hjk (f i j hij x) = f i k (hij.trans hjk) x) :
Module.Flat (ColimitRing G φ) (ColimitModule M f)
Tag 00HI, a lemma
Tag 00HI in the Stacks Project.
Declarations registered for the tag:
Module.Flat.baseChangeregistered withadd_to_stacksin StacksFrontier/RingTheory/Flat/Basic.lean, line 88 (StacksFrontier): “flat base change”. References: EGA 0 (6.2.1), “more general”; EGA 0 (6.6.3), “necessity”; EGA III (7.4.1), “partial”; EGA III (7.7.2), “special case”; EGA III (7.9.7), “special case”; EGA IV (11.2.6.1), “(ii), sufficiency”; EGA IV (11.3.10.2), “1°”; EGA IV (2.1.4), “special case”; EGA IV (2.1.5), “special case”; EGA IV (2.2.10), “special case”; EGA IV (20.6.9), “partial”; EGA IV (21.15.9), “partial”; SGA 3 III (0.13), “special case”; SGA 3 V (7.4), “(i), special case”; SGA 3 VIB (10.1), “special case”; SGA 3 VIB (11.1), “special case”; SGA 3 VIB (2.1.2), “special case”; SGA 3 VIIB (1.2.1), “partial”; SGA 3 VIIB (1.3.3), “(iii), special case”; SGA 3 XIX (2.1), “special case”; SGA 3 XV (3.8), “partial”; SGA 4 V (1.7.1), “special case”; SGA 4 V (8.2.9), “special case”; SGA 6 III (3.5.2), “Affine case”; SGA 6 IV (3.1.1), “special case”; SGA 6 XII (2.3), “(a)”; SGA 7 VII (1.3.8), “flatness clause”.Module.FaithfullyFlat.instTensorProductregistered withadd_to_stacksin StacksFrontier/RingTheory/Flat/Basic.lean, line 116 (StacksFrontier): “faithfully flat base change”. References: EGA 0 (6.6.3), “necessity”; EGA IV (11.9.14), “affine case”; EGA IV (2.2.10), “special case”; EGA IV (2.2.11), “(i), affine case”; EGA IV (2.2.13), “(i) for affine schemes”; EGA IV (2.2.2), “partial”; EGA IV (2.5.1), “special case”; EGA IV (2.5.8.8), “partial”; EGA 0 (6.4.5), “first assertion”; EGA 0 (6.4.4), “last assertion”.
Tag 00HJ, a lemma
Tag 00HJ in the Stacks Project.
Declarations registered for the tag:
Module.Flat.iff_flat_tensorProductregistered withadd_to_stacksin StacksFrontier/RingTheory/Flat/Basic.lean, line 131 (StacksFrontier): “flatness descends along a faithfully flat base change”. References: EGA 0 (6.6.3); EGA IV (2.2.11), “(iii), special case”; EGA IV (2.5.1), “flat part, affine”; SGA 3 XIX (2.1), “special case”; SGA 4½ Arcata (1.4.2), “more general”; SGA 6 I (5.7), “a), special case”.
Tag 0584, a lemma
Tag 0584 in the Stacks Project.
Module.Flat.tensorProduct_of_flat, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Flat/BaseChangeAlongFlatAlgebra.lean, line 74. The attribute's comment: “(1)”. References: EGA 0 (6.2.1), “M⊗_A N is B-flat”.
Stacks 0584 (1): if
S → S'is a flat map ofR-algebras andMis anS-module that is flat overR, thenS' ⊗_S Mis flat overR.
theorem tensorProduct_of_flat [Module.Flat S S'] [Module.Flat R M] :
Module.Flat R (S' ⊗[S] M)
Module.Flat.tensorProduct_iff_of_faithfullyFlat, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Flat/BaseChangeAlongFlatAlgebra.lean, line 84. The attribute's comment: “(2)”.
Stacks 0584 (2): if
S → S'is a faithfully flat map ofR-algebras, then anS-moduleMis flat overRif and only ifS' ⊗_S Mis flat overR.
theorem tensorProduct_iff_of_faithfullyFlat {R S S' M : Type*} [CommRing R] [CommRing S]
[CommRing S'] [Algebra R S] [Algebra R S'] [Algebra S S'] [IsScalarTower R S S']
[AddCommGroup M] [Module R M] [Module S M] [IsScalarTower R S M]
[Module.FaithfullyFlat S S'] :
Module.Flat R (S' ⊗[S] M) ↔ Module.Flat R M
Tag 039V, a lemma
Tag 039V in the Stacks Project.
Stacks.Flatness.NilpotentFibreCriterion.flat_of_flat_of_faithfullyFlat, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Flat/FibrewiseCriterion.lean, line 412. References: EGA 0 (6.6.4), “sufficiency, flat case”.
Flat permanence. If an
S-moduleMis flat overRand faithfully flat overS, thenSis flat overR.
theorem flat_of_flat_of_faithfullyFlat
(M : Type*) [AddCommGroup M] [Module R M] [Module S M] [IsScalarTower R S M]
[Module.Flat R M] [Module.FaithfullyFlat S M] : Module.Flat R S
Tag 00HL, a lemma
Tag 00HL in the Stacks Project.
tensor_flat_quotient_shortExact, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/Algebra/Category/ModuleCat/Sheaf/FlatTensorShortExact.lean, line 121. References: EGA 0 (6.1.2), “exactness”; EGA IV (2.1.8), “(i), affine case”; EGA 0 (15.1.17), “more general”; EGA IV (2.1.10), “special case”; SGA 1 IV (1.1), “(i)”; SGA 3 III (4.6.4), “more general”; SGA 4 XVII (4.1.1), “(ii), special case”.
Let
0 → F'' → F' → F → 0be a short exact sequence of modules over a commutative ringR:a : F'' → F'is injective, the sequence is exact atF'andb : F' → Fis surjective. IfFis flat, then for everyR-moduleGthe tensored sequence0 → F'' ⊗ G → F' ⊗ G → F ⊗ G → 0is short exact:a ⊗ 1is injective, the sequence is exact atF' ⊗ G, andb ⊗ 1is surjective.
theorem tensor_flat_quotient_shortExact
{R : Type*} [CommRing R]
{F'' F' F : Type*} [AddCommGroup F''] [AddCommGroup F'] [AddCommGroup F]
[Module R F''] [Module R F'] [Module R F]
(a : F'' →ₗ[R] F') (b : F' →ₗ[R] F)
(ha : Function.Injective a) (hexact : Function.Exact a b)
(hb : Function.Surjective b)
(hFflat : Module.Flat R F)
(G : Type*) [AddCommGroup G] [Module R G] :
Function.Injective (LinearMap.rTensor G a) ∧
Function.Exact (LinearMap.rTensor G a) (LinearMap.rTensor G b) ∧
Function.Surjective (LinearMap.rTensor G b)
flat_tor_zero, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Flat/ShortExact.lean, line 310. References: EGA IV (2.1.8), “(i), affine case”; EGA 0 (15.1.17), “more general”; EGA 0 (6.1.2); SGA 1 IV (1.1); SGA 3 XV (2.10), “partial”; SGA 4 XVII (4.1.1), “(ii), special case”.
If
0 → M'' → M' → M → 0is a short exact sequence ofR-modules whose quotient termMis flat, then tensoring with an arbitraryR-moduleNleaves the sequence short exact.
theorem flat_tor_zero
{R : Type*} [CommRing R]
{M'' M' M N : Type*}
[AddCommGroup M''] [AddCommGroup M'] [AddCommGroup M] [AddCommGroup N]
[Module R M''] [Module R M'] [Module R M] [Module R N]
[Module.Flat R M]
(f : M'' →ₗ[R] M') (g : M' →ₗ[R] M)
(hf : Function.Injective f)
(hfg : Function.Exact f g)
(hg : Function.Surjective g) :
Function.Injective (LinearMap.lTensor N f) ∧
Function.Exact (LinearMap.lTensor N f) (LinearMap.lTensor N g) ∧
Function.Surjective (LinearMap.lTensor N g)
Tag 00HM, a lemma
Tag 00HM in the Stacks Project.
flat_of_flat_of_flat, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Flat/ShortExact.lean, line 236. References: EGA 0 (6.4.3), “M is flat”; EGA 0 (6.1.2), “M' flat implies M flat”; EGA III (6.5.10), “special case”; EGA IV (2.1.8), “(ii)”; SGA 1 IV (1.1), “(ii)”.
Part 1: In a short exact sequence
0 → M' → M → M'' → 0ofR-modules, ifM'andM''are flat, thenMis flat.
theorem flat_of_flat_of_flat
{R : Type*} [CommRing R]
{M' M M'' : Type*}
[AddCommGroup M'] [AddCommGroup M] [AddCommGroup M'']
[Module R M'] [Module R M] [Module R M'']
(f : M' →ₗ[R] M) (g : M →ₗ[R] M'')
(hf : Function.Injective f)
(hfg : Function.Exact f g)
(hg : Function.Surjective g)
[Module.Flat R M'] [Module.Flat R M''] :
Module.Flat R M
flat_of_flat_of_flat_quotient, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Flat/ShortExact.lean, line 277. References: EGA 0 (20.6.21), “more general”; EGA 0 (6.1.2), “M flat implies M' flat”; EGA IV (2.1.10), “Affine case”; EGA IV (2.1.8), “(ii)”; SGA 1 IV (1.1), “(ii)”; SGA 4 XVII (4.1.1), “(i), special case”; SGA 6 I (5.1.1), “special case”.
Part 2: In a short exact sequence
0 → M' → M → M'' → 0ofR-modules, ifMandM''are flat, thenM'is flat.
theorem flat_of_flat_of_flat_quotient
{R : Type*} [CommRing R]
{M' M M'' : Type*}
[AddCommGroup M'] [AddCommGroup M] [AddCommGroup M'']
[Module R M'] [Module R M] [Module R M'']
(f : M' →ₗ[R] M) (g : M →ₗ[R] M'')
(hf : Function.Injective f)
(hfg : Function.Exact f g)
(hg : Function.Surjective g)
[Module.Flat R M] [Module.Flat R M''] :
Module.Flat R M'
Tag 00HO, a lemma
Tag 00HO in the Stacks Project.
Declarations registered for the tag:
Module.FaithfullyFlat.iff_zero_iff_rTensor_zeroregistered withadd_to_stacksin StacksFrontier/RingTheory/Flat/FaithfullyFlat/Basic.lean, line 203 (StacksFrontier): “with the two modules implicit and the inner biconditional the other way round”. References: EGA 0 (6.6.1), “more general”; EGA IV (2.2.7), “special case”; EGA 0 (6.4.1), “(a) ⇔ (c)”; EGA 0 (6.4.1), “(a) <=> (c)”; SGA 1 IV (2.1).Module.FaithfullyFlat.iff_zero_iff_lTensor_zeroregistered withadd_to_stacksin StacksFrontier/RingTheory/Flat/FaithfullyFlat/Basic.lean, line 209 (StacksFrontier): “thelTensorvariant”. References: EGA 0 (6.4.1); EGA 0 (6.6.1), “more general”; EGA IV (2.2.7), “special case”; SGA 1 IV (2.1).
Tag 00HP, a lemma
Tag 00HP in the Stacks Project.
faithfullyFlat_tfae, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Flat/FaithfullyFlat/Basic.lean, line 90. References: EGA 0 (6.4.1), “(a) ⇔ (b), (a) ⇔ (d)”; EGA IV (2.2.1), “affine case, a)<=>b)”; EGA IV (2.2.7), “special case”; EGA IV (2.5.8.8), “partial”; SGA 1 IV (2.1), “(i bis) <=> (i ter)”.
For a flat
R-moduleM, faithful flatness is equivalent to each of:M ⊗[R] Nis nonzero for every nonzeroR-moduleN;M ⊗[R] κ(𝔭)is nonzero for every prime𝔭;M ⊗[R] κ(𝔪)is nonzero for every maximal ideal𝔪.
theorem faithfullyFlat_tfae [Module.Flat R M] :
[ FaithfullyFlat R M,
∀ (N : Type (max u v)) [AddCommGroup N] [Module R N],
Nontrivial N → Nontrivial (M ⊗[R] N),
∀ (p : Ideal R) [p.IsPrime], Nontrivial (M ⊗[R] p.ResidueField),
∀ (m : Ideal R) [m.IsMaximal], Nontrivial (M ⊗[R] m.ResidueField) ].TFAE
Tag 00HQ, a lemma
Tag 00HQ in the Stacks Project.
faithfullyFlat_tfae00HQ, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Flat/FaithfullyFlat/Basic.lean, line 168. References: EGA IV (2.2.2), “a)<=>b'), affine F=O_X”; EGA IV (2.2.3), “M = B with A → B flat”; EGA IV (2.2.5), “special case”; EGA IV (2.2.6), “special case”; SGA 1 IV (2.6), “(i) ⇔ (ii) ⇔ (ii bis)”; SGA 1 IV (2.3), “M = B”; SGA 3 V (4.1.1), “Faithful flatness clause”; SGA 4½ Arcata (1.4.1), “special case”.
For a flat ring map
f : R →+* S, faithful flatness is equivalent to surjectivity ofSpec(S) → Spec(R), and to every closed point ofSpec(R)lying in the image of that map.
theorem faithfullyFlat_tfae00HQ
{R S : Type*} [CommRing R] [CommRing S] (f : R →+* S) (hf : RingHom.Flat f) :
List.TFAE
[ RingHom.FaithfullyFlat f,
Function.Surjective (PrimeSpectrum.comap f),
∀ x : PrimeSpectrum R, IsClosed ({x} : Set (PrimeSpectrum R)) →
x ∈ Set.range (PrimeSpectrum.comap f) ]
Tag 00HR, a lemma
Tag 00HR in the Stacks Project.
Declarations registered for the tag:
Module.FaithfullyFlat.of_flat_of_isLocalHomregistered withadd_to_stacksin StacksFrontier/RingTheory/Flat/FaithfullyFlat/Basic.lean, line 215 (StacksFrontier). References: EGA 0 (6.6.1), “(e) ⇒ (a), special case”; EGA 0 (6.6.2), “partial, special case”; EGA IV (2.5.5.4), “special case”; SGA 1 IV (2.6), “(i), special case”; SGA 1 IV (2.2), “case M = B”.
Tag 00HT, a lemma
Tag 00HT in the Stacks Project.
flat_of_isLocalization, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Flat/Localization.lean, line 65. The attribute's comment: “part1”. References: SGA 1 IV (1.2), “M = B = A”.
The localisation
S⁻¹Ris a flatR-algebra.
theorem flat_of_isLocalization
{R : Type*} [CommRing R] (S : Submonoid R)
(Rs : Type*) [CommRing Rs] [Algebra R Rs] [IsLocalization S Rs] :
Module.Flat R Rs
flat_iff_flat_localization, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Flat/Localization.lean, line 73. The attribute's comment: “part2”. References: SGA 1 IV (1.2), “(i) 2nd assertion”.
For an
S⁻¹R-moduleM, flatness overRis equivalent to flatness overS⁻¹R.
theorem flat_iff_flat_localization
{R : Type*} [CommRing R] (S : Submonoid R)
(Rs : Type*) [CommRing Rs] [Algebra R Rs] [IsLocalization S Rs]
(M : Type*) [AddCommGroup M] [Module R M] [Module Rs M] [IsScalarTower R Rs M] :
Module.Flat R M ↔ Module.Flat Rs M
flat_iff_forall_flat_atPrime, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Flat/Localization.lean, line 91. The attribute's comment: “part3”. References: SGA 1 IV (1.2), “B = A, primes”.
Mis flat overRiffM_𝔭is flat overR_𝔭for every prime𝔭ofR.
theorem flat_iff_forall_flat_atPrime
{R : Type*} [CommRing R] (M : Type*) [AddCommGroup M] [Module R M] :
Module.Flat R M ↔
∀ (P : Ideal R) (_ : P.IsPrime),
Module.Flat (Localization.AtPrime P) (LocalizedModule.AtPrime P M)
flat_iff_flat_localizedModule_atMaximal, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Flat/Localization.lean, line 103. The attribute's comment: “part4”. References: SGA 1 IV (1.2), “B = A”.
Mis flat overRiffM_𝔪is flat overR_𝔪for every maximal ideal𝔪ofR.
theorem flat_iff_flat_localizedModule_atMaximal
{R : Type*} [CommRing R] (M : Type*) [AddCommGroup M] [Module R M] :
Module.Flat R M ↔
∀ (m : Ideal R) (_ : m.IsMaximal),
haveI : m.IsPrime := Ideal.IsMaximal.isPrime ‹_›
Module.Flat (Localization.AtPrime m) (LocalizedModule.AtPrime m M)
flat_of_flat_localizedModule_maximal, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Flat/Localization.lean, line 190. The attribute's comment: “part7_backward”. References: SGA 1 IV (1.2), “(ii)”.
If every
M_𝔪(for𝔪 ⊆ Amaximal) is flat overR_𝔭(with𝔭 = R ∩ 𝔪), thenMis flat overR.
theorem flat_of_flat_localizedModule_maximal
{R : Type*} [CommRing R]
{A : Type*} [CommRing A] [Algebra R A]
(M : Type*) [AddCommGroup M] [Module R M] [Module A M] [IsScalarTower R A M]
(h : ∀ (m : Ideal A) (_ : m.IsMaximal),
letI : m.IsPrime := Ideal.IsMaximal.isPrime ‹_›
letI : (m.comap (algebraMap R A)).IsPrime := Ideal.comap_isPrime _ _
letI : m.LiesOver (m.comap (algebraMap R A)) := ⟨rfl⟩
letI : Algebra (Localization.AtPrime (m.comap (algebraMap R A)))
(Localization.AtPrime m) :=
Localization.AtPrime.algebraOfLiesOver _ _
letI : Module (Localization.AtPrime (m.comap (algebraMap R A)))
(LocalizedModule.AtPrime m M) :=
Module.compHom _ (algebraMap _ (Localization.AtPrime m))
Module.Flat
(Localization.AtPrime (m.comap (algebraMap R A)))
(LocalizedModule.AtPrime m M)) :
Module.Flat R M
flat_of_flat_atPrime, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Flat/Localization.lean, line 217. The attribute's comment: “part6_backward”. References: SGA 1 IV (1.2), “(ii) with all primes”.
If every
M_𝔮(for𝔮 ⊆ Aprime) is flat overR_𝔭(with𝔭 = 𝔮 ∩ R), thenMis flat overR.
theorem flat_of_flat_atPrime
{R : Type*} [CommRing R]
{A : Type*} [CommRing A] [Algebra R A]
(M : Type*) [AddCommGroup M] [Module R M] [Module A M] [IsScalarTower R A M]
(h : ∀ (Q : Ideal A) (_ : Q.IsPrime),
letI : (Q.comap (algebraMap R A)).IsPrime := Ideal.comap_isPrime _ _
letI : Q.LiesOver (Q.comap (algebraMap R A)) := ⟨rfl⟩
letI : Algebra (Localization.AtPrime (Q.comap (algebraMap R A)))
(Localization.AtPrime Q) :=
Localization.AtPrime.algebraOfLiesOver _ _
letI : Module (Localization.AtPrime (Q.comap (algebraMap R A)))
(LocalizedModule.AtPrime Q M) :=
Module.compHom _ (algebraMap _ (Localization.AtPrime Q))
Module.Flat
(Localization.AtPrime (Q.comap (algebraMap R A)))
(LocalizedModule.AtPrime Q M)) :
Module.Flat R M
Tag 090N, a lemma
Tag 090N in the Stacks Project.
faithfullyFlat_directLimit_of_faithfullyFlat, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Flat/DirectLimit.lean, line 582. References: SGA 3 VIB (11.17.1), “constant base”.
A directed colimit of faithfully flat
R-algebras is faithfully flat overR: if eachR → Sᵢis faithfully flat and the transition maps areR-algebra maps, then the induced map fromRtocolim Sᵢis faithfully flat.
theorem faithfullyFlat_directLimit_of_faithfullyFlat
{ι : Type*} [Preorder ι] [IsDirectedOrder ι] [Nonempty ι]
(R : Type*) [CommRing R]
(S : ι → Type*) [(i : ι) → CommRing (S i)] [(i : ι) → Algebra R (S i)]
(φ : (i j : ι) → i ≤ j → S i →+* S j)
[DirectedSystem S (fun i j h => φ i j h)]
-- transition maps are R-algebra maps:
(hφ : ∀ i j (h : i ≤ j), (φ i j h).comp (algebraMap R (S i)) = algebraMap R (S j))
-- each Sᵢ is faithfully flat over R:
(hff : ∀ i, (algebraMap R (S i)).FaithfullyFlat) :
((Ring.DirectLimit.of S (fun i j h => φ i j h) (Classical.arbitrary ι)).comp
(algebraMap R (S (Classical.arbitrary ι)))).FaithfullyFlat
Sources
Section10.40 Supports and annihilators#
Section 10.40 of the Stacks Project, Tag 080S. 7 tags here are carried by 5 declarations of the repository (all in StacksFrontier) and 4 registered declarations, quoted below from AxiomMath/Stacks at commit 5ed82d14.
Tag 0585, a lemma
Tag 0585 in the Stacks Project.
Declarations registered for the tag:
Module.support_eq_empty_iffregistered withadd_to_stacksin StacksFrontier/RingTheory/Support/Basic.lean, line 182 (StacksFrontier). References: EGA 0 (1.7.1), “M = 0 ⇔ Supp M = ∅”.
Tag 07T7, a definition
Tag 07T7 in the Stacks Project.
Declarations registered for the tag:
Ideal.torsionOfregistered withadd_to_stacksin StacksFrontier/MathlibRegistrations/Ch10.lean, line 162 (StacksFrontier): “(1) Ann(m) = {f | fm = 0}”.Module.annihilatorregistered withadd_to_stacksin StacksFrontier/MathlibRegistrations/Ch10.lean, line 163 (StacksFrontier): “(2) Ann(M) = {f | fm = 0 for all m}”. References: EGA 0 (5.3.7), “special case”; EGA IV (5.6.11); EGA IV (5.6.11.1); SGA 2 III (1.1).
Tag 07T8, a lemma
Tag 07T8 in the Stacks Project.
ann_extension_eq_ann_baseChange_elem, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Ideal/Annihilator/FlatBaseChange.lean, line 78.
For a flat ring map
φ : R → Sand anymin anR-moduleM, the extension of the annihilatorAnn_R(m)toSequals theS-annihilator of the base-changed element1 ⊗ m ∈ S ⊗_R M:Ann_R(m) S = Ann_S(1 ⊗ m).
theorem ann_extension_eq_ann_baseChange_elem [Module.Flat R S] (m : M) :
Ideal.map (algebraMap R S) (Ideal.torsionOf R M m)
= Ideal.torsionOf S (S ⊗[R] M) ((1 : S) ⊗ₜ[R] m)
ann_extension_eq_ann_baseChange_module, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Ideal/Annihilator/FlatBaseChange.lean, line 301. References: EGA IV (2.1.11), “affine case”.
For a flat ring map
φ : R → Sand a finiteR-moduleM, the extension of the annihilatorAnn_R(M)toSequals theS-annihilator of the base changeS ⊗_R M:Ann_R(M) S = Ann_S(S ⊗_R M).
theorem ann_extension_eq_ann_baseChange_module [Module.Flat R S] [Module.Finite R M] :
Ideal.map (algebraMap R S) (Module.annihilator R M)
= Module.annihilator S (S ⊗[R] M)
Tag 00L2, a lemma
Tag 00L2 in the Stacks Project.
Declarations registered for the tag:
Module.isClosed_supportregistered withadd_to_stacksin StacksFrontier/RingTheory/Support/Basic.lean, line 168 (StacksFrontier): “the support of a finite module is closed”. References: EGA 0 (16.1.7), “partial”; EGA 0 (5.2.2), “special case”; EGA I (4.1.2), “affine case”; EGA IV (5.1.12), “special case”; EGA IV (8.9.1), “closedness of Supp(F)”; SGA 3 VIA (2.1.3), “special case”.
Tag 0BUR, a lemma
Tag 0BUR in the Stacks Project.
IsBaseChange.support_eq_preimage_comap, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Support/Basic.lean, line 137.
Stacks 0BUR. Let
R → Sbe a ring map, letMbe a finiteR-module and letf : M →ₗ[R] Nexhibit theS-moduleNas the base changeS ⊗_R M. ThenSupp_S(N)is the inverse image ofSupp_R(M)under the mapSpec(S) → Spec(R)induced byR → S.
theorem support_eq_preimage_comap {R S M N : Type*} [CommRing R] [CommRing S]
[Algebra R S] [AddCommGroup M] [Module R M] [Module.Finite R M] [AddCommGroup N]
[Module R N] [Module S N] [IsScalarTower R S N] {f : M →ₗ[R] N} (h : IsBaseChange S f) :
Module.support S N = PrimeSpectrum.comap (algebraMap R S) ⁻¹' Module.support R M
Tag 051B, a lemma
Tag 051B in the Stacks Project.
support_isClosed_and_compl_isCompact_of_finitePresentation, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Support/Basic.lean, line 232. The attribute's comment: “Assumes (Module.annihilator R M).FG as a hypothesis. Stacks 051B derives that finite generation from a presentation matrix, so that step is not formalized.”. References: EGA 0 (16.1.7), “special case”; EGA 0 (5.2.2), “special case”.
The support of a finitely presented module whose annihilator is finitely generated is closed with quasi-compact complement.
The argument factors as: for a finite module
M,Supp M = V(Ann M); and closed-with-quasi-compact-complement is a topological consequence of beingV(I)forIfinitely generated. Finite generation ofAnn(R, M)forMfinitely presented rests on the ideal ofn × nminors of a presentation matrix being finitely generated, and is taken here as the hypothesis(Module.annihilator R M).FG.
theorem support_isClosed_and_compl_isCompact_of_finitePresentation
[Module.FinitePresentation R M]
(hAnn : (Module.annihilator R M).FG) :
IsClosed (Module.support R M) ∧ IsCompact (Module.support R M)ᶜ
Tag 00L3, a lemma
Tag 00L3 in the Stacks Project.
support_submodule_subset, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Support/Basic.lean, line 192. The attribute's comment: “(2)”. References: EGA 0 (1.7.2), “partial”.
The support of a submodule is contained in the support of the ambient module.
theorem support_submodule_subset
{R : Type*} {M : Type*} [CommRing R] [AddCommGroup M] [Module R M]
(N : Submodule R M) :
Module.support R N ⊆ Module.support R M
Sources
Section10.41 Going up and going down#
Section 10.41 of the Stacks Project, Tag 00HU. 8 tags here are carried by 10 declarations of the repository (all in StacksFrontier), quoted below from AxiomMath/Stacks at commit 5ed82d14.
Tag 00HV, a definition
Tag 00HV in the Stacks Project.
RingHom.GoingUp, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Ideal/GoingUpGoingDown/Defs.lean, line 63. The attribute's comment: “(1)”.
A ring map
φ : R → Ssatisfies going up if for all primesp ⊆ p'ofRand every primeqofSlying overp(that is,Ideal.comap φ q = p), there exists a primeq'ofSwithq ⊆ q'lying overp'.
def RingHom.GoingUp (φ : R →+* S) : Prop
RingHom.GoingDown, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Ideal/GoingUpGoingDown/Defs.lean, line 73. The attribute's comment: “(2)”.
A ring map
φ : R → Ssatisfies going down if for all primesp ⊆ p'ofRand every primeq'ofSlying overp'(that is,Ideal.comap φ q' = p'), there exists a primeqofSwithq ⊆ q'lying overp.
def RingHom.GoingDown (φ : R →+* S) : Prop
Tag 0407, a lemma
Tag 0407 in the Stacks Project.
isOpenMap_comap_satisfiesGoingDown, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Spectrum/Prime/Specialization.lean, line 653.
Stacks Tag 0407 (Lemma 10.41.2): if the induced map on prime spectra
φ* = PrimeSpectrum.comap φ : Spec(S) → Spec(R)is an open map, thenφsatisfies going down.
theorem isOpenMap_comap_satisfiesGoingDown
{R S : Type*} [CommRing R] [CommRing S] (φ : R →+* S)
(h : IsOpenMap (comap φ)) : φ.SatisfiesGoingDown
Tag 00HW, a lemma
Tag 00HW in the Stacks Project.
goingDown_iff_liftsGeneralizations, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Spectrum/Prime/Specialization.lean, line 299. The attribute's comment: “(1)”.
Stacks 00HW (1). A ring map
φ : R → Ssatisfies going down if and only if generalizations lift alongSpec(S) → Spec(R).
theorem goingDown_iff_liftsGeneralizations (φ : R →+* S) :
RingHom.GoingDown φ ↔
LiftsGeneralizations (PrimeSpectrum.comap φ)
goingUp_iff_liftsSpecializations, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Spectrum/Prime/Specialization.lean, line 308. The attribute's comment: “(2)”.
Stacks 00HW (2). A ring map
φ : R → Ssatisfies going up if and only if specializations lift alongSpec(S) → Spec(R).
theorem goingUp_iff_liftsSpecializations (φ : R →+* S) :
RingHom.GoingUp φ ↔
LiftsSpecializations (PrimeSpectrum.comap φ)
Tag 00HX, a lemma
Tag 00HX in the Stacks Project.
RingHom.hasGoingDown_and_hasGoingUp_comp, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Spectrum/Prime/Specialization.lean, line 128. The attribute's comment: “Both assertions, for a composite of ring maps. For a tower of algebras they are Algebra.HasGoingDown.trans and Algebra.HasGoingUp.trans, which carry this tag as well.”.
Stacks 00HX. If the ring maps
f : R →+* Sandg : S →+* Tsatisfy going down, then so doesg ∘ f; likewise for going up.
public theorem hasGoingDown_and_hasGoingUp_comp {R S T : Type*} [CommRing R] [CommRing S]
[CommRing T] (f : R →+* S) (g : S →+* T) :
(letI := f.toAlgebra; letI := g.toAlgebra; letI := (g.comp f).toAlgebra;
Algebra.HasGoingDown R S → Algebra.HasGoingDown S T → Algebra.HasGoingDown R T) ∧
(letI := f.toAlgebra; letI := g.toAlgebra; letI := (g.comp f).toAlgebra;
Algebra.HasGoingUp R S → Algebra.HasGoingUp S T → Algebra.HasGoingUp R T)
Tag 00HZ, a lemma
Tag 00HZ in the Stacks Project.
goingUp_iff_isClosedMap_comap, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Spectrum/Prime/Specialization.lean, line 358.
Stacks 00HZ. For a ring map
φ : R → S, going up holds if and only if the induced mapSpec(S) → Spec(R)is closed.
theorem goingUp_iff_isClosedMap_comap (φ : R →+* S) :
RingHom.GoingUp φ ↔ IsClosedMap (PrimeSpectrum.comap φ)
Tag 037F, a lemma
Tag 037F in the Stacks Project.
Stacks.TensorProductSpecImage.images_eq, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/TensorProduct/SpecImage.lean, line 257.
The images in
Spec(R)of the two diagonal maps coincide:im(Spec(α)) = im(Spec(α')).
theorem images_eq (hι : Function.Injective ι) :
Set.range (PrimeSpectrum.comap (R := R)
(S := Localization.Away (baseChangeIncl k R S S' ι f)) (alphaMap k R S S' ι f)) =
Set.range (PrimeSpectrum.comap (R := R) (S := Localization.Away f) (alphaPrime k R S'
f))
Tag 00EA, a lemma
Tag 00EA in the Stacks Project.
localization_eq_of_unique_prime_over, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Localization/UniquePrimeOver.lean, line 67.
If
pis a prime ofRwith a unique primeqofSlying over it, andR → Ssatisfies going up (or going down together with injectivity of contraction on primes), then the localization ofSat the image ofR ∖ pis also a localization ofSat the complement ofq; that is,S_p = S_q.
theorem localization_eq_of_unique_prime_over
{R S : Type*} [CommRing R] [CommRing S] [Algebra R S]
(p : Ideal R) [p.IsPrime] (q : Ideal S) [q.IsPrime] [q.LiesOver p]
(huniq : ∀ q' : Ideal S, q'.IsPrime → q'.LiesOver p → q' = q)
(h2 :
(∀ (p₁ p₂ : Ideal R) (q₁ : Ideal S), p₁.IsPrime → p₂.IsPrime → q₁.IsPrime →
p₁ ≤ p₂ → q₁.under R = p₁ →
∃ q₂ : Ideal S, q₂.IsPrime ∧ q₁ ≤ q₂ ∧ q₂.under R = p₂) ∨
(Algebra.HasGoingDown R S ∧
∀ (q₁ q₂ : Ideal S), q₁.IsPrime → q₂.IsPrime →
q₁.under R = q₂.under R → q₁ = q₂)) :
IsLocalization q.primeCompl
(Localization (Algebra.algebraMapSubmonoid S p.primeCompl))
Tag 080T, a lemma
Tag 080T in the Stacks Project.
generalizingMap_suppMap, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Support/GoingDown.lean, line 379. References: SGA 1 IV (2.4), “more general”.
Stacks Tag 080T (topological formulation). If
Nis a finiteS-module that is flat overR, then generalizations lift alongπ : Supp(N) → Spec(R).
theorem generalizingMap_suppMap [Module.Finite S N] [Module.Flat R N] :
GeneralizingMap (suppMap (R := R) (S := S) (N := N))
Sources
Section10.42 Separable extensions#
Section 10.42 of the Stacks Project, Tag 030I. 4 tags here are carried by 3 declarations of the repository (all in StacksFrontier) and 2 registered declarations, quoted below from AxiomMath/Stacks at commit 5ed82d14.
Tag 030O, a definition
Tag 030O in the Stacks Project.
Algebra.IsSeparableExtension, a class in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/FieldTheory/Separable/Defs.lean, line 91. The attribute's comment: “part (2)”.
A field extension
K/kis separable if every subextensionk ⊆ K' ⊆ KwithK'finitely generated overkis separably generated overk. For algebraic extensions this is Mathlib'sAlgebra.IsSeparable.
public class IsSeparableExtension (k K : Type*) [Field k] [Field K] [Algebra k K] : Prop
Tag 030P, a lemma
Tag 030P in the Stacks Project.
Declarations registered for the tag:
Algebra.isSeparable_tower_bot_of_isSeparableregistered withadd_to_stacksin StacksFrontier/FieldTheory/Separable/Basic.lean, line 40 (StacksFrontier): “a subextension of a separable extension is separable”.IntermediateField.isSeparable_tower_botregistered withadd_to_stacksin StacksFrontier/FieldTheory/Separable/Basic.lean, line 42 (StacksFrontier): “the intermediate-field form”.
Tag 030Q, a lemma
Tag 030Q in the Stacks Project.
separablyGenerated_fg_exists_primitive_transcendence_basis, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/FieldTheory/TranscendentalSeparable.lean, line 588.
Stacks 030Q (Lemma 10.42.3). If
K/kis separably generated and finitely generated, with transcendence degreer, then there arex_1, ..., x_{r+1} ∈ K(here packaged asx : Fin (r+1) → K) such that:
x_1, ..., x_r(the entriesx i.castSucc) form a transcendence basis ofKoverk;K = k(x_1, ..., x_{r+1})(the adjoin of the whole tuple is⊤); andx_{r+1}(the entryx (Fin.last r)) is separable over the subfieldk(x_1, ..., x_r)generated by the firstrentries.
theorem separablyGenerated_fg_exists_primitive_transcendence_basis
(k K : Type*) [Field k] [Field K] [Algebra k K]
(hsep : SeparablyGenerated k K)
(hfg : (⊤ : IntermediateField k K).FG)
(r : ℕ) (hr : Algebra.trdeg k K = r) :
∃ x : Fin (r + 1) → K,
IsTranscendenceBasis k (fun i : Fin r => x i.castSucc) ∧
IntermediateField.adjoin k (Set.range x) = ⊤ ∧
IsSeparable
(↥(IntermediateField.adjoin k (Set.range (fun i : Fin r => x i.castSucc))))
(x (Fin.last r))
Tag 04KM, a lemma
Tag 04KM in the Stacks Project.
exists_isPurelyInseparable_and_isSeparablyGenerated_of_essFiniteType, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/FieldTheory/TranscendentalSeparable.lean, line 517.
Stacks 04KM. Let
K/kbe a finitely generated field extension and letΩ/Kbe a perfect field extension. Then insideΩthere is a diagramwithK → K' ↑ ↑ k → k'k'/kandK'/Kfinite purely inseparable andK'/k'separably generated.
public theorem exists_isPurelyInseparable_and_isSeparablyGenerated_of_essFiniteType
(k K Ω : Type*) [Field k] [Field K] [Field Ω] [Algebra k K] [Algebra k Ω] [Algebra K Ω]
[IsScalarTower k K Ω] [PerfectField Ω] [Algebra.EssFiniteType k K] :
∃ (K' : IntermediateField K Ω) (k' : IntermediateField k ↥K'),
Module.Finite K ↥K' ∧ IsPurelyInseparable K ↥K' ∧
Module.Finite k ↥k' ∧ IsPurelyInseparable k ↥k' ∧
Algebra.IsSeparablyGenerated ↥k' ↥K'
Sources
Section10.43 Geometrically reduced algebras#
Section 10.43 of the Stacks Project, Tag 05DS. 8 tags here are carried by 11 declarations of the repository (all in StacksFrontier), quoted below from AxiomMath/Stacks at commit 5ed82d14.
Tag 030T, a lemma
Tag 030T in the Stacks Project.
DirectLimit.instIsGeometricallyReduced, an instance in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/GeometricallyReduced/DirectLimit.lean, line 303. The attribute's comment: “Part (3): a directed colimit of geometrically reduced algebras is geometrically reduced, stated for DirectLimit of a directed system of algebras over a commutative base ring. Parts (1) and (2) are Algebra.IsGeometricallyReduced.of_injective and Algebra.IsGeometricallyReduced.of_forall_fg; part (4) is Lemma 04KN.”.
Stacks 030T (3). A directed colimit of geometrically reduced
R-algebras is geometrically reduced overR.
public instance instIsGeometricallyReduced
{R : Type*} [CommRing R] {ι : Type*} [Preorder ι] [IsDirectedOrder ι] [Nonempty ι]
{G : ι → Type*} [∀ i, Ring (G i)] [∀ i, Algebra R (G i)]
{T : ∀ ⦃i j : ι⦄, i ≤ j → Type*} {f : ∀ i j (h : i ≤ j), T h}
[∀ i j (h : i ≤ j), FunLike (T h) (G i) (G j)]
[∀ i j (h : i ≤ j), AlgHomClass (T h) R (G i) (G j)]
[DirectedSystem G (f · · ·)]
[∀ i, Algebra.IsGeometricallyReduced R (G i)] :
Algebra.IsGeometricallyReduced R (DirectLimit G f)
Tag 04KN, a lemma
Tag 04KN in the Stacks Project.
geometricallyReduced_localization, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/GeometricallyReduced/Basic.lean, line 188. The attribute's comment: “(1)”. References: EGA IV (7.3.9), “(ii)”.
If
Ris geometrically reduced over the fieldkandAis a localization ofRat a multiplicative subsetM ⊆ R, carrying the inducedk-algebra structure, thenAis geometrically reduced overk.Fix a field extension
K/k; thenK ⊗[k] Ris reduced. The key base-change fact is thatK ⊗[k] Ais isomorphic to a localization ofK ⊗[k] R: viewingK ⊗[k] Ras anR-algebra,(K ⊗[k] R) ⊗[R] Ais a localization ofK ⊗[k] Rat the image submonoidAlgebra.algebraMapSubmonoid (K ⊗[k] R) M, and cancelling the base change gives aK-algebra isomorphism(K ⊗[k] R) ⊗[R] A ≃ₐ[K] K ⊗[k] A. A localization of a reduced ring is reduced, so(K ⊗[k] R) ⊗[R] Ais reduced and reducedness transfers back toK ⊗[k] Aalong that isomorphism. AsK/kwas arbitrary,Ais geometrically reduced overk.
theorem geometricallyReduced_localization
(k : Type u) [Field k] (R : Type v) [CommRing R] [Algebra k R]
(M : Submonoid R) (A : Type v) [CommRing A] [Algebra R A] [IsLocalization M A]
[Algebra k A] [IsScalarTower k R A]
(hR : GeometricallyReduced.{u, v, w} k R) :
GeometricallyReduced.{u, v, w} k A
geometricallyReduced_polynomial, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/GeometricallyReduced/Basic.lean, line 220. The attribute's comment: “(2)”. References: EGA IV (4.6.21), “4.6.21(ii), special case”; EGA IV (4.6.5), “(ii), special case”.
If
Ris geometrically reduced over the fieldk, then so is the polynomial ringR[x]in one variable.Fix a field extension
K/k. ThenK ⊗[k] Ris reduced, hence so is the polynomial ring(K ⊗[k] R)[X], and transferring reducedness backward along the ring isomorphismK ⊗[k] R[X] ≃+* (K ⊗[k] R)[X]showsK ⊗[k] R[X]is reduced. AsK/kwas arbitrary,R[X]is geometrically reduced.
theorem geometricallyReduced_polynomial
(k : Type u) [Field k] (R : Type v) [CommRing R] [Algebra k R]
(hR : GeometricallyReduced.{u, v, w} k R) :
GeometricallyReduced.{u, v, w} k (Polynomial R)
Tag 00I3, a lemma
Tag 00I3 in the Stacks Project.
not_isReduced_of_not_isReduced, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/TensorProduct/Reduced.lean, line 122. The attribute's comment: “nonreduced”.
Stacks 00I3 (part 1). If
R ⊗[k] Sis nonreduced, then there exist finitely generated subalgebrasR' ⊆ R,S' ⊆ Ssuch thatR' ⊗[k] S'is not reduced.
theorem not_isReduced_of_not_isReduced (h : ¬ IsReduced (R ⊗[k] S)) :
∃ (R' : Subalgebra k R) (S' : Subalgebra k S), R'.FG ∧ S'.FG ∧
¬ IsReduced (R' ⊗[k] S')
exists_zerodivisor_of_exists_zerodivisor, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/TensorProduct/Reduced.lean, line 144. The attribute's comment: “zerodivisor”.
Stacks 00I3 (part 2). If
R ⊗[k] Scontains a nonzero zerodivisor, then there exist finitely generated subalgebrasR' ⊆ R,S' ⊆ Ssuch thatR' ⊗[k] S'contains a nonzero zerodivisor.
theorem exists_zerodivisor_of_exists_zerodivisor
(h : ∃ x : R ⊗[k] S, x ≠ 0 ∧ ∃ y : R ⊗[k] S, y ≠ 0 ∧ x * y = 0) :
∃ (R' : Subalgebra k R) (S' : Subalgebra k S), R'.FG ∧ S'.FG ∧
∃ x : R' ⊗[k] S', x ≠ 0 ∧ ∃ y : R' ⊗[k] S', y ≠ 0 ∧ x * y = 0
exists_idempotent_of_exists_idempotent, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/TensorProduct/Reduced.lean, line 167. The attribute's comment: “idempotent”.
Stacks 00I3 (part 3). If
R ⊗[k] Scontains a nontrivial idempotent, then there exist finitely generated subalgebrasR' ⊆ R,S' ⊆ Ssuch thatR' ⊗[k] S'contains a nontrivial idempotent.
theorem exists_idempotent_of_exists_idempotent
(h : ∃ e : R ⊗[k] S, e * e = e ∧ e ≠ 0 ∧ e ≠ 1) :
∃ (R' : Subalgebra k R) (S' : Subalgebra k S), R'.FG ∧ S'.FG ∧
∃ e : R' ⊗[k] S', e * e = e ∧ e ≠ 0 ∧ e ≠ 1
Tag 034N, a lemma
Tag 034N in the Stacks Project.
Algebra.IsGeometricallyReduced.isReduced_tensorProduct, an instance in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/GeometricallyReduced/TensorProduct.lean, line 113. The attribute's comment: “Stated with Mathlib's Algebra.IsGeometricallyReduced in place of the source's Definition 030S, the two being equivalent by Lemma 030V; as an instance, since both hypotheses are classes.”.
The tensor product of a reduced
k-algebraRwith a geometrically reducedk-algebraSis reduced.
public instance Algebra.IsGeometricallyReduced.isReduced_tensorProduct
(k R S : Type*) [Field k] [CommRing R] [Algebra k R] [IsReduced R]
[CommRing S] [Algebra k S] [Algebra.IsGeometricallyReduced k S] :
IsReduced (R ⊗[k] S)
Tag 030U, a lemma
Tag 030U in the Stacks Project.
Algebra.isReduced_tensorProduct_of_isSeparableExtension_or_isSeparablyGenerated, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/GeometricallyReduced/TensorProduct.lean, line 194. The attribute's comment: “Stated with the two notions of Definition 030O as a disjunctive hypothesis, as in the source: separably generated implies separable is Lemma 030X, whose proof uses this lemma.”. References: EGA 0 (23.1.7), “partial”; EGA IV (4.3.5), “more general”; EGA IV (4.3.6), “special case”.
Let
kbe a field, letSbe a reducedk-algebra and letK/kbe a field extension which is either separable or separably generated. ThenK ⊗[k] Sis reduced.
public theorem Algebra.isReduced_tensorProduct_of_isSeparableExtension_or_isSeparablyGenerated
{k K S : Type*} [Field k] [Field K] [Algebra k K] [CommRing S] [Algebra k S] [IsReduced S]
(hK : Algebra.IsSeparableExtension k K ∨ Algebra.IsSeparablyGenerated k K) :
IsReduced (K ⊗[k] S)
Tag 07K2, a lemma
Tag 07K2 in the Stacks Project.
Algebra.IsGeometricallyReduced.of_forall_minimalPrimes, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/Nilpotent/GeometricallyReduced.lean, line 131. The attribute's comment: “Stated with Mathlib's Algebra.IsGeometricallyReduced in place of the source's Definition 030S, the two being equivalent by Lemma 030V, and with the concrete localization Localization.AtPrime p for the source's S_𝔭.”.
Let
kbe a field and letSbe a reducedk-algebra such that the localizationLocalization.AtPrime pis geometrically reduced overkfor every minimal primepofS. ThenSis geometrically reduced overk.
public theorem Algebra.IsGeometricallyReduced.of_forall_minimalPrimes {k : Type u} {S : Type v}
[Field k] [CommRing S] [Algebra k S] [IsReduced S]
(H : ∀ (p : Ideal S) [p.IsPrime], p ∈ minimalPrimes S →
Algebra.IsGeometricallyReduced k (Localization.AtPrime p)) :
Algebra.IsGeometricallyReduced k S
Tag 0C2X, a lemma
Tag 0C2X in the Stacks Project.
exists_isLocalization_lmul'_of_isSeparable_isAlgebraic, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/FieldTheory/SeparableAlgebraic/Localization.lean, line 94.
Stacks Tag 0C2X (Lemma 10.43.8), primary
IsLocalizationformulation. For a separable algebraic field extensionk'/k, equippingk'with the(k' ⊗_k k')-algebra structure given by the multiplication mapm = Algebra.TensorProduct.lmul' k, there is a submonoidS ⊆ k' ⊗_k k'such thatk'is the localization ofk' ⊗_k k'atS.
theorem exists_isLocalization_lmul'_of_isSeparable_isAlgebraic
(k k' : Type*) [Field k] [Field k'] [Algebra k k']
[Algebra.IsAlgebraic k k'] [Algebra.IsSeparable k k'] :
letI : Algebra (k' ⊗[k] k') k' :=
RingHom.toAlgebra (Algebra.TensorProduct.lmul' (R := k) (S := k')).toRingHom
∃ S : Submonoid (k' ⊗[k] k'), IsLocalization S k'
Tag 0C2Y, a lemma
Tag 0C2Y in the Stacks Project.
Algebra.isGeometricallyReduced_iff_of_isSeparable, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/RingTheory/GeometricallyReduced/Separable.lean, line 47.
Stacks 0C2Y. For a separable algebraic field extension
k'/k, ak'-algebra is geometrically reduced overkif and only if it is geometrically reduced overk'.
theorem Algebra.isGeometricallyReduced_iff_of_isSeparable (k k' A : Type*) [Field k] [Field k']
[CommRing A] [Algebra k k'] [Algebra k' A] [Algebra k A] [IsScalarTower k k' A]
[Algebra.IsSeparable k k'] :
Algebra.IsGeometricallyReduced k A ↔ Algebra.IsGeometricallyReduced k' A
Sources
Loading dependency explorer…
The dependency explorer needs JavaScript and its graph data.