Definition rel_ex {A B C} (R: C -> rel A B): rel A B :=
  fun x y => exists c, R c x y.Notation "'rexists' x .. y , p" :=
  (rel_ex (fun x => .. (rel_ex (fun y => p%rel)) ..))
  (at level 200, x binder, right associativity)
  : rel_scope.

(* Specifications: *)
Lemma rel_ex_rintro {A B C} (R: C -> rel A B) c m n: RExists (R c m n) (rel_ex R) m n.
Lemma rel_ex_relim {A B C} (R: C -> rel A B) x y P Q: (forall c, RElim (R c) x y P Q) -> RElim (rel_ex R) x y P Q.