rw [hn] at descent
case h.inr.intro.intro.intro.intro.intro.intro.intro
n : ℕ
ih :
  ∀ m < n,
    ∀ {a : ℤ√(-3)},
      IsCoprime a.re a.im →
        a.norm.natAbs = m →
          ∃ f, (a = f.prod ∨ a = -f.prod) ∧ ∀ pq ∈ f, 0 ≤ pq.re ∧ pq.im ≠ 0 ∧ OddPrimeOrFour pq.norm.natAbs
a : ℤ√(-3)
hcoprime : IsCoprime a.re a.im
hn : a.norm.natAbs = n
h : a.norm ≠ 1
U q : ℤ√(-3)
hc : 0 ≤ q.re
hd : q.im ≠ 0
hp : OddPrimeOrFour q.norm.natAbs
huv : a = q * U
huvcoprime : IsCoprime U.re U.im
descent : U.norm.natAbs < a.norm.natAbs
⊢ ∃ f, (a = f.prod ∨ a = -f.prod) ∧ ∀ pq ∈ f, 0 ≤ pq.re ∧ pq.im ≠ 0 ∧ OddPrimeOrFour pq.norm.natAbs
case h.inr.intro.intro.intro.intro.intro.intro.intro
n : ℕ
ih :
  ∀ m < n,
    ∀ {a : ℤ√(-3)},
      IsCoprime a.re a.im →
        a.norm.natAbs = m →
          ∃ f, (a = f.prod ∨ a = -f.prod) ∧ ∀ pq ∈ f, 0 ≤ pq.re ∧ pq.im ≠ 0 ∧ OddPrimeOrFour pq.norm.natAbs
a : ℤ√(-3)
hcoprime : IsCoprime a.re a.im
hn : a.norm.natAbs = n
h : a.norm ≠ 1
U q : ℤ√(-3)
hc : 0 ≤ q.re
hd : q.im ≠ 0
hp : OddPrimeOrFour q.norm.natAbs
huv : a = q * U
huvcoprime : IsCoprime U.re U.im
descent : U.norm.natAbs < n
⊢ ∃ f, (a = f.prod ∨ a = -f.prod) ∧ ∀ pq ∈ f, 0 ≤ pq.re ∧ pq.im ≠ 0 ∧ OddPrimeOrFour pq.norm.natAbs