dsimp [modify, modifyM, Id.run]
α✝ : Type u
m : Type u → Type v
inst✝¹ : Monad m
inst✝ : LawfulMonad m
α : Type u
x : Array α
i : Nat
f : α → α
hi : i < size x
⊢ modify x i f = set x { val := i, isLt := hi } (f x[i])
α✝ : Type u
m : Type u → Type v
inst✝¹ : Monad m
inst✝ : LawfulMonad m
α : Type u
x : Array α
i : Nat
f : α → α
hi : i < size x
⊢ (if h : i < size x then set x { val := i, isLt := h } (f x[i]) else x) = set x { val := i, isLt := hi } (f x[i])