rewrite [dif_neg (c:=x.start < x.stop) (heq ▸ x.start.lt_irrefl)]
case inr
α : Type u
lt : α → α → Bool
x : Subarray α
heq : x.start = x.stop
⊢ Subarray.size
      (if h : x.start < x.stop then
        let_fun this := (_ : 0 < x.stop - x.start);
        let x :=
          Subarray.swap x { val := 0, isLt := this }
            { val := Subarray.size x - 1,
              isLt := (_ : Nat.pred (Nat.sub (Subarray.size x) 0) < Nat.sub (Subarray.size x) 0) };
        heapifyDown lt (Subarray.shrinkOne' x h) 0
      else x) =
    Subarray.size x - 1
case inr
α : Type u
lt : α → α → Bool
x : Subarray α
heq : x.start = x.stop
⊢ Subarray.size x = Subarray.size x - 1