obtain ⟨ε', hε'⟩ : ∃ ε', ε₁ / ε₂ = ε' ^ (p : ℕ) := by
  apply eq_pow_prime_of_unit_of_congruent hp hreg
  have : p - 1 ≤ m * p := (Nat.sub_le _ _).trans
    ((le_of_eq (one_mul _).symm).trans (Nat.mul_le_mul_right p (one_le_m hp hζ e hy hz)))
  obtain ⟨u, hu⟩ := (associated_zeta_sub_one_pow_prime hζ).symm
  rw [mul_pow, ← pow_mul, mul_comm (ε₃ : 𝓞 K), mul_assoc, ← Nat.sub_add_cancel this,
    add_comm _ (p - 1 : ℕ), pow_add, mul_assoc] at e'
  apply_fun Ideal.Quotient.mk (Ideal.span <| singleton (p : 𝓞 K)) at e'
  rw [map_mul, (Ideal.Quotient.eq_zero_iff_dvd _ _).mpr
    (associated_zeta_sub_one_pow_prime hζ).symm.dvd, zero_mul, Ideal.Quotient.eq_zero_iff_dvd] at e'
  obtain ⟨a, ha⟩ := exists_solution'_aux hp hζ hx' e'
  obtain ⟨b, hb⟩ := exists_dvd_pow_sub_Int_pow hp a
  have := dvd_add ha hb
  rw [sub_add_sub_cancel, ← Int.cast_pow] at this
  exact ⟨b ^ (p : ℕ), this⟩
case intro.intro.intro.intro.intro.intro.intro.intro.intro
K : Type u_1
p : ℕ+
hpri : Fact p.Prime
inst✝³ : Field K
inst✝² : NumberField K
inst✝¹ : IsCyclotomicExtension {p} ℚ K
hp : p ≠ 2
inst✝ : Fintype (ClassGroup (𝓞 K))
hreg : (↑p).Coprime (Fintype.card (ClassGroup (𝓞 K)))
ζ : K
hζ : IsPrimitiveRoot ζ ↑p
x y z : 𝓞 K
ε : (𝓞 K)ˣ
m : ℕ
e : x ^ ↑p + y ^ ↑p = ↑ε * (π ^ (m + 1) * z) ^ ↑p
hy : ¬π ∣ y
hz : ¬π ∣ z
η : { x // x ∈ nthRootsFinset (↑p) (𝓞 K) }
x' y' z' : 𝓞 K
ε₁ ε₂ ε₃ : (𝓞 K)ˣ
hx' : ¬π ∣ x'
hy' : ¬π ∣ y'
hz' : ¬π ∣ z'
e' : ↑ε₁ * x' ^ ↑p + ↑ε₂ * y' ^ ↑p = ↑ε₃ * (π ^ m * z') ^ ↑p
⊢ ∃ x' y' z' ε₃, ¬π ∣ y' ∧ ¬π ∣ z' ∧ x' ^ ↑p + y' ^ ↑p = ↑ε₃ * (π ^ m * z') ^ ↑p
case intro.intro.intro.intro.intro.intro.intro.intro.intro.intro
K : Type u_1
p : ℕ+
hpri : Fact p.Prime
inst✝³ : Field K
inst✝² : NumberField K
inst✝¹ : IsCyclotomicExtension {p} ℚ K
hp : p ≠ 2
inst✝ : Fintype (ClassGroup (𝓞 K))
hreg : (↑p).Coprime (Fintype.card (ClassGroup (𝓞 K)))
ζ : K
hζ : IsPrimitiveRoot ζ ↑p
x y z : 𝓞 K
ε : (𝓞 K)ˣ
m : ℕ
e : x ^ ↑p + y ^ ↑p = ↑ε * (π ^ (m + 1) * z) ^ ↑p
hy : ¬π ∣ y
hz : ¬π ∣ z
η : { x // x ∈ nthRootsFinset (↑p) (𝓞 K) }
x' y' z' : 𝓞 K
ε₁ ε₂ ε₃ : (𝓞 K)ˣ
hx' : ¬π ∣ x'
hy' : ¬π ∣ y'
hz' : ¬π ∣ z'
e' : ↑ε₁ * x' ^ ↑p + ↑ε₂ * y' ^ ↑p = ↑ε₃ * (π ^ m * z') ^ ↑p
ε' : (𝓞 K)ˣ
hε' : ε₁ / ε₂ = ε' ^ ↑p
⊢ ∃ x' y' z' ε₃, ¬π ∣ y' ∧ ¬π ∣ z' ∧ x' ^ ↑p + y' ^ ↑p = ↑ε₃ * (π ^ m * z') ^ ↑p