conv =>
  lhs; unfold foldM.loop
  simp only [Nat.add_eq, Nat.add_zero, Nat.add_sub_cancel_left, Nat.sub_self]
m : Type u → Type v
inst✝ : Monad m
α : Type u
f : Nat → α → m α
init : α
n : Nat
⊢ foldM.loop f (n + 1) (n + 1) init = do
    let x ← f 0 init
    foldM.loop (f ∘ succ) n n x
m : Type u → Type v
inst✝ : Monad m
α : Type u
f : Nat → α → m α
init : α
n : Nat
⊢ f 0 init >>= foldM.loop f (n + 1) n = do
    let x ← f 0 init
    foldM.loop (f ∘ succ) n n x