(* Another characterization of R* *)
(* Smallest reflexive P containing R o R* *)

Definition Rstar' (x y : A) :=
  forall P : A -> A -> Prop,
  P x x -> (forall u : A, R x u -> Rstar u y -> P x y) -> P x y.

Lemma Rstar_inv : forall x y : A, Rstar x y -> x = y \/ ex2 (fun z : A => R x z) (fun z : A => Rstar z y).