5.5 模與向量空間:諾特與阿廷的公理化#
學習目標#
- 定義環上的模,理解向量空間是模的特例,以及模比向量空間「多出」的現象。
- 掌握子模、商模、同態與同構定理——把它們看成 2.3 節、2.4 節、3.2 節群環理論的共同推廣。
- 理解諾特與阿廷的公理化如何「統一」19 世紀的線性代數、理想論與表示論。
- 理解 \(F[t]\) -模結構如何統一 [5.2]–[5.4] 節的特徵值與標準形理論,為 5.6 節鋪路。
歷史背景#
5.5.1 公理化的年代#
19 世紀的數學累積了大量的「具體理論」:
- 數體上的向量空間(Gauss、Grassmann 1844、Peano 1888 的公理嘗試);
- 環與理想(Dedekind 1871 的數論理想、Kronecker;見 3.1 節);
- 群論的抽象化(Cayley 1854;見 2.2 節);
- 群表示(Frobenius 1896–1903;見 6.1 節)。
20 世紀 1920 年代,Emmy Noether(諾特,1882–1935)與 Emil Artin(阿廷,1898–1962)推動了公理化浪潮:不再問「這個具體物件是什麼」,而問「哪些公理刻劃了它」。諾特 1921 年的《Idealtheorie in Ringbereichen》建立了交換環的抽象理想論(見 3.2 節);她在 1920 年代的哥廷根課程中把「模」放在中心位置——線性空間、群表示、理想,全是模。Artin 的 1927 年左右的工作(環論的 Artin 環、表示論的半單性)補足了非交換的一側。
這股潮流的直接技術動機是表示論與數論的統一需求:Frobenius 的表示論成果太具體(矩陣計算),研究者需要一種語言同時描述「群作用在向量空間」(表示)、「環作用在自身」(理想)、「多項式環作用在矩陣上」(標準形)——模就是這種語言。
5.5.2 「抽象代數」教科書的誕生#
- 1930 年,van der Waerden 的《Moderne Algebra》出版,根據諾特與 Artin 的講義整理,是第一本現代抽象代數教科書;
- 1940 年代至 1950 年代,模論與範疇語言(Eilenberg–Mac Lane 1945)融合,通向 第8章的同調代數。
諾特的名言(大意):「所有代數關係中,最重要的莫過於同構——等於沒有發生任何事。」這種「結構主義」精神是本章從矩陣([5.1]–[5.4] 節)走向模論的哲學橋樑。
數學理論#
5.5.3 模的定義#
定義 5.5.1(模)。設 \(R\) 是有單位元的環。一個(左)** \(R\) -模**是一個交換群 \((M, +)\) 配上一個作用 \(R \times M \to M\) , \((r, m) \mapsto rm\) ,滿足對所有 \(r, s \in R\) 、 \(m, n \in M\) : 1. \(r(m + n) = rm + rn\) ; 2. \((r + s)m = rm + sm\) ; 3. \((rs)m = r(sm)\) ; 4. \(1m = m\) 。
若 \(R = F\) 是體, \(F\) -模就正是向量空間。所以:
座右銘:向量空間 = 體上的模。表示論 = 群環上的模。標準形理論 = \(F[t]\) 上的模。整數同調 = \(\mathbb{Z}\) -模(交換群)。
四個「看似不同」的理論被一個定義統一。
5.5.4 模與向量空間的差異#
向量空間的好性質幾乎全來自「 \(F\) 是體」;一般環上的模會出現新現象:
| 現象 | 向量空間( \(F\) 體) | 模(一般 \(R\) ) |
|---|---|---|
| 基底 | 每個空間有基底 | 可能沒有基底(如 \(\mathbb{Z}/2\mathbb{Z}\) 作為 \(\mathbb{Z}\) -模) |
| 維度 | 唯一 | 無基底時無維度;有基底時秩未必唯一(非交換情形) |
| 子模的補 | 每個子空間有直和補 | 補可能不存在(如 \(\mathbb{Z} \supset 2\mathbb{Z}\) ) |
| 商結構 | 商是自由模 | 商可能是「扭」的 |
例 5.5.2(扭模)。 \(\mathbb{Z}/n\mathbb{Z}\) 是 \(\mathbb{Z}\) -模,但沒有基底:任何 \(m \in \mathbb{Z}/n\mathbb{Z}\) 滿足 \(n \cdot m = 0\) ,不可能線性無關。這種「非零元素被非零純量殺死」的現象稱為撓(torsion)。
例 5.5.3(矩陣的 \(F[t]\) -模)。設 \(A \in M_n(F)\) , \(V = F^n\) 。定義
則 \(V\) 成為 \(F[t]\) -模!這個觀點把 [5.2]–[5.4] 節全部統一起來: - \(t\) 作用就是 \(A\) ; - 「子 \(F[t]\) -模」= \(A\) -不變子空間; - 「模同態」= 與 \(A\) 可交換的矩陣( \(PAP^{-1} = B\) 的 \(P\) ); - \(\mu_A\) (最小多項式)= 殺死整個模的最小 \(f\) ,即 模的零化子理想 \((\mu_A) = \operatorname{Ann}(V)\) ; - 5.4 節的 \(V = \bigoplus_i G_{\lambda_i}\) 分解 = 模的準素分解。
5.5.5 子模、商模與同態#
定義 5.5.4。 \(M\) 的子集 \(N\) 是子模,若 \(N\) 對加法封閉且 \(rn \in N\) ( \(r \in R, n \in N\) )。商群 \(M/N\) 自帶 \(R\) -模結構: \(r(m + N) = rm + N\) 。
定義 5.5.5。 \(R\) -模同態是保持加法與純量作用的映射 \(f(rm + n) = rf(m) + f(n)\) 。記
同構定理(Noether 的核心遺產之一,統一 [2.3]/[2.4]/[3.2] 節):
定理 5.5.6(第一同構定理)。若 \(f: M \to M'\) 是滿同態,則 \(M/\ker f \cong M'\) 。 定理 5.5.7(第二同構定理)。 \(N' \subseteq N \subseteq M\) ,則 \((M/N')\big/(N/N') \cong M/N\) 。
證明思路(第一同構定理)。定義 \(\bar f(m + \ker f) = f(m)\) 。良定性: \(m_1 + \ker f = m_2 + \ker f \iff m_1 - m_2 \in \ker f \iff f(m_1) = f(m_2)\) 。 \(\bar f\) 是同態、單射(kernel 是 \(N/\ker f = 0\) )、滿射( \(f\) 滿)。 \(\blacksquare\)
5.5.6 自由模與基底#
定義 5.5.8。 \(M\) 是自由 \(R\) -模,若存在 \(m_1, \dots, m_n \in M\) 使每個 \(m \in M\) 唯一地表成 \(m = \sum r_i m_i\) 。 \(\{m_i\}\) 稱為基底。
\(R^n\) 是標準自由模。重要事實:
- 向量空間:任意子空間都是自由的、都有補、且 \(\dim U \le \dim V\) ;
- 自由模的子模:若 \(R\) 是 PID,則自由模的子模仍是自由的,秩不超過原秩(這是 5.6 節結構定理的關鍵引理);對一般環不成立。
5.5.7 Noether 模與 Artin 模#
定義 5.5.9。 \(M\) 是 Noether 模,若每個遞增子模鏈 \(M_1 \subseteq M_2 \subseteq \cdots\) 穩定。等價條件(Noether 1921):每個子模有限生成;或每個非空子模集合有極大元。 定義 5.5.10。 \(M\) 是 Artin 模,若每個遞減鏈穩定。
定理 5.5.11。 \(F[t]\) -模 \(V\) (由矩陣 \(A\) 給出)必是 Noether 模,因為 \(V\) 作為 \(F\) -向量空間有限維,而 \(F[t]\) -子模是 \(A\) -不變子空間,維度單調遞增必穩定。
這個小觀察威力巨大:Noether 性保證循環分解存在——5.6 節將證明:有限生成模 over PID 是循環模的直和,循環 \(F[t]\) -模對應伴隨矩陣(Frobenius 標準形!),循環 \(\mathbb{Z}\) -模對應循環群(有限交換群分類!)。一條定理,兩大分類。
5.5.8 表示論即模論#
定義 5.5.12。群 \(G\) 的(線性)表示是群同態 \(\rho: G \to \operatorname{GL}_n(F)\) 。
由群環的泛性質,這等價於群環 \(F[G]\) -模結構作用在 \(F^n\) 上。因此 第6章的表示論就是「 \(F[G]\) -模的分解理論」,而其基本工具(不可約分解、Schur 引理、半單性)全是模論語言——這就是諾特公理化對表示論的直接影響:1925 年之後,表示論的教科書寫法全部「模化」。
SymPy 實作#
範例 1:矩陣給出的 \(F[t]\) -模結構(子模 = 不變子空間)#
import sympy as sp
t = sp.Symbol('t')
A = sp.Matrix([[3, 1], [0, 3]]) # J_2(3)
V = sp.Matrix([[1], [0]]) # 生成元
def action(f, v, A):
"""f(t)·v = f(A)v"""
return sp.Poly(f, t).eval(A) * v
# t·v = Av 在 span{v} 內嗎?
print("t·v =", action(t, V, A)) # [[3],[0]] = 3v,在 span{v} 內
print("子模 span{v} 是 A-不變的:", action(t, V, A) == 3 * V)
# 但 t·e2 把 e2 推出 span{v}
e2 = sp.Matrix([[0], [1]])
print("t·e2 =", action(t, e2, A)) # [[1],[3]],含 e1 分量
print("V=span{e1,e2} 的零化子: mu_A =", A.minimal_polynomial())
輸出:
t·v = Matrix([[3], [0]])
子模 span{v} 是 A-不變的: True
t·e2 = Matrix([[1], [3]])
V=span{e1,e2} 的零化子: mu_A = (t - 3)**2
若爾當塊的幾何在此以模語言重現: \(\langle e_2 \rangle\) 生成的循環子模是整個 \(V\) (因為 \(e_2, Ae_2\) 線性無關),而 \(V\) 作為 \(F[t]/(\mu_A) \cong F[t]/(t-3)^2\) -模是循環模——這正是 Frobenius 標準形一塊的來源。
範例 2:第一同構定理的矩陣實例#
import sympy as sp
# 模: V = F^2 over F[t],A = diag(2, 2)(可對角化情形)
A = sp.diag(2, 2)
# 子模 N = ker(A - 2I) = 整個 V(特徵空間)
print("ker(A - 2I):", (A - 2*sp.eye(2)).nullspace())
# 商模 V/N = 0,因為 mu_A = t - 2 已殺死一切
print("mu =", A.minimal_polynomial())
# 對照: A = J_2(2) 時,特徵空間只有一維
B = sp.Matrix([[2, 1], [0, 2]])
print("J_2(2) 的 ker:", (B - 2*sp.eye(2)).nullspace())
# 商模 V / ker 維度 1,仍是循環模,對應 (t-2)
print("商模的零化子: (t-2)")
輸出:
ker(A - 2I): [Matrix([[1], [0]]), Matrix([[0], [1]])]
mu = t - 2
J_2(2) 的 ker: [Matrix([[1], [0]])]
商模的零化子: (t-2)
商模 \(V/\ker(A-2I)\) 對應若爾當理論的「商掉特徵空間後剩下的一條 Jordan 鏈」——直和分解 \(V \cong \ker \oplus \text{(鏈)}\) 在不可對角化時不成立(沒有補!),但商永遠存在:這就是模論比「取補」更靈活的地方(見 §5.5.4 表格)。
範例 3: \(\mathbb{Z}\) -模(交換群)的無基底現象#
import sympy as sp
# Z/nZ 作為 Z-模:檢查「每個元素都被 n 殺死」
n = 6
for m in range(n):
print(f"n * {m} mod {n} = {(n * m) % n}", end="; ")
print()
# 所有元素都滿足 n·m = 0 => 不可能線性無關 => 非自由模(有撓)
輸出:
n * 0 mod 6 = 0; n * 1 mod 6 = 0; n * 2 mod 6 = 0; n * 3 mod 6 = 0; n * 4 mod 6 = 0; n * 5 mod 6 = 0;
撓模沒有基底——這是模與向量空間最根本的差異,也是有限交換群(5.6 節)必然「有撓結構」的原因。
習題#
- 證明: \(F[t]\) -模結構與矩陣 \(A\) 一一對應(給定模結構, \(A\) 是「 \(t\) 的作用矩陣」)。
- 證明第一同構定理(§5.5.5)的完整細節。
- 舉一個「子模沒有補」的例子,並說明為何在向量空間中補永遠存在(用 Zorn 引理或有限維歸納)。
- 證明:Noether 模的三個等價條件(§5.5.9)。
- 計算 \(A = \begin{pmatrix} 0 & -1 \\ 1 & 0 \end{pmatrix}\) 給出的 \(F[t]\) -模結構: \(\mu_A = t^2 + 1\) ,故 \(V \cong F[t]/(t^2+1)\) 。這個商環是什麼?(提示: \(\mathbb{C}\) !這聯繫 4.7 節的體擴張。)
- 用 SymPy 驗證: \(A = \operatorname{diag}(J_2(1), J_1(1))\) 的循環分解(找一個生成元 \(\mathbf{v}\) 使 \(A\mathbf{v}, \mathbf{v}\) 張成 \(3\) 維,或證明不存在)。
- 解釋為何「群表示 = \(F[G]\) -模」(驗證群環泛性質)。
- (挑戰)證明:若 \(R\) 是 Noether 環,則 \(R[x_1,\dots,x_n]\) 也是 Noether 環(Hilbert 基定理,見 7.1 節的先修討論)。
SymPy 要點回顧#
| 語法 | 意義 |
|---|---|
sp.Poly(f, t).eval(A) | 計算 \(f(A)\) : \(F[t]\) -模的作用 |
M.nullspace() | 求 \(\ker(A - \lambda I)\) :特徵子模 |
A.minimal_polynomial() | 模的零化子 \(\operatorname{Ann}(V)\) 的生成元 |
sp.Matrix(...)*v | 模作用中的「 \(t\) 作用」 |
A.rank() | 自由部分的秩(結構定理中的 \(r\) ) |
下一節:PID 上有限生成模的結構定理——一條定理同時給出有限交換群分類與矩陣標準形,見 5.6 節。