have hzero : 0 < x.size := Nat.sub_pos_of_lt this
α : Type u
lt : α → α → Bool
x : Subarray α
i : Nat
hi : i < Subarray.size x - 1
this✝ : i + 1 < x.stop - x.start
this : x.start < x.stop
⊢ ∃ k hk,
    0 < k ∧
      (heapifyDown lt
            (Subarray.shrinkOne'
              (Subarray.swap x { val := 0, isLt := (_ : 0 < x.stop - x.start) }
                { val := Subarray.size x - 1, isLt := (_ : Nat.pred (Subarray.size x) < Subarray.size x) })
              this)
            0)[i] =
        x[k]
α : Type u
lt : α → α → Bool
x : Subarray α
i : Nat
hi : i < Subarray.size x - 1
this✝ : i + 1 < x.stop - x.start
this : x.start < x.stop
hzero : 0 < Subarray.size x
⊢ ∃ k hk,
    0 < k ∧
      (heapifyDown lt
            (Subarray.shrinkOne'
              (Subarray.swap x { val := 0, isLt := (_ : 0 < x.stop - x.start) }
                { val := Subarray.size x - 1, isLt := (_ : Nat.pred (Subarray.size x) < Subarray.size x) })
              this)
            0)[i] =
        x[k]