Theorem: descent_gcd1
Proof state before:
a b c p q : ℤ
hp : p ≠ 0
hcoprime : IsCoprime p q
hodd : Even p ↔ ¬Even q
hcube : 2 * p * (p ^ 2 + 3 * q ^ 2) = a ^ 3 ∨ 2 * p * (p ^ 2 + 3 * q ^ 2) = b ^ 3 ∨ 2 * p * (p ^ 2 + 3 * q ^ 2) = c ^ 3
hgcd : IsCoprime (2 * p) (p ^ 2 + 3 * q ^ 2)
r : ℤ
hr : 2 * p * (p ^ 2 + 3 * q ^ 2) = r ^ 3
this✝² : Odd 3
hcuberight : ∃ e, p ^ 2 + 3 * q ^ 2 = e ^ 3
u v : ℤ
hpfactor : p = u * (u - 3 * v) * (u + 3 * v)
hq : q = 3 * v * (u - v) * (u + v)
huvcoprime : IsCoprime u v
huvodd : Even u ↔ ¬Even v
u_ne_zero : u ≠ 0
haaa : 2 * p = 2 * u * (u - 3 * v) * (u + 3 * v)
this✝¹ : ¬Even 3
this✝ : ¬Even (u - 3 * v)
this : ¬Even (u + 3 * v)
notdvd_2_2 : ¬2 ∣ u - 3 * v
hddd : ¬3 ∣ p
not_3_dvd_2 : ¬3 ∣ u - 3 * v
notdvd_3_3 : ¬3 ∣ u + 3 * v
s : ℤ
hs : 2 * p = s ^ 3
⊢ ∃ X Y Z, X ≠ 0 ∧ Y ≠ 0 ∧ Z ≠ 0 ∧ 2 * u = X ^ 3 ∧ u - 3 * v = Y ^ 3 ∧ u + 3 * v = Z ^ 3
Tactic:
apply Int.cube_of_coprime (2 * u) (u - 3 * v) (u + 3 * v) s
Proof state after:
case ha
a b c p q : ℤ
hp : p ≠ 0
hcoprime : IsCoprime p q
hodd : Even p ↔ ¬Even q
hcube : 2 * p * (p ^ 2 + 3 * q ^ 2) = a ^ 3 ∨ 2 * p * (p ^ 2 + 3 * q ^ 2) = b ^ 3 ∨ 2 * p * (p ^ 2 + 3 * q ^ 2) = c ^ 3
hgcd : IsCoprime (2 * p) (p ^ 2 + 3 * q ^ 2)
r : ℤ
hr : 2 * p * (p ^ 2 + 3 * q ^ 2) = r ^ 3
this✝² : Odd 3
hcuberight : ∃ e, p ^ 2 + 3 * q ^ 2 = e ^ 3
u v : ℤ
hpfactor : p = u * (u - 3 * v) * (u + 3 * v)
hq : q = 3 * v * (u - v) * (u + v)
huvcoprime : IsCoprime u v
huvodd : Even u ↔ ¬Even v
u_ne_zero : u ≠ 0
haaa : 2 * p = 2 * u * (u - 3 * v) * (u + 3 * v)
this✝¹ : ¬Even 3
this✝ : ¬Even (u - 3 * v)
this : ¬Even (u + 3 * v)
notdvd_2_2 : ¬2 ∣ u - 3 * v
hddd : ¬3 ∣ p
not_3_dvd_2 : ¬3 ∣ u - 3 * v
notdvd_3_3 : ¬3 ∣ u + 3 * v
s : ℤ
hs : 2 * p = s ^ 3
⊢ 2 * u ≠ 0

case hb
a b c p q : ℤ
hp : p ≠ 0
hcoprime : IsCoprime p q
hodd : Even p ↔ ¬Even q
hcube : 2 * p * (p ^ 2 + 3 * q ^ 2) = a ^ 3 ∨ 2 * p * (p ^ 2 + 3 * q ^ 2) = b ^ 3 ∨ 2 * p * (p ^ 2 + 3 * q ^ 2) = c ^ 3
hgcd : IsCoprime (2 * p) (p ^ 2 + 3 * q ^ 2)
r : ℤ
hr : 2 * p * (p ^ 2 + 3 * q ^ 2) = r ^ 3
this✝² : Odd 3
hcuberight : ∃ e, p ^ 2 + 3 * q ^ 2 = e ^ 3
u v : ℤ
hpfactor : p = u * (u - 3 * v) * (u + 3 * v)
hq : q = 3 * v * (u - v) * (u + v)
huvcoprime : IsCoprime u v
huvodd : Even u ↔ ¬Even v
u_ne_zero : u ≠ 0
haaa : 2 * p = 2 * u * (u - 3 * v) * (u + 3 * v)
this✝¹ : ¬Even 3
this✝ : ¬Even (u - 3 * v)
this : ¬Even (u + 3 * v)
notdvd_2_2 : ¬2 ∣ u - 3 * v
hddd : ¬3 ∣ p
not_3_dvd_2 : ¬3 ∣ u - 3 * v
notdvd_3_3 : ¬3 ∣ u + 3 * v
s : ℤ
hs : 2 * p = s ^ 3
⊢ u - 3 * v ≠ 0

case hc
a b c p q : ℤ
hp : p ≠ 0
hcoprime : IsCoprime p q
hodd : Even p ↔ ¬Even q
hcube : 2 * p * (p ^ 2 + 3 * q ^ 2) = a ^ 3 ∨ 2 * p * (p ^ 2 + 3 * q ^ 2) = b ^ 3 ∨ 2 * p * (p ^ 2 + 3 * q ^ 2) = c ^ 3
hgcd : IsCoprime (2 * p) (p ^ 2 + 3 * q ^ 2)
r : ℤ
hr : 2 * p * (p ^ 2 + 3 * q ^ 2) = r ^ 3
this✝² : Odd 3
hcuberight : ∃ e, p ^ 2 + 3 * q ^ 2 = e ^ 3
u v : ℤ
hpfactor : p = u * (u - 3 * v) * (u + 3 * v)
hq : q = 3 * v * (u - v) * (u + v)
huvcoprime : IsCoprime u v
huvodd : Even u ↔ ¬Even v
u_ne_zero : u ≠ 0
haaa : 2 * p = 2 * u * (u - 3 * v) * (u + 3 * v)
this✝¹ : ¬Even 3
this✝ : ¬Even (u - 3 * v)
this : ¬Even (u + 3 * v)
notdvd_2_2 : ¬2 ∣ u - 3 * v
hddd : ¬3 ∣ p
not_3_dvd_2 : ¬3 ∣ u - 3 * v
notdvd_3_3 : ¬3 ∣ u + 3 * v
s : ℤ
hs : 2 * p = s ^ 3
⊢ u + 3 * v ≠ 0

case hcoprimeab
a b c p q : ℤ
hp : p ≠ 0
hcoprime : IsCoprime p q
hodd : Even p ↔ ¬Even q
hcube : 2 * p * (p ^ 2 + 3 * q ^ 2) = a ^ 3 ∨ 2 * p * (p ^ 2 + 3 * q ^ 2) = b ^ 3 ∨ 2 * p * (p ^ 2 + 3 * q ^ 2) = c ^ 3
hgcd : IsCoprime (2 * p) (p ^ 2 + 3 * q ^ 2)
r : ℤ
hr : 2 * p * (p ^ 2 + 3 * q ^ 2) = r ^ 3
this✝² : Odd 3
hcuberight : ∃ e, p ^ 2 + 3 * q ^ 2 = e ^ 3
u v : ℤ
hpfactor : p = u * (u - 3 * v) * (u + 3 * v)
hq : q = 3 * v * (u - v) * (u + v)
huvcoprime : IsCoprime u v
huvodd : Even u ↔ ¬Even v
u_ne_zero : u ≠ 0
haaa : 2 * p = 2 * u * (u - 3 * v) * (u + 3 * v)
this✝¹ : ¬Even 3
this✝ : ¬Even (u - 3 * v)
this : ¬Even (u + 3 * v)
notdvd_2_2 : ¬2 ∣ u - 3 * v
hddd : ¬3 ∣ p
not_3_dvd_2 : ¬3 ∣ u - 3 * v
notdvd_3_3 : ¬3 ∣ u + 3 * v
s : ℤ
hs : 2 * p = s ^ 3
⊢ IsCoprime (2 * u) (u - 3 * v)

case hcoprimeac
a b c p q : ℤ
hp : p ≠ 0
hcoprime : IsCoprime p q
hodd : Even p ↔ ¬Even q
hcube : 2 * p * (p ^ 2 + 3 * q ^ 2) = a ^ 3 ∨ 2 * p * (p ^ 2 + 3 * q ^ 2) = b ^ 3 ∨ 2 * p * (p ^ 2 + 3 * q ^ 2) = c ^ 3
hgcd : IsCoprime (2 * p) (p ^ 2 + 3 * q ^ 2)
r : ℤ
hr : 2 * p * (p ^ 2 + 3 * q ^ 2) = r ^ 3
this✝² : Odd 3
hcuberight : ∃ e, p ^ 2 + 3 * q ^ 2 = e ^ 3
u v : ℤ
hpfactor : p = u * (u - 3 * v) * (u + 3 * v)
hq : q = 3 * v * (u - v) * (u + v)
huvcoprime : IsCoprime u v
huvodd : Even u ↔ ¬Even v
u_ne_zero : u ≠ 0
haaa : 2 * p = 2 * u * (u - 3 * v) * (u + 3 * v)
this✝¹ : ¬Even 3
this✝ : ¬Even (u - 3 * v)
this : ¬Even (u + 3 * v)
notdvd_2_2 : ¬2 ∣ u - 3 * v
hddd : ¬3 ∣ p
not_3_dvd_2 : ¬3 ∣ u - 3 * v
notdvd_3_3 : ¬3 ∣ u + 3 * v
s : ℤ
hs : 2 * p = s ^ 3
⊢ IsCoprime (2 * u) (u + 3 * v)

case hcoprimebc
a b c p q : ℤ
hp : p ≠ 0
hcoprime : IsCoprime p q
hodd : Even p ↔ ¬Even q
hcube : 2 * p * (p ^ 2 + 3 * q ^ 2) = a ^ 3 ∨ 2 * p * (p ^ 2 + 3 * q ^ 2) = b ^ 3 ∨ 2 * p * (p ^ 2 + 3 * q ^ 2) = c ^ 3
hgcd : IsCoprime (2 * p) (p ^ 2 + 3 * q ^ 2)
r : ℤ
hr : 2 * p * (p ^ 2 + 3 * q ^ 2) = r ^ 3
this✝² : Odd 3
hcuberight : ∃ e, p ^ 2 + 3 * q ^ 2 = e ^ 3
u v : ℤ
hpfactor : p = u * (u - 3 * v) * (u + 3 * v)
hq : q = 3 * v * (u - v) * (u + v)
huvcoprime : IsCoprime u v
huvodd : Even u ↔ ¬Even v
u_ne_zero : u ≠ 0
haaa : 2 * p = 2 * u * (u - 3 * v) * (u + 3 * v)
this✝¹ : ¬Even 3
this✝ : ¬Even (u - 3 * v)
this : ¬Even (u + 3 * v)
notdvd_2_2 : ¬2 ∣ u - 3 * v
hddd : ¬3 ∣ p
not_3_dvd_2 : ¬3 ∣ u - 3 * v
notdvd_3_3 : ¬3 ∣ u + 3 * v
s : ℤ
hs : 2 * p = s ^ 3
⊢ IsCoprime (u - 3 * v) (u + 3 * v)

case hs
a b c p q : ℤ
hp : p ≠ 0
hcoprime : IsCoprime p q
hodd : Even p ↔ ¬Even q
hcube : 2 * p * (p ^ 2 + 3 * q ^ 2) = a ^ 3 ∨ 2 * p * (p ^ 2 + 3 * q ^ 2) = b ^ 3 ∨ 2 * p * (p ^ 2 + 3 * q ^ 2) = c ^ 3
hgcd : IsCoprime (2 * p) (p ^ 2 + 3 * q ^ 2)
r : ℤ
hr : 2 * p * (p ^ 2 + 3 * q ^ 2) = r ^ 3
this✝² : Odd 3
hcuberight : ∃ e, p ^ 2 + 3 * q ^ 2 = e ^ 3
u v : ℤ
hpfactor : p = u * (u - 3 * v) * (u + 3 * v)
hq : q = 3 * v * (u - v) * (u + v)
huvcoprime : IsCoprime u v
huvodd : Even u ↔ ¬Even v
u_ne_zero : u ≠ 0
haaa : 2 * p = 2 * u * (u - 3 * v) * (u + 3 * v)
this✝¹ : ¬Even 3
this✝ : ¬Even (u - 3 * v)
this : ¬Even (u + 3 * v)
notdvd_2_2 : ¬2 ∣ u - 3 * v
hddd : ¬3 ∣ p
not_3_dvd_2 : ¬3 ∣ u - 3 * v
notdvd_3_3 : ¬3 ∣ u + 3 * v
s : ℤ
hs : 2 * p = s ^ 3
⊢ 2 * u * (u - 3 * v) * (u + 3 * v) = s ^ 3