specialize @IH hi <| start_popMax lt x ▸ hlt
case succ
α : Type u
lt : α → α → Bool
x✝ : Subarray α
n✝ : Nat
y✝ : Array α
i : Nat
x : Subarray α
n : Nat
y : Array α
h : loop.OpSpec lt (popMax lt x) n y
IH : ∀ {hi : i < Array.size y}, i < (popMax lt x).start → y[i] = (popMax lt x).as[i]
hi : i < Array.size y
hlt : i < x.start
⊢ y[i] = x.as[i]
case succ
α : Type u
lt : α → α → Bool
x✝ : Subarray α
n✝ : Nat
y✝ : Array α
i : Nat
x : Subarray α
n : Nat
y : Array α
h : loop.OpSpec lt (popMax lt x) n y
hi : i < Array.size y
hlt : i < x.start
IH : y[i] = (popMax lt x).as[i]
⊢ y[i] = x.as[i]