exact this as _ #[] _
α : Type u
β : Type v
γ : Type w
a : α
as : List α
f : Fin (length as + 1) → α → β
this :
  ∀ (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)
⊢ mapIdx'.go (a :: as) f as { data := [f { val := Array.size #[], isLt := (_ : Array.size #[] < length (a :: as)) } a] }
      (_ :
        length as +
            Array.size { data := [f { val := Array.size #[], isLt := (_ : Array.size #[] < length (a :: as)) } a] } =
          Nat.succ (length as)) =
    f 0 a :: mapIdx'.go as (f ∘ Fin.succ) as #[] (_ : length as + Array.size #[] = length as + Array.size #[])
no goals