intro i j hj
m : Type u → Type u_1
inst✝¹ : Monad m
inst✝ : LawfulMonad m
n : ℕ
β : Type u
init : β
f : Fin n → β → m β
⊢ ∀ (i j : ℕ),
    i + j = n →
      ∀ (macc : m β),
        (do
            let acc ← macc
            foldlM.aux n f i acc) =
          foldl.loop n
            (fun macc i => do
              let acc ← macc
              f i acc)
            macc i
m : Type u → Type u_1
inst✝¹ : Monad m
inst✝ : LawfulMonad m
n : ℕ
β : Type u
init : β
f : Fin n → β → m β
i j : ℕ
hj : i + j = n
⊢ ∀ (macc : m β),
    (do
        let acc ← macc
        foldlM.aux n f i acc) =
      foldl.loop n
        (fun macc i => do
          let acc ← macc
          f i acc)
        macc i