1. 代数系统
1.1 运算律
我们已经知道函数的概念,它表示集合间的一种映射关系。多数场景里,像和原像往往是同一个集合,这里就讨论这样的函数。一元函数\(f:A\mapsto A\)也被称为集合\(A\)上的变换,其中双射的变换也称为置换。一般如下式的多元函数,也被称为集合\(A\)上的\(n\)元运算。集合\(S\)以及其上的一些运算\(f_1,f_2,\cdots,f_m\)组成的系统叫代数系统(algebraic system),在不混淆的情况下也可用\(S\)表示这个代数系统。代数系统可以让我们抛开具体运算对象,而只关注于它们共有的结构和性质。
\[f:A\times A\times\cdots\times A\mapsto A\tag{1}\]
二元运算是最常见的运算,比如各种对象(数、向量、多项式等)上的加减乘运算,以及变换的复合运算。这里就主要研究二元运算下的代数系统,参照的例子主要是来自数论和置换变换。下面的讨论,在思想分析上会比较啰嗦一点,但这些正是抽象代数的根基,某些证明过程和结果反而不那么重要。希望你可以在学习时,经常合上书本,自己重新构建这些理论,体验抽象代数的思维。
我们先把问题简单化,研究只有一个二元运算的代数系统,那么如何研究?对于这个运算本身需要研究它形式上的特点,而对于整个代数系统还需要分析其结构特点。我们用特定的符号\(a\circ b\)来表示要研究的二元运算\(f(a,b)\),有时也简写为\(ab\),并且说成是“乘法”,这个代数系统简单记为\(\langle S,\circ\rangle\)。如果还有另一个系统\(\langle G,\star\rangle\),它们之间有一一映射\(f:S\mapsto G\),并且满足下式,则这两个系统称为同构的(isomorphic),记作\(S\cong G\)。显然同构是个等价概念,同构的代数系统可以看作是完全一样的,本质上可以不加区分。
\[f(a\circ b)=f(a)\star f(b)\tag{2}\]
从运算的形式上看,有两种比较重要的性质是需要研究的,一个就是运算的复合,另一个就是变量的位置互换。运算的复合是指变量本身又是另一个运算的结果,比如\((a\circ b)\circ(c\circ d)\)。我们大部分研究对象的运算都满足下式的特点,它称为运算的结合律。结合律在数学中非常普遍,是一个非常基础的运算律,我们就从这里开始。结合律本质上是说运算只与被操作数的序列有关,而与运算顺序无关。直观地讲,一串运算,无论如何添加括号限制运算顺序,结果都是一样的。满足结合律的代数系统称为半群,半群的性质过于简单,它不会有很特殊的结构,必须结合一些其它的性质才行。
\[(a\circ b)\circ c=a\circ(b\circ c)\tag{3}\]
对于很多运算,运算结果是依赖于变量的顺序的,\(a\circ b\)与\(b\circ a\)不一定相等,比如置换和矩阵乘法。反之,如下条件被称为运算的交换律。我们已经看到,交换律在很多场合是不满足的,由此一般也不假定它成立,这一点大家要做好思维上的适应。交换律使得变量顺序不再重要,它和结合律共同作用的结果就是,运算结果仅与变量有关,它们的顺序可以随意安排。
\[a\circ b=b\circ a\tag{4}\]
1.2 单位元和逆元
前面两段讨论的是运算本身的形式特点,它们还构成不了十分有趣的代数系统,现在需要对系统的结构作一些限制。所谓系统的结构,当然体现在变量与运算结果的关系。首先是不是所有元素都可以成为结果,最简单的是对某个元素\(a\),我们希望存在一个数\(e\)使得下式至少一个成立,并且最好这个\(e\)对所有元素都成立。基于这样的要求,分别定义对所有元素满足下式的元素为左(右)单位元。左(右)单位元不定都存在,但如果都存在,我们可以有\(e_l=e_r=e_l\circ e_r\),它们是相等的!这种情况则统称为单位元(identity)(显然唯一),而含有单位元的半群叫幺半群。
\[e_l\circ a=a,\quad a\circ e_r=a\tag{5}\]
单位元实现了我们一个朴素的目标:任何元素都可以成为运算结果。现在我们还有一个很普遍的要求,就是式(6)的某个一元一次方程总有解。你得承认这也是个不过分的要求,因为一次方程都没有解的话,这个系统是很难玩得转的。如果要求\(ax=b\)有解,比较直观的方法是要求两边可以“除以”\(a\),或“乘以”\(a\)的逆\(a_l^{-1}\),得到\(x=a_l^{-1}b\)。换句话说就是要求存在逆,分别使得式(7)成立。满足条件的逆分别称为左逆元和右逆元。
\[a\circ x=b,\quad y\circ a=b\tag{6}\]
\[a_l^{-1}\circ a=e,\quad a\circ a_r^{-1}=e\tag{7}\]
如果左(右)逆元同时存在,则\(a_l^{-1}=a_l^{-1}\circ(a\circ a_r^{-1})=(a_l^{-1}\circ a)\circ a_r^{-1}=a_r^{-1}\),它们是又是相等的,这时统称为逆元(inverse)(显然唯一)。根据式(8)可知\(a\)同时也是\(a^{-1}\)的逆元,并且它们的运算是可以交换的。比较容易证明逆元有式子(9)的性质,这个形式大家并不陌生。
\[a\circ a^{-1}=a^{-1}\circ a=e,\quad (a^{-1})^{-1}=a\tag{8}\]
\[(a\circ b)^{-1}=b^{-1}\circ a^{-1}\tag{9}\]
逆元的存在使得“除法”成为可能,它让系统一下子立体起来。最典型的性质就是,当\(x\)遍历群时,\(ax\)(或\(xa\))会遍历整个群。因为若\(ax=ay\),两边乘以\(a^{-1}\),则有\(x=y\)。这个性质又叫消去律,如果把整个运算列成一张矩阵的表,则矩阵的每行和每列都包含整个群,且没有重复元素。这个性质非常重要,以后你还会看到它。
2. 群
2.1 群和子群
存在逆元的幺半群叫群,我们的主角就这样登场了。总结一下,齐集结合律、单位元和逆元这三大基本性质的代数系统就是群,一般用字母\(G,H,K\)表示。如果再满足交换律,它就叫交换群(commutative group)(或Abel群(Abelian group))。集合的元素个数\(|G|\)称为群的阶(order),显然有有限群和无限群。有了这三个性质,尤其是逆元的存在,群有着非常有趣的结构,后面会慢慢展开讲述。
值得一提的是,单位元和逆元的条件其实是有些冗余的,在很多教材里只要求群满足结合律、存在左单位元和左逆元(或右单位元和右逆元)。现在我们来证它们和原定义的等价性,即已知对任意\(a\),存在\(e_l\circ a=a,a_l^{-1}\circ a=e_l\),求证\(e_r,a_r^{-1}\)的存在性。首先记\(a'=(a_l^{-1})_l^{-1}\),则有\(a\circ a_l^{-1}=(a'\circ a_l^{-1})\circ(a\circ a_l^{-1})=e_l\),从而\(a\circ e_l=a\circ(a_l^{-1}\circ a)=e_l\circ a=a\)。这样\(e_l\)同时还是右单位元,由前面的讨论知它就是单位元\(e\)。那么再由刚才的\(a\circ a_l^{-1}=e_l=e\)可知\(a_l^{-1}\)还是右逆元,故有逆元\(a^{-1}\)。
还有一点需要注意,方程(6)有解和消去律中其实并没有单位元和逆的概念,它们与逆之间是否有等价关系?其实不一定成立,但在某些情况还是等价的,请思考如下问题。
• 满足方程(6)都有解的半群是群;(提示:证明单位元和逆存在)
• 同时满足左右消去律的有限半群是群。(提示:利用上题结论)
群的例子非常普遍,比较显然的有任何数系的加法、正数的乘法、矩阵的加法和乘法。再比如上面提到的变换,以及我们在《初等数论》中看到的即约剩余系的乘法,都容易证明它们是群。还有一些著名的群,它们元素个数很少,但结构却不简单,应用也很广泛。比如著名的四元数群\(\{\pm 1,\pm i,\pm j,\pm k\}\),它满足下表的运算律,它们就是四元数的单位元,是比复数更一般的数系(以后可能会介绍)。
\(1\) | \(i\) | \(j\) | \(k\) | |
\(1\) | \(1\) | \(i\) | \(j\) | \(k\) |
\(i\) | \(i\) | \(-1\) | \(k\) | \(-j\) |
\(j\) | \(j\) | \(-k\) | \(-1\) | \(i\) |
\(k\) | \(k\) | \(j\) | \(-i\) | \(-1\) |
还有就是以下Klein四元群\(K_4=\{1,i,j,k\}\),本篇提交的所有群都是后续讨论中的典型例子,你需要品味一下它们的特点,并带入后续的讨论中。
\(1\) | \(i\) | \(j\) | \(k\) | |
\(1\) | \(1\) | \(i\) | \(j\) | \(k\) |
\(i\) | \(i\) | \(1\) | \(k\) | \(j\) |
\(j\) | \(j\) | \(k\) | \(1\) | \(i\) |
\(k\) | \(k\) | \(j\) | \(i\) | \(1\) |
说了这么多,我们还只是给群下了定义,以后的任务就是要研究它的结构,从而能得到有用的性质。结构分析最常用的方法当然就是分解,将大的复杂对象分解为一个个简单的小对象,结构自然就清楚了。同样道理,我们也希望将群拆解为结构更简单的小群,这个目标将贯穿整个群论。我们自然先给这个“小群”下个定义,它首先必然是群的子集,并且在同样的运算下能独立成群,这样的子集被称为子群(subgroup)。
若\(H\)是\(G\)的子群,一般记作\(H\leqslant G\),显然\(\{e\}\)和\(G\)都是\(G\)的子群,它们也叫平凡子群。如果\(H\neq G\),\(H\)叫做\(G\)的真子群(proper subgroup),记作\(H
\[H\leqslant G\quad\Leftrightarrow\quad e\in H\:\wedge\:(\forall a\in H\Rightarrow a^{-1}\in H)\:\wedge\:(\forall a,b\in H\Rightarrow ab\in H)\tag{10}\]
\[H\leqslant G\quad\Leftrightarrow\quad\forall a,b\in H\Rightarrow ab^{-1}\in H\tag{11}\]
如果子集\(M\)不满足子群的条件怎么办?你当然可以把需要的元素一个个补齐,最终满足条件的子群就叫的生成子群,记作\(\langle M\rangle\)。当然,你可以给出生成子群的精确定义:包含\(M\)的最小子群。只有一个元素\(a\)生成的子群又叫循环群\(\langle a\rangle\)(cyclic group),\(a\)叫做它的生成元(generator)。显然整数加群、有原根的即约剩余系都是循环群,并且循环群显然是交换群。
2.2 循环群
虽然定义了子群,但分解群的任务还很重,这里我们暂且休息一下,从最简单的循环群研究起。一个循环群中无非是这样的元素:\(\cdots,a^{-1}a^{-1},a^{-1},e,a,aa,\cdots\)。类似数系中的幂运算,我们可以引入指数记号\(a^n\)表示循环群中的每一个元素,你可以证明它完全满足指数的常规性质(公式(12)(13))。
\[a^0=e,\quad a^n=a^{n-1}a,\quad a^{-n}=(a^{-1})^n=(a^n)^{-1}\tag{12}\]
\[a^{m+n}=a^ma^n,\quad a^{mn}=(a^m)^n\tag{13}\]
在任何群中,如果有最小\(n>0\)的使得\(a^n=e\),那么称\(n\)为\(a\)的阶(order),记作\(|a|\)。如果不存在这样的\(n\),则称\(a\)的阶为无穷大,也记作\(|a|\)。阶的性质和我们在《初等数论》中讨论的指数的性质完全一样,这里就不赘述了,你有必要回头去看看。
在循环群\(\langle a\rangle\)中,如果\(|a|=n\),则显然它和有原根的既约剩余系同构:\(a,a^2,\cdots,a^n\),并且有\(\varphi(n)\)个生成元。当\(a\)的阶为无穷大时,它和整数加法群同构:\(\cdots,a^{-2},a^{-1},e,a,a^2,\cdots\),其中只有\(a,a^{-1}\)两个生成元。下面有一些阶和子群的习题,难度不大,但颇具思考价值:
• 有限子集\(H\)是子群的充要条件是:对任何\(a,b\in H\),总有\(ab\in H\);
• 求证:\(|a|=|a^{-1}|=|cac^{-1}|\),\(|ab|=|ba|\),\(|abc|=|bca|=|cab|\);
• 求证:有限群中阶数大于\(2\)的元素有偶数个;
• 如果\(H 说完了最简单的群,现在来看最“完整”的群。前面我们看到群\(G\)中的任何元素\(a\)使得\(aG\)遍历整个群,\(a\)和\(G\)上的一个双射变换相对应。而容易证明,集合\(G\)上的所有双射变换\(S(G)\)组成一个群,并且\(G\)是\(S(G)\)的子群。一般地,集合\(M\)上的所有双射变换组成的群\(S(M)\)叫\(M\)上的对称群(symmetric group)。当\(|G|=n\)时,又可记作\(S_n\),叫\(n\)次对称群。显然每个\(n\)阶群都同构于\(S_n\)的某个真子群,而阶为无穷的群也同构于\(S(G)\)的某个真子群(凯莱定理)。 这样一来,我们就可以通过讨论对称群的子群来研究一般的群。对称群的子群叫置换群(permutation group)(因为元素是置换),\(S_n\)的子群叫\(n\)次置换群,这里我们只讨论\(n\)次置换群。将集合中元素用\(1,2,\cdots,n\)编号,每个置换\(\sigma(x)\)可以表示为下式,改变列的顺序并不改变定义。 \[\begin{pmatrix}1&2&\cdots&n\\\sigma(1)&\sigma(2)&\cdots&\sigma(n)\end{pmatrix}\tag{14}\] 考察置换中的映射序列:\(1,\sigma(1),\sigma(\sigma(1)),\cdots\),容易证明这个序列最终必定会回到\(1\),这就形成了一个环路。显然任何置换都是由几个不相交的环路组合而成的,有必要对它继续进行研究。每个环路其实也可以看成是一个置换,只不过环路之外的值映射到自身而已。如果环路上共有\(k\)个元素,这样的置换就称为\(k\)-循环置换(或\(k\)-循环),特别地,\(2\)-循环也叫对换。循环置换可表示为下式,其中\(\sigma(a_k)=a_1,\sigma(a_i)=a_{i+1}\),它的阶显然为\(k\)。 \[\sigma=(a_1a_2\cdots a_k)=(a_2a_3\cdots a_1)=\cdots=(a_ka_1\cdots a_{k-1})\tag{15}\] 这样就可知,任何置换都可以唯一分解为几个不相交循环的乘积。另外,显然不相交循环的乘积是可交换的,故置换分解为循环后的顺序是可以任意的。另外也容易有下式成立,即循环可以分解为一系列对换的乘积(不可交换),故任一置换又可以分解为一系列对换的乘积。这个地方你需要弄清置换、对换的本质是映射,而不是对数的直接操作,否则下面的公式你会觉得困惑(因为与你预期的可能相反)。 \[(a_1a_2\cdots a_k)=(a_1a_k)(a_1a_{k-1})\cdots(a_1a_2)\tag{16}\] 至此就不能再分解了,我们不禁想问,如果一个置换有不同的分解为对换的方法,那它们的对换个数有什么关系吗?现在需要一个固定的值将它们联系起来,这个值只能从置换\(\sigma\)本身下手。对于数对\(i 奇偶性是置换的一个符号性质,它们相乘后的奇偶性变化与正负符号是一样的。以某个奇置换为乘积的值,可以将偶置换与奇置换一一配对,这样它们就各占一半。另外容易看出,所有偶置换的运算是封闭的,故它们能组成一个群,这个群叫做\(n\)次交错群(alternating group),记作\(A_n\)。考虑以下问题: • 求证\(\sigma\tau{\sigma}^{-1}=\begin{pmatrix}\sigma(1)&\sigma(2)&\cdots&\sigma(n)\\\sigma(\tau(1))&\sigma(\tau(2))&\cdots&\sigma(\tau(n))\end{pmatrix}\); • 求证\(\{(12),(13),\cdots(1n)\}\)和\(\{(12),(12\cdots n)\}\)都是\(S_n\)的生成系。2.3 置换群