intros a b p h; elim h;
[ intro H'; clear h; try exact H' | clear h; intro H' ].
exists a; try assumption.
exists b; try assumption.
Qed.

(* Specifications: *)
Theorem Simple :
forall (A : Set) (R : A -> A -> Prop),
(forall x y z : A, R x y /\ R y z -> R x z) ->
(forall x y : A, R x y -> R y x) ->
forall x : A, (exists y : A, R x y) -> R x x.