A group G is a non-empty set upon which a binary operator * is defined with the following properties for all a,b,c in G:
Closure: G is closed under *, a*b in G Associative: * is associative on G, (a*b)*c = a*(b*c) Identity: There is an identity element e such that a*e = e*a = a. Inverse: Every element has a unique inverse a' such that a * a' = a' * a = e. The inverse is usually written with a superscript -1.