simp only [Subarray.getElem_swap]
case node'.refine_1
α : Type u
lt : α → α → Bool
x : Subarray α
i✝ : Nat
j₁ j₂ : Fin (Subarray.size x)
i : Nat
hi : i < Subarray.size x
hx₂ : ∀ (x_1 : 2 * i + 2 < Subarray.size x), lt x[i] x[2 * i + 2] = false
a✝¹ : IsHeap lt x (2 * i + 1)
a✝ : IsHeap lt x (2 * i + 2)
hj₁ : ↑j₁ < i
hj₂ : ↑j₂ < i
IHl : IsHeap lt (Subarray.swap x j₁ j₂) (2 * i + 1)
IHr : IsHeap lt (Subarray.swap x j₁ j₂) (2 * i + 2)
hl : 2 * i + 1 < Subarray.size (Subarray.swap x j₁ j₂)
hx₁ : lt x[i] x[2 * i + 1] = false
⊢ lt (Subarray.swap x j₁ j₂)[i] (Subarray.swap x j₁ j₂)[2 * i + 1] = false
case node'.refine_1
α : Type u
lt : α → α → Bool
x : Subarray α
i✝ : Nat
j₁ j₂ : Fin (Subarray.size x)
i : Nat
hi : i < Subarray.size x
hx₂ : ∀ (x_1 : 2 * i + 2 < Subarray.size x), lt x[i] x[2 * i + 2] = false
a✝¹ : IsHeap lt x (2 * i + 1)
a✝ : IsHeap lt x (2 * i + 2)
hj₁ : ↑j₁ < i
hj₂ : ↑j₂ < i
IHl : IsHeap lt (Subarray.swap x j₁ j₂) (2 * i + 1)
IHr : IsHeap lt (Subarray.swap x j₁ j₂) (2 * i + 2)
hl : 2 * i + 1 < Subarray.size (Subarray.swap x j₁ j₂)
hx₁ : lt x[i] x[2 * i + 1] = false
⊢ lt (if ↑j₂ = i then x[↑j₁] else if ↑j₁ = i then x[↑j₂] else x[i])
      (if ↑j₂ = 2 * i + 1 then x[↑j₁] else if ↑j₁ = 2 * i + 1 then x[↑j₂] else x[2 * i + 1]) =
    false