simp only [dif_neg h, dif_neg (fun h' => h <| Nat.le_of_succ_le_succ h')]
α : Type u
m : Type → Type v
inst✝ : Monad m
p : α → m Bool
a : α
x : Array α
stop : Nat
h : ¬stop ≤ size x
⊢ (if h : stop + 1 ≤ Nat.succ (size x) then anyM.loop p (cons a x) (stop + 1) h 0
    else anyM.loop p (cons a x) (Nat.succ (size x)) (_ : size (cons a x) ≤ size (cons a x)) 0) =
    do
    let b ← p a
    if b = true then pure true
      else if h : stop ≤ size x then anyM.loop p x stop h 0 else anyM.loop p x (size x) (_ : size x ≤ size x) 0
α : 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) (Nat.succ (size x)) (_ : size (cons a x) ≤ size (cons a x)) 0 = do
    let b ← p a
    if b = true then pure true else anyM.loop p x (size x) (_ : size x ≤ size x) 0