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

12 declarations, 5 contain sorry, 0 declared as axioms

Erdős Problem 18

Reference:

Imports (1)
  1. def Erdos18.practicalH For a practical number $n$, $h(n)$ is the maximum over all $1 ≤ m ≤ n$ of the minimum number of divisors of $n$ needed to represent $m$ as a sum of distinct divisors line 40 source

    Source documentation

    For a practical number $n$, $h(n)$ is the maximum over all $1 ≤ m ≤ n$ of the minimum number of divisors of $n$ needed to represent $m$ as a sum of distinct divisors.

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

    Statement uses: Nat

    Proof uses: Finset.sup, Finset.Icc, OfNat.ofNat, InfSet.sInf, Set.ofPred, Exists, Finset, And, LE.le, Nat.divisors, Eq, Finset.card, Membership.mem, Set, subsetSums

    14 instances, coercions and auxiliary constants left out.

    noncomputable def practicalH (n : ℕ) : ℕ :=
    …
  2. theorem Erdos18.practicalH_one $h(1) = 1$: we need the single divisor {1} to represent 1 line 48 source

    Source documentation

    $h(1) = 1$: we need the single divisor {1} to represent 1.

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

    Statement uses: Eq, Nat, Erdos18.practicalH, OfNat.ofNat

    Proof uses: of_eq_true, Eq.trans, True, congrFun', congrArg, Finset.sup, Finset.Icc, InfSet.sInf, Set.ofPred, Exists, Finset, And, LE.le, Nat.divisors, Finset.card, Membership.mem, Set, subsetSums, Or, Singleton.singleton and 36 more

    39 instances, coercions and auxiliary constants left out.

    Tactic trace: 1 steps

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

    theorem practicalH_one : practicalH 1 = 1 := by
    …

    Mentions: Erdos18.practicalH

  3. theorem Erdos18.practicalH_two $h(2) = 1$: divisors are {1, 2}, each of m=1,2 needs only 1 divisor line 53 source

    Source documentation

    $h(2) = 1$: divisors are {1, 2}, each of m=1,2 needs only 1 divisor.

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

    Statement uses: Eq, Nat, Erdos18.practicalH, OfNat.ofNat

    Proof uses: Eq.mpr, Max.max, InfSet.sInf, Set.ofPred, Exists, Finset, And, LE.le, Insert.insert, Singleton.singleton, Finset.card, Membership.mem, Set, subsetSums, id, congrFun', congrArg, Eq.trans, Finset.sup, Finset.Icc and 37 more

    56 instances, coercions and auxiliary constants left out.

    Tactic trace: 16 steps

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

    theorem practicalH_two : practicalH 2 = 1 := by
    …

    Mentions: Erdos18.practicalH

  4. theorem Erdos18.practicalH_six $h(6) = 2$: divisors are {1, 2, 3, 6} line 69 source

    Source documentation

    $h(6) = 2$: divisors are {1, 2, 3, 6}. The hardest m to represent is m=4 or m=5, each requiring 2 divisors: 4=1+3, 5=2+3.

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

    Statement uses: Eq, Nat, Erdos18.practicalH, OfNat.ofNat

    Proof uses: Finset, Nat.divisors, Insert.insert, Singleton.singleton, of_decide_eq_true, id, Bool, Decidable.decide, Bool.true, Eq.refl, le_antisymm, Finset.sup_le, Finset.Icc, InfSet.sInf, Set.ofPred, Exists, And, LE.le, Finset.card, Membership.mem and 61 more

    66 instances, coercions and auxiliary constants left out.

    Tactic trace: 84 steps

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

    theorem practicalH_six : practicalH 6 = 2 := by
    …

    Mentions: Erdos18.practicalH

  5. theorem Erdos18.practicalH_twelve $h(12) = 3$: divisors are {1, 2, 3, 4, 6, 12} line 110 source

    Source documentation

    $h(12) = 3$: divisors are {1, 2, 3, 4, 6, 12}. The hardest m is m=11, requiring 3 divisors: 11=1+4+6.

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

    Statement uses: Eq, Nat, Erdos18.practicalH, OfNat.ofNat

    Proof uses: Finset, Nat.divisors, Insert.insert, Singleton.singleton, of_decide_eq_true, id, Bool, Decidable.decide, Bool.true, Eq.refl, le_antisymm, Finset.sup_le, Finset.Icc, InfSet.sInf, Set.ofPred, Exists, And, LE.le, Finset.card, Membership.mem and 71 more

    70 instances, coercions and auxiliary constants left out.

    Tactic trace: 140 steps

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

    theorem practicalH_twelve : practicalH 12 = 3 := by
    …

    Mentions: Erdos18.practicalH

  6. theorem Erdos18.practicalH_le_divisors For any practical number $n$, $h(n)$ ≤ number of divisors of $n$ line 162 source

    Source documentation

    For any practical number $n$, $h(n)$ ≤ number of divisors of $n$.

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

    Statement uses: Nat, Nat.IsPractical, LE.le, Erdos18.practicalH, Finset.card, Nat.divisors

    Proof uses: Eq.mpr, And, OfNat.ofNat, InfSet.sInf, Set.ofPred, Exists, Finset, Eq, Membership.mem, Set, subsetSums, id, Eq.trans, Finset.sup, Finset.Icc, forall_congr, implies_congr, Eq.refl, Nat.sInf_le, Exists.intro and 3 more

    21 instances, coercions and auxiliary constants left out.

    Tactic trace: 2 steps

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

    theorem practicalH_le_divisors (n : ℕ) (hn : Nat.IsPractical n) :
        practicalH n ≤ n.divisors.card := by
    …

    Mentions: Nat.IsPractical, Erdos18.practicalH

  7. theorem Erdos18.factorial_isPractical $h(n!)$ is well-defined since $n!$ is practical for $n ≥ 1$ line 169 source

    Source documentation

    $h(n!)$ is well-defined since $n!$ is practical for $n ≥ 1$.

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

    Statement uses: Nat, Nat.IsPractical, Nat.factorial

    Proof uses: Nat.recAux, LE.le, OfNat.ofNat, dite, Membership.mem, Set, subsetSums, Finset, Nat.divisors, Exists.intro, And, Eq, Finset.sum, Singleton.singleton, And.intro, of_eq_true, Eq.trans, True, congr, congrArg and 123 more

    141 instances, coercions and auxiliary constants left out.

    Tactic trace: 64 steps

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

    theorem factorial_isPractical (n : ℕ) : Nat.IsPractical n.factorial := by
    …

    Mentions: Nat.IsPractical

  8. theorem Erdos18.erdos_18a Conjecture 1 sorry line 221 source

    Source documentation

    Conjecture 1. Are there infinitely many practical numbers $m$ such that $h(m) < (\log \log m)^{O(1)}$?

    More precisely: does there exist a constant $C > 0$ such that for infinitely many practical numbers $m$, we have $h(m) < (\log \log m)^C$?

    depends on sorry what this means

    Statement uses: Iff, True, Exists, Real, And, LT.lt, OfNat.ofNat, Filter.Frequently, Nat, Nat.IsPractical, Erdos18.practicalH, HPow.hPow, Real.log, Filter.atTop

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

    17 instances, coercions and auxiliary constants left out.

    Tactic trace: 1 steps

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

    theorem erdos_18a : answer(sorry) ↔
        ∃ C : ℝ, 0 < C ∧ ∃ᶠ m in atTop, Nat.IsPractical m ∧
          (practicalH m : ℝ) < (log (log m)) ^ C := by
    …

    Mentions: Nat.IsPractical, Erdos18.practicalH

  9. theorem Erdos18.erdos_18b Conjecture 2 sorry line 232 source

    Source documentation

    Conjecture 2. Is it true that $h(n!) < n^{o(1)}$? That is, for all $\varepsilon > 0$, is $h(n!) < n^\varepsilon$ for sufficiently large $n$?

    depends on sorry what this means

    Statement uses: Iff, True, Real, LT.lt, OfNat.ofNat, Filter.Eventually, Nat, Erdos18.practicalH, Nat.factorial, HPow.hPow, Filter.atTop

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

    17 instances, coercions and auxiliary constants left out.

    Tactic trace: 1 steps

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

    theorem erdos_18b : answer(sorry) ↔
        ∀ ε : ℝ, 0 < ε → ∀ᶠ n : ℕ in atTop, (practicalH n.factorial : ℝ) < (n : ℝ) ^ ε := by
    …

    Mentions: Erdos18.practicalH

  10. theorem Erdos18.erdos_18c Conjecture 3 sorry line 243 source

    Source documentation

    Conjecture 3. Or perhaps even $h(n!) < (\log n)^{O(1)}$?

    Erdős offered $250 for a proof or disproof.

    depends on sorry what this means

    Statement uses: Iff, True, Exists, Real, And, LT.lt, OfNat.ofNat, Filter.Eventually, Nat, Erdos18.practicalH, Nat.factorial, HPow.hPow, Real.log, Filter.atTop

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

    17 instances, coercions and auxiliary constants left out.

    Tactic trace: 1 steps

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

    theorem erdos_18c : answer(sorry) ↔
        ∃ C : ℝ, 0 < C ∧ ∀ᶠ n : ℕ in atTop, (practicalH n.factorial : ℝ) < (log n) ^ C := by
    …

    Mentions: Erdos18.practicalH

  11. theorem Erdos18.erdos_18_upper_bound Erdős's Theorem sorry line 252 source

    Source documentation

    Erdős's Theorem. Erdős proved that $h(n!) < n$ for all $n \ge 1$.

    depends on sorry what this means

    Statement uses: Filter.Eventually, Nat, LT.lt, Erdos18.practicalH, Nat.factorial, Filter.atTop

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

    5 instances, coercions and auxiliary constants left out.

    Tactic trace: 1 steps

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

    theorem erdos_18_upper_bound :
        ∀ᶠ n : ℕ in atTop, practicalH (Nat.factorial n) < n := by
    …

    Mentions: Erdos18.practicalH

  12. theorem Erdos18.erdos_18_vose Vose's Theorem sorry line 262 source

    Source documentation

    Vose's Theorem. Vose proved the existence of infinitely many practical numbers $m$ such that $h(m) \ll (\log m)^{1/2}$. This gives a positive answer to a weaker form of Conjecture 1.

    depends on sorry what this means

    Statement uses: Exists, Real, And, LT.lt, OfNat.ofNat, Filter.Frequently, Nat, Nat.IsPractical, Erdos18.practicalH, HMul.hMul, HPow.hPow, Real.log, HDiv.hDiv, Filter.atTop

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

    38 instances, coercions and auxiliary constants left out.

    Tactic trace: 1 steps

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

    theorem erdos_18_vose :
        ∃ C : ℝ, 0 < C ∧ ∃ᶠ m in atTop, Nat.IsPractical m ∧
          (practicalH m : ℝ) < C * (log m) ^ (1 / 2 : ℝ) := by
    …

    Mentions: Nat.IsPractical, Erdos18.practicalH