split
α : Type u_1
a : Array α
i : Nat
f : α → α
⊢ Array.size (if h : i < a.size then a.set ⟨i, ⋯⟩ (f (a.get ⟨i, ⋯⟩)) else a) = a.size
case isTrue
α : Type u_1
a : Array α
i : Nat
f : α → α
h✝ : i < a.size
⊢ (a.set ⟨i, ⋯⟩ (f (a.get ⟨i, ⋯⟩))).size = a.size

case isFalse
α : Type u_1
a : Array α
i : Nat
f : α → α
h✝ : ¬i < a.size
⊢ a.size = a.size