FormalConjectures/ErdosProblems/975.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, Formal Conjectures paper, arXiv v1

7 declarations, 6 contain sorry, 0 declared as axioms

Erdős Problem 975

References:

Imports (1)
  1. def Erdos975.Erdos975Sum Sum of $\tau(f(n))$ from 0 to ⌊x⌋ for a polynomial $f \in \mathbb{Z}[X]$ line 47 source

    Source documentation

    Sum of $\tau(f(n))$ from 0 to ⌊x⌋ for a polynomial $f \in \mathbb{Z}[X]$.

    Here $\tau$ is the divisor counting function, which is σ 0 in mathlib. Also, for simplicity, we use Nat.floor to convert rational values to natural numbers, instead of dealing with negative values.

    standard axioms: Classical.choice, Quot.sound, propext what this means

    Statement uses: Polynomial, Int, Real

    Proof uses: Finset.sum, Nat, Finset.Iic, Nat.floor, ArithmeticFunction, ArithmeticFunction.sigma, OfNat.ofNat, Polynomial.eval

    29 instances, coercions and auxiliary constants left out.

    noncomputable def Erdos975Sum (f : ℤ[X]) (x : ℝ) : ℝ :=
    …
  2. theorem Erdos975.erdos_975 For an irreducible polynomial sorry line 58 source

    Source documentation

    For an irreducible polynomial $f \in \mathbb{Z}[x]$ with $f(n) \ge 1$ for sufficiently large $n$, does there exists a constant $c = c(f) > 0$ such that $\sum_{n \le x} \tau(f(n)) \approx c \cdot x \log x$?

    Note that it is unclear whether the polynomial should have integer coefficients or merely be integer-valued. We assume the former.

    depends on sorry what this means

    Statement uses: Iff, True, Polynomial, Int, Ne, Nat, Polynomial.natDegree, OfNat.ofNat, Irreducible, Filter.Eventually, LE.le, Polynomial.eval, Filter.atTop, Exists, Real, And, GT.gt, Filter.Tendsto, HDiv.hDiv, Erdos975.Erdos975Sum and 3 more

    Proof uses: sorryAx, Lean.Name, Bool.false, Lean.Name.num, Lean.Name.str, Lean.Name.anonymous

    48 instances, coercions and auxiliary constants left out.

    Tactic trace: 1 steps

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

    theorem erdos_975 : answer(sorry) ↔
        ∀ f : ℤ[X], f.natDegree ≠ 0 → Irreducible f → (∀ᶠ n in atTop, 1 ≤ f.eval n) →
        ∃ c > (0 : ℝ), Tendsto (fun x ↦ Erdos975Sum f x / (x * log x)) atTop (𝓝 c) := by
    …

    Mentions: c, Erdos975.Erdos975Sum

  3. theorem Erdos975.erdos_975.variants.upper_bound The correctness of the growth rate is shown in [Va39] (lower bound) and [Er52b] (upper bound) sorry line 67 source

    Source documentation

    The correctness of the growth rate is shown in [Va39] (lower bound) and [Er52b] (upper bound).

    depends on sorry what this means

    Statement uses: Polynomial, Int, Irreducible, Filter.Eventually, LE.le, OfNat.ofNat, Polynomial.eval, Filter.atTop, Asymptotics.IsBigO, Real, Erdos975.Erdos975Sum, HMul.hMul, Real.log

    Proof uses: sorryAx, Lean.Name, Bool.false, Lean.Name.num, Lean.Name.str, Lean.Name.anonymous, Nat

    31 instances, coercions and auxiliary constants left out.

    Tactic trace: 1 steps

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

    theorem erdos_975.variants.upper_bound (f : ℤ[X]) (hf : Irreducible f)
        (hf_pos : ∀ᶠ n in atTop, 1 ≤ f.eval n) : Erdos975Sum f =O[atTop] (fun x ↦ x * log x) := by
    …

    Mentions: Erdos975.Erdos975Sum

  4. theorem Erdos975.erdos_975.variants.lower_bound Lower bound for the growth rate of Erdos975Sum, shown in [Va39] sorry line 73 source

    Source documentation

    Lower bound for the growth rate of Erdos975Sum, shown in [Va39].

    depends on sorry what this means

    Statement uses: Polynomial, Int, Irreducible, Ne, Nat, Polynomial.natDegree, OfNat.ofNat, Filter.Eventually, LE.le, Polynomial.eval, Filter.atTop, Asymptotics.IsBigO, Real, HMul.hMul, Real.log, Erdos975.Erdos975Sum

    Proof uses: sorryAx, Lean.Name, Bool.false, Lean.Name.num, Lean.Name.str, Lean.Name.anonymous

    32 instances, coercions and auxiliary constants left out.

    Tactic trace: 1 steps

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

    theorem erdos_975.variants.lower_bound (f : ℤ[X]) (hf : Irreducible f) (hfdeg : f.natDegree ≠ 0)
        (hf_pos : ∀ᶠ n in atTop, 1 ≤ f.eval n) :
        (fun x ↦ x * log x) =O[atTop] Erdos975Sum f := by
    …

    Mentions: Erdos975.Erdos975Sum

  5. theorem Erdos975.erdos_975.variants.quadratic When $f$ is an irreducible quadratic polynomial, the question is answered first by Hooley [Ho63] sorry line 89 source

    Source documentation

    When $f$ is an irreducible quadratic polynomial, the question is answered first by Hooley [Ho63]. More compact expression of the constant in terms of Hurwitz class numbers (when $a = 1$) is given by McKey in [Mc95], [Mc97], [Mc99].

    TODO: formalize Hurwitz class numbers and the expression of the constant in terms of them.

    depends on sorry what this means

    Statement uses: Polynomial, Int, Irreducible, Filter.Eventually, Nat, LE.le, OfNat.ofNat, Polynomial.eval, Filter.atTop, Eq, WithBot, Polynomial.degree, Real, sorryAx, Lean.Name, Bool.false, Lean.Name.num, Lean.Name.str, Lean.Name.anonymous, And and 7 more

    52 instances, coercions and auxiliary constants left out.

    Tactic trace: 1 steps

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

    theorem erdos_975.variants.quadratic (f : ℤ[X]) (hf : Irreducible f)
        (hf_pos : ∀ᶠ n : ℕ in atTop, 1 ≤ f.eval ↑n) (hf_degree : f.degree = 2) (c : ℝ) :
        c = answer(sorry) → 0 < c ∧ Tendsto (fun x ↦ Erdos975Sum f x / (x * log x)) atTop (𝓝 c) := by
    …

    Mentions: c, Erdos975.Erdos975Sum

  6. theorem Erdos975.erdos_975.variants.n2_plus_1_strong More concrete example for $f(n) = n^2 + 1$, where the asymptote is $\sum_{n \le x} \tau(n^2 + 1) \sim \frac{3}{\pi} x \log x + O(x)$ sorry line 99 source

    Source documentation

    More concrete example for $f(n) = n^2 + 1$, where the asymptote is $\sum_{n \le x} \tau(n^2 + 1) \sim \frac{3}{\pi} x \log x + O(x)$. See Tao's blog [T].

    depends on sorry what this means

    Statement uses: Asymptotics.IsBigO, Real, Filter.atTop, HSub.hSub, Erdos975.Erdos975Sum, HAdd.hAdd, Polynomial, Int, HPow.hPow, Nat, Polynomial.X, OfNat.ofNat, HMul.hMul, HDiv.hDiv, Real.pi, Real.log, id

    Proof uses: sorryAx, Lean.Name, Bool.false, Lean.Name.num, Lean.Name.str, Lean.Name.anonymous

    48 instances, coercions and auxiliary constants left out.

    Tactic trace: 1 steps

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

    theorem erdos_975.variants.n2_plus_1_strong :
        (fun x ↦ Erdos975Sum (X ^ 2 + 1) x - (3 / π) * x * log x) =O[atTop] id := by
    …

    Mentions: Erdos975.Erdos975Sum

  7. theorem Erdos975.erdos_975.variants.n2_plus_1 Asymptotics for Erdos975Sum with $f(X) = X^2 + 1$ sorry line 105 source

    Source documentation

    Asymptotics for Erdos975Sum with $f(X) = X^2 + 1$.

    depends on sorry what this means

    Statement uses: Exists, Real, And, GT.gt, OfNat.ofNat, Filter.Tendsto, HDiv.hDiv, Erdos975.Erdos975Sum, HAdd.hAdd, Polynomial, Int, HPow.hPow, Nat, Polynomial.X, HMul.hMul, Real.log, Filter.atTop, nhds

    Proof uses: sorryAx, Lean.Name, Bool.false, Lean.Name.num, Lean.Name.str, Lean.Name.anonymous

    46 instances, coercions and auxiliary constants left out.

    Tactic trace: 1 steps

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

    theorem erdos_975.variants.n2_plus_1 :
        ∃ c > (0 : ℝ), Tendsto (fun x ↦ Erdos975Sum (X ^ 2 + 1) x / (x * log x)) atTop (𝓝 c) := by
    …

    Mentions: c, Erdos975.Erdos975Sum