exists (f x[n] >>= λ v => pure ⟨x.set ⟨n,h⟩ v, x.size_set ⟨n,h⟩ v⟩)
α✝ : Type u
m : Type u → Type v
inst✝¹ : Monad m
inst✝ : LawfulMonad m
α : Type u
x : Array α
n : Nat
f : α → m α
h : n < size x
⊢ SatisfiesM (fun y => size y = size x) do
    let v ← f x[n]
    pure (set x { val := n, isLt := h } v)
α✝ : Type u
m : Type u → Type v
inst✝¹ : Monad m
inst✝ : LawfulMonad m
α : Type u
x : Array α
n : Nat
f : α → m α
h : n < size x
⊢ (Subtype.val <$> do
      let v ← f x[n]
      pure
          { val := set x { val := n, isLt := h } v,
            property := (_ : size (set x { val := n, isLt := h } v) = size x) }) =
    do
    let v ← f x[n]
    pure (set x { val := n, isLt := h } v)