intros l b acc h
α : Type u
β : Type v
γ : Type w
a : α
as : List α
f : Fin (length as + 1) → α → β
⊢ ∀ (l : List α) (b : β) (acc : Array β) (h : length l + (Array.size acc + 1) = length as + 1),
    mapIdx'.go (a :: as) f l { data := b :: acc.data } h =
      b :: mapIdx'.go as (f ∘ Fin.succ) l acc (_ : length l + Array.size acc = length as)
α : Type u
β : Type v
γ : Type w
a : α
as : List α
f : Fin (length as + 1) → α → β
l : List α
b : β
acc : Array β
h : length l + (Array.size acc + 1) = length as + 1
⊢ mapIdx'.go (a :: as) f l { data := b :: acc.data } h =
    b :: mapIdx'.go as (f ∘ Fin.succ) l acc (_ : length l + Array.size acc = length as)