proposition: Lemma exercise2_1 (R: relation) : ((exists x, exists y, R x y) <-> (exists z, pairp z /\ R(P z) (Q z))) /\ ((forall x, forall y, R x y) <-> (forall z, pairp z -> R(P z) (Q z))).
proof: Proof. split;split. - move=> [x] [y] Rxy; exists (J x y); aw;fprops. - by move => [z [zp Rz]]; exists (P z); exists (Q z). - move=> hyp z _; apply: hyp. - by move => hyp x y; move: (hyp _ (pair_is_pair x y)); aw. Qed.
imports: mathcomp(ssreflect ssrfun ssrbool eqtype ssrnat)