simp only [if_pos hx]
α : Type u
lt : α → α → Bool
x : Subarray α
i : Nat
lhs : Nat := 2 * i + 1
rhs : Nat := lhs + 1
hr : ¬rhs < Subarray.size x
hl : lhs < Subarray.size x
hi : i < Subarray.size x
hx : lt x[i] x[lhs] = true
⊢ heapifyDown.OpSpec lt x i
    (if lt x[i] x[lhs] = true then Subarray.swap x { val := i, isLt := hi } { val := lhs, isLt := hl } else x)
α : Type u
lt : α → α → Bool
x : Subarray α
i : Nat
lhs : Nat := 2 * i + 1
rhs : Nat := lhs + 1
hr : ¬rhs < Subarray.size x
hl : lhs < Subarray.size x
hi : i < Subarray.size x
hx : lt x[i] x[lhs] = true
⊢ heapifyDown.OpSpec lt x i (Subarray.swap x { val := i, isLt := hi } { val := 2 * i + 1, isLt := hl })