FormalConjectures/Wikipedia/EulerBrick.lean
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
16 declarations, 7 contain sorry, 0 declared as axioms
Open questions regarding the existence of Euler bricks
References:
- Wikipedia
- stackexchange
- [Sh12] Sharipov, Ruslan. Perfect cuboids and irreducible polynomials. https://arxiv.org/abs/1108.5348
Imports (1)
Imported by 1 file
- def
EulerBrick.IsEulerBrickAn Euler brick is a rectangular cuboid where all edges and face diagonals have integer lengths line 36 sourceSource documentation
An Euler brick is a rectangular cuboid where all edges and face diagonals have integer lengths.
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
PNatProof uses:
And,IsSquare,HAdd.hAdd,HPow.hPow,Nat,OfNat.ofNat9 instances, coercions and auxiliary constants left out.
def IsEulerBrick (a b c : ℕ+) : Prop := …
Mentions: c
- def
EulerBrick.IsPerfectCuboidA perfect cuboid is an Euler brick with an integer space diagonal line 42 sourceSource documentation
A perfect cuboid is an Euler brick with an integer space diagonal.
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
PNatProof uses:
And, EulerBrick.IsEulerBrick,IsSquare,HAdd.hAdd,HPow.hPow,Nat,OfNat.ofNat9 instances, coercions and auxiliary constants left out.
def IsPerfectCuboid (a b c : ℕ+) : Prop := …
Mentions: c
- def
EulerBrick.IsEulerHyperBrickGeneralization of an Euler brick to $n$-dimensional space line 48 sourceSource documentation
Generalization of an Euler brick to $n$-dimensional space.
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Fin,PNatProof uses:
Pairwise,IsSquare,HAdd.hAdd,HPow.hPow,OfNat.ofNat9 instances, coercions and auxiliary constants left out.
def IsEulerHyperBrick (n : ℕ) (sides : Fin n → ℕ+) : Prop := …
- theorem
EulerBrick.perfect_euler_brick_existenceIs there a perfect Euler brick? sorry line 55 sourceSource documentation
Is there a perfect Euler brick?
depends on sorry what this means
Statement uses:
Iff,True,Exists,PNat, EulerBrick.IsPerfectCuboidProof uses:
sorryAx,Lean.Name,Bool.false,Lean.Name.num,Lean.Name.str,Lean.Name.anonymous,OfNat.ofNat,Nat1 instances, coercions and auxiliary constants left out.
Tactic trace: 1 steps
Open to load the checked before-and-after goal states.
theorem perfect_euler_brick_existence : answer(sorry) ↔ ∃ a b c : ℕ+, IsPerfectCuboid a b c := by …Mentions: c, EulerBrick.IsPerfectCuboid
- theorem
EulerBrick.four_dim_euler_brick_existenceIs there an Euler brick in $4$-dimensional space? sorry line 63 sourceSource documentation
Is there an Euler brick in $4$-dimensional space?
depends on sorry what this means
Statement uses:
Iff,True,Exists,Fin,OfNat.ofNat,Nat,PNat, EulerBrick.IsEulerHyperBrickProof uses:
sorryAx,Lean.Name,Bool.false,Lean.Name.num,Lean.Name.str,Lean.Name.anonymous2 instances, coercions and auxiliary constants left out.
Tactic trace: 1 steps
Open to load the checked before-and-after goal states.
theorem four_dim_euler_brick_existence : answer(sorry) ↔ ∃ sides : Fin 4 → ℕ+, IsEulerHyperBrick 4 sides:= by …Mentions: EulerBrick.IsEulerHyperBrick
- theorem
EulerBrick.n_dim_euler_brick_existenceIs there an Euler brick in $n$-dimensional space for any $n > 3$? sorry line 71 sourceSource documentation
Is there an Euler brick in $n$-dimensional space for any $n > 3$?
depends on sorry what this means
Statement uses:
Iff,True,Nat,GT.gt,OfNat.ofNat,Exists,Fin,PNat, EulerBrick.IsEulerHyperBrickProof uses:
sorryAx,Lean.Name,Bool.false,Lean.Name.num,Lean.Name.str,Lean.Name.anonymous4 instances, coercions and auxiliary constants left out.
Tactic trace: 1 steps
Open to load the checked before-and-after goal states.
theorem n_dim_euler_brick_existence : answer(sorry) ↔ ∀ n > 3, ∃ sides : Fin n → ℕ+, IsEulerHyperBrick n sides := by …
Mentions: EulerBrick.IsEulerHyperBrick
- def
EulerBrick.CuboidOneForPairs of natural numbers for which the first Cuboid polynomial is irreducible line 85 sourceSource documentation
Pairs of natural numbers for which the first Cuboid polynomial is irreducible.
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
IntProof uses:
Irreducible,Polynomial,HAdd.hAdd,HSub.hSub,HPow.hPow,Nat,Polynomial.X,OfNat.ofNat,HMul.hMul,RingHom,Polynomial.C22 instances, coercions and auxiliary constants left out.
def CuboidOneFor (a b : ℤ) : Prop := …
- def
EulerBrick.CuboidOneFirst Cuboid conjecture*: For all positive coprime integers $a$, $b$ with $a ≠ b$, the polynomial of the first Cuboid polynomial is irreducible line 92 sourceSource documentation
First Cuboid conjecture: For all positive coprime integers $a$, $b$ with $a ≠ b$, the polynomial of the first Cuboid polynomial is irreducible.
standard axioms: Classical.choice, Quot.sound, propext what this means
Proof uses:
Int,Eq,GCDMonoid.gcd,OfNat.ofNat,LT.lt,Ne, EulerBrick.CuboidOneFor5 instances, coercions and auxiliary constants left out.
def CuboidOne : Prop := ∀ ⦃a b : ℤ⦄, gcd a b = 1 → 0 < a → 0 < b → a ≠ b → CuboidOneFor a b …
Mentions: EulerBrick.CuboidOneFor
- theorem
EulerBrick.cuboidOnesorry line 105 sourcedepends on sorry what this means
Statement uses: EulerBrick.CuboidOne
Proof uses:
sorryAx,Lean.Name,Bool.false,Lean.Name.num,Lean.Name.str,Lean.Name.anonymous,OfNat.ofNat,Nat1 instances, coercions and auxiliary constants left out.
Tactic trace: 1 steps
Open to load the checked before-and-after goal states.
- def
EulerBrick.CuboidTwoForPairs of natural numbers for which the second Cuboid polynomial is irreducible line 109 sourceSource documentation
Pairs of natural numbers for which the second Cuboid polynomial is irreducible.
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
IntProof uses:
Irreducible,Polynomial,HSub.hSub,HAdd.hAdd,HPow.hPow,Nat,Polynomial.X,OfNat.ofNat,HMul.hMul,RingHom,Polynomial.C,Neg.neg23 instances, coercions and auxiliary constants left out.
def CuboidTwoFor (a b : ℤ) : Prop := …
- def
EulerBrick.CuboidTwoSecond Cuboid conjecture*: For all positive coprime integers $a$, $b$ with $a ≠ b$, the polynomial of the second Cuboid polynomial is irreducible line 119 sourceSource documentation
Second Cuboid conjecture: For all positive coprime integers $a$, $b$ with $a ≠ b$, the polynomial of the second Cuboid polynomial is irreducible.
standard axioms: Classical.choice, Quot.sound, propext what this means
Proof uses:
Nat,Nat.Coprime,LT.lt,OfNat.ofNat,Ne, EulerBrick.CuboidTwoFor,Int4 instances, coercions and auxiliary constants left out.
def CuboidTwo : Prop := ∀ ⦃a b : ℕ⦄, a.Coprime b → 0 < a → 0 < b → a ≠ b → CuboidTwoFor a b …
Mentions: EulerBrick.CuboidTwoFor
- theorem
EulerBrick.cuboidTwoThe second Cuboid conjecture sorry line 123 sourceSource documentation
The second Cuboid conjecture
depends on sorry what this means
Statement uses: EulerBrick.CuboidTwo
Proof uses:
sorryAx,Lean.Name,Bool.false,Lean.Name.num,Lean.Name.str,Lean.Name.anonymous,OfNat.ofNat,Nat1 instances, coercions and auxiliary constants left out.
Tactic trace: 1 steps
Open to load the checked before-and-after goal states.
theorem cuboidTwo : CuboidTwo := by …
Mentions: EulerBrick.CuboidTwo
- def
EulerBrick.CuboidThreeForTriplets of natural numbers for which the third Cuboid polynomial is irreducible line 127 sourceSource documentation
Triplets of natural numbers for which the third Cuboid polynomial is irreducible.
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
IntProof uses:
Irreducible,Polynomial,HAdd.hAdd,HPow.hPow,Nat,Polynomial.X,OfNat.ofNat,HMul.hMul,RingHom,Polynomial.C,HSub.hSub20 instances, coercions and auxiliary constants left out.
def CuboidThreeFor (a b c : ℤ) : Prop := …
Mentions: c
- def
EulerBrick.CuboidThreeThird Cuboid conjecture*: For all positive, pairwise different coprime integers line 140 sourceSource documentation
Third Cuboid conjecture: For all positive, pairwise different coprime integers $a, b, c$ with $b * c ≠ a ^ 2$ and $a * c ≠ b ^ 2$, the polynomial of the third Cuboid polynomial is irreducible.
standard axioms: Classical.choice, Quot.sound, propext what this means
Proof uses:
Int,Eq,GCDMonoid.gcd,OfNat.ofNat,LT.lt,Ne,HMul.hMul,HPow.hPow,Nat, EulerBrick.CuboidThreeFor12 instances, coercions and auxiliary constants left out.
def CuboidThree : Prop := ∀ ⦃a b c : ℤ⦄, gcd a (gcd b c) = 1 → 0 < a → 0 < b → …
Mentions: c
- theorem
EulerBrick.cuboidThreeThe third Cuboid conjecture sorry line 145 sourceSource documentation
The third Cuboid conjecture
depends on sorry what this means
Statement uses: EulerBrick.CuboidThree
Proof uses:
sorryAx,Lean.Name,Bool.false,Lean.Name.num,Lean.Name.str,Lean.Name.anonymous,OfNat.ofNat,Nat1 instances, coercions and auxiliary constants left out.
Tactic trace: 1 steps
Open to load the checked before-and-after goal states.
theorem cuboidThree : CuboidThree := by …
Mentions: EulerBrick.CuboidThree
- theorem
EulerBrick.cuboid_perfect_euler_brickIn [Sh12], Ruslan notes that a perfect Euler brick does not exist if all three Cuboid conjectures hold sorry line 151 sourceSource documentation
In [Sh12], Ruslan notes that a perfect Euler brick does not exist if all three Cuboid conjectures hold.
depends on sorry what this means
Statement uses: EulerBrick.CuboidOne, EulerBrick.CuboidTwo, EulerBrick.CuboidThree,
Not,Exists,PNat, EulerBrick.IsPerfectCuboidProof uses:
sorryAx,Lean.Name,Bool.false,Lean.Name.num,Lean.Name.str,Lean.Name.anonymous,OfNat.ofNat,Nat1 instances, coercions and auxiliary constants left out.
Tactic trace: 1 steps
Open to load the checked before-and-after goal states.
theorem cuboid_perfect_euler_brick (h₁ : CuboidOne) (h₂ : CuboidTwo) (h₃ : CuboidThree) : ¬ ∃ a b c : ℕ+, IsPerfectCuboid a b c := by …Mentions: EulerBrick.CuboidOne, EulerBrick.CuboidTwo, EulerBrick.CuboidThree, c, EulerBrick.IsPerfectCuboid