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

abc conjecture

Reference: Wikipedia

Imports (1)
  1. def ABC.radical The radical of n denoted is the product of the distinct prime factors of n line 33 source

    Source documentation

    The radical of n denoted is the product of the distinct prime factors of n.

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

    Statement uses: Nat

    Proof uses: Finset.prod, Nat.primeFactors, id

    1 instances, coercions and auxiliary constants left out.

    def radical (n : ℕ) : ℕ := n.primeFactors.prod id
    …
  2. theorem ABC.radical_16 line 36 source

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

    Statement uses: Eq, Nat, ABC.radical, OfNat.ofNat

    Proof uses: Finset, Nat.primeFactors, Singleton.singleton, Eq.mpr, HPow.hPow, id, congrArg, of_decide_eq_true, Bool, Decidable.decide, Bool.true, Eq.refl, Nat.primeFactors_pow, Ne, of_eq_true, Eq.trans, True, congrFun', Nat.Prime.primeFactors, Mathlib.Meta.NormNum.isNat_prime_2 and 10 more

    13 instances, coercions and auxiliary constants left out.

    Tactic trace: 8 steps

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

  3. theorem ABC.radical_17 line 44 source

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

    Statement uses: Eq, Nat, ABC.radical, OfNat.ofNat

    Proof uses: Eq.mpr, Finset.prod, Nat.primeFactors, id, congrArg, ABC.radical.eq_1, Singleton.singleton, Finset, Nat.Prime.primeFactors, Mathlib.Meta.NormNum.isNat_prime_2, Mathlib.Meta.NormNum.isNat_ofNat, Eq.refl, Bool, Bool.true, Mathlib.Meta.NormNum.isNat_minFac_4, Mathlib.Meta.NormNum.IsNat.raw_refl, Mathlib.Meta.NormNum.minFacHelper_3, Bool.false, Mathlib.Meta.NormNum.minFacHelper_0, Finset.prod_singleton and 1 more

    5 instances, coercions and auxiliary constants left out.

    Tactic trace: 2 steps

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

  4. theorem ABC.radical_12 line 48 source

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

    Statement uses: Eq, Nat, ABC.radical, OfNat.ofNat

    Proof uses: Eq.mpr, Finset.prod, Nat.primeFactors, id, congrArg, ABC.radical.eq_1, HMul.hMul, HPow.hPow, Eq.refl, Union.union, Finset, Nat.primeFactors_mul, Mathlib.Meta.NormNum.isNat_eq_false, Mathlib.Meta.NormNum.isNat_pow, Mathlib.Meta.NormNum.isNat_ofNat, Mathlib.Meta.NormNum.IsNatPowT.run, Mathlib.Meta.NormNum.IsNatPowT.bit0, Bool, Bool.false, Nat.primeFactors_pow and 8 more

    15 instances, coercions and auxiliary constants left out.

    Tactic trace: 8 steps

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

  5. def ABC.quality Quality q(a, b, c) of the triple (a, b, c) is defined as q(a,b,c) = log (c) / log (rad(abc)) line 57 source

    Source documentation

    Quality q(a, b, c) of the triple (a, b, c) is defined as q(a,b,c) = log (c) / log (rad(abc)).

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

    Statement uses: Nat, Real

    Proof uses: HDiv.hDiv, Real.log, ABC.radical, HMul.hMul

    7 instances, coercions and auxiliary constants left out.

    noncomputable def quality (a b c : ℕ) : ℝ := (c : ℝ).log / (radical <| a * b * c : ℝ).log
    …

    Mentions: c, ABC.radical

  6. theorem ABC.abc For every positive real number ε, there exist only finitely many triples (a, b, c) of coprime positive integers, with a + b = c, such that c > rad(abc)^(1+ε) sorry line 63 source

    Source documentation

    For every positive real number ε, there exist only finitely many triples (a, b, c) of coprime positive integers, with a + b = c, such that c > rad(abc)^(1+ε)

    depends on sorry what this means

    Statement uses: Real, LT.lt, OfNat.ofNat, Set.Finite, Prod, Nat, Set.ofPred, ABC.abc.match_1, And, Set.Pairwise, Insert.insert, Set, Singleton.singleton, Nat.Coprime, Eq, HAdd.hAdd, HPow.hPow, ABC.radical, HMul.hMul

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

    36 instances, coercions and auxiliary constants left out.

    Tactic trace: 1 steps

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

    theorem abc (ε : ℝ) (hε : 0 < ε) :
        {(a, b, c) : ℕ × ℕ × ℕ | 0 < a ∧ 0 < b ∧ 0 < c ∧ ({a, b, c} : Set ℕ).Pairwise Nat.Coprime ∧
        a + b = c ∧ (radical <| a * b * c : ℝ)^(1 + ε) < c}.Finite := by
    …

    Mentions: c, ABC.radical

  7. theorem ABC.abc.variants.lt_constant_mul For every positive real number ε, there exists a constant K_ε such that for all triples (a, b, c) of coprime positive integers, with a + b = c we have c < K_ε rad(abc)^(1+ε) sorry line 72 source

    Source documentation

    For every positive real number ε, there exists a constant K_ε such that for all triples (a, b, c) of coprime positive integers, with a + b = c we have c < K_ε rad(abc)^(1+ε).

    depends on sorry what this means

    Statement uses: Real, LT.lt, OfNat.ofNat, Exists, Nat, Set.Pairwise, Insert.insert, Set, Singleton.singleton, Nat.Coprime, Eq, HAdd.hAdd, HMul.hMul, HPow.hPow, ABC.radical

    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 abc.variants.lt_constant_mul (ε : ℝ) (hε : 0 < ε) : ∃ K,
        ∀ (a b c : ℕ), 0 < a → 0 < b → 0 < c → ({a, b, c} : Set ℕ).Pairwise Nat.Coprime → a + b = c →
        c < K * (radical <| a * b * c : ℝ)^(1 + ε) := by
    …

    Mentions: c, ABC.radical

  8. theorem ABC.abc.variants.quality For every positive real number ε, there exist only finitely many triples (a, b, c) of coprime positive integers with a + b = c such that q(a, b, c) > 1 + ε sorry line 81 source

    Source documentation

    For every positive real number ε, there exist only finitely many triples (a, b, c) of coprime positive integers with a + b = c such that q(a, b, c) > 1 + ε.

    depends on sorry what this means

    Statement uses: Real, LT.lt, OfNat.ofNat, Set.Finite, Prod, Nat, Set.ofPred, ABC.abc.match_1, And, Set.Pairwise, Insert.insert, Set, Singleton.singleton, Nat.Coprime, Eq, HAdd.hAdd, GT.gt, ABC.quality

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

    24 instances, coercions and auxiliary constants left out.

    Tactic trace: 1 steps

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

    theorem abc.variants.quality (ε : ℝ) (hε : 0 < ε) :
        {(a, b, c) : ℕ × ℕ × ℕ | 0 < a ∧ 0 < b ∧ 0 < c ∧ ({a, b, c} : Set ℕ).Pairwise Nat.Coprime ∧
        a + b = c ∧ quality a b c > (1 + ε)}.Finite := by
    …

    Mentions: c