好了!既然我們要求運算有封閉性, a 和 b 運算後仍然在 S 我們自然可以再和 S 中的元素再運算. 一般來說我們定義元素間的運算是兩個、兩個來定義的. 如何讓三個元素或更多的元素運算在一起呢? 換句話說:該如何定 a*b*c 呢?我們可以先讓 a 和 b 運算然後再和 c 運算;即(a*b)*c;或是先運算 b 和 c 再和 a 運算:即 a*(b*c). 若這兩種運算的結果得到不同的結果那你將遭遇到天大的麻煩. 因為當你要更多元素運算在一起時你得小心翼翼的注意哪些元素要先運算. 甚至當你要算 a*a*a 時到底要算 a*(a*a) 或 (a*a)*a 都會讓你搞昏頭. 為了省卻這些複雜性我們可以進一步要求: a*(b*c) = (a*b)*c. 這樣一來當你要運算 a*b*c*d 時你可以算 a*(b*(c*d )), (a*b)*(c*d ) 或 ((a*b)*c)*d 都沒關係, 你都會得到同樣的結果. a*(b*c) = (a*b)*c 這個性質我們稱之為結合率 associative law.
一般來說給定一集合要定義一個符合上面兩個性質的運算 (尤其是結合率) 並不是容易的事. (當然除了一些很簡單的運算, 比方說:定義每個元素運算後都取相同值.) 符合這兩個性質的集合與其運算我們稱之為 semigroup. 在本課程中我們將不會討論 semigroup. 畢竟它的條件太少, 很難依此得到有趣的性質. 在一般我們有興趣的代數體系中通常都有一個很特別的元素稱為 identity. 這個元素我們通常會用 e 來表示, 它擁有的特殊性質是對集合中任意的元素 a, a*e 和 e*a 的值都還是 a.
有了 e 這一個重要的元素外, 我們進而要求在集合中任意給定一個元素 a, 我們都能在集合中找到一個元素 b 使得 a*b = b*a = e. 這個元素我們稱之為 a 的 inverse. 要注意的是 e 是一個固定的元素它和任意的元素 a 運算後還是 a, 而這裡的 b 是隨 a 而變的, 不同的 a 會有不同的 b 為其 inverse. 為了強調這一點我們通常用 a-1 來表示 a 的 inverse.
一個集合若有一個運算擁有前面所提的這四個性質我們稱這個集合及其運算為一個 group. 我們正式將這個定義寫下:
我們簡單的看看哪些熟悉的東西是 group. 前面提到 在加法的運算下是 group, 其中 0 是其 identity, 而任意的整數 n, - n 是其 inverse. 不過若考慮 在乘法的運算下它就不再是一個 group. 雖然 1 是乘法的 identity 不過並不是所有的整數都有乘法的 inverse, 例如 2 就沒法在 中找到一個數使得 2 乘以它以後會是 1. 當然了你很快的會反應說:有理數 在乘法下是一個 group. 可惜不是, 因為 0 不過 0 沒有乘法 inverse. 但如果我們考慮非 0 的有理數所成的集合, 則在乘法的運算下它就是一個 group. 要說明這件事很簡單但別忘了我們不只要說明所有非 0 的有理數有乘法反元素, 我們還要注意其他的性質. 在這裡 (GP1) 中 closed 的性質還是被保持著, 因為兩個非 0 的有理數相乘還是一個不等於 0 的有理數.
要特別注意的是, 一些我們熟悉的例子往往都有 a . b = b . a 的性質, 不過在 group 的定義中並沒有這項要求. 以後我們將會看到很多不符合這性質的 group. 不過若一個 group 有上述這個性質我們就多給它一個名字稱之為 abelian group;而不符合這性質的 group 就稱為 nonabelian group.
Group 的定義也沒有對元素的個數有所要求. 事實上有很多重要的 group 它只有有限多個元素. 我們也對這類的 group 給特殊的名字.
事實上在大學的基礎代數中我們只討論 finite group.