(* We define the equivalence property with prenex quantification so that it   *)
(* can be localized using the {in ..., ..} form defined below.                *)

Definition equivalence_rel := forall x y z, R z z * (R x y -> R x z = R y z).

(* Specifications: *)
Lemma equivalence_relP : equivalence_rel <-> reflexive /\ left_transitive.
Lemma rev_trans T (R : rel T) : transitive R -> transitive (fun x y => R y x).