Section PACO2.
Variable T0 : Type.
Variable T1 : forall (x0: @T0), Type.
(** ** Signatures *)
Record sig2T  :=
exist2T {
proj2T0: @T0;
proj2T1: @T1 proj2T0;
}.
Definition uncurry2  (R: rel2 T0 T1): rel1 sig2T :=
fun x => R (proj2T0 x) (proj2T1 x).
Definition curry2  (R: rel1 sig2T): rel2 T0 T1 :=
fun x0 x1 => R (@exist2T x0 x1).

Lemma uncurry_bij1_2 r : curry2 (uncurry2 r) <2== r.