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

11 declarations, 2 contain sorry, 0 declared as axioms

Erdős Problem 235

References:

Imports (1)
  1. def Erdos235.N The product of the first k + 1 primes line 39 source

    Source documentation

    The product of the first k + 1 primes. On erdosproblems.com/235 this is $N_{k+1}=2\cdot 3\cdots p_{k+1}$. The limit as $k\to\infty$ is the same for either indexing.

    L4DEL explanation

    The product of the first k + 1 primes. On erdosproblems.com/235 this is $N_{k+1}=2\cdot 3\cdots p_{k+1}$. The limit as $k\to\infty$ is the same for either indexing.

    Sources and attribution: Pinned Lean source (1646ca16afd6)

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

    Statement uses: Nat

    Proof uses: primorial, Nat.nth, Nat.Prime

    noncomputable def N (k : ℕ) : ℕ :=
    …
  2. def Erdos235.coprimeList The increasing list of integers < n that are coprime to n line 43 source

    Source documentation

    The increasing list of integers < n that are coprime to n.

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

    Statement uses: Nat, List

    Proof uses: Finset.sort, Finset.filter, Nat.Coprime, Finset.range, LE.le

    8 instances, coercions and auxiliary constants left out.

    def coprimeList (n : ℕ) : List ℕ :=
    …
  3. def Erdos235.gaps The gaps $a_i - a_{i-1}$ between consecutive entries of coprimeList n line 47 source

    Source documentation

    The gaps $a_i - a_{i-1}$ between consecutive entries of coprimeList n.

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

    Statement uses: Nat, List

    Proof uses: List.zipWith, HSub.hSub, Erdos235.coprimeList, List.tail

    2 instances, coercions and auxiliary constants left out.

    def gaps (n : ℕ) : List ℕ :=
    …
  4. def Erdos235.countGaps The number of gaps of size at most $c \cdot n / \varphi(n)$ line 51 source

    Source documentation

    The number of gaps of size at most $c \cdot n / \varphi(n)$.

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

    Statement uses: Nat, Real

    Proof uses: List.countP, Decidable.decide, LE.le, HDiv.hDiv, HMul.hMul, Nat.totient, Bind.bind, List, Erdos235.gaps, Pure.pure

    13 instances, coercions and auxiliary constants left out.

    noncomputable def countGaps (n : ℕ) (c : ℝ) : ℕ :=
    …

    Mentions: c

  5. def Erdos235.proportion The proportion appearing in erdos_235, for the primorial N k line 55 source

    Source documentation

    The proportion appearing in erdos_235, for the primorial N k.

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

    Statement uses: Nat, Real

    Proof uses: HDiv.hDiv, Erdos235.countGaps, Erdos235.N, Nat.totient

    5 instances, coercions and auxiliary constants left out.

    noncomputable def proportion (k : ℕ) (c : ℝ) : ℝ :=
    …

    Mentions: c

  6. theorem Erdos235.N_zero N 0 is the primorial of $2$ line 60 source

    Source documentation

    N 0 is the primorial of $2$.

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

    Statement uses: Eq, Nat, Erdos235.N, OfNat.ofNat

    Proof uses: of_eq_true, Eq.trans, True, congrFun', congrArg, primorial, Nat.nth, Nat.Prime, Nat.nth_prime_zero_eq_two, primorial_two, eq_self

    2 instances, coercions and auxiliary constants left out.

    Tactic trace: 1 steps

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

    theorem N_zero : N 0 = 2 := by
    …

    Mentions: Erdos235.N

  7. theorem Erdos235.N_one N 1 is the primorial of $3$ line 65 source

    Source documentation

    N 1 is the primorial of $3$.

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

    Statement uses: Eq, Nat, Erdos235.N, OfNat.ofNat

    Proof uses: Eq.mpr, primorial, id, congrFun', congrArg, Nat.nth, Nat.Prime, Nat.nth_prime_one_eq_three, of_decide_eq_true, Bool, Decidable.decide, Bool.true, Eq.refl

    3 instances, coercions and auxiliary constants left out.

    Tactic trace: 2 steps

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

    theorem N_one : N 1 = 6 := by
    …

    Mentions: Erdos235.N

  8. theorem Erdos235.coprimeList_length coprimeList n has length $\varphi(n)$ line 71 source

    Source documentation

    coprimeList n has length $\varphi(n)$.

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

    Statement uses: Nat, Eq, List.length, Erdos235.coprimeList, Nat.totient

    Proof uses: Eq.mpr, Finset.sort, Finset.filter, Nat.Coprime, Finset.range, LE.le, id, congrArg, List, Erdos235.coprimeList.eq_1, Finset.card, Finset.length_sort, Nat.totient_eq_card_coprime, Eq.refl

    8 instances, coercions and auxiliary constants left out.

    Tactic trace: 1 steps

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

    theorem coprimeList_length (n : ℕ) : (coprimeList n).length = n.totient := by
    …

    Mentions: Erdos235.coprimeList

  9. theorem Erdos235.totient_N_pos $\varphi(N_k)$ is positive, so the proportion is not a division by zero line 76 source

    Source documentation

    $\varphi(N_k)$ is positive, so the proportion is not a division by zero.

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

    Statement uses: Nat, LT.lt, OfNat.ofNat, Nat.totient, Erdos235.N

    Proof uses: Eq.mpr, id, Eq, congrArg, propext, Nat.totient_pos, primorial_pos, Nat.nth, Nat.Prime

    4 instances, coercions and auxiliary constants left out.

    Tactic trace: 2 steps

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

    theorem totient_N_pos (k : ℕ) : 0 < (N k).totient := by
    …

    Mentions: Erdos235.N

  10. theorem Erdos235.erdos_235 sorry line 96 source

    depends on sorry what this means

    Statement uses: Exists, Real, And, ContinuousOn, Set.Ici, OfNat.ofNat, LE.le, Filter.Tendsto, Nat, Erdos235.proportion, Filter.atTop, nhds

    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.

  11. theorem Erdos235.erdos_235.variants.hooley sorry line 109 source

    depends on sorry what this means

    Statement uses: Real, LE.le, OfNat.ofNat, Filter.Tendsto, Nat, Erdos235.proportion, Filter.atTop, nhds, HSub.hSub, Real.exp, Neg.neg

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

    25 instances, coercions and auxiliary constants left out.

    Tactic trace: 1 steps

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