FormalConjectures/ErdosProblems/859.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

5 declarations, 3 contain sorry, 0 declared as axioms

Erdős Problem 859

Reference: erdosproblems.com/859

Imports (1)
  1. def Erdos859.DivisorSumSet DivisorSumSet t is the set of natural numbers n such that t can be represented as a sum of distinct divisors of n line 34 source

    Source documentation

    DivisorSumSet t is the set of natural numbers n such that t can be represented as a sum of distinct divisors of n.

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

    Statement uses: Nat, Set

    Proof uses: Set.ofPred, Exists, Finset, And, LE.le, Nat.divisors, Eq, Finset.sum

    4 instances, coercions and auxiliary constants left out.

    def DivisorSumSet (t : ℕ) := { n : ℕ | ∃ s ⊆ Nat.divisors n, t = ∑ i ∈ s, i }
    …
  2. theorem Erdos859.erdos_859.variants.erdos_upper_lower_bounds Documented declaration: erdos_upper_lower_bounds sorry line 43 source

    Source documentation

    A weaker version of the problem proved by Erdos: The density dₜ of DivisorSumSet (t : ℕ) is bounded from below by 1 / log (t) ^ c₃ and from above by 1 / log (t) ^ c₄ for some positive constants c₃ and c₄.

    depends on sorry what this means

    Statement uses: Exists, Real, And, GT.gt, OfNat.ofNat, Nat, Filter.Eventually, Set.HasDensity, Erdos859.DivisorSumSet, Set.univ, LT.lt, HDiv.hDiv, HPow.hPow, Real.log, Filter.atTop

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

    33 instances, coercions and auxiliary constants left out.

    Tactic trace: 1 steps

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

    theorem erdos_859.variants.erdos_upper_lower_bounds : ∃ᵉ (c₃ > (0 : ℝ)) (c₄ > (0 : ℝ)) (t₀ : ℕ),
        ∀ᶠ t in atTop, ∃ dₜ : ℝ, (DivisorSumSet t).HasDensity dₜ ∧
        1 / Real.log t ^ c₃ < dₜ ∧ dₜ < 1 / Real.log t ^ c₄ := by
    …

    Mentions: Erdos859.DivisorSumSet

  3. theorem Erdos859.erdos_859 The density of the divisor sum set is asymptotically equivalent to $c_1 / \log(t)^{c_2}$ sorry line 56 source

    Source documentation

    The density of the divisor sum set is asymptotically equivalent to $c_1 / \log(t)^{c_2}$.

    depends on sorry what this means

    Statement uses: Exists, Real, And, GT.gt, OfNat.ofNat, Nat, Set.HasDensity, Erdos859.DivisorSumSet, Set.univ, Asymptotics.IsEquivalent, Filter.atTop, HDiv.hDiv, HPow.hPow, Real.log

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

    42 instances, coercions and auxiliary constants left out.

    Tactic trace: 1 steps

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

    theorem erdos_859 :
        ∃ c₁ > 0, ∃ c₂ > (0 : ℝ), ∃ d : ℕ → ℝ, (∀ t > 0, (DivisorSumSet t).HasDensity (d t)) ∧
          (fun (t : ℕ) ↦ d t) ~[atTop] (fun t ↦ c₁ / Real.log t ^ c₂) := by
    …

    Mentions: Erdos859.DivisorSumSet

  4. lemma Erdos859.erdos_859.variants.trivial_case A case where we can easily calculate the density of DivisorSumSet t is that of t=0 line 65 source

    Source documentation

    A case where we can easily calculate the density of DivisorSumSet t is that of t=0.

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

    Statement uses: Eq, Set, Nat, Erdos859.DivisorSumSet, OfNat.ofNat, Set.univ

    Proof uses: of_eq_true, Eq.trans, True, congrFun', congrArg, Exists, Finset, And, LE.le, Nat.divisors, Finset.sum, Set.ofPred, funext, EmptyCollection, EmptyCollection.emptyCollection, eq_true, Exists.intro, congr, eq_self, and_self

    8 instances, coercions and auxiliary constants left out.

    Tactic trace: 1 steps

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

    lemma erdos_859.variants.trivial_case : DivisorSumSet 0 = Set.univ := by
    …

    Mentions: Erdos859.DivisorSumSet

  5. lemma Erdos859.erdos_859.variants.positive_density An easy sanity check is to prove that for every natural number t the density dₜ is a positive number sorry line 74 source

    Source documentation

    An easy sanity check is to prove that for every natural number t the density dₜ is a positive number. Hint: investigate some multiplicative structure of DivisorSumSet t.

    depends on sorry what this means

    Statement uses: Nat, Set.HasPosDensity, Erdos859.DivisorSumSet, Set.univ

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

    9 instances, coercions and auxiliary constants left out.

    Tactic trace: 1 steps

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

    lemma erdos_859.variants.positive_density (t : ℕ) :
        (DivisorSumSet t).HasPosDensity := by
    …

    Mentions: Erdos859.DivisorSumSet