have hright : IsHeap lt x (2*i+2) :=
  .out_of_range _ hr
α : Type u
lt : α → α → Bool
x : Subarray α
i : Nat
hl : 2 * i + 1 < Subarray.size x
hr : 2 * i + 2 ≥ Subarray.size x
hx : lt x[i] x[2 * i + 1] = false
hleft : IsHeap lt x (2 * i + 1)
⊢ IsHeap lt x i
α : Type u
lt : α → α → Bool
x : Subarray α
i : Nat
hl : 2 * i + 1 < Subarray.size x
hr : 2 * i + 2 ≥ Subarray.size x
hx : lt x[i] x[2 * i + 1] = false
hleft : IsHeap lt x (2 * i + 1)
hright : IsHeap lt x (2 * i + 2)
⊢ IsHeap lt x i