Section inv_def.
Variable A : Monoid.
(* The set Inverses_set of inverse pairs on A *)
Structure Inverses : Type :=
{Inv_elt_l : A;
Inv_elt_r : A;
Prf_invs1 : Inverses_rel Inv_elt_l Inv_elt_r;
Prf_invs2 : Inverses_rel Inv_elt_r Inv_elt_l}.
Definition Inverses_eq (x y : Inverses) := Inv_elt_l x =_S Inv_elt_l y.
Canonical Structure Inverses_setoid : Setoid := Inverses_equiv.
(* General group theory equational reasoning *)

Lemma Eq_abb'a' :
forall a b a' b' : A,
Inverses_rel a a' -> Inverses_rel b b' -> Inverses_rel (a +_M b) (b' +_M a').