Definition Prod_Hom' := SPROD (Ob_l u --> Ob_l t) (Ob_r u --> Ob_r t).
Definition Build1_Pmor :
(Ob_l u --> Ob_l t) -> (Ob_r u --> Ob_r t) -> Prod_Hom := Build_Pmor.
End pmor_setoid_def.
(* composition *)
Definition Comp_Pmor (a b c : POb) (f : Prod_Hom a b)
(g : Prod_Hom b c) := Build_Pmor (Hom_l f o Hom_l g) (Hom_r f o Hom_r g).

(* Specifications: *)
Lemma Comp_Pmor_congl : Congl_law Comp_Pmor.
Lemma Comp_Pmor_congr : Congr_law Comp_Pmor.
Definition Comp_PROD := Build_Comp Comp_Pmor_congl Comp_Pmor_congr.
Lemma Assoc_PROD : Assoc_law Comp_PROD.
Definition Id_PROD (a : POb) := Build_Pmor (Id (Ob_l a)) (Id (Ob_r a)).
Lemma Idl_PROD : Idl_law Comp_PROD Id_PROD.
Lemma Idr_PROD : Idr_law Comp_PROD Id_PROD.
Canonical Structure PROD := Build_Category Assoc_PROD Idl_PROD Idr_PROD.