FormalConjectures/Arxiv/1104.1579/CunninghamChain.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

8 declarations, 2 contain sorry, 0 declared as axioms

Cunningham chains — Jones's conjecture

A Cunningham chain is a sequence of primes satisfying either $p_{i+1}=2p_i+1$ (first kind) or $p_{i+1}=2p_i-1$ (second kind). It is conjectured that there are infinitely many chains of every positive exact length, of both kinds.

A chain has exact length k when its first $k$ terms are prime and the $(k+1)$-th generated term is composite.

Lenny Jones conjectures that for every positive integer $k$, infinitely many primes start a chain of exact length $k$, for each of the two kinds.

References:

Imports (1)
  1. def CunninghamChain.firstKindTerm The nth term generated from p by the first-kind recurrence q ↦ 2q + 1 line 44 source

    Source documentation

    The nth term generated from p by the first-kind recurrence q ↦ 2q + 1.

    no axioms what this means

    Statement uses: Nat

    2 instances, coercions and auxiliary constants left out.

    def firstKindTerm (p : ℕ) : ℕ → ℕ
      | 0     => p
      | n + 1 => 2 * firstKindTerm p n + 1
    
    /-- The `n`th term generated from `p` by the second-kind recurrence `q ↦ 2q - 1`. -/
  2. def CunninghamChain.secondKindTerm The nth term generated from p by the second-kind recurrence q ↦ 2q - 1 line 49 source

    Source documentation

    The nth term generated from p by the second-kind recurrence q ↦ 2q - 1.

    no axioms what this means

    Statement uses: Nat

    2 instances, coercions and auxiliary constants left out.

    def secondKindTerm (p : ℕ) : ℕ → ℕ
      | 0     => p
      | n + 1 => 2 * secondKindTerm p n - 1
    
    /-- `p` starts a first-kind Cunningham chain of exact positive length `k`. -/
  3. def CunninghamChain.IsFirstKindChainOfLength p starts a first-kind Cunningham chain of exact positive length k line 54 source

    Source documentation

    p starts a first-kind Cunningham chain of exact positive length k.

    standard axioms: propext what this means

    Statement uses: Nat

    Proof uses: And, LT.lt, OfNat.ofNat, Nat.Prime, CunninghamChain.firstKindTerm, Not

    2 instances, coercions and auxiliary constants left out.

    def IsFirstKindChainOfLength (p k : ℕ) : Prop :=
    …
  4. def CunninghamChain.IsSecondKindChainOfLength p starts a second-kind Cunningham chain of exact positive length k line 58 source

    Source documentation

    p starts a second-kind Cunningham chain of exact positive length k.

    standard axioms: propext what this means

    Statement uses: Nat

    Proof uses: And, LT.lt, OfNat.ofNat, Nat.Prime, CunninghamChain.secondKindTerm, Not

    2 instances, coercions and auxiliary constants left out.

    def IsSecondKindChainOfLength (p k : ℕ) : Prop :=
    …
  5. theorem CunninghamChain.two_starts_firstKind_length_five Sanity-check: 2 starts a first-kind chain of length 5 (2, 5, 11, 23, 47 are prime; 2·47+1 = 95 = 5·19 is composite) line 64 source

    Source comment

    Sanity-check: 2 starts a first-kind chain of length 5 (2, 5, 11, 23, 47 are prime; 2·47+1 = 95 = 5·19 is composite)

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

    Statement uses: CunninghamChain.IsFirstKindChainOfLength, OfNat.ofNat, Nat

    Proof uses: And.intro, LT.lt, And, Nat.Prime, CunninghamChain.firstKindTerm, Not, Mathlib.Meta.NormNum.isNat_lt_true, Mathlib.Meta.NormNum.isNat_ofNat, Eq.refl, Bool, Bool.false, dite, LE.le, of_eq_true, Eq.trans, True, congrArg, HAdd.hAdd, HMul.hMul, congrFun' and 24 more

    24 instances, coercions and auxiliary constants left out.

    Tactic trace: 6 steps

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

    theorem two_starts_firstKind_length_five : IsFirstKindChainOfLength 2 5 := by
    …

    Mentions: CunninghamChain.IsFirstKindChainOfLength

  6. theorem CunninghamChain.seven_starts_secondKind_length_two Sanity-check: 7 starts a second-kind chain of length 2 (7, 13 are prime; 2·13-1 = 25 = 5² is composite) line 72 source

    Source comment

    Sanity-check: 7 starts a second-kind chain of length 2 (7, 13 are prime; 2·13-1 = 25 = 5² is composite)

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

    Statement uses: CunninghamChain.IsSecondKindChainOfLength, OfNat.ofNat, Nat

    Proof uses: And.intro, LT.lt, And, Nat.Prime, CunninghamChain.secondKindTerm, Not, Mathlib.Meta.NormNum.isNat_lt_true, Mathlib.Meta.NormNum.isNat_ofNat, Eq.refl, Bool, Bool.false, dite, LE.le, of_eq_true, Eq.trans, True, congrArg, congrFun', HSub.hSub, HMul.hMul and 22 more

    21 instances, coercions and auxiliary constants left out.

    Tactic trace: 6 steps

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

    theorem seven_starts_secondKind_length_two : IsSecondKindChainOfLength 7 2 := by
    …

    Mentions: CunninghamChain.IsSecondKindChainOfLength

  7. theorem CunninghamChain.infinitely_many_firstKind_chains Jones's conjecture (first kind): for every positive integer $k$, there are infinitely many primes $p$ that start a first-kind Cunningham chain of exactly length $k$ sorry line 83 source

    Source documentation

    Jones's conjecture (first kind): for every positive integer $k$, there are infinitely many primes $p$ that start a first-kind Cunningham chain of exactly length $k$.

    depends on sorry what this means

    Statement uses: Nat, LT.lt, OfNat.ofNat, Set.Infinite, Set.ofPred, CunninghamChain.IsFirstKindChainOfLength

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

    4 instances, coercions and auxiliary constants left out.

    Tactic trace: 1 steps

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

    theorem infinitely_many_firstKind_chains (k : ℕ) (hk : 0 < k) :
        Set.Infinite {p : ℕ | IsFirstKindChainOfLength p k} := by
    …

    Mentions: CunninghamChain.IsFirstKindChainOfLength

  8. theorem CunninghamChain.infinitely_many_secondKind_chains Jones's conjecture (second kind): for every positive integer $k$, there are infinitely many primes $p$ that start a second-kind Cunningham chain of exactly length $k$ sorry line 93 source

    Source documentation

    Jones's conjecture (second kind): for every positive integer $k$, there are infinitely many primes $p$ that start a second-kind Cunningham chain of exactly length $k$.

    depends on sorry what this means

    Statement uses: Nat, LT.lt, OfNat.ofNat, Set.Infinite, Set.ofPred, CunninghamChain.IsSecondKindChainOfLength

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

    4 instances, coercions and auxiliary constants left out.

    Tactic trace: 1 steps

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

    theorem infinitely_many_secondKind_chains (k : ℕ) (hk : 0 < k) :
        Set.Infinite {p : ℕ | IsSecondKindChainOfLength p k} := by
    …

    Mentions: CunninghamChain.IsSecondKindChainOfLength