FormalConjectures/Wikipedia/Goormaghtigh.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

6 declarations, 1 contain sorry, 0 declared as axioms

The Goormaghtigh conjecture

A repunit is a number whose digits in some base are all $1$. Here a nontrivial representation has at least three digits. The Goormaghtigh conjecture says that $31$ and $8191$ are the only numbers having nontrivial repunit representations in two different bases.

References:

Imports (1)
  1. def Goormaghtigh.repunit The repunit with digits digits in the given base, expressed without division line 38 source

    Source documentation

    The repunit with digits digits in the given base, expressed without division.

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

    Statement uses: Nat

    Proof uses: Finset.sum, Finset.range, HPow.hPow

    5 instances, coercions and auxiliary constants left out.

    def repunit (base digits : ℕ) : ℕ :=
    …
  2. def Goormaghtigh.IsGoormaghtighNumber A number having repunit representations of at least three digits in two distinct bases line 42 source

    Source documentation

    A number having repunit representations of at least three digits in two distinct bases.

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

    Statement uses: Nat

    Proof uses: Exists, And, LE.le, OfNat.ofNat, Ne, Eq, Goormaghtigh.repunit

    2 instances, coercions and auxiliary constants left out.

    def IsGoormaghtighNumber (N : ℕ) : Prop :=
    …
  3. theorem Goormaghtigh.goormaghtigh_conjecture The only Goormaghtigh numbers are $31$ and $8191$ sorry line 50 source

    Source documentation

    The only Goormaghtigh numbers are $31$ and $8191$.

    depends on sorry what this means

    Statement uses: Nat, Goormaghtigh.IsGoormaghtighNumber, Or, Eq, OfNat.ofNat

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

    2 instances, coercions and auxiliary constants left out.

    Tactic trace: 1 steps

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

    theorem goormaghtigh_conjecture (N : ℕ) (hN : IsGoormaghtighNumber N) :
        N = 31 ∨ N = 8191 := by
    …

    Mentions: Goormaghtigh.IsGoormaghtighNumber

  4. theorem Goormaghtigh.isGoormaghtighNumber_31 The number $31$ is a repunit in bases $2$ and $5$ line 56 source

    Source documentation

    The number $31$ is a repunit in bases $2$ and $5$.

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

    Statement uses: Goormaghtigh.IsGoormaghtighNumber, OfNat.ofNat, Nat

    Proof uses: Exists.intro, Exists, And, LE.le, Ne, Eq, Goormaghtigh.repunit, of_eq_true, Eq.trans, True, congr, congrArg, eq_true, Mathlib.Meta.NormNum.isNat_le_true, Mathlib.Meta.NormNum.isNat_ofNat, Eq.refl, Bool, Bool.true, Mathlib.Meta.NormNum.isNat_eq_false, Bool.false and 33 more

    25 instances, coercions and auxiliary constants left out.

    Tactic trace: 2 steps

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

    theorem isGoormaghtighNumber_31 : IsGoormaghtighNumber 31 := by
    …

    Mentions: Goormaghtigh.IsGoormaghtighNumber

  5. theorem Goormaghtigh.isGoormaghtighNumber_8191 The number $8191$ is a repunit in bases $2$ and $90$ line 62 source

    Source documentation

    The number $8191$ is a repunit in bases $2$ and $90$.

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

    Statement uses: Goormaghtigh.IsGoormaghtighNumber, OfNat.ofNat, Nat

    Proof uses: Exists.intro, Exists, And, LE.le, Ne, Eq, Goormaghtigh.repunit, of_eq_true, Eq.trans, True, congr, congrArg, eq_true, Mathlib.Meta.NormNum.isNat_le_true, Mathlib.Meta.NormNum.isNat_ofNat, Eq.refl, Bool, Bool.true, Mathlib.Meta.NormNum.isNat_eq_false, Bool.false and 33 more

    25 instances, coercions and auxiliary constants left out.

    Tactic trace: 2 steps

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

    theorem isGoormaghtighNumber_8191 : IsGoormaghtighNumber 8191 := by
    …

    Mentions: Goormaghtigh.IsGoormaghtighNumber

  6. theorem Goormaghtigh.repunit_two_digits Allowing two-digit repunits would make $13$ a representation in two distinct bases line 68 source

    Source documentation

    Allowing two-digit repunits would make $13$ a representation in two distinct bases.

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

    Statement uses: And, Eq, Nat, Goormaghtigh.repunit, OfNat.ofNat

    Proof uses: of_eq_true, Eq.trans, True, congr, congrArg, congrFun', Mathlib.Meta.NormNum.IsNat.to_eq, Finset.sum, Finset.range, HPow.hPow, Eq.rec, Finset.cons, Finset.notMem_range_self, Mathlib.Meta.NormNum.IsNat, HAdd.hAdd, Mathlib.Meta.NormNum.isNat_add, Eq.refl, Mathlib.Meta.NormNum.isNat_pow, Mathlib.Meta.NormNum.isNat_ofNat, Mathlib.Meta.NormNum.IsNat.raw_refl and 18 more

    19 instances, coercions and auxiliary constants left out.

    Tactic trace: 1 steps

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

    theorem repunit_two_digits : repunit 3 3 = 13 ∧ repunit 12 2 = 13 := by
    …

    Mentions: Goormaghtigh.repunit