rewrite [Subarray.getElem_swap_left, Subarray.getElem_swap_right]
case node_odd_next
α : Type u
lt : α → α → Bool
inst✝ : LawfulLTBRel lt
x✝ : Subarray α
i✝ : Nat
y x : Subarray α
i : Nat
hi : i < Subarray.size x
hl✝ : 2 * i + 1 < Subarray.size x
hr : 2 * i + 2 ≥ Subarray.size x
hx : lt x[i] x[2 * i + 1] = true
hl : 2 * i + 1 < Subarray.size x
heap_left : IsHeap lt x (2 * i + 1)
⊢ lt (Subarray.swap x { val := i, isLt := hi } { val := 2 * i + 1, isLt := hl✝ })[i]
      (Subarray.swap x { val := i, isLt := hi } { val := 2 * i + 1, isLt := hl✝ })[2 * i + 1] =
    false
case node_odd_next
α : Type u
lt : α → α → Bool
inst✝ : LawfulLTBRel lt
x✝ : Subarray α
i✝ : Nat
y x : Subarray α
i : Nat
hi : i < Subarray.size x
hl✝ : 2 * i + 1 < Subarray.size x
hr : 2 * i + 2 ≥ Subarray.size x
hx : lt x[i] x[2 * i + 1] = true
hl : 2 * i + 1 < Subarray.size x
heap_left : IsHeap lt x (2 * i + 1)
⊢ lt x[↑{ val := 2 * i + 1, isLt := hl✝ }] x[↑{ val := i, isLt := hi }] = false