FLT/Slop/DimensionTheorem/Numeric.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
8 declarations, 0 contain sorry, 0 declared as axioms
Numerical growth lemmas for the dimension theorem
Purely arithmetic facts about functions ℕ → ℕ; no ring theory in this file.
We say f has growth degree at most d (DimensionTheorem.GrowthLE f d)
if f n ≤ C * (n + 1) ^ d for some constant C.
Main results
DimensionTheorem.GrowthLE.of_le_sub— the telescoping lemma: ifgis monotone,g n + f (n - c) ≤ f nfor alln ≥ c, andfhas growth degree at mostd + 1, thenghas growth degree at mostd.DimensionTheorem.card_sym_le— there are at most(n + 1) ^ (k - 1)monomials of degreenink ≥ 1variables:Fintype.card (Sym (Fin k) n) ≤ (n + 1) ^ (k - 1).
Sources
The telescoping lemma has no direct textbook counterpart. Classical treatments
(e.g. Atiyah–Macdonald, Introduction to Commutative Algebra, Ch. 11) define
d(R) as the degree of the Hilbert–Samuel polynomial, for which "the
difference P(n) - P(n - c) has degree one less" is immediate. This
development defines d(R) by growth order alone (avoiding the Hilbert–Serre
theorem), and that step is replaced here: for monotone g dominated by the
c-step difference of f, summing along an arithmetic progression of step
c gives n * g n ≤ f (n * (c + 1)), which forces the degree drop. Used in
FLT/Slop/DimensionTheorem/DimLeGrowth.lean for the inductive step of dim R ≤ d(R).
The counting bound is Nat.multichoose k n ≤ (n + 1) ^ (k - 1), by induction
from the Pascal-type recurrence Nat.multichoose_succ_succ. Used in
FLT/Slop/DimensionTheorem/GrowthLeDelta.lean to bound the number of degree-n
monomials in the generators of an ideal of definition.
Imports (3)
Imported by 2 files
- def
DimensionTheorem.GrowthLEf : ℕ → ℕgrows at most liken ^ dline 52 sourceSource documentation
f : ℕ → ℕgrows at most liken ^ d. We use(n + 1) ^ dto avoid degenerate behavior atn = 0.standard axioms: propext what this means
Statement uses:
NatProof uses:
Exists,LE.le,HMul.hMul,HPow.hPow,HAdd.hAdd,OfNat.ofNat10 instances, coercions and auxiliary constants left out.
def GrowthLE (f : ℕ → ℕ) (d : ℕ) : Prop := …
- lemma
DimensionTheorem.GrowthLE.of_leline 57 sourcestandard axioms: propext what this means
Statement uses:
Nat, DimensionTheorem.GrowthLE,LE.leProof uses:
HMul.hMul,HPow.hPow,HAdd.hAdd,OfNat.ofNat,Exists.intro,LE.le.trans13 instances, coercions and auxiliary constants left out.
Tactic trace: 2 steps
Open to load the checked before-and-after goal states.
- lemma
DimensionTheorem.GrowthLE.monoline 62 sourcestandard axioms: propext what this means
Statement uses:
Nat, DimensionTheorem.GrowthLE,LE.leProof uses:
HMul.hMul,HPow.hPow,HAdd.hAdd,OfNat.ofNat,Exists.intro,LE.le.trans,Nat.mul_le_mul_left,Nat.pow_le_pow_right,Nat.succ,Nat.succ_le_succ,Nat.zero_le13 instances, coercions and auxiliary constants left out.
Tactic trace: 3 steps
Open to load the checked before-and-after goal states.
- lemma
DimensionTheorem.GrowthLE.of_boundedline 68 sourcestandard axioms: propext what this means
Statement uses:
Nat,LE.le, DimensionTheorem.GrowthLE,OfNat.ofNatProof uses:
Exists.intro,HMul.hMul,HPow.hPow,HAdd.hAdd,Eq.mpr,id,Eq,congrArg,Eq.trans,pow_zero,mul_one17 instances, coercions and auxiliary constants left out.
Tactic trace: 1 steps
Open to load the checked before-and-after goal states.
- lemma
DimensionTheorem.GrowthLE.telescope_auxTelescoping lemma line 78 sourceSource documentation
Telescoping lemma. If
gis monotone and, forn ≥ c, the valueg nis dominated by the differencef n - f (n - c)(stated additively asg n + f (n - c) ≤ f n), andfhas growth degree at mostd + 1, thenghas growth degree at mostd.This is the numerical heart of the inductive step
dim ≤ d(R)in the dimension theorem: passing toR/xRdrops the growth degree of the Hilbert–Samuel function.private lemma telescope_aux {f g : ℕ → ℕ} {c : ℕ} (h : ∀ n, c ≤ n → g n + f (n - c) ≤ f n) (n : ℕ) : ∀ m : ℕ, f n + ∑ j ∈ Finset.range m, g (n + (j + 1) * c) ≤ f (n + m * c) := by … - lemma
DimensionTheorem.GrowthLE.of_le_subhcis kept for interface stability but is not actually needed: each application ofhis at a pointn + (j + 1) * c ≥ cregardless line 100 sourceSource comment
`hc` is kept for interface stability but is not actually needed: each application of `h` is at a point `n + (j + 1) * c ≥ c` regardless.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,LT.lt,OfNat.ofNat, DimensionTheorem.GrowthLE,HAdd.hAdd,Monotone,LE.le,HSub.hSubProof uses:
HMul.hMul,HPow.hPow,Exists.intro,Eq,GT.gt,Or,Nat.eq_zero_or_pos,of_eq_true,Eq.trans,True,congrArg,congrFun',zero_add,one_pow,mul_one,Function.swap,Eq.symm,Finset.sum,Finset.range,HSMul.hSMuland 55 more89 instances, coercions and auxiliary constants left out.
Tactic trace: 25 steps
Open to load the checked before-and-after goal states.
lemma of_le_sub {f g : ℕ → ℕ} {c d : ℕ} (hc : 0 < c) (hf : GrowthLE f (d + 1)) (hg : Monotone g) (h : ∀ n, c ≤ n → g n + f (n - c) ≤ f n) : GrowthLE g d := by …Mentions: DimensionTheorem.GrowthLE
- lemma
DimensionTheorem.multichoose_le_powDocumented declaration: multichoose_le_pow line 147 sourceSource documentation
The number of monomials of degree
ninkvariables is at most(n + 1) ^ (k - 1)(fork ≥ 1): a multiset of sizenoverFin kis determined by the multiplicities of the firstk - 1elements, each of which lies in{0, ..., n}.private lemma multichoose_le_pow (k : ℕ) : ∀ n : ℕ, Nat.multichoose (k + 1) n ≤ (n + 1) ^ k := by … - lemma
DimensionTheorem.card_sym_leline 165 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,LE.le,OfNat.ofNat,Fintype.card,Sym,Fin,HPow.hPow,HAdd.hAdd,HSub.hSubProof uses:
Eq,Exists,Exists.intro,Decidable.byContradiction,Not,Eq.mpr,Nat.multichoose,id,congrArg,Sym.card_sym_fin_eq_multichoose,add_tsub_cancel_right,Eq.symm47 instances, coercions and auxiliary constants left out.
Tactic trace: 4 steps
Open to load the checked before-and-after goal states.