FLT/Slop/DimensionTheorem/Numeric.lean

GitHub source file

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

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
  1. def DimensionTheorem.GrowthLE f : ℕ → ℕ grows at most like n ^ d line 52 source

    Source documentation

    f : ℕ → ℕ grows at most like n ^ d. We use (n + 1) ^ d to avoid degenerate behavior at n = 0.

    standard axioms: propext what this means

    Statement uses: Nat

    Proof uses: Exists, LE.le, HMul.hMul, HPow.hPow, HAdd.hAdd, OfNat.ofNat

    10 instances, coercions and auxiliary constants left out.

    def GrowthLE (f : ℕ → ℕ) (d : ℕ) : Prop :=
    …
  2. lemma DimensionTheorem.GrowthLE.of_le line 57 source

    standard axioms: propext what this means

    Statement uses: Nat, DimensionTheorem.GrowthLE, LE.le

    Proof uses: HMul.hMul, HPow.hPow, HAdd.hAdd, OfNat.ofNat, Exists.intro, LE.le.trans

    13 instances, coercions and auxiliary constants left out.

    Tactic trace: 2 steps

    Open to load the checked before-and-after goal states.

  3. lemma DimensionTheorem.GrowthLE.mono line 62 source

    standard axioms: propext what this means

    Statement uses: Nat, DimensionTheorem.GrowthLE, LE.le

    Proof 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_le

    13 instances, coercions and auxiliary constants left out.

    Tactic trace: 3 steps

    Open to load the checked before-and-after goal states.

  4. lemma DimensionTheorem.GrowthLE.of_bounded line 68 source

    standard axioms: propext what this means

    Statement uses: Nat, LE.le, DimensionTheorem.GrowthLE, OfNat.ofNat

    Proof uses: Exists.intro, HMul.hMul, HPow.hPow, HAdd.hAdd, Eq.mpr, id, Eq, congrArg, Eq.trans, pow_zero, mul_one

    17 instances, coercions and auxiliary constants left out.

    Tactic trace: 1 steps

    Open to load the checked before-and-after goal states.

  5. lemma DimensionTheorem.GrowthLE.telescope_aux Telescoping lemma line 78 source

    Source documentation

    Telescoping lemma. If g is monotone and, for n ≥ c, the value g n is dominated by the difference f n - f (n - c) (stated additively as g n + f (n - c) ≤ f n), and f has growth degree at most d + 1, then g has growth degree at most d.

    This is the numerical heart of the inductive step dim ≤ d(R) in the dimension theorem: passing to R/xR drops 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
    …
  6. lemma DimensionTheorem.GrowthLE.of_le_sub 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 line 100 source

    Source 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.hSub

    Proof 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.hSMul and 55 more

    89 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

  7. lemma DimensionTheorem.multichoose_le_pow Documented declaration: multichoose_le_pow line 147 source

    Source documentation

    The number of monomials of degree n in k variables is at most (n + 1) ^ (k - 1) (for k ≥ 1): a multiset of size n over Fin k is determined by the multiplicities of the first k - 1 elements, each of which lies in {0, ..., n}.

    private lemma multichoose_le_pow (k : ℕ) :
        ∀ n : ℕ, Nat.multichoose (k + 1) n ≤ (n + 1) ^ k := by
    …
  8. lemma DimensionTheorem.card_sym_le line 165 source

    standard 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.hSub

    Proof 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.symm

    47 instances, coercions and auxiliary constants left out.

    Tactic trace: 4 steps

    Open to load the checked before-and-after goal states.