unfold mapMIdx
α : 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 β
⊢ mapMIdx f (push empty a) = do
    let y ← mapMIdx (fun i => f { val := ↑i, isLt := (_ : ↑i < Nat.succ 0) }) empty
    let b ← f { val := 0, isLt := (_ : 0 < Nat.succ 0) } a
    pure (push y b)
α : 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 β
⊢ mapMIdx.loop f (push empty a) 0 (_ : 0 ≤ 0 + 1) (mkEmpty (0 + 1)) = do
    let y ← mapMIdx.loop (fun i => f { val := ↑i, isLt := (_ : ↑i < Nat.succ 0) }) empty 0 (_ : 0 ≤ 0) (mkEmpty 0)
    let b ← f { val := 0, isLt := (_ : 0 < Nat.succ 0) } a
    pure (push y b)