intro b
case h
m : Type u → Type v
inst✝ : Monad m
α : Type u
k : Nat
h_ind :
  ∀ {n : Nat} {f : Fin (n + 1) → α → m α} {i : Nat} {a : α} {h : i + (k + 1) = n + 1},
    loop f i a (k + 1) h = do
      let b ← f { val := i, isLt := (_ : i < n + 1) } a
      loop (f ∘ succ) i b k (_ : i + k = n)
n : Nat
f : Fin (n + 1) → α → m α
i : Nat
a : α
h : i + (Nat.succ k + 1) = n + 1
⊢ ∀ (a : α),
    loop f (Nat.succ i) a (Nat.succ k) (_ : Nat.succ i + Nat.succ k = n + 1) =
      loop (f ∘ succ) i a (Nat.succ k) (_ : i + Nat.succ k = n)
case h
m : Type u → Type v
inst✝ : Monad m
α : Type u
k : Nat
h_ind :
  ∀ {n : Nat} {f : Fin (n + 1) → α → m α} {i : Nat} {a : α} {h : i + (k + 1) = n + 1},
    loop f i a (k + 1) h = do
      let b ← f { val := i, isLt := (_ : i < n + 1) } a
      loop (f ∘ succ) i b k (_ : i + k = n)
n : Nat
f : Fin (n + 1) → α → m α
i : Nat
a : α
h : i + (Nat.succ k + 1) = n + 1
b : α
⊢ loop f (Nat.succ i) b (Nat.succ k) (_ : Nat.succ i + Nat.succ k = n + 1) =
    loop (f ∘ succ) i b (Nat.succ k) (_ : i + Nat.succ k = n)