Section s_prod.
Variable A B : Setoid.
Structure Sprod : Type :=  {Sprod_l : A; Sprod_r : B}.
Definition Equal_Sprod (a1xb1 a2xb2 : Sprod) :=
Sprod_l a1xb1 =_S Sprod_l a2xb2 /\ Sprod_r a1xb1 =_S Sprod_r a2xb2.
Canonical Structure SPROD : Setoid := Equal_Sprod_equiv.
(* AxB = (S_PROD A B) *)
(* Sprod_l et Sprod_r sont en fait des Map *)
Canonical Structure Proj1_SPROD : Map SPROD A := Proj1_SPROD_map_law.

Lemma Proj2_SPROD_map_law : Map_law (Sprod_r:SPROD -> B).