rw [dif_pos rfl]
case h
α : Type u
β : Type v
γ : Type w
n : Nat
m : Type v → Type w
inst✝¹ : Monad m
inst✝ : LawfulMonad m
f✝ : Fin (n + 1) → α → m β
x : SizedArray α n
a : α
f : Fin (0 + 1) → α → m β
b : β
⊢ (if h : 0 + 1 = 0 + 1 then pure (h ▸ push (mkEmpty (0 + 1)) b)
    else
      let_fun this := (_ : 0 + 1 < 0 + 1);
      do
      let __do_lift ← f { val := 0 + 1, isLt := this } (push empty a)[0 + 1]
      let r : SizedArray β (0 + 1 + 1) := push (push (mkEmpty (0 + 1)) b) __do_lift
      mapMIdx.loop f (push empty a) (0 + 1 + 1) this r) =
    pure (push (mkEmpty 0) b)
case h
α : Type u
β : Type v
γ : Type w
n : Nat
m : Type v → Type w
inst✝¹ : Monad m
inst✝ : LawfulMonad m
f✝ : Fin (n + 1) → α → m β
x : SizedArray α n
a : α
f : Fin (0 + 1) → α → m β
b : β
⊢ pure ((_ : 0 + 1 = 0 + 1) ▸ push (mkEmpty (0 + 1)) b) = pure (push (mkEmpty 0) b)