(* opposite operation *)
Definition Opposite (x : Inverses_setoid) : Inverses_setoid :=
Build_Inverses (Prf_invs2 x) (Prf_invs1 x).

(* Specifications: *)
Lemma Opposite_map_law : Map_law Opposite.
Canonical Structure Opposite_map := Build_Map Opposite_map_law.
Lemma Inverses_invl : Group_invl Opposite_map.
Lemma Inverses_invr : Group_invr Opposite_map.
Canonical Structure Inverses_group := Build_Group Inverses_invl Inverses_invr.