FormalConjectures/Wikipedia/WolstenholmePrime.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, 4 contain sorry, 0 declared as axioms

Wolstenholme Prime

Reference: Wikipedia

Imports (1)
  1. theorem WolstenholmePrime.wolstenholme_theorem sorry line 39 source

    depends on sorry what this means

    Statement uses: Nat, GT.gt, OfNat.ofNat, Nat.Prime, Nat.ModEq, HPow.hPow, Nat.choose, HSub.hSub, HMul.hMul

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

    20 instances, coercions and auxiliary constants left out.

    Tactic trace: 1 steps

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

  2. def WolstenholmePrime.IsWolstenholmePrime A prime $p > 7$ is called a Wolstenholme prime if $\binom{2p-1}{p-1} \equiv 1 (\pmod{p^4})$ line 47 source

    Source documentation

    A prime $p > 7$ is called a Wolstenholme prime if $\binom{2p-1}{p-1} \equiv 1 (\pmod{p^4})$.

    standard axioms: propext what this means

    Statement uses: Nat

    Proof uses: And, GT.gt, OfNat.ofNat, Nat.Prime, Nat.ModEq, HPow.hPow, Nat.choose, HSub.hSub, HMul.hMul

    10 instances, coercions and auxiliary constants left out.

    def IsWolstenholmePrime (p : ℕ) : Prop :=
    …
  3. theorem WolstenholmePrime.wolstenholme_prime_16483 Two known Wolstenholme primes: 16843 and 2124679 line 56 source

    Source documentation

    Two known Wolstenholme primes: 16843 and 2124679.

    Formal proof linked here provided by AlphaProof

    extra axioms: _private.0.WolstenholmePrime.wolstenholme_prime_16483._native.native_decide.ax_1 what this means

    Statement uses: WolstenholmePrime.IsWolstenholmePrime, OfNat.ofNat, Nat

    Proof uses: id, And, GT.gt, Nat.Prime, Nat.ModEq, HPow.hPow, Nat.choose, HSub.hSub, HMul.hMul, And.intro, Eq, HMod.hMod, Mathlib.Meta.NormNum.isNat_lt_true, Mathlib.Meta.NormNum.isNat_ofNat, Eq.refl, Bool, Bool.false, Mathlib.Meta.NormNum.isNat_prime_2, Bool.true, Mathlib.Meta.NormNum.isNat_minFac_4 and 6 more

    23 instances, coercions and auxiliary constants left out.

    Tactic trace: 5 steps

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

    theorem wolstenholme_prime_16483 : IsWolstenholmePrime 16843 := by
    …

    Mentions: WolstenholmePrime.IsWolstenholmePrime

  4. theorem WolstenholmePrime.wolstenholme_prime_2124679 line 62 source

    extra axioms: _private.0.WolstenholmePrime.wolstenholme_prime_2124679._native.native_decide.ax_1 what this means

    Statement uses: WolstenholmePrime.IsWolstenholmePrime, OfNat.ofNat, Nat

    Proof uses: id, And, GT.gt, Nat.Prime, Nat.ModEq, HPow.hPow, Nat.choose, HSub.hSub, HMul.hMul, And.intro, Eq, HMod.hMod, Mathlib.Meta.NormNum.isNat_lt_true, Mathlib.Meta.NormNum.isNat_ofNat, Eq.refl, Bool, Bool.false, Mathlib.Meta.NormNum.isNat_prime_2, Bool.true, Mathlib.Meta.NormNum.isNat_minFac_4 and 6 more

    23 instances, coercions and auxiliary constants left out.

    Tactic trace: 5 steps

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

  5. theorem WolstenholmePrime.wolstenholme_bernoulli Equivalently, a prime $p > 7$ is a Wolstenholme prime if it divides the numerator of the Bernoulli number $B_{p-3}$ sorry line 71 source

    Source documentation

    Equivalently, a prime $p > 7$ is a Wolstenholme prime if it divides the numerator of the Bernoulli number $B_{p-3}$.

    depends on sorry what this means

    Statement uses: Nat, Iff, WolstenholmePrime.IsWolstenholmePrime, And, GT.gt, OfNat.ofNat, Nat.Prime, Dvd.dvd, Int, Rat.num, bernoulli', HSub.hSub

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

    14 instances, coercions and auxiliary constants left out.

    Tactic trace: 1 steps

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

    theorem wolstenholme_bernoulli (p : ℕ) : IsWolstenholmePrime p ↔
        (p > 7) ∧ Nat.Prime p ∧ ↑p ∣ (bernoulli' (p - 3)).num := by
    …

    Mentions: WolstenholmePrime.IsWolstenholmePrime

  6. theorem WolstenholmePrime.wolstenholme_harmonic Another equivalent definition is that a prime $p > 7$ is a Wolstenholme prime if it $p^3$ divides the numerator of the harmonic number $H_{p-1}$ sorry line 80 source

    Source documentation

    Another equivalent definition is that a prime $p > 7$ is a Wolstenholme prime if it $p^3$ divides the numerator of the harmonic number $H_{p-1}$.

    depends on sorry what this means

    Statement uses: Nat, Iff, WolstenholmePrime.IsWolstenholmePrime, And, GT.gt, OfNat.ofNat, Nat.Prime, Dvd.dvd, Int, HPow.hPow, Rat.num, harmonic, HSub.hSub

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

    22 instances, coercions and auxiliary constants left out.

    Tactic trace: 1 steps

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

    theorem wolstenholme_harmonic (p : ℕ) : IsWolstenholmePrime p ↔
        (p > 7) ∧ Nat.Prime p ∧ ↑(p ^ 3) ∣ (harmonic (p - 1)).num := by
    …

    Mentions: WolstenholmePrime.IsWolstenholmePrime

  7. theorem WolstenholmePrime.wolstenholme_prime_infinite It is conjectured that there are infinitely many Wolstenholme primes sorry line 90 source

    Source documentation

    It is conjectured that there are infinitely many Wolstenholme primes.

    Reference: Wikipedia

    L4DEL explanation

    It is conjectured that there are infinitely many Wolstenholme primes. Reference: Wikipedia

    Sources and attribution: Pinned Lean source (1646ca16afd6)

    depends on sorry what this means

    Statement uses: Set.Infinite, Nat, Set.ofPred, WolstenholmePrime.IsWolstenholmePrime

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

    1 instances, coercions and auxiliary constants left out.

    Tactic trace: 1 steps

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

    theorem wolstenholme_prime_infinite :
        {p : ℕ | IsWolstenholmePrime p}.Infinite := by
    …

    Mentions: WolstenholmePrime.IsWolstenholmePrime