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

14 declarations, 5 contain sorry, 0 declared as axioms

Congruent Number

A natural number $n$ is called a congruent number if there exists a right triangle with rational sides $a$, $b$, and hypotenuse $c$ such that the area of the triangle is $\frac{1}{2}ab = n$.

References:

Imports (1)
Imported by 1 file
  1. def CongruentNumber.congruentNumber line 36 source

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

    Statement uses: Nat

    Proof uses: Exists, Rat, And, Eq, HAdd.hAdd, HPow.hPow, OfNat.ofNat, HMul.hMul, Inv.inv

    13 instances, coercions and auxiliary constants left out.

  2. theorem CongruentNumber.not_congruentNumber_1 1 is not a congruent number, as proved by Fermat via infinite descent sorry line 41 source

    Source documentation

    1 is not a congruent number, as proved by Fermat via infinite descent.

    depends on sorry what this means

    Statement uses: Not, CongruentNumber.congruentNumber, OfNat.ofNat, Nat

    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 not_congruentNumber_1 : ¬ congruentNumber 1 := by
    …

    Mentions: CongruentNumber.congruentNumber

  3. theorem CongruentNumber.congruentNumber_5 The rational right triangle with side lengths $\frac{3}{2}$, $\frac{20}{3}$, and $\frac{41}{6}$ witnesses that $5$ is a congruent number line 49 source

    Source documentation

    The rational right triangle with side lengths $\frac{3}{2}$, $\frac{20}{3}$, and $\frac{41}{6}$ witnesses that $5$ is a congruent number.

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

    Statement uses: CongruentNumber.congruentNumber, OfNat.ofNat, Nat

    Proof uses: Exists.intro, Rat, Exists, And, Eq, HAdd.hAdd, HPow.hPow, HMul.hMul, Inv.inv, HDiv.hDiv, of_eq_true, Eq.trans, True, congr, congrArg, eq_true, Mathlib.Meta.NormNum.isNNRat_eq_true, Mathlib.Meta.NormNum.isNNRat_add, Eq.refl, Mathlib.Meta.NormNum.isNNRat_pow and 13 more

    35 instances, coercions and auxiliary constants left out.

    Tactic trace: 2 steps

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

    theorem congruentNumber_5 : congruentNumber 5 := by
    …

    Mentions: CongruentNumber.congruentNumber

  4. theorem CongruentNumber.congruentNumber_6 The $3$-$4$-$5$ right triangle witnesses that $6$ is a congruent number line 57 source

    Source documentation

    The $3$-$4$-$5$ right triangle witnesses that $6$ is a congruent number.

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

    Statement uses: CongruentNumber.congruentNumber, OfNat.ofNat, Nat

    Proof uses: Exists.intro, Rat, Exists, And, Eq, HAdd.hAdd, HPow.hPow, HMul.hMul, Inv.inv, of_eq_true, Eq.trans, True, congr, congrArg, eq_true, Mathlib.Meta.NormNum.isNat_eq_true, Mathlib.Meta.NormNum.isNat_add, Eq.refl, Mathlib.Meta.NormNum.isNat_pow, Mathlib.Meta.NormNum.isNat_ofNat and 10 more

    30 instances, coercions and auxiliary constants left out.

    Tactic trace: 2 steps

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

    theorem congruentNumber_6 : congruentNumber 6 := by
    …

    Mentions: CongruentNumber.congruentNumber

  5. theorem CongruentNumber.congruentNumber_7 The rational right triangle with side lengths $\frac{35}{12}$, $\frac{24}{5}$, and $\frac{337}{60}$ witnesses that $7$ is a congruent number line 66 source

    Source documentation

    The rational right triangle with side lengths $\frac{35}{12}$, $\frac{24}{5}$, and $\frac{337}{60}$ witnesses that $7$ is a congruent number.

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

    Statement uses: CongruentNumber.congruentNumber, OfNat.ofNat, Nat

    Proof uses: Exists.intro, Rat, Exists, And, Eq, HAdd.hAdd, HPow.hPow, HMul.hMul, Inv.inv, HDiv.hDiv, of_eq_true, Eq.trans, True, congr, congrArg, eq_true, Mathlib.Meta.NormNum.isNNRat_eq_true, Mathlib.Meta.NormNum.isNNRat_add, Eq.refl, Mathlib.Meta.NormNum.isNNRat_pow and 13 more

    35 instances, coercions and auxiliary constants left out.

    Tactic trace: 2 steps

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

    theorem congruentNumber_7 : congruentNumber 7 := by
    …

    Mentions: CongruentNumber.congruentNumber

  6. theorem CongruentNumber.congruentNumber_157_zagier Zagier's rational right triangle witnesses that $157$ is a congruent number line 74 source

    Source documentation

    Zagier's rational right triangle witnesses that $157$ is a congruent number.

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

    Statement uses: CongruentNumber.congruentNumber, OfNat.ofNat, Nat

    Proof uses: Exists.intro, Rat, Exists, And, Eq, HAdd.hAdd, HPow.hPow, HMul.hMul, Inv.inv, HDiv.hDiv, of_eq_true, Eq.trans, True, congr, congrArg, eq_true, Mathlib.Meta.NormNum.isNNRat_eq_true, Mathlib.Meta.NormNum.isNNRat_add, Eq.refl, Mathlib.Meta.NormNum.isNNRat_pow and 13 more

    35 instances, coercions and auxiliary constants left out.

    Tactic trace: 2 steps

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

    theorem congruentNumber_157_zagier : congruentNumber 157 := by
    …

    Mentions: CongruentNumber.congruentNumber

  7. def CongruentNumber.A line 95 source

    standard axioms: propext what this means

    Statement uses: Nat, Set, Prod, Int

    Proof uses: Set.ofPred, CongruentNumber.A.match_1, Eq, HAdd.hAdd, HMul.hMul, OfNat.ofNat, HPow.hPow

    12 instances, coercions and auxiliary constants left out.

  8. def CongruentNumber.B line 96 source

    standard axioms: propext what this means

    Statement uses: Nat, Set, Prod, Int

    Proof uses: Set.ofPred, CongruentNumber.A.match_1, Eq, HAdd.hAdd, HMul.hMul, OfNat.ofNat, HPow.hPow

    12 instances, coercions and auxiliary constants left out.

  9. def CongruentNumber.C line 97 source

    standard axioms: propext what this means

    Statement uses: Nat, Set, Prod, Int

    Proof uses: Set.ofPred, CongruentNumber.A.match_1, Eq, HAdd.hAdd, HMul.hMul, OfNat.ofNat, HPow.hPow

    12 instances, coercions and auxiliary constants left out.

  10. def CongruentNumber.D line 98 source

    standard axioms: propext what this means

    Statement uses: Nat, Set, Prod, Int

    Proof uses: Set.ofPred, CongruentNumber.A.match_1, Eq, HAdd.hAdd, HMul.hMul, OfNat.ofNat, HPow.hPow

    12 instances, coercions and auxiliary constants left out.

  11. theorem CongruentNumber.Tunnell_odd Tunnell's theorem (necessary condition) for odd squarefree congruent numbers sorry line 104 source

    Source documentation

    Tunnell's theorem (necessary condition) for odd squarefree congruent numbers.

    depends on sorry what this means

    Statement uses: Nat, Squarefree, Odd, CongruentNumber.congruentNumber, Eq, HMul.hMul, OfNat.ofNat, Set.ncard, Prod, Int, CongruentNumber.A, CongruentNumber.B

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

    10 instances, coercions and auxiliary constants left out.

    Tactic trace: 1 steps

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

    theorem Tunnell_odd (n : ℕ) (hsqf : Squarefree n) (hodd : Odd n) :
        congruentNumber n → 2 * (A n).ncard = (B n).ncard := by
    …

    Mentions: CongruentNumber.congruentNumber, CongruentNumber.A, CongruentNumber.B

  12. theorem CongruentNumber.Tunnell_even Tunnell's theorem (necessary condition) for even squarefree congruent numbers sorry line 110 source

    Source documentation

    Tunnell's theorem (necessary condition) for even squarefree congruent numbers.

    depends on sorry what this means

    Statement uses: Nat, Squarefree, Even, CongruentNumber.congruentNumber, Eq, HMul.hMul, OfNat.ofNat, Set.ncard, Prod, Int, CongruentNumber.C, CongruentNumber.D

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

    10 instances, coercions and auxiliary constants left out.

    Tactic trace: 1 steps

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

    theorem Tunnell_even (n : ℕ) (hsqf : Squarefree n) (heven : Even n) :
        congruentNumber n → 2 * (C n).ncard = (D n).ncard := by
    …

    Mentions: CongruentNumber.congruentNumber, CongruentNumber.C, CongruentNumber.D

  13. theorem CongruentNumber.Tunnell_odd_converse Tunnell's theorem (sufficient condition assuming BSD) for odd squarefree congruent numbers sorry line 118 source

    Source documentation

    Tunnell's theorem (sufficient condition assuming BSD) for odd squarefree congruent numbers.

    depends on sorry what this means

    Statement uses: Nat, Squarefree, Odd, Eq, HMul.hMul, OfNat.ofNat, Set.ncard, Prod, Int, CongruentNumber.A, CongruentNumber.B, CongruentNumber.congruentNumber

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

    10 instances, coercions and auxiliary constants left out.

    Tactic trace: 1 steps

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

    theorem Tunnell_odd_converse (n : ℕ) (hsqf : Squarefree n) (hodd : Odd n) :
        2 * (A n).ncard = (B n).ncard → congruentNumber n := by
    …

    Mentions: CongruentNumber.A, CongruentNumber.B, CongruentNumber.congruentNumber

  14. theorem CongruentNumber.Tunnell_even_converse Tunnell's theorem (sufficient condition assuming BSD) for even squarefree congruent numbers sorry line 124 source

    Source documentation

    Tunnell's theorem (sufficient condition assuming BSD) for even squarefree congruent numbers.

    depends on sorry what this means

    Statement uses: Nat, Squarefree, Even, Eq, HMul.hMul, OfNat.ofNat, Set.ncard, Prod, Int, CongruentNumber.C, CongruentNumber.D, CongruentNumber.congruentNumber

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

    10 instances, coercions and auxiliary constants left out.

    Tactic trace: 1 steps

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

    theorem Tunnell_even_converse (n : ℕ) (hsqf : Squarefree n) (heven : Even n) :
        2 * (C n).ncard = (D n).ncard → congruentNumber n := by
    …

    Mentions: CongruentNumber.C, CongruentNumber.D, CongruentNumber.congruentNumber