Hint Extern 0 (RIntro _ (forallp_rel _ _) _ _) =>
eapply forallp_rintro : typeclass_instances.
(** Since [e : E v1 v2] cannot be unified in [Q], the elimination rule adds an [E v1 v2] premise to [P] instead. *)

Lemma forallp_relim {V1 V2 E FV1 FV2} R f g v1 v2 P Q:
RElim (R v1 v2) (f v1) (g v2) P Q ->
RElim (@forallp_rel V1 V2 E FV1 FV2 R) f g (E v1 v2 /\ P) Q.