Next Obligation.
by case: f; rewrite inE=>->; rewrite orbT.
Qed.
Example ex_find (x y z : ptr) : x \in [:: z; x; y].
Program Instance search2_foundy x y s (f : Search x s) : Search2 x y (y :: s).
Next Obligation.
case: f=>H1; rewrite /search2_axiom !inE eq_refl.
by rewrite H1 orbT; split=>//; case/andP=>H2 _; case: eqP H1 H2=>// -> ->.
Qed.
Program Instance search2_foundz x y z s (f : Search2 x y s) : Search2 x y (z :: s) | 1.
Next Obligation.
case: f=>[[H1 H2 H3]].
rewrite /search2_axiom /= !inE /= H1 H2 !orbT; split=>//.
by case/andP=>_; apply: H3.
Qed.

Lemma find2E x y s (f : Search2 x y s) : uniq s -> x != y.
Arguments noaliasR [h x y sc s2].