跳轉到

4.5 Galois 對應:子群與中間體#

學習目標#

  1. 熟練陳述並證明 Galois 對應:Galois 擴張 \(L/K\) 的中間體與子群之間的一一反序對應。
  2. 理解正規子群 ↔ 正規(Galois)中間擴張的精確對應,以及商群對應相對擴張。
  3. 理解 Artin 定理(固定體的刻畫)與本原元素定理,掌握 Galois 擴張的判別準則。
  4. 用 SymPy + mermaid 圖具體呈現 \(\mathbb{Q}(\sqrt2, \sqrt3)\) 、 \(x^4-2\) 等例子中的子群格與中間體格。

歷史背景#

Galois 對應的核心思想出現在 1832 年遺稿(見 4.4 節):伽羅瓦觀察到「方程的根之間的一部分對稱性」對應「用部分根造出的中間體」。1846 年劉維爾出版遺稿後,Jordan 在 1870 年《Traité des substitutions》中把這套對應發展成系統的理論;Dedekind(1894 年第十一補遺第 11 版起)引入體的自同構群與「固定域」的抽象觀點;Emmy Artin(Emil Artin) 在 1920s–1940s 的講義《Galois Theory》(1942)中給出今日教科書標準的向量空間式證明。這段歷史再次展示:一個「觀察」(伽羅瓦)需要六十年、三代數學家的抽象化(若爾當→戴德金→阿廷),才成為我們今天在課堂上十分鐘講完的定理。

Galois 擴張#

定義 4.5.1(Galois 擴張) 代數擴張 \(L/K\) 稱為 Galois 擴張,若它是正規且可分(見下)。此時 \(|\mathrm{Gal}(L/K)| = [L:K]\) 。

定義 4.5.2(可分性) \(\alpha\) 在 \(K\) 上可分,若其最小多項式無重根。特徵 \(0\) 的體上一切代數擴張皆可分(Zorn 論證下也可證有限體的擴張皆可分,見 4.7 節)。本書多數例子在 \(\mathbb{Q}\) 或特徵 \(0\) 體上,可分性自動成立。

Artin 引理 4.5.3 設 \(G\) 是體 \(L\) 的自同構的有限群, \(K = L^G := \{a \in L : \sigma(a) = a,\ \forall \sigma \in G\}\) (固定體)。則 \([L : L^G] = |G|\) ,且 \(L/L^G\) 是 Galois 擴張、 \(\mathrm{Gal}(L/L^G) = G\) 。

證明思路:對任一 \(a \in L\) ,軌道 \(\{\sigma(a)\}\) 的元素是 \(G\) -多項式 \(P_a(x) = \prod_{\sigma \in G}(x - \sigma(a))\) 的根, \(P_a \in L^G[x]\) ,故 \([L^G(a):L^G] \le |G|\) 。用線性代數論證 \([L:L^G] \ge |G|\) (若 \([L:L^G] > |G|\) 可構造非平凡線性關係與 \(G\) 的行列式論證矛盾),合併得等式。 \(\blacksquare\)

定理 4.5.4(Galois 擴張的判別) 有限擴張 \(L/K\) ,下列等價: 1. \(L/K\) 是 Galois 擴張(正規 + 可分); 2. \(L^{\mathrm{Gal}(L/K)} = K\) (固定體回到 \(K\) ); 3. \(|\mathrm{Gal}(L/K)| = [L:K]\) 。

主定理:Galois 對應#

定理 4.5.5(Galois 對應,伽羅瓦 1832 / 若爾當 1870) 設 \(L/K\) 是 Galois 擴張, \(G = \mathrm{Gal}(L/K)\) 。定義兩個映射:

\[ \Phi: \{G \text{ 的子群}\} \longrightarrow \{K \subseteq E \subseteq L \text{ 的中間體}\}, \quad H \mapsto L^H = \{a : \tau(a) = a,\ \forall \tau \in H\}, \]
\[ \Psi: \{ \text{中間體} \} \longrightarrow \{\text{子群}\}, \quad E \mapsto \mathrm{Gal}(L/E) = \{\sigma \in G : \sigma|_E = \mathrm{id}\}. \]

則:

  1. 一一對應: \(\Phi\) 與 \(\Psi\) 互為反函數;且這是反序的—— \(H_1 \le H_2 \iff L^{H_2} \subseteq L^{H_1}\) (子群越小,固定體越大)。
  2. 計數:對每個中間體 \(E\) , \([L:E] = |\mathrm{Gal}(L/E)|\) , \([E:K] = [G : \mathrm{Gal}(L/E)]\) (子群指數)。
  3. 正規性對應:中間體 \(E\) 滿足 \(E/K\) 為 Galois 擴張 \(\iff\) \(\mathrm{Gal}(L/E)\) 是 \(G\) 的正規子群。此時有自然同構
\[ \mathrm{Gal}(E/K) \cong G / \mathrm{Gal}(L/E) . \]

證明要點:

  1. Artin 引理(4.5.3)應用於 \(H \le G\) : \(|H| = [L : L^H]\) 。故 \(L^{\mathrm{Gal}(L/E)} = E\) 對中間體成立(因 \([L : L^{\mathrm{Gal}(L/E)}] = |\mathrm{Gal}(L/E)| = [L:E]\) ,次數相等夾逼體相等)。對稱地 \(\mathrm{Gal}(L/L^H) = H\) 。
  2. 對中間體 \(E\) : \(L/E\) 仍是 Galois 擴張(正規可分性遺傳到上層),故 \([L:E] = |\mathrm{Gal}(L/E)|\) ;再由塔式定理 \([E:K] = [L:K]/[L:E] = |G|/|\mathrm{Gal}(L/E)| = [G:\mathrm{Gal}(L/E)]\) 。
  3. 設 \(E/K\) Galois,取 \(\sigma \in G\) 。 \(\sigma(E)\) 也是 \(E\) 在 \(K\) 上的共軛,但 \(E/K\) 正規,故 \(\sigma(E) = E\) ;於是 \(\sigma \mathrm{Gal}(L/E) \sigma^{-1} = \mathrm{Gal}(L/\sigma(E)) = \mathrm{Gal}(L/E)\) ,得正規性。反之若 \(H = \mathrm{Gal}(L/E)\) 正規,則 \(E/K\) 是正規擴張;限制映射 \(\mathrm{Gal}(L/K) \to \mathrm{Gal}(E/K)\) 的核恰為 \(H\) ,由第一同構定理得商群同構。 \(\blacksquare\)

第 3 條是 Galois 對應最深刻的部分:「對稱性的正規合成」對應「體的正規塔」——這正是根式可解性的最終形式:方程有根式解 \(\iff\) Galois 群有質數階循環商的正規鏈 \(\iff\) 可解群(見 4.3 節)。

對應示意圖#

以 \(f = x^4 - 2\) 為例, \(L = \mathbb{Q}(\sqrt[4]{2}, i)\) , \(\mathrm{Gal}(L/\mathbb{Q}) \cong D_4\) ( \(8\) 階二面體群):

對應的子群格( \(D_4 = \langle r, s \mid r^4 = s^2 = 1, srs = r^{-1} \rangle\) ,反序!向下越深群越大):

閱讀方式:體塔向上、群塔向下;正規子群( \(\langle r\rangle\) 、 \(\langle r^2\rangle\) 、 \(\langle r^2, s\rangle\) 、 \(\langle r^2, rs\rangle\) )對應的正是圖中標了「Galois」的中間體; \(\mathrm{Gal}(Q(i)/\mathbb{Q}) \cong D_4/\langle r^2\rangle\) 。非正規子群(如 \(\langle s \rangle\) )對應的中間體 \(\mathbb{Q}(\sqrt[4]{2}\,(1+i))\) 等則不是 \(\mathbb{Q}\) 的 Galois 擴張——它們不含所有共軛根。

本原元素定理#

定理 4.5.6(本原元素定理,Dedekind/Artin 版) 有限可分擴張 \(L/K\) 必為單擴張: \(L = K(\gamma)\) 。Galois 情形下 \(\gamma\) 可取為根的「一般線性組合」 \(\gamma = c_1 r_1 + \cdots + c_n r_n\) ( \(c_i \in K\) 避開有限多個壞值)。

這解釋了為何 4.2 節中 \(\mathbb{Q}(\sqrt2,\sqrt3) = \mathbb{Q}(\sqrt2+\sqrt3)\) : \(\sqrt2 + \sqrt3\) 就是本原元素,其最小多項式 \(x^4 - 10x^2 + 1\) 次數恰為 \(4\) 。

SymPy 實作#

範例 1: \(\mathbb{Q}(\sqrt2, \sqrt3)\) 的對應全紀錄#

import sympy as sp
from sympy.abc import x
from sympy.polys.numberfields import galois_group

# 本原元素與 Galois 群
a = sp.sqrt(2) + sp.sqrt(3)
mp = sp.minimal_polynomial(a, x)
print("本原元素最小多項式:", mp)              # x^4 - 10x^2 + 1
G, alt = galois_group(mp, x)
print("Galois 群階數:", G.order(), "(= [L:Q] = 4)")

# 三個二次中間體的正規性:V4 的三個 2 階子群全部正規
from sympy.combinatorics.named_groups import SymmetricGroup
from sympy.combinatorics import Permutation, PermutationGroup
# V4 ⊂ S4 由 (12)(34), (13)(24) 生成
V4 = PermutationGroup(Permutation(0,1)(2,3), Permutation(0,2)(1,3))
print("V4 是交換群:", V4.is_abelian, "⇒ 所有子群皆正規")
print("⇒ 三個二次中間體 Q(√2), Q(√3), Q(√6) 都是 Q 的 Galois 擴張")

輸出說明:

本原元素最小多項式: x**4 - 10*x**2 + 1
Galois 群階數: 4 (= [L:Q] = 4)
V4 是交換群: True ⇒ 所有子群皆正規
⇒ 三個二次中間體 Q(√2), Q(√3), Q(√6) 都是 Q 的 Galois 擴張

Klein 四元群 \(V_4\) 是交換群,三個 \(2\) 隰子群全為正規,對應三個二次 Galois 擴張——正規性對應在這個小例子上完全顯現。

範例 2: \(x^4 - 2\) 的 Galois 群與非 Galois 中間體#

import sympy as sp
from sympy.abc import x
from sympy.polys.numberfields import galois_group
from sympy.combinatorics import Permutation

L_gens = [x**4 - 2]
G, alt = galois_group(x**4 - 2, x)
print("Gal(Q(⁴√2, i)/Q) 的階:", G.order())   # 8,二面體群

# x^4 - 2 的中間體 Q(⁴√2):不含 i,故不含虛根
# 檢驗其非正規性:最小多項式 x^4 - 2 有複根但不全在 Q(⁴√2) 中
p = sp.Poly(x**4 - 2, x)
print("x^4-2 的根:")
for r in sp.nroots(p.as_expr(), n=6):
    print("  ", r)
print("Q(⁴√2) ⊂ R 只含實根 ⇒ 擴張非正規 ⇒ 對應子群非正規")

輸出說明:

Gal(Q(⁴√2, i)/Q) 的階: 8
x^4-2 的根:
   [(-1+1j)**0.25...](兩實兩虛:±2^{1/4}, ±i·2^{1/4})
Q(⁴√2) ⊂ R 只含實根 ⇒ 擴張非正規 ⇒ 對應子群非正規

\(\mathbb{Q}(\sqrt[4]{2})/\mathbb{Q}\) 次數 \(4\) 但非 Galois:對應的 \(4\) 階子群 \(\langle r \rangle \cong C_4\) 是 \(D_4\) 的非正規子群( \(srs^{-1} = r^{-1} \notin \langle r \rangle\) ?注意 \(\langle r\rangle\) 其實正規於 \(D_4\) ;真正非正規的是 \(2\) 隰子群 \(\langle s\rangle\) ——其固定體即為上述非 Galois 中間體家族)。 SymPy 的 galois_group 輸出置換表示後,可以用 .subgroup() 列舉子群並檢查 normal_closure 來驗證這些細節。

範例 3:用 SymPy 枚舉子群並檢查正規性#

import sympy as sp
from sympy.combinatorics import Permutation, PermutationGroup
from sympy.combinatorics.named_groups import DihedralGroup

D4 = DihedralGroup(4)
print("D4 階數:", D4.order())

def canon(H):
    """子群的標準表示(元素陣列形式排序),用以去重並固定輸出順序"""
    return tuple(sorted(tuple(p.array_form) for p in H.elements))

def all_subgroups(G):
    """SymPy 1.14 已無 subgroups():任何子群皆可由兩個元素生成,故以配對枚舉"""
    subs, seen = [], set()
    for a in G.elements:
        for b in G.elements:
            H = PermutationGroup(a, b)
            key = canon(H)
            if key not in seen:
                seen.add(key)
                subs.append(H)
    return sorted(subs, key=lambda H: (-H.order(), canon(H)))

subs = all_subgroups(D4)
print("子群總數:", len(subs))   # 10
for H in subs:
    print(f"階 {H.order()} 的子群,正規於 D4:{H.is_normal(D4)}")

輸出說明:

D4 階數: 8
子群總數: 10
階 8 的子群,正規於 D4:True
階 4 的子群,正規於 D4:True
階 4 的子群,正規於 D4:True
階 4 的子群,正規於 D4:True
階 2 的子群,正規於 D4:False
階 2 的子群,正規於 D4:False
階 2 的子群,正規於 D4:False
階 2 的子群,正規於 D4:True
階 2 的子群,正規於 D4:False
階 1 的子群,正規於 D4:True

\(D_4\) 的 \(10\) 個子群中, \(2\) 隰旋轉子群 \(\langle r^2\rangle\) 、 \(\langle r\rangle\) 與兩個 Klein 群正規,而 \(4\) 個由反射生成的 \(2\) 隰子群非正規——它們對應的中間體不是 \(\mathbb{Q}\) 的 Galois 擴張。把這份正規性清單與前面的體塔圖對照,Galois 對應就「活」了起來。

範例 4:商群對應相對 Galois 群#

import sympy as sp
from sympy.combinatorics import Permutation, PermutationGroup
from sympy.combinatorics.named_groups import DihedralGroup

D4 = DihedralGroup(4)
# 正規子群 N = <r²>:D4 的中心(唯一的 2 階正規子群),商群 D4/N ≅ V4
# 對應 Gal(Q(√2)/Q) 等
N = D4.center()
print("N = <r²> 的階:", N.order())          # 2

# SymPy 1.14 無 quotient_group:以陪集上的左作用把 D4/N 實現成置換群
reps, seen = [], set()
for g in D4.elements:
    C = frozenset(tuple(p.array_form) for p in (g * n for n in N.elements))
    if C not in seen:
        seen.add(C)
        reps.append(g)
index = {frozenset(tuple(p.array_form) for p in (r * n for n in N.elements)): i
         for i, r in enumerate(reps)}

def coset_index(x):
    return index[frozenset(tuple(p.array_form) for p in (x * n for n in N.elements))]

Q = PermutationGroup(*[Permutation([coset_index(g * r) for r in reps]) for g in D4.elements])
print("D4/<r²> 的階:", Q.order())          # 4
print("是否交換:", Q.is_abelian)            # True(V4)
print("⇒ Q(i,√2)/Q(√2) 等相對擴張的 Galois 群是 V4")

輸出說明:

N = <r²> 的階: 2
D4/<r²> 的階: 4
是否交換: True
⇒ Q(i,√2)/Q(√2) 等相對擴張的 Galois 群是 V4

Galois 對應的威力#

  1. 可解性翻譯:根式解 \(\iff\) 群有循環質數階正規鏈 \(\iff\) 體有根式塔。群論問題與體論問題完全等價。
  2. 尺規作圖的最終答案:可作圖 \(\iff\) Galois 群是 \(2\) -群(階為 \(2\) 的冪),這是 4.1 節必要條件的充要化。
  3. 計算路線:SymPy 的 galois_group + 置換群的子群/正規性/商群操作,把 19 世紀需要「天才直覺」的論證變成可機械驗證的流程。

習題#

  1. 寫出 \(\mathbb{Q}(\sqrt2, \sqrt3, \sqrt5)/\mathbb{Q}\) 的 Galois 群(階數與同構類),並列出全部 Galois 二次中間體的個數(提示: \(C_2^3\) 的 \(1\) 維子空間數 \((2^3-1)/(2-1) = 7\) )。用 SymPy 的 minimal_polynomial 求本原元素驗證次數 \(8\) 。
  2. 對 \(x^3 - 2\) :畫出 \(S_3\) 的子群格與分裂體的中間體格,標出哪條對應是非 Galois 的。
  3. 證明:Galois 擴張的中間體 \(E\) ,若 \(E/K\) 不是 Galois,則 \(E\) 在 \(G\) 下的共軛體個數 \(= [G : N_G(\mathrm{Gal}(L/E))]\) (用 SymPy 的 PermutationGroup.conjugate 類功能驗證 \(D_4\) 的反射子群)。
  4. 用定理 4.5.5(3) 與 SymPy 驗證: \(\mathrm{Gal}(\mathbb{Q}(i, \sqrt2)/\mathbb{Q}) \cong D_4/\langle r^2\rangle\) 。
  5. (挑戰)證明 Artin 引理中 \([L:L^G] \ge |G|\) 的部分:若 \(u_1, \ldots, u_m\) ( \(m > |G|\) )在 \(L^G\) 上線性相關,對每個 \(\sigma \in G\) 寫出關係式並組成 \(m \times m\) 行列式論證,導出矛盾(Dedekind–Artin 的「自同構線性無關」引理)。

SymPy 要點回顧#

  • 以兩個元素生成元枚舉子群(SymPy 1.14 已無 subgroups())+ H.is_normal(G):檢查正規性,直接實現 Galois 對應的「正規性那一半」。
  • 商群以陪集上的左作用實作(SymPy 1.14 無 quotient_group):對應相對 Galois 群 \(\mathrm{Gal}(E/K)\) 。
  • galois_group(f, x) + minimal_polynomial:確定 \([L:K]\) 與本原元素,對應 \(|G| = [L:K]\) 。
  • PermutationGroup 的 order、is_abelian、conjugate 系列方法支援軌道–共軛體計算。
  • 下一節:4.6 用 SymPy 驗證 Galois 群與正規性——把本節的理論化為系統性的計算工作流。