FLT/Slop/DimensionTheorem/GrowthLeDelta.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
10 declarations, 0 contain sorry, 0 declared as axioms
d(R) ≤ δ(R)
The growth degree of the Hilbert–Samuel function is at most the number of generators of any ideal of definition — one inequality of the dimension theorem (Stacks Project, tag 00KQ).
Strategy: monomial counting
If q = (x₁, …, xₖ) has radical 𝔪, then qⁿ/qⁿ⁺¹ is generated over R/q
by the images of the degree-n monomials in the xᵢ
(span_pow_eq_span_monomial), of which there are at most (n+1)^(k-1)
(card_sym_le from FLT/Slop/DimensionTheorem/Numeric.lean). A module with N
generators each killed by q has length at most N · ℓ(R/q)
(length_span_range_le), so summing along the filtration via
length_quotient_eq_add gives ℓ(R/qⁿ) ≤ ℓ(R/q) · (n+1)^k
(colength_pow_le). Since qⁿ ≤ 𝔪ⁿ, also ℓ(R/𝔪ⁿ) ≤ ℓ(R/qⁿ), whence
GrowthLE (hilbertSamuel R) k (growthLE_hilbertSamuel_spanFinrank).
Classically this inequality is deduced from the Hilbert–Serre theorem applied
to the associated graded ring gr_q(R), a quotient of a polynomial ring in
k variables over R/q (Atiyah–Macdonald, Ch. 11). The counting argument
here uses the same underlying idea — the associated graded ring is generated
in degree one by k elements — without any graded-ring machinery.
Main results
DimensionTheorem.growthLE_hilbertSamuel_spanFinrank— the growth bound.DimensionTheorem.growthLE_hilbertSamuel_growthDeg— the defining set ofgrowthDegis nonempty, sogrowthDegis an attained minimum.DimensionTheorem.growthDeg_le_minGenPrimary—d(R) ≤ δ(R).
Imported by 2 files
- lemma
DimensionTheorem.multiset_prod_mem_powA product of a multiset of elements of an ideal lies in the corresponding power of the ideal line 58 sourceSource documentation
A product of a multiset of elements of an ideal lies in the corresponding power of the ideal.
private lemma multiset_prod_mem_pow {q : Ideal R} {t : Multiset R} (h : ∀ x ∈ t, x ∈ q) : t.prod ∈ q ^ Multiset.card t := by … - def
DimensionTheorem.monomialThe degree-nmonomial in the elements ofsindexed by a symmetric power line 68 sourceSource documentation
The degree-
nmonomial in the elements ofsindexed by a symmetric power.private def monomial (s : Finset R) {n : ℕ} (a : Sym {x // x ∈ s} n) : R := … - lemma
DimensionTheorem.monomial_memline 72 source - lemma
DimensionTheorem.span_pow_eq_span_monomialqⁿis spanned by the degree-nmonomials in a generating set ofqline 84 sourceSource documentation
qⁿis spanned by the degree-nmonomials in a generating set ofq.private lemma span_pow_eq_span_monomial (s : Finset R) (n : ℕ) : Ideal.span (s : Set R) ^ n = Ideal.span (Set.range (monomial s (n := n))) := by …Mentions: DimensionTheorem.monomial
- lemma
DimensionTheorem.length_span_range_leA module spanned by finitely many elements each killed byqhas length at most(number of generators) * length (R ⧸ q)line 110 sourceSource documentation
A module spanned by finitely many elements each killed by
qhas length at most(number of generators) * length (R ⧸ q).private lemma length_span_range_le {M : Type*} [AddCommGroup M] [Module R M] (q : Ideal R) {ι : Type*} [Fintype ι] (w : ι → M) (hw : ∀ r ∈ q, ∀ i, r • w i = 0) : Module.length R (Submodule.span R (Set.range w)) ≤ (Fintype.card ι : ℕ∞) * Module.length R (R ⧸ q) := by … - lemma
DimensionTheorem.length_pow_quotient_leDocumented declaration: length_pow_quotient_le line 154 sourceSource documentation
The key counting bound: for an ideal
qspanned by a finsetsof sizek ≥ 1, the length ofqⁿ/qⁿ⁺¹is bounded by the length ofR/qtimes(n+1)^(k-1), a bound on the number of degree-nmonomials inkvariables.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
CommRing,Finset,LE.le,Nat,OfNat.ofNat,Finset.card,Ideal,Eq,Ideal.span,ENat,Module.length,Subtype,HasQuotient.Quotient,Submodule,HPow.hPow,HAdd.hAdd,Membership.mem,Submodule.map,RingHom.id,Submodule.mkQand 2 moreProof uses:
Submodule.span,Set.range,Sym,Eq.mpr,id,congrArg,Eq.symm,Ideal.submodule_span_eq,Eq.refl,Set.image,LinearMap,Submodule.map_span,Function.comp,Set,Set.range_comp,HSMul.hSMul,map_smul,Submodule.Quotient.mk,Submodule.mkQ_apply,propextand 17 more125 instances, coercions and auxiliary constants left out.
Tactic trace: 14 steps
Open to load the checked before-and-after goal states.
lemma length_pow_quotient_le (s : Finset R) (hs : 1 ≤ s.card) (n : ℕ) (q : Ideal R) (hq : q = Ideal.span (s : Set R)) : Module.length R (Submodule.map (Submodule.mkQ ((q ^ (n + 1) : Ideal R) : Submodule R R)) ((q ^ n : Ideal R) : Submodule R R)) ≤ ((n + 1) ^ (s.card - 1) : ℕ) * Module.length R (R ⧸ q) := by … - lemma
DimensionTheorem.colength_pow_leSumming the filtration bounds:ℓ(R/qⁿ)is bounded byℓ(R/q) * (n+1)^kwherek = s.card ≥ 1line 183 sourceSource documentation
Summing the filtration bounds:
ℓ(R/qⁿ)is bounded byℓ(R/q) * (n+1)^kwherek = s.card ≥ 1.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
CommRing,IsLocalRing,IsNoetherianRing,Finset,LE.le,Nat,OfNat.ofNat,Finset.card,Ideal,Eq,Ideal.span,Ideal.radical,IsLocalRing.maximalIdeal, DimensionTheorem.colength,HPow.hPow,HMul.hMul,HAdd.hAddProof uses:
ENat,Module.length,HasQuotient.Quotient,Nat.recAux,Subsingleton,Eq.mpr,id,congrArg,pow_zero,Top.top,Ideal.one_eq_top,Iff.mpr,Submodule,Submodule.Quotient.subsingleton_iff,rfl,Module.length_eq_zero,zero_le,Ideal.pow_le_pow_right,Nat.le_succ,HSub.hSuband 68 more125 instances, coercions and auxiliary constants left out.
Tactic trace: 28 steps
Open to load the checked before-and-after goal states.
lemma colength_pow_le (s : Finset R) (hs : 1 ≤ s.card) (q : Ideal R) (hq : q = Ideal.span (s : Set R)) (hrad : q.radical = maximalIdeal R) (n : ℕ) : colength R (q ^ n) ≤ colength R q * (n + 1) ^ s.card := by …Mentions: DimensionTheorem.colength
- theorem
DimensionTheorem.growthLE_hilbertSamuel_spanFinrankd(R) ≤ δ(R), main lemma: the Hilbert–Samuel function grows at most liken^kwherekis the number of generators of any ideal of definition line 229 sourceSource documentation
d(R) ≤ δ(R), main lemma: the Hilbert–Samuel function grows at most liken^kwherekis the number of generators of any ideal of definition.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
CommRing,IsLocalRing,IsNoetherianRing,Ideal,Eq,Ideal.radical,IsLocalRing.maximalIdeal, DimensionTheorem.GrowthLE, DimensionTheorem.hilbertSamuel,Submodule.spanFinrankProof uses:
Finset,And,Nat,Finset.card,Submodule,Submodule.span,Exists,Submodule.FG.exists_span_finset_card_eq_spanFinrank,IsNoetherian.noetherian,Ideal.span,Eq.mpr,id,congrArg,Eq.symm,Ideal.submodule_span_eq,Eq.refl,dite,LE.le,OfNat.ofNat,Exists.introand 47 more65 instances, coercions and auxiliary constants left out.
Tactic trace: 26 steps
Open to load the checked before-and-after goal states.
theorem growthLE_hilbertSamuel_spanFinrank {I : Ideal R} (h : I.radical = maximalIdeal R) : GrowthLE (hilbertSamuel R) I.spanFinrank := by …Mentions: DimensionTheorem.GrowthLE, DimensionTheorem.hilbertSamuel
- theorem
DimensionTheorem.growthLE_hilbertSamuel_growthDegThe defining set ofgrowthDegis nonempty;growthDegis a true minimum line 263 sourceSource documentation
The defining set of
growthDegis nonempty;growthDegis a true minimum.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
CommRing,IsLocalRing,IsNoetherianRing, DimensionTheorem.GrowthLE, DimensionTheorem.hilbertSamuel, DimensionTheorem.growthDegProof uses:
Submodule.spanFinrank,IsLocalRing.maximalIdeal, DimensionTheorem.growthLE_hilbertSamuel_spanFinrank,Ideal.IsPrime.radical,Ideal.IsMaximal.isPrime,Nat.sInf_mem,Set.ofPred,Nat,Exists.intro,Membership.mem,Set8 instances, coercions and auxiliary constants left out.
Tactic trace: 3 steps
Open to load the checked before-and-after goal states.
theorem growthLE_hilbertSamuel_growthDeg : GrowthLE (hilbertSamuel R) (growthDeg R) := by …Mentions: DimensionTheorem.GrowthLE, DimensionTheorem.hilbertSamuel, DimensionTheorem.growthDeg
- theorem
DimensionTheorem.growthDeg_le_minGenPrimaryd(R) ≤ δ(R)line 271 sourceSource documentation
d(R) ≤ δ(R).standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
CommRing,IsLocalRing,IsNoetherianRing,LE.le,Nat, DimensionTheorem.growthDeg, DimensionTheorem.minGenPrimaryProof uses:
Set.Nonempty,Set.ofPred,Exists,Ideal,And,Eq,Ideal.radical,IsLocalRing.maximalIdeal,Submodule.spanFinrank,Exists.intro,Membership.mem,Set,And.intro,Ideal.IsPrime.radical,Ideal.IsMaximal.isPrime,rfl,Nat.sInf_mem,Nat.sInf_le, DimensionTheorem.GrowthLE, DimensionTheorem.hilbertSamuel and 2 more12 instances, coercions and auxiliary constants left out.
Tactic trace: 3 steps
Open to load the checked before-and-after goal states.
theorem growthDeg_le_minGenPrimary : growthDeg R ≤ minGenPrimary R := by …
Mentions: DimensionTheorem.growthDeg, DimensionTheorem.minGenPrimary