conv =>
  lhs; unfold anyM.loop
  rw [dif_pos stop.zero_lt_succ]
  simp only [getElem_cons_zero]
α : Type u
m : Type → Type v
inst✝ : Monad m
p : α → m Bool
a : α
x : Array α
stop : Nat
h : stop ≤ size x
⊢ anyM.loop p (cons a x) (stop + 1) (_ : Nat.succ stop ≤ Nat.succ (List.length x.data)) 0 = do
    let b ← p a
    if b = true then pure true else anyM.loop p x stop h 0
α : Type u
m : Type → Type v
inst✝ : Monad m
p : α → m Bool
a : α
x : Array α
stop : Nat
h : stop ≤ size x
⊢ (do
      let __do_lift ← p a
      if __do_lift = true then pure true
        else anyM.loop p (cons a x) (stop + 1) (_ : Nat.succ stop ≤ Nat.succ (List.length x.data)) (0 + 1)) =
    do
    let b ← p a
    if b = true then pure true else anyM.loop p x stop h 0