Theorem: _private.Mathlib.NumberTheory.FLT.Three.0.FermatLastTheoremForThreeGen.Solution.u₄_eq_one_or_neg_one
File: Mathlib/NumberTheory/FLT/Three.lean

Proof steps:
state_before: K : Type u_1
inst✝⁴ : Field K
inst✝³ : NumberField K
inst✝² : IsCyclotomicExtension {3} ℚ K
ζ : K
hζ : IsPrimitiveRoot ζ ↑3
S : Solution hζ
S' : Solution' hζ
inst✝¹ : DecidableRel fun a b => a ∣ b
inst✝ : DecidableEq (𝓞 K)
⊢ FermatLastTheoremForThreeGen.Solution.u₄ S = 1 ∨ FermatLastTheoremForThreeGen.Solution.u₄ S = -1
state_after: K : Type u_1
inst✝⁴ : Field K
inst✝³ : NumberField K
inst✝² : IsCyclotomicExtension {3} ℚ K
ζ : K
hζ : IsPrimitiveRoot ζ ↑3
S : Solution hζ
S' : Solution' hζ
inst✝¹ : DecidableRel fun a b => a ∣ b
inst✝ : DecidableEq (𝓞 K)
this : λ ^ 2 ∣ λ ^ 4
⊢ FermatLastTheoremForThreeGen.Solution.u₄ S = 1 ∨ FermatLastTheoremForThreeGen.Solution.u₄ S = -1
tactic: have : λ^2 ∣ λ^4  := ⟨λ^2, by ring⟩
state_before: K : Type u_1
inst✝⁴ : Field K
inst✝³ : NumberField K
inst✝² : IsCyclotomicExtension {3} ℚ K
ζ : K
hζ : IsPrimitiveRoot ζ ↑3
S : Solution hζ
S' : Solution' hζ
inst✝¹ : DecidableRel fun a b => a ∣ b
inst✝ : DecidableEq (𝓞 K)
this : λ ^ 2 ∣ λ ^ 4
⊢ FermatLastTheoremForThreeGen.Solution.u₄ S = 1 ∨ FermatLastTheoremForThreeGen.Solution.u₄ S = -1
state_after: K : Type u_1
inst✝⁴ : Field K
inst✝³ : NumberField K
inst✝² : IsCyclotomicExtension {3} ℚ K
ζ : K
hζ : IsPrimitiveRoot ζ ↑3
S : Solution hζ
S' : Solution' hζ
inst✝¹ : DecidableRel fun a b => a ∣ b
inst✝ : DecidableEq (𝓞 K)
this : λ ^ 2 ∣ λ ^ 4
h :
  λ ^ 2 ∣
    ↑(FermatLastTheoremForThreeGen.Solution.u₅ S) *
      (λ ^ (S.multiplicity - 1) * FermatLastTheoremForThreeGen.Solution.X S) ^ 3
⊢ FermatLastTheoremForThreeGen.Solution.u₄ S = 1 ∨ FermatLastTheoremForThreeGen.Solution.u₄ S = -1
tactic: have h := S.lambda_sq_div_u₅_mul
state_before: K : Type u_1
inst✝⁴ : Field K
inst✝³ : NumberField K
inst✝² : IsCyclotomicExtension {3} ℚ K
ζ : K
hζ : IsPrimitiveRoot ζ ↑3
S : Solution hζ
S' : Solution' hζ
inst✝¹ : DecidableRel fun a b => a ∣ b
inst✝ : DecidableEq (𝓞 K)
this : λ ^ 2 ∣ λ ^ 4
h :
  λ ^ 2 ∣
    ↑(FermatLastTheoremForThreeGen.Solution.u₅ S) *
      (λ ^ (S.multiplicity - 1) * FermatLastTheoremForThreeGen.Solution.X S) ^ 3
⊢ FermatLastTheoremForThreeGen.Solution.u₄ S = 1 ∨ FermatLastTheoremForThreeGen.Solution.u₄ S = -1
state_after: case hcong
K : Type u_1
inst✝⁴ : Field K
inst✝³ : NumberField K
inst✝² : IsCyclotomicExtension {3} ℚ K
ζ : K
hζ : IsPrimitiveRoot ζ ↑3
S : Solution hζ
S' : Solution' hζ
inst✝¹ : DecidableRel fun a b => a ∣ b
inst✝ : DecidableEq (𝓞 K)
this : λ ^ 2 ∣ λ ^ 4
h :
  λ ^ 2 ∣
    ↑(FermatLastTheoremForThreeGen.Solution.u₅ S) *
      (λ ^ (S.multiplicity - 1) * FermatLastTheoremForThreeGen.Solution.X S) ^ 3
⊢ ∃ n, λ ^ 2 ∣ ↑(FermatLastTheoremForThreeGen.Solution.u₄ S) - ↑n
tactic: apply IsCyclotomicExtension.Rat.Three.eq_one_or_neg_one_of_unit_of_congruent hζ
state_before: case hcong
K : Type u_1
inst✝⁴ : Field K
inst✝³ : NumberField K
inst✝² : IsCyclotomicExtension {3} ℚ K
ζ : K
hζ : IsPrimitiveRoot ζ ↑3
S : Solution hζ
S' : Solution' hζ
inst✝¹ : DecidableRel fun a b => a ∣ b
inst✝ : DecidableEq (𝓞 K)
this : λ ^ 2 ∣ λ ^ 4
h :
  λ ^ 2 ∣
    ↑(FermatLastTheoremForThreeGen.Solution.u₅ S) *
      (λ ^ (S.multiplicity - 1) * FermatLastTheoremForThreeGen.Solution.X S) ^ 3
⊢ ∃ n, λ ^ 2 ∣ ↑(FermatLastTheoremForThreeGen.Solution.u₄ S) - ↑n
state_after: case hcong.intro
K : Type u_1
inst✝⁴ : Field K
inst✝³ : NumberField K
inst✝² : IsCyclotomicExtension {3} ℚ K
ζ : K
hζ : IsPrimitiveRoot ζ ↑3
S : Solution hζ
S' : Solution' hζ
inst✝¹ : DecidableRel fun a b => a ∣ b
inst✝ : DecidableEq (𝓞 K)
this : λ ^ 2 ∣ λ ^ 4
X : 𝓞 K
hX :
  ↑(FermatLastTheoremForThreeGen.Solution.u₅ S) *
      (λ ^ (S.multiplicity - 1) * FermatLastTheoremForThreeGen.Solution.X S) ^ 3 =
    λ ^ 2 * X
⊢ ∃ n, λ ^ 2 ∣ ↑(FermatLastTheoremForThreeGen.Solution.u₄ S) - ↑n
tactic: rcases h with ⟨X, hX⟩
state_before: case hcong.intro
K : Type u_1
inst✝⁴ : Field K
inst✝³ : NumberField K
inst✝² : IsCyclotomicExtension {3} ℚ K
ζ : K
hζ : IsPrimitiveRoot ζ ↑3
S : Solution hζ
S' : Solution' hζ
inst✝¹ : DecidableRel fun a b => a ∣ b
inst✝ : DecidableEq (𝓞 K)
this : λ ^ 2 ∣ λ ^ 4
X : 𝓞 K
hX :
  ↑(FermatLastTheoremForThreeGen.Solution.u₅ S) *
      (λ ^ (S.multiplicity - 1) * FermatLastTheoremForThreeGen.Solution.X S) ^ 3 =
    λ ^ 2 * X
⊢ ∃ n, λ ^ 2 ∣ ↑(FermatLastTheoremForThreeGen.Solution.u₄ S) - ↑n
state_after: case hcong.intro.inl.inl.intro.intro
K : Type u_1
inst✝⁴ : Field K
inst✝³ : NumberField K
inst✝² : IsCyclotomicExtension {3} ℚ K
ζ : K
hζ : IsPrimitiveRoot ζ ↑3
S : Solution hζ
S' : Solution' hζ
inst✝¹ : DecidableRel fun a b => a ∣ b
inst✝ : DecidableEq (𝓞 K)
this : λ ^ 2 ∣ λ ^ 4
X : 𝓞 K
hX :
  ↑(FermatLastTheoremForThreeGen.Solution.u₅ S) *
      (λ ^ (S.multiplicity - 1) * FermatLastTheoremForThreeGen.Solution.X S) ^ 3 =
    λ ^ 2 * X
Y : 𝓞 K
hY : FermatLastTheoremForThreeGen.Solution.Y S ^ 3 - 1 = λ ^ 2 * Y
Z : 𝓞 K
hZ : FermatLastTheoremForThreeGen.Solution.Z S ^ 3 - 1 = λ ^ 2 * Z
⊢ ∃ n, λ ^ 2 ∣ ↑(FermatLastTheoremForThreeGen.Solution.u₄ S) - ↑n

case hcong.intro.inl.inr.intro.intro
K : Type u_1
inst✝⁴ : Field K
inst✝³ : NumberField K
inst✝² : IsCyclotomicExtension {3} ℚ K
ζ : K
hζ : IsPrimitiveRoot ζ ↑3
S : Solution hζ
S' : Solution' hζ
inst✝¹ : DecidableRel fun a b => a ∣ b
inst✝ : DecidableEq (𝓞 K)
this : λ ^ 2 ∣ λ ^ 4
X : 𝓞 K
hX :
  ↑(FermatLastTheoremForThreeGen.Solution.u₅ S) *
      (λ ^ (S.multiplicity - 1) * FermatLastTheoremForThreeGen.Solution.X S) ^ 3 =
    λ ^ 2 * X
Y : 𝓞 K
hY : FermatLastTheoremForThreeGen.Solution.Y S ^ 3 - 1 = λ ^ 2 * Y
Z : 𝓞 K
hZ : FermatLastTheoremForThreeGen.Solution.Z S ^ 3 + 1 = λ ^ 2 * Z
⊢ ∃ n, λ ^ 2 ∣ ↑(FermatLastTheoremForThreeGen.Solution.u₄ S) - ↑n

case hcong.intro.inr.inl.intro.intro
K : Type u_1
inst✝⁴ : Field K
inst✝³ : NumberField K
inst✝² : IsCyclotomicExtension {3} ℚ K
ζ : K
hζ : IsPrimitiveRoot ζ ↑3
S : Solution hζ
S' : Solution' hζ
inst✝¹ : DecidableRel fun a b => a ∣ b
inst✝ : DecidableEq (𝓞 K)
this : λ ^ 2 ∣ λ ^ 4
X : 𝓞 K
hX :
  ↑(FermatLastTheoremForThreeGen.Solution.u₅ S) *
      (λ ^ (S.multiplicity - 1) * FermatLastTheoremForThreeGen.Solution.X S) ^ 3 =
    λ ^ 2 * X
Y : 𝓞 K
hY : FermatLastTheoremForThreeGen.Solution.Y S ^ 3 + 1 = λ ^ 2 * Y
Z : 𝓞 K
hZ : FermatLastTheoremForThreeGen.Solution.Z S ^ 3 - 1 = λ ^ 2 * Z
⊢ ∃ n, λ ^ 2 ∣ ↑(FermatLastTheoremForThreeGen.Solution.u₄ S) - ↑n

case hcong.intro.inr.inr.intro.intro
K : Type u_1
inst✝⁴ : Field K
inst✝³ : NumberField K
inst✝² : IsCyclotomicExtension {3} ℚ K
ζ : K
hζ : IsPrimitiveRoot ζ ↑3
S : Solution hζ
S' : Solution' hζ
inst✝¹ : DecidableRel fun a b => a ∣ b
inst✝ : DecidableEq (𝓞 K)
this : λ ^ 2 ∣ λ ^ 4
X : 𝓞 K
hX :
  ↑(FermatLastTheoremForThreeGen.Solution.u₅ S) *
      (λ ^ (S.multiplicity - 1) * FermatLastTheoremForThreeGen.Solution.X S) ^ 3 =
    λ ^ 2 * X
Y : 𝓞 K
hY : FermatLastTheoremForThreeGen.Solution.Y S ^ 3 + 1 = λ ^ 2 * Y
Z : 𝓞 K
hZ : FermatLastTheoremForThreeGen.Solution.Z S ^ 3 + 1 = λ ^ 2 * Z
⊢ ∃ n, λ ^ 2 ∣ ↑(FermatLastTheoremForThreeGen.Solution.u₄ S) - ↑n
tactic: rcases lambda_pow_four_dvd_cube_sub_one_or_add_one_of_lambda_not_dvd hζ S.lambda_not_dvd_Y with
    HY | HY <;> rcases lambda_pow_four_dvd_cube_sub_one_or_add_one_of_lambda_not_dvd
      hζ S.lambda_not_dvd_Z with HZ | HZ <;> replace HY := this.trans HY <;> replace HZ :=
      this.trans HZ <;> rcases HY with ⟨Y, hY⟩ <;> rcases HZ with ⟨Z, hZ⟩