unfold Array.ofFn.go
α✝ α : Type u
n : Nat
f : Fin (Nat.succ n) → α
i : Nat
acc : Array α
hnlt : ¬i < n
this : ¬Nat.succ i < Nat.succ n
⊢ ofFn.go f (Nat.succ i) acc = ofFn.go (f ∘ Fin.succ) i acc
α✝ α : Type u
n : Nat
f : Fin (Nat.succ n) → α
i : Nat
acc : Array α
hnlt : ¬i < n
this : ¬Nat.succ i < Nat.succ n
⊢ (if h : Nat.succ i < Nat.succ n then ofFn.go f (Nat.succ i + 1) (push acc (f { val := Nat.succ i, isLt := h }))
    else acc) =
    if h : i < n then ofFn.go (f ∘ Fin.succ) (i + 1) (push acc ((f ∘ Fin.succ) { val := i, isLt := h })) else acc