Group Theory I
映射的理解
我确信高中没学过(逃
定义
考虑集合 \(A,B\),一个从 \(A\) 到 \(B\) 的映射被记作 \(\varphi:A\mapsto B\), 满足:
其中 \(\forall a\in A,\varphi(a)\) 是唯一的。
\(a\) 叫 \(\varphi(a)\) 的原像(\(\text{preimage}\)),\(\varphi(a)\) 叫 \(a\) 的像(\(\text{image}\))。
单射:\(\forall x,y\in A,x\neq y\to\varphi(x)\neq\varphi(y)\)。
满射:\(\forall b\in B,\exists a\in A,\varphi(a)=b\)。
双射:既是单射又是满射。对应直观上的一一对应。
例子
单射非满射:\(\varphi:\mathbb{R}\mapsto\mathbb{R},\varphi(x)=\exp x\)。
满射非单射:\(\varphi:\mathbb{R}\mapsto\mathbb{R}^+\cup\{0\},\varphi(x)=x^2\)。
双射:\(\varphi:\mathbb{R}\mapsto\mathbb{R},\varphi(x)=114x + 514\)。
Group
代数结构
首先,定义集合的笛卡尔积:\(A\times B=\{(x,y)\mid\forall x\in A,y\in B\}\),特殊地,简写 \(A\times A\) 为 \(A^2\)。
然后,我们明确一点,把 \(n\) 个元素放一起,然后就可以得到一个新元素,这个过程就是运算的定义。
显然,\(n\) 元运算可以看作映射 \(\varphi:A^n\mapsto B\)。
比如 \(\varphi(x):\mathbb{R}\mapsto\mathbb{R},\varphi(x)=-x\) 是一个一元运算,\(\varphi(x, y):\mathbb{R}^2\mapsto\mathbb{R},\varphi(x, y)=xy\) 是一个二元运算。
代数结构就是给出集合 \(A\) 和作用在这个集合上的若干运算 \(f_1,f_2\cdots f_m\)(我们称 \(A\) 装备了这个运算)。
代数结构可以简写为 \((A,f_1,f_2,\cdots f_m)\)。
Magagroup
从简单的开始,我们考虑一个代数结构 \((A,\cdot)\),为了书写方便,约定 \(ab=a\cdot b\),约定默认从左到右运算,即 \(abc=(ab)c\)。
之前说:\(n\) 元运算可以看作映射 \(\varphi:A^n\mapsto B\)。如果 \(A=B\),拿这一定是一种很特殊的情况,如果 \((A,\cdot)\) 满足 \(\forall x,y\in A,xy\in A\)(这个性质被称为封闭性),就称 \((A,\cdot)\) 为一个 \(\text{magagroup}\)(原群)。
Semigroup
只有封闭性的运算太 \(\text{trivial}\) 了,我们期望找到一个很基本,同时很重要的性质来约束这个代数结构。
经过经验积累,我们知道这个性质应该是结合律:\((ab)c=a(bc)\)。(直觉上交换律同样重要,但矩阵乘法告诉我们只有结合律比只有交换律有趣)
如果 \((A,\cdot)\) 满足结合律,那么它就是一个 \(\text{semigroup}\)(半群)。
Monoid
手玩几个 \(\text{semigroup}\) 的例子,比如 \((\mathbb{R},+),(\mathbb{R},\max),(\mathbb{R},f:f(a,b)=\min\{a+b,114\})\)。
不消说,最后一个 \(\text{semigroup}\) 和前两个画风不一样。
举个例子,我们在维护一颗线段树,查询的内容是上面 \(3\) 个例子中的运算,那么如果走到了空的子树,\((\mathbb{R},+)\) 只需要返回 \(0\),\((\mathbb{R},\max)\) 只需要返回 \(-\infty\),但是最后一个半群我们就不知道返回什么了。
因为总有 \(a+0=a,\max\{a,-\infty\}=a\),但是 \(\not\exists e\in\mathbb{R},\forall a\in\mathbb{R},\min\{a+e,114\}=a\)。
这样和任意元素运算不改变其值的元素显然很特殊,于是我们给它一个名字单位元,或者幺元(\(\text{identical element}\)),一般用 \(e\) 或 \(1\) 表示,形式化的定义是:
当然,上面定义的叫右幺元(可以看到式子中的 \(e\) 在右边),我们记作 \(e_r\),类似的右左幺元 \(e_l\):
但容易证明左右幺元等价:
同理可证幺元唯一。
如果一个 \(\text{semigroup}\) 有 \(\text{identical element}\),那么它就是一个 \(\text{monoid}\)(幺半群)。
Group
运用一点直觉,总有 \(x+(-x)=0\),但不总有 \(x\cdot\frac1x=1\),因为 \(0\) 不能作除数(当然,这个可以解释)。而 \(0\) 和 \(1\) 分别是 \(+\) 和 \(\cdot\) 的单位元。
于是引出逆元的定义:
那么称 \(x^{-1}\) 为 \(x\) 的逆元,这里跳过左右/唯一性等问题。
如果 \(\text{monoid}(G,\cdot)\) 中的每个元素都有逆元,那么 \((G,\cdot)\) 就是一个 \(\text{group}\)(群)。
后面书写时,默认 \(G=(G,\cdot)\) 是一个群,定义群的阶数为 \(G\) 的大小,记为 \(|G|\)。
可能用到的缩写
\(S_n\) 表示 \(n\) 阶置换构成的群。
奇置换指奇数次交换两个元素的置换,偶置换同理。
\(A_n\) 表示 \(n\) 阶交错群,即所有 \(n\) 阶偶置换构成的群。
\(\text{GL}_n(A)\) 表示每个元素都在 \(A\) 中的 \(n\times n\) 可逆矩阵构成的群。
单群(\(\text{single group}\))表示子群只有自身和 \(\{e\}\) 的群。
消去律
\(\forall a,b,c\in G,ab=ac\to b=c\)
上面这个只是左消去律,对应还有右校区律,不过同理。
两边同时左乘 \(a^{-1}\) 即可。(可以注意到使用了群的所有性质,毕竟 \(\max\) 可以构成幺半群,但不能消去)
Subgroup
定义
对于群 \((G,\cdot)\),如果 \(H\subset G\),而且 \((H,\cdot)\) 也是一个群,那么可以写作 \((H,\cdot)\le(G,\cdot)\)(之后都采取简写 \(H\le G\)),称 \(H\) 为 \(G\) 的一个 \(\text{subgroup}\)(子群)。
注意到,\(G\le G\),类比集合的知识可以定义真子群,把 \(H\le G\wedge H\ne G\) 简写为 \(H<G\)。
Cyclic group
如果一个群可以表示成 \((\{x^n\mid n\in\mathbb{N}^*,x\in G\},\cdot)=(G,\cdot)\),那么它就是一个循环群。(想象用一个元素不断自乘就可以循环遍历所有元素)
这引出阶(\(\text{order}\))的定义:如果有最小的正整数 \(k\) 使得 \(a^k=e\),那么\(\text{ord}(a)=k\)。
Normal subgroup
如果 \(H\le G\) 并且满足:
那么就称 \(H\) 为 \(G\) 的 \(\text{normal subgroup}\)(正规子群),记作 \(H\triangleleft G\)。(这个结构在矩阵快速幂里出现过,属于用直觉观察出来的)
其实正规和交换的联系相当紧密,因为在群中显然有 \(ag=ga\to a=gag^{-1}\)。
正规性,也就是 \(\forall h\in H,g\in G,ghg^{-1}\in H\) 这一性质,有某些良好的性质,存在以下命题:
\(K\triangleleft G,H\le G,K\cap H\triangleleft H\)
首先,我们证明引理:
\(H,K\le G,H\cap K\le G\)
通俗的说就是子群的交还是子群。
不消说,\(e\in H,K,H\cap K\),于是单位元就有了,然后运算的结合律也不会变。
封闭性:只需要注意到 \(x,y\in H\cap K\),那么
逆元:同理,\(a\in H\to a^{-1}\in H\),\(a\in K\to a^{-1}\in K\),当 \(a\) 同时在两个集合里时,自然也有 \(a^{-1}\in H\cap K\)。
引理得证。
运用引理,很快得到 \(H\cap K\le H\)。
然后验证正规性的思路差不多,首先我们根据 \(\text{normal group}\) 的定义知道 \(\forall h\in H\subset G,k\in K,hkh^{-1}\in K\),再运用子群的定义,已知 \(k\in H\cap K\subset H,h,h^{-1}\in H\to hkh^{-1}\in H\)。综合上述两者就可以得到 \(H\cap K\) 的正规性。
最后,我们引入一个定义:\(\text{conjugate}\)(共轭),如果 \(\exists g\in G,a=gbg^{-1}\),则称 \(a,b\) 是 \(\text{conjugate}\) 的。类似的可以定义集合的 \(\text{conjugate}\)。
The center of group
设 \(C(G)=\{a\in G\mid\forall g\in G,ag=ga\}\),也就是 \(G\) 中满足交换律的那些元素。\(Z\) 这个函子就被称为 \(G\) 的 \(\text{center}\)(中心)。
这里引入一种简写,\(aG=\{ag\mid\forall g\in G\}\),\(Ga\) 同理。
易知,\(e\in C(G)\),所以 \(Z(G)\) 一定非空。存在如下命题:
\(C(G)\triangleleft G\)
首先,考虑证明 \(C(G)\le G\)。
先证封闭性,\(a,b\in C(G)\),根据定义就有
然后结合律,幺元都是显然的。
最后证明逆元,即 \(a\in C(G)\to a^{-1}\in C(G)\)。其实也很简单,
于是就有 \(a^{-1}\in C(G)\)。
接下来证明 \(C(G)\triangleleft G\),只需要注意到 \(\forall g\in G,a\in C(G),ag=ga\to a=gag^{-1}\in C(G)\) 即可。
这展示了一点正规和交换的关系。
值得一提的是,\(\text{normal subgroup}\) 不一定是 \(\text{Abel group}\)(也就是满足交换律的群),一个反例是 \(A_4\triangleleft S_4\)。
Normalizer and centralizer
考虑局部化正规和交换的性质,考虑 \(H\le G,X\subset G\),定义 \(\text{normalizer}\)(正规化子)和 \(\text{centralizer}\)(中心化子):
其中 \(N_G\) 是正规化子,\(C_G\) 是中心化子。
Homomorphism and isomorphsim
Category
这一部分理解不了不影响后续学习,但理解了会有帮助。第一次可以跳过。
Object and morphism
\(\text{Category}\) (范畴)最早是亚里士多德对现实世界的抽象,后来在二十世纪为了构建统一的数学体系被引入数学中。
一个 \(\text{category}\) 包括两个部分:\(\text{object}\) (对象)和 \(\text{morphism}\)(态射)。
\(\text{Object}\) 描述了一种“类型”,也就是有特定的结构的一种东西,比如在 \(\text{c++}\) 中我们写:
class MyObject{
int x, y;
double d;
};
MyObject
就是一种类型,MyObject
包含名为 \(x,y\) 的整型变量和名为 \(d\) 的浮点变量这一事实就是 MyObject
这一类型的特定结构。
\(\text{Morphism}\) 描述了 \(\text{object}\) 间的组合方式,满足以下两个性质:
首先,\(\text{morphism}\) 之间可以复合,比如存在 \(f:a\to b,g:b\to c\),就存在 \(f\circ g:a\to c\)。\(f\circ g\) 表示 \(f,g\) 的复合。
其次,对于每个 \(\text{object }a\) 都有一个 \(\text{identity morphism:}I_a\),满足 \(f\circ I_a=f\)。
虽然看上去很像,但实际上讨论 \(\text{morphism}\) 和 \(\text{mapping}\) 的区别是没有意义的,因为我们没有更基本的数学语言来定义它们。教科书上大部分严谨的 \(\text{category}\) 的定义也是基于 \(\text{ZFC}\) 公理体系的。
但值得注意的是,两者不能说是完全一样。比如我们考虑把 \(\mathbb{N}^*\) 当作 \(\text{object}\),\(n\) 到 \(m\) 的 \(\text{morphism}\) 则定义为所有 \(n\times m\) 阶矩阵(这是和 \(\text{mapping}\) 的不同之处,\(\text{mapping}\) 不关心中间过程是什么),\(\text{morphism}\) 的复合则定义为矩阵乘法,容易发现这可以构成一个 \(\text{category}\)。
Functor
\(\text{Object}\) 间的关系由 \(\text{morphism}\) 描述,而 \(\text{category}\) 间的关系则由 \(\text{functor}\)(函子)描述。
\(\text{Functor}\) 和 \(\text{morphism}\) 最大的区别在于,\(\text{morphism}\) 只包含了 \(\text{object}\) 之间的关系,而 \(\text{functor}\) 由两部分组成:\(\text{objectA}\) 到 \(\text{objectB}\) 的 \(\text{morphism}\),\(\text{morphismA}\) 到 \(\text{morphismB}\) 的 \(\text{morphism}\)。
比如考虑这样的 \(\text{c++}\) 代码:
template<typename T>
T add(T a, T b){
return a + b;
}
之前我们倾向于把“类型”理解为 \(\text{object}\),但我们可以考虑每种类型支持的运算,这些运算其实构成了类型自己到自己的 \(\text{morphism}\),所以在这里我们把代码力的数据类型理解为不同的 \(\text{category}\),比如 \(\text{int category, string category}\)。
我们无需知道具体的数据类型,只需要调用 add
函数就可以执行“加法”,这就是 template
带来的抽象性,而这种抽象性实质上是一种 \(\text{functor}\),对于本身 \(\text{morphism}\) 包含了 \(+\) 的 \(\text{category}\),add
相当于一种到自己的 \(\text{functor}\)。
这个例子中,我们的 \(\text{functor}\) 看上去什么都没做,但实际上,\(\text{functor}\) 完成了“翻译”的工作,把一种语言(\(a+b\))翻译为了另一种语言(\(add(a,b)\))。(最早,\(\text{category}\) 的引入就是为了把拓扑语言翻译成代数语言)
Higher category
注意到,\(\text{morphism}\) 是单纯的 \(\text{object}\) 间的组合,\(\text{functor}\) 是 \(\text{morphism}\) 和 \(\text{object}\) 间的组合,那自然可以想到有没有 \(\text{functor,morphism,object}\) 间的组合呢?
这样的组合就被称为 \(\text{2-category}\),类似地可以推广到 \(\text{n-category}\)。
Isomorphism
在讨论 \(\text{category}\) 时,我们一般不说 \(a\) 和 \(b\) 是相等的,而是说 \(a\) 和 \(b\) 是 \(\text{isomorphism}\) (同构)的。
\(\text{isomorphism}\) 就是相等,一样的意思。但我们不直接说相等,因为代数关注的是结构。结构相同的东西具体是完全相同的两个东西,还是不同对象组成的结构相同的东西,我们并不在意。
于是我们没有必要定义相等,只需要定义 \(\text{isomorphism}\),我们写 \(a=b\),就表示 \(a\) 和 \(b\) 是 \(\text{isomorphism}\) 的。
Group homomorphism
定义
前缀 \(\text{homo-}\) 源于希腊语,表示“相同”,所以 \(\text{homomorphism}\) 被译为“同态”。
程序员在实现自己的类时,往往希望可以和原本的内容看上去像:比如进行大量运算符重载,或者将函数名称定义得和标准库一样等。
这种看上去一样的性质会带来极大的方便。比如我定义一个类 code
表示某种编码,编码内部只有一个 int
变量,那么我写 code(int(x) + int(y))
和 code(int(x)) + code(int(y))
就是一样的。(这里只是做了一点编译器的工作,实际上写的时候能够直接把 code
当成 int
做运算显然很有好处)
上面这个例子就是 \(\text{homomorphism}\)。毕竟我们在讨论 \(\text{group theory}\),下面给出 \(\text{group homomorphism}\) 的形式化定义:
其中 \(G,G^\prime\) 都是群。注意,内部和外部我们都省略了运算符,但内外的运算是不同的,一个装备在 \(G\) 上,一个装备在 \(G^\prime\) 上。当然,它们也可以是相同的。
比如在 \(\text{c++}\) 中 int
转 double
就是 \(\text{homomorphism}\),但 int
转 string
就不是。
值得一提的是,\(\varphi(e)=e^\prime\)。其中 \(e\) 是 \(G\) 的单位元,\(e^\prime\) 是 \(G^\prime\) 的单位元。
Kernel and image
给出两个重要的定义:
\(\text{homomorphism}\) 的 \(\text{kernel}\)(同态核)和 \(\text{image}\)(像):
因为 \(\varphi(a)\varphi(b)=\varphi(ab)\),如果 \(a\in\text{Ker}\varphi\),那么就有
根据对应关系,我们可以知道 \(|\text{Ker}\varphi||\text{Im}\varphi|=|G|\)(后面所有的 \(||\) 符号不加解释时,均表示取集合的大小)。
这一点后续将引出群同态基本定理。
Endomorphism
如果 \(G=G^\prime\),那么这种直接映射到直接的 \(\text{homomorphism }\varphi\) 就叫 \(\text{endomorphism}\)(自同态)。
\(G\) 的所有 \(\text{endomorphism}\) 被记作 \(\text{End(G)}\)。
比如 \(\mathbb{Z}_n=\{n\cdot z\mid z\in\mathbb{Z}\}\) 就是 \((\mathbb{Z},+)\) 的子群,\(\text{homomorphism }\varphi_n:z\to n\cdot z\) 就是 \((\mathbb{Z},+)\) 的一个 \(\text{endomorphism}\)。
关注上面这个例子,我们发现,整数和整数群的 \(\text{endomorphism}\) 一一对应!那么,我们应该先知道分配律还是先知道 \(\text{endomorphism}\) 呢?
Group action
当我们想定义一种二元运算的时候,我们实际上在定义一种映射 \(\varphi:A\times B\mapsto C\)。
考虑一种特殊的运算:\(\varphi:G\times\Omega\mapsto\Omega\)。其中 \(G\) 是群,\(\Omega\) 是集合。
我们把这种运算记为 \(g\in G,s\in\Omega,g.s=s^g\in\Omega\)。(有的地方也有写成 \(g(s)\) 的)
注意我们使用的是 \(.\) 而不是一般群运算的 \(\cdot\)。而 \(s^g\) 这种写法正好可以读作 \(g\) 作用在 \(s\) 上。
竟然约定了 \(G\) 是群,我们自然希望这种运算和群保持一定的统一性。
于是我们希望有如下性质:
\(1\) 是足够自然的,我们当然期望单位元不造成影响。
这里的 \(2\) 其实也是 \(\text{homomorphism}\) 的思想的体现,有了 \(2\),在保证运算顺序正确的情况下,我们可以把 \(.\) 和 \(\cdot\) 都省略。于是可以这样写:\(g_1.(g_2.s)=(g_1g_2).s=g_1g_2s\)。
至此,我们就可以把 \(\Omega\) 称为一个 \(G\text{ - set}\),\(G\) 称为一个 \(\Omega\) 上的 \(\text{group action}\)(群作用)。
常见的 \(\text{group action}\) 有左平移(\(\rho:G\times G\mapsto G,(g,x)\to gx\))、右平移(\(\tau:G\times G\mapsto G,(g,x)\to xg^{-1}\))、共轭(\(\pi:G\times G\mapsto G,(g,x)\to gxg^{-1}\))。
Ring
现在回看之前的问题:乘法其实是群自同态的简写。
考虑 \(n\leftrightarrow\varphi_n\),于是可以把 \(\varphi_n(z)\) 简写为 \(n\times z\)。
而 \(\varphi_n\in\text{End}(G)\) 其实是一个群作用 \(\varphi_n:G\times G\mapsto G\)。像 \(\mathbb{Z}\) 这样每个元素都存在通过变成一个 \(\text{group action}\) 的方式来变成一个 \(\text{endomorphism}\) 的 \(\text{morphism}\) 的群显然有优秀的性质,形式化地
我们依然可以简写 \(\varphi_g(a)=g\times a\)(聪明的同学会意识到左作用和右作用的区别,但这不太重要)。
之前说过,群作用是一种运算,于是这个代数结构上就装备了两种运算:一个是原本的群运算,一个是刚刚定义的群作用 \(\varphi_g(a)=g\times a\)。
为了和 \(\mathbb{Z}\) 的形式一致,我们用 \(+\) 表示原本的群运算。这样就得到了代数结构 \((G,+,\times)\)。
不难发现,上面定义的 \(\times\) 是分配的。这自然地引出了 \(\text{ring}\) (环)的定义:
\((R,+,\times)\) 是一个环,当且仅当:
\(1.\) \((R,+)\) 是一个群;
\(2.\) \(\times\) 存在一个单位元,且结合(注意到这就是群作用的定义);
\(3.\) \(\times\) 对 \(+\) 分配,即 \(a\times(b+c)=a\times b+a\times c,(a+b)\times c=a\times c+b\times c\)(来自自同态的约束)。
一个书写上的问题是 \(+\) 和 \(\times\) 的单位元往往不同,于是我们一般都把它们写出来(这也是为什么单位元叫 \(\text{identical element}\) 的原因):\(R=(R,+,\times)=(R,+,0,\times,1)\),含义和整数上相同。
Ring homomorphism and module
一个 \(\text{ring homomorphism}\) 首先得是 \((R,+)\) 的一个 \(\text{group homomorphism}\),其次还得维护乘法的结构,即 \(\varphi(r_1)\times\varphi(r_2)=\varphi(r_1\times r_2)\),注意内外的 \(\times\) 含义可以不同。
这时,一种黑暗深邃的想法击中了我们,为什么不考虑 \(\text{ring endomorphism}\) 呢?
这样的结构叫 \(\text{module}\)(模)。但这里一般不交换了,在左边就叫左模,右边就叫右模。
因为这个系列暂时涉及不到 \(\text{module}\),所以挂个链接就逃。
Group isomorphism and automorphism
\(\text{isomorphism}\) 是比 \(\text{homomorphism}\) 更强的一致,一个 \(\text{group isomorphism }\varphi\) 在是 \(\text{homomorphism}\) 的条件下还要求 \(\varphi\) 是双射。
也就是说,存在一种一一对应的方式使得 \(G\) 和 \(G^\prime\) 保持一致。
比如考虑群 \((\mathbb{Z},+)\) 和 \((\{0,1\},\text{xor})\),可以构造 \(\varphi:\mathbb{Z}\mapsto\{0,1\},\varphi(z)=z\bmod 2\)。
当我们知道 \(3+5=8\) 时,我们就知道 \(\varphi(3)\text{ xor }\varphi(5)=\varphi(3+5)\to 1\text{ xor }1=0\)。
如果存在 \(G,G^\prime\) 间的同构,就记为 \(G\cong G^\prime\)。
特别的,如果 \(\varphi\) 使得 \(G\cong G\),那么 \(\varphi\) 就是一个 \(\text{automorphism}\)(自同构),给一个群的所有 \(\text{automorphism}\) 构成的群一个记号 \(\text{Aut}(G)\)(一个 \(\text{automorphism}\) 可以自然地视作一个群作用,\(\text{Aut}(G)\) 上装备的运算就是群作用的复合)。
\(\text{Conjugate}\) 可以用来构造 \(\text{automorphism}\),考虑 \(\forall a\in G,\varphi_a:G\mapsto G,\varphi_a(g)=aga^{-1}\)。
首先我们证明 \(\varphi_a\) 是一个 \(\text{homomorphism}\):
再证明 \(\varphi_a\) 是一个双射。
单射:
运用消去律是显然的。
满射:
有了单射就是显然的。(因为一个原像也只有一个像)
于是就得证。
这种构造得到的 \(\text{automorphism}\) 被称为 \(\text{inner automorphism}\)(内自同构,因为是用群内部的元素构造的),构成的群被记为 \(\text{Inn}(G)\)。
最后举一个例子来说明 \(\text{isomorphism}\) 有什么意义。(之前好像忘记说了,群的阶就是群中元素的个数)
考虑 \(\text{cyclic group }G\),
\[G\cong\begin{cases} &\mathbb{Z} & |G|=\infty\\ &\mathbb{Z}/n\mathbb{Z} & |G|=n \end{cases}\]
证明是显然的。
Cayley theorem
\(|G|=n,G\cong s_n\le S_n\)
感性理解一下是显然的,学一下怎么形式化书写的。
设 \(G=\{g_1,g_2\cdots g_n\},\Gamma=\{\sigma_g| g\in G\}\)。
其中 \(\sigma_g\) 是一个 \(\text{group action}\),满足 \(\sigma:G\times G\mapsto G,g_k^{\sigma_g}=gg_k\),也就是用群运算作为群作用。
现在考虑 \(\Sigma_g=g.G=\{h^{\sigma_g}|h\in G\}\),我们的思路是证明 \(\Sigma_g\) 是 \(G\) 的一个排列,再证明 \(G\cong \Gamma\cong s_n\le S_n\)。
根据群的封闭性,我们只需要证明 \(\sigma_g\) 是一个双射,然后这个群作用显然有逆,于是就是双射。至此也就证明了 \(\Sigma_g\) 是 \(G\) 的一个排列。
接下来证明 \(G\cong\Gamma\),考虑 \(\varphi:G\mapsto\Gamma,g\to \Sigma_g\),这个显然是同构。
最后我们使用名为 \(\text{relabeling}\) 的技巧,把 \(g_k\) 改写为 \(k\),就证完了233。和感性理解好像没有什么区别。