cases hik
case hjk
α : Type u
lt : α → α → Bool
x✝ : Subarray α
i✝ : Nat
y : Subarray α
k : Nat
x : Subarray α
i : Nat
hi : i < Subarray.size x
hl : 2 * i + 1 < Subarray.size x
a✝¹ : 2 * i + 2 ≥ Subarray.size x
a✝ : lt x[i] x[2 * i + 1] = true
hk : k < Array.size (Subarray.swap x { val := i, isLt := hi } { val := 2 * i + 1, isLt := hl }).as
hlt : k < x.start
hik : ↑(Subarray.castIndex x { val := 2 * i + 1, isLt := hl }) = k
⊢ False
case hjk.refl
α : Type u
lt : α → α → Bool
x✝ : Subarray α
i✝ : Nat
y x : Subarray α
i : Nat
hi : i < Subarray.size x
hl : 2 * i + 1 < Subarray.size x
a✝¹ : 2 * i + 2 ≥ Subarray.size x
a✝ : lt x[i] x[2 * i + 1] = true
hk :
  ↑(Subarray.castIndex x { val := 2 * i + 1, isLt := hl }) <
    Array.size (Subarray.swap x { val := i, isLt := hi } { val := 2 * i + 1, isLt := hl }).as
hlt : ↑(Subarray.castIndex x { val := 2 * i + 1, isLt := hl }) < x.start
⊢ False