FLT/Slop/DimensionTheorem/Main.lean
Explanation legend Lean4 Domain Explanation Language (L4DEL)
L4DEL explanations are a separate layer. They do not change the Lean source. Intuition is explanatory prose; numbered items are a reading path; sources link the wording back to evidence.
- L4DEL
- Lean4 Domain Explanation Language
Credit: The upstream authors and contributors retain credit for the project and mathematics. lean4-explainer only renders their pinned source and adds the separately disclosed explanation layer.
Project sources: Pinned project documentation, Pinned FLT blueprint introduction
4 declarations, 0 contain sorry, 0 declared as axioms
The dimension theorem for Noetherian local rings
For a Noetherian local ring (R, 𝔪), the following three quantities coincide
(Atiyah–Macdonald, Thm. 11.14; Stacks Project, tag 00KQ):
dim R— the Krull dimension (Mathlib'sringKrullDim R);d(R)— the growth degree of the Hilbert–Samuel functionn ↦ ℓ(R ⧸ 𝔪ⁿ)(growthDeg R);δ(R)— the least number of generators of an ideal of definition, i.e. of an𝔪-primary ideal (minGenPrimary R).
The proof is the classical cycle dim ≤ d ≤ δ ≤ dim:
dim ≤ d— Artin–Rees induction (FLT/Slop/DimensionTheorem/DimLeGrowth.lean);d ≤ δ— monomial counting (FLT/Slop/DimensionTheorem/GrowthLeDelta.lean);δ ≤ dim— existence of systems of parameters, from the converse of Krull's height theorem (FLT/Slop/DimensionTheorem/DimEqDelta.lean); the direct inequalitydim ≤ δ(Krull's height theorem) is also proved there, sodim = δdoes not depend on the Hilbert–Samuel machinery.
Main results
DimensionTheorem.dimension_theorem—dim R = d(R)anddim R = δ(R).DimensionTheorem.ringKrullDim_eq_growthDeg,ringKrullDim_le_growthDeg,growthDeg_eq_minGenPrimary— the individual identities.
Formal scope
This development identifies dimension with the polynomial-growth degree of the
Hilbert–Samuel function; it does not construct the eventual Hilbert–Samuel
polynomial itself (the Hilbert–Serre theorem), for which the growth-order and
polynomial-degree definitions of d(R) agree. The results depend only on the
standard axioms (propext, Classical.choice, Quot.sound); the development
is sorry-free.
Imports (3)
Imported by 2 files
- theorem
DimensionTheorem.ringKrullDim_le_growthDegdim R ≤ d(R)line 58 sourceSource documentation
dim R ≤ d(R).standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
CommRing,IsLocalRing,IsNoetherianRing,LE.le,WithBot,ENat,ringKrullDim, DimensionTheorem.growthDegProof uses: DimensionTheorem.ringKrullDim_le_of_growthLE, DimensionTheorem.growthLE_hilbertSamuel_growthDeg
10 instances, coercions and auxiliary constants left out.
theorem ringKrullDim_le_growthDeg : ringKrullDim R ≤ (growthDeg R : WithBot ℕ∞) := …Mentions: DimensionTheorem.growthDeg
- theorem
DimensionTheorem.ringKrullDim_eq_growthDegThe dimension theorem for Noetherian local rings, first equality: the Krull dimension equals the growth degree of the Hilbert–Samuel function line 64 sourceSource documentation
The dimension theorem for Noetherian local rings, first equality: the Krull dimension equals the growth degree of the Hilbert–Samuel function.
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
CommRing,IsLocalRing,IsNoetherianRing,Eq,WithBot,ENat,ringKrullDim, DimensionTheorem.growthDegProof uses:
le_antisymm, DimensionTheorem.ringKrullDim_le_growthDeg,Trans.trans,LE.le, DimensionTheorem.minGenPrimary,cast,Nat,Eq.symm,Iff.mpr,Nat.cast_le, DimensionTheorem.growthDeg_le_minGenPrimary, DimensionTheorem.minGenPrimary_le_ringKrullDim49 instances, coercions and auxiliary constants left out.
Tactic trace: 3 steps
Open to load the checked before-and-after goal states.
theorem ringKrullDim_eq_growthDeg : ringKrullDim R = (growthDeg R : WithBot ℕ∞) := by …Mentions: DimensionTheorem.growthDeg
- theorem
DimensionTheorem.dimension_theoremThe dimension theorem for Noetherian local rings:dim R = d(R) = δ(R)line 74 sourceSource documentation
The dimension theorem for Noetherian local rings:
dim R = d(R) = δ(R).standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
CommRing,IsLocalRing,IsNoetherianRing,And,Eq,WithBot,ENat,ringKrullDim, DimensionTheorem.growthDeg, DimensionTheorem.minGenPrimaryProof uses:
And.intro, DimensionTheorem.ringKrullDim_eq_growthDeg, DimensionTheorem.ringKrullDim_eq_minGenPrimary10 instances, coercions and auxiliary constants left out.
theorem dimension_theorem : ringKrullDim R = (growthDeg R : WithBot ℕ∞) ∧ ringKrullDim R = (minGenPrimary R : WithBot ℕ∞) := …Mentions: DimensionTheorem.growthDeg, DimensionTheorem.minGenPrimary
- theorem
DimensionTheorem.growthDeg_eq_minGenPrimaryThe three quantities as natural numbers:d(R) = δ(R)line 80 sourceSource documentation
The three quantities as natural numbers:
d(R) = δ(R).standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
CommRing,IsLocalRing,IsNoetherianRing,Eq,Nat, DimensionTheorem.growthDeg, DimensionTheorem.minGenPrimaryProof uses:
WithBot,ENat,ringKrullDim, DimensionTheorem.ringKrullDim_eq_growthDeg, DimensionTheorem.ringKrullDim_eq_minGenPrimary,Eq.trans,Eq.symm,cast13 instances, coercions and auxiliary constants left out.
Tactic trace: 4 steps
Open to load the checked before-and-after goal states.
theorem growthDeg_eq_minGenPrimary : growthDeg R = minGenPrimary R := by …
Mentions: DimensionTheorem.growthDeg, DimensionTheorem.minGenPrimary