前情提要
本文中 e,e′ 分別代表 G,G′ 的單位元
證明子群
H 為 G 的非空子集
∀a,b∈H,ab−1∈H⟺H≤G
由左到右顯然,由右到左的關鍵是依序分別取 (a,b)=(a,a)、(a,b)=(e,b)、(a,b)=(a,b−1) 即可推出群公理進而得證。
正規子群
CTFtime 上有個戰隊叫 正规子群
正規子群的定義源於我們希望商群 G/N 有以下運算結構:
(xN)(yN)=xyN
(這是為了確保 xN=x′N 時有 (xN)(yN)=(x′N)(yN))
進而去找子群 N≤G 需要滿足什麼條件。
(xN)(yN)=xyN⟺x(Ny)N=x(yN)N⟺Ny=yN
所以最後的結論是:∀g∈G,有
gN=Ng
或等價的說
N=g−1Ng
則稱 N 為 G 的正規子群,記作 N⊴G。
我對這個定義的理解是:對於每個左乘 n 的東西 ng,都存在 n′ 能把它變成右乘:
ng=gn′
商群
N⊴G,可以定義商群
G/N={gN∣g∈G}
商群的想法是用 N 把 G 中的元素分類,同類的綁在一起。g 和 g′ 同類(g∼g′)表示
gN=g′N⇔gn1=g′n2⇔g−1g′=n1n2−1=n3∈N⇔g−1g′∈N
另一個直觀觀點
可以把 G/N 想成 N 中的所有元素都視為單位元 e,進而把只差一個 n 的元素分成同一類。如果兩個元素 g,g′ 只差一個 n 中的元素:
g′=gn,n∈N
則他們會被視為相同:
g=g′
一個簡單的例子是整數的同餘,
Z/6Z=0,1,2,3,4,5
其中
k=6Z+k
比如 7,25,−17 等數字會被分到同一組(1),因為 7=6+1,把 6Z 中的元素 6 視為 e(=0),得到 7 跟 1 等價;25=24+1,24 是 6Z 中的元素,視為 e(=0),所以 25 也跟 1 等價,等等。
想一想,mod6 不就是把 6 的倍數都視為 0 嗎?
product of subsets
H,N 為群 G 的子群,定義
HN={hn∣h∈H,n∈N}
而當 N(或 H) 為正規子群時能符合封閉性:
(h1n1)(h2n2)=(h1n1)(n2′h2)=h1n3h2=h1h2′n3=h3n3∈HN
看吧!正規子群能把左乘變右乘是很好的性質!有點像弱化版的交換律。
同態及其核與像
保持運算結構
G,G′ 是群,若 φ:G→G′ 滿足
∀a,b∈G,φ(ab)=φ(a)φ(b)
則稱 φ 為一個群同態(Homomorphism)。易驗證同態會把單位元打到單位元、反元素打到反元素。
同時,有
Imφ≤G′,kerφ⊴G
運用先前的引理很容易能證明子群的部分。而
kerφ⊴G⇔∀g∈G,a∈kerφ,g−1ag∈kerφ
由
φ(g−1ag)=φ(g)φ(a)φ(g−1)=φ(g)e′φ(g)−1=e′
得證 kerφ⊴G。
證明 Monomorphism
Monomorphism 就是 1-1 的同態。一個同態 φ 是 1-1 的 ⟺kerφ={e}
kerφ 中一定至少有 e (因為同態會把單位元打到單位元),所以 kerφ 中不能再有其他元素,否則至少有兩個數函數值都是 e′,φ 就不是 1-1 了。所以 1-1 必有 kerφ={e}。反之,若 kerφ={e},則
φ(x)=φ(y)⇒φ(xy−1)=e′⇒xy−1∈kerφ⇒xy−1=e⇒x=y
所以 φ 是 1-1。
第一同構定理
若 φ:G→G′ 是一個群同態,則
G/kerφ≅Imφ
直觀想法
剛看會覺得有些抽象,所以我們先舉一個例子:
令 G=(Z,+),G′=(Z6,+6)、φ(n)=nmod6,則
kerφ=6Z,Imφ=Z6
則我們會有
Z/kerφ=Z/6Z≅Z6=Imφ
既然 kerφ 是正規子群,很自然地會想研究商群 G/kerφ。我們來看他是什麼:
G/kerφ={gkerφ∣g∈G}
這是什麼意思呢?
φ(gkerφ)={φ(gn)∣n∈kerφ}={φ(g)}
所以 G/kerφ 相當於把打到同一人的元素綁在一起,即,用 kerφ 進行分類,將 G 中打到 Imφ 中同一人的分成同一類,也就是
a∼b⟺φ(a)=φ(b)⟺a−1b∈kerφ
這樣綁起來的每一組都和 Imφ 中的一個人一一對應。
回到先前的舉例,φ(n)=nmod6 把 0,6,12,… 都打到 0,所以在 Z/6Z 他們被綁在一起,成為
0={…,0,6,12,…}
再看一眼商群運算的定義:(xN)(yN)=xyN,ㄟ,這不就是同態中保持運算結構的特性嗎?
φ(x)φ(y)=φ(xy) 這是在 Imφ 中的運算,(xkerφ)(ykerφ)=xykerφ 則是 G/kerφ 中的運算,兩者很合理的對應起來了!如此第一同構定理便變得很顯然!

證明思路與過程
我們需要找到一個 G/kerφ→Imφ 的同構 ψ,從上面的圖可以感覺得出來他就是
ψ(x)=φ(x)
顯然他不會一對多(因為 x=y⇔φ(x)=φ(y)),所以的確是函數。且
ψ(xy)=φ(x)φ(y)=φ(xy)=ψ(xy)
從而 ψ 是同態。
ψ 是同態可以這樣理解:因為 φ 跟 ⋅ 都保持運算結構,所以他們的複合函數 ψ 必然也保持運算結構。
這個 ψ 被稱為誘導同構
接著我們只要證明他 onto 且 1-1 即可。
onto
onto 表示對應域中每個元素都會被打到,而從像的定義知對於每個 y∈Imφ,都存在 x∈G 使得 φ(x)=y,所以一定有 x∈G/kerφ 而 ψ(x)=y
1-1
我們只要證明 G/kerφ 的單位元 e 是 kerψ 中的唯一元素即可。但 G 中所有(也只有)滿足 φ(g)=e′ 的元素都會跟 e 被分到同一類,也就是 g=e,所以 kerψ 中的確只會有 e。
因此 ψ 是同構,至此我們證明了群的第一同構定理。
我們定義自然同態:π:G→G/kerφ,π(g)=π(g),易知 π 是 onto。
有以下交換圖:
第二同構定理
若 H≤G,N⊴G,則 H∩N⊴H 且
H/(H∩N)≅(HN)/N
直觀想法
首先由於 H,N 都是子群,所以 H∩N 也是子群,要證明正規性就要證明
∀x∈H∩N,h∈H,hxh−1∈H∩N
但由於 x 的雙面性(既是 H 又是 N 的元素),將 x 視為 H 中元素時有 hxh−1∈H;當視 x 為 N 中元素時,由於 N 正規所以有 hNh−1=N⇒hxh−1∈N,從而得證。
接著我們先感受一下左右兩邊分別是什麼。先看右邊的 (HN)/N,用先前「把 N 中的元素都當成單位元」的想法,HN 中的任一元素 hn 被分到哪一類只取決於 h,即 hn1,hn2,hn3,… 都被視為同一類。很直覺的會覺得分類後每一類和 H 中元素一一對應(畢竟一個 h 一類嘛),但這裡有個坑:有些 h 同時也可以當 n 的角色,沒錯,就是 H∩N 中的那些,這些數在 /N 下也會被視為 e,進而和 e 歸為同類。
寫成數學式就是,對任意 h∈H,n∈N,都有
hnN=h(nN)=hN,
所以 hn 和 h 在 /N 下屬於同一類。特別地,當 h∈N 時,
hN=N=eN,
因此 h 也會和單位元 e 被分到同一類。
接著我們看左邊的 H/(H∩N),哪些元素會被分到一類呢?
h1∼h2⟺h1−1h2∈H∩N
由於 h1,h2 本來就都在 H 中,所以其實新增的條件只有 h1−1h2∈N,ㄟ!那不就是把只差一個 n 的元素分成一類嗎!
左右兩邊本質上都是「將只差一個 n 的都分成同一類」,不管是先乘上一個 N 再把所有 N 中元素都看成 e;還是直接把 H 中的那些 n 看成 e,得到的結果都是一樣的!

證明思路與過程
我們可以像證明第一同構定理一樣去找左邊打右邊的同構,但我們其實有另一個思考方向能讓我們借助第一同構定理把結果直接證明出來。
從前面的說明我們知道左右兩邊描述的是同一種分類,我們試著從 H 出發,把這個「分類」的函數 f 寫出來,也就是 h∈H 在 (HN)/N 會落在哪一類,f(h) 就是什麼值。
你可能會因為對應域是 HN/N 而感到怪怪的,但記住其實我們只對 H 中的元素感興趣,因為乘以 n∈N 的部分都會被視作跟單位元等價
很自然的, f:H→(HN)/N 定義成:
f(h)=h
(h 就是 hN)
很顯然 f 是一個同態(想想看之前說的,商群運算跟同態一樣保運算結構),沒錯!第一同構定理!
首先是 kerf,f(h)=N 代表 hN=N⇔h∈N (註:N 為 (HN)/N 的單位元),因此 kerf=H∩N。
再來是 Imf,由於 hn=hn,而 n=e,因此 HN/N 中的元素都能表示成 h,從而都會被 f 打到,也就是 f 是 onto,Imf 即 HN/N 本身。
從而由第一同構定理得證。
補充說明
其實 f 可以拆成以下兩者的複合:
ι:H⟶HN,ι(h)=h
π1:HN→(HN)/N,π1(x)=x
這樣有
f=π1∘ι:H⟶(HN)/N,f(h)=π1(ι(h))=hN
我們可以看以下交換圖:
還有兩個沒提到的函數分別是:
π2:H⟶H/(H∩N),π2(h)=h(H∩N)
ϕ:H/(H∩N)⟶(HN)/N,ϕ(h(H∩N))=hN
我們不用自己手動確認 ϕ 有同構的性質,同構第一定理已經幫我們完成了!
從這張圖可看出從 H 走到 (HN)/N 有兩條路(f=π1∘ι=ϕ∘π2),上面那條是先把 h 放進 HN,再以 N 進行分類;下面則是先在 H 中依 H∩N 進行分類,再藉由一個同構 ϕ 對應到右邊。兩條路殊途同歸,呼應了先前說的兩種分類看法,得到一樣的結果!
第三同構定理
給定 $ H,K\unlhd G $,且 K≤H,則 H/K⊴G/K 且
(G/K)/(H/K)≅G/H
直觀想法
有了先前的經驗,這個應該就比較簡單了。
G/K 先把 G 中那些差一個 K 的分成同一類;而 (G/K)/(H/K) 則是在第一次分類的基礎上,再把 G/K 中那些差一個 hK(h 為 H 中任意元素)的分成同一類。
所以在第一步驟 gk1,gk2,gk3,… 會被分成同一類:gK;而 gh1k1,gh2k2,gh3k3,… 則會被分成 gh1K,gh2K,gh3K 等若干個類。但到了第二步,gh1K,gh2K,gh3K,… 之間都只差一個 hK,所以最後這些人(gk1,gk2,gk3,gh1k1,gh2k2,gh3k3)全部都會被分到同一類。
記住,K 是 H 的子群,表示每個 k 其實都在 H 裡。因此,第一步驟先把 K 中的元素視為單位元;第二步驟則是在此基礎上進一步把 H/K 的部分也視為單位元,也就是把 H 中尚未被 K 消去的部分也一併消去。
那這不就相當於一開始就把 H 中的元素一律視為單位元一樣嗎?沒錯,這就是右邊的 G/H。
所以第三同構定理的精隨是「作商」可以拆步驟進行,跟一次完成分類結果是一樣的。

證明思路與過程
跟第二同構定理的證明相似,我們找一個 G/K→G/H 的同態 f,kerf 自然就會是正規子群,然後一樣運用第一同構定理便能得證。這部分就留作讀者練習啦~
參考資料
- 李華介教授 - 大學基礎代數
- [代數]正規子群與同構定理 – 尼斯的靈魂
- 如何內化抽象代數中的同構定理 : r/math
各種 AI
- 我同學
圖片由 Claude Sonnet 5 生成