Library ConCaT.SETOID.STRUCTURE.Group
Require Export Monoid.
Set Implicit Arguments.
Unset Strict Implicit.
Section group_laws.
Variable A : Monoid.
Definition Inverses_rel (x y : A) := x +_M y =_S Munit A.
Variable inv : Map A A.
Definition Group_invl := ∀ x : A, Inverses_rel (inv x) x.
Definition Group_invr := ∀ x : A, Inverses_rel x (inv x).
End group_laws.
Structure Group : Type :=
{Gmon :> Monoid;
Ginv : Map Gmon Gmon;
Prf_ginv_l : Group_invl Ginv;
Prf_ginv_r : Group_invr Ginv}.
