Section Projections.
Variable E F : Setoid.
Definition proj1 (x : cart E F) : E := cart_l x.
Definition proj2 (x : cart E F) : F := cart_r x.
Comments "We note" (proj1 x) "and" (proj2 x) "the components of a couple" x
"in " (cart E F).
red in |- *.
simpl in |- *.
unfold app_rel, cart_eq in |- *; intuition.
Qed.
red in |- *.
simpl in |- *.
unfold app_rel, cart_eq in |- *; intuition.
Qed.
Hint Resolve proj1_comp proj2_comp: algebra.
Definition proj1_map : MAP (cart E F) E := Build_Map proj1_comp.
Definition proj2_map : MAP (cart E F) F := Build_Map proj2_comp.
Definition couple (x : E) (y : F) : cart E F := Build_cart_type x y.

Lemma couple_comp :
forall (x x' : E) (y y' : F),
Equal x x' -> Equal y y' -> Equal (couple x y) (couple x' y').