Hint Extern 60 (RStep _ ((% _)%rel _ _)) =>
eapply rel_pull_rintro : typeclass_instances.
Hint Extern 1 (RElim (% _) _ _ _ _) =>
eapply rel_curry_relim : typeclass_instances.
(** ** The [req] relation *)
(** The relation [req a] asserts that both elements are equal to [a]. This comes in handy when expressing the relational properties of functions: it can be used to fix the value of an argument, or parametrize it using a variable with a broader scope. *)
Inductive req {A} (a: A): rel A A :=
req_intro: req a a a.

(* Specifications: *)
Lemma req_rintro {A} (a: A):
RIntro True (req a) a a.