Hint Extern 1 (Coreflexive (_ !! _)) =>
eapply rel_push_corefl : typeclass_instances.
(** When using [R !! fst] or [R !! snd], if [rel_push_intro] does not apply, we can use the following instances instead. *)

Lemma rel_push_fst_rexists {A1 A2 B1 B2} (x1:A1) (x2:A2) (y1:B1) (y2:B2) R:
RExists (R (x1, y1) (x2, y2)) (R !! fst) x1 x2.