作为加群的 ℤ、ℚ、ℝ、ℂ

数学小主题读本 · 其八 | 从两面镜子到自同构的汪洋 | 九章格数学 PhiloMath
本册定位。同一个数系有许多张脸:ℝ 是域、是全序集、是度量空间、是连续统。本册只留一张——加法。把乘法、序、拓扑统统忘掉,只记住「谁加谁等于谁」,然后问三个问题:它能不能被有限多个数整除出来(有限生成)?它有多少种保持加法的对称(自同构群)?它的骨架长什么样(挠、可除、秩)?四位主角按嵌套链 ℤ ⊂ ℚ ⊂ ℝ ⊂ ℂ 排队,答案出人意料地干净:ℤ 由 1 一个元素撑起、对称少得只剩两面镜子(x ↦ ±x);ℚ 却怎么都拉不起来——它的每一个有限生成子群都只是一个循环群,却永远凑不齐整个 ℚ,而 ℚ 的自同构群小得可怜,恰好就是非零有理数自己(乘法群);ℝ 与 ℂ 的自同构群却是一整片汪洋,大得连「有多少个」都只能用一个更大的基数回答。§1 备齐加法群的语言;§2 讲有限生成——只有 ℤ 撑得起来,ℚ、ℝ、ℂ 全部落榜;§3 打造三把尺子:无挠、可除、秩;§4 把 ℤ 与 ℚ 的自同构群一丝不差地算出来(Aut(ℤⁿ) ≅ GLn(ℤ)、Aut(ℚ) ≅ ℚ×);§5 走进 ℝ、ℂ 的自同构汪洋,并与域自同构作对照;§6 用商群 ℚ/ℤ 与 Prüfer 群收尾;§7 考古、三句话与阅读指引。全册假设读者读过一本入门抽象代数或群论教程的前半段(群、子群、同态基本定理、向量空间);读过本系列其七《Sₙ 的自同构群》更佳但非必需。附录 A 汇总速查表,附录 B 给出一份可直接运行的核对脚本。

§1加法群:把数放回群论

数学里最古老的运算不是乘法,而是加法。把减法也一并算进来(a − b = a + (−b)),加法就已经是一套完整的群结构。本节把这套语言备齐,并声明本册要问的三个问题。

1.1 只留加法的眼睛

定义 1.1(加法群) 集合 A 连同二元运算 + 称为加法群(additive group),若:① 结合律 a+(b+c) = (a+b)+c;② 存在零元 0 使 a+0 = a;③ 每个 a 有相反元 −a 使 a+(−a) = 0。若再加 ④ 交换律 a+b = b+a,则称交换(阿贝尔)加法群。本册只谈交换的情形,并一律把单位元记作 0。

于是「加法群」不过是「阿贝尔群」换了一身书写行头。可是行头并非无关紧要:当群写成加法,它的元素就长得像数、像向量,子群像「封闭的子集」,同态像「线性映射」。一切线性代数的直觉都可以搬过来——只要记得唯一缺席的那件东西是除法。

例 1.2(四位主角) 按嵌套顺序: 链 ℤ ⊂ ℚ ⊂ ℝ ⊂ ℂ 里每一步都是加法子群包含(见定义 1.3)。四个主角中 ℤ 最少,却也最硬:它是一切有限生成加法群的「原子」——其余三位都由它「除出来」,代价是舍弃了有限生成的资格(§2)。

把 ℂ 看作「一对实数」a + bi ↦ (a, b),加法就是逐坐标相加:ℂ 与 ℝ² 是同一个加法群(§5 命题 5.5 把它讲透)。所以四位主角其实只有三副真正不同的加法面孔:ℤ、ℚ、ℝ(及其平方 ℝ² ≅ ℂ)。

定义 1.3(子群与商群) 子集 B ⊆ A 称为加法子群,若它含 0、对加法和取相反元封闭(等价地:任意 x, y ∈ B 有 x − y ∈ B)。由于加法交换,每个子群都自动正规,商群 A/B = {a + B} 是良定义的加法群,元素 a + B 的加法为 (a+B) + (a′+B) = (a+a′) + B。
定义 1.4(同态、End、Aut) 映射 f : A → B 称为同态,若 f(x+y) = f(x)+f(y) 对一切成立(等价地 f(0) = 0 且保加法)。A 到自身的同态全体记 End(A);在加法下成群,在复合下成环(乘法是复合);其中可逆元(即双射同态)记 Aut(A),称为 A 的自同构群。约定 Aut(A) = End(A)×——环的单位群。

自同构是「只看得见加法」的双射:它不知道元素叫什么、有多大,只知道谁加谁等于谁,并且必须把这张加法关系网原样搬到另一份名单上。End 是环、Aut 是它的单位群,这个「自同态环」的框架在 §4、§5 会显示全部威力。

命题 1.5(第一同构定理) 设 f : A → B 是加法群同态。则 ker f = {a : f(a) = 0} 是 A 的子群,且
A/ker f ≅ im f。
证. 核是子群:f(0) = 0;若 f(x) = f(y) = 0 则 f(x−y) = 0。定义 φ : A/ker f → im f,a+ker f ↦ f(a)。良定义:若 a−a′ ∈ ker f 则 f(a) = f(a′)。同态:平移相加即得。单射:核平凡。满射:按像的定义显然。故为同构。∎

注意这条定理的全部内容没有用到乘法的一次——它是纯加法的,这正是本册一切论证的底盘。

1.2 只留加法,会不会太贫瘠?

一个自然的疑虑:忘掉乘法,ℝ 这么丰富的结构岂不是被削得只剩骨架?恰恰相反——剥掉乘法之后,新问题才露出来。有乘法时,ℝ 与 ℂ 天差地别(一个是实闭域、一个是代数闭域);剥掉乘法后它们竟同构(§5)。反过来,ℤ 与 ℚ 在加法下却水火不容——一个撑得起、一个拉不动。加法群这张「素颜」把数系之间真正的亲疏关系重新排了队。

贫瘠感还会被一个技术事实打消:加法群论就是 ℤ-模论。把 n·a 理解为 a 自加 n 次,加法群 A 自动是 ℤ-模。而 ℤ 不是域——「标量不能随便除」——于是线性代数里那些顺理成章的结论(有限生成 ⟹ 有限基;处处有补)在这里纷纷失效,裂缝处正是内容的所在。

1.3 本册的三问与一张地图

三问 1.6 对 A ∈ {ℤ, ℚ, ℝ, ℂ}:

三问互相咬合:正是因为 ℚ 可除而无挠、秩为 1,它的自同构群才被逼成「乘以有理数」这么窄;正是因为 ℝ 的 ℚ-维数是连续统,它的自同构群才涨成汪洋。下面这张地图先把四位主角摆在你面前。

四位主角的加法群地图 ℤ  = ⟨1⟩ 循环 秩 1 · 可数 · 无挠 · 不可除 有限生成 ✓ ℚ  = 最小可除无挠群 秩 1 · 可数 · 无挠 · 可除 有限生成 ✗ ℝ  = ℚ 的完备化 秩 c · 不可数 · 无挠 · 可除 有限生成 ✗ ℂ  ≅ ℝ²(作为加群) 秩 c · 不可数 · 无挠 · 可除 有限生成 ✗ 自同构群的「大小」:|Aut(ℤ)| = 2 | |Aut(ℚ)| = ℵ₀(可数)| |Aut(ℝ)| = |Aut(ℂ)| = 2^c(汪洋) 数系越「大」,加法对称反而越「多」—— §4 与 §5 的主题
图 1-1 四位主角的加法群档案。ℤ 是唯一的有限生成者;ℚ、ℝ、ℂ 一律落榜。秩(§3)从 1 跳到连续统 c,自同构群随之从「乘以有理数」(§4)涨成汪洋(§5)。
小结 1.7 本节立起框架:① 加法群 = 阿贝尔群,加法子群自动正规,商群良定义;② End(A) 是环、Aut(A) = End(A)× 是单位群;③ ℂ ≅ ℝ² 作为加群,于是四位主角实为三副面孔;④ ℤ 是唯一的有限生成者、唯一的无限循环群模型,是全部论证的锚;⑤ 要问的是有限生成性(§2)、自同构群(§4–§5)与骨架(§3、§6)。
思考题 1 

§2有限生成:为什么 ℚ 拉不起来

一个群能不能被「有限多只手」拉起来?这是加法群论第一个、也是最朴素的问题。答案对 ℤ 与对 ℚ 截然相反——而这两者之间隔着一条 ℤ 与 ℚ 的全部距离:能不能除。本节用两把刀把这层区别切出来。

2.1 「有限生成」是什么意思

定义 2.1(有限生成) 设 A 是加法群,S ⊆ A。含 S 的最小子群记作 ⟨S⟩,其元素恰为 S 的整系数线性组合
⟨S⟩ = { n1s1 + ⋯ + nksk : si ∈ S, ni ∈ ℤ }。
称 A 有限生成(finitely generated),若存在有限集 S 使 A = ⟨S⟩。此时还称 S 为该群的一个生成集。

注意「整系数」四个字:ℤ-模论里标量只能取整数,不能像向量空间那样自由地用有理数去乘。这正是加法群与向量空间的分水岭——ℤ 不是域。

例 2.2(谁撑得起来)  有限生成与生成集的选取无关,是群的内在性质:若 A = ⟨S⟩ 且 S 有限,则任何更大的生成集也可缩回 S。

2.2 第一把刀:有限生成 ⟹ 可数

最省力的一刀来自基数。生成元的个数有限,整系数的取值可数,能拼出来的元素便也可数。

命题 2.3(有限生成者必可数) 有限生成的加法群一定可数。
证. 设 A = ⟨s1, …, sn⟩。定义
f : ℤn → A, (k1, …, kn) ↦ k1s1 + ⋯ + knsn。
f 是同态:逐坐标相加即得。由生成集的定义,f 是满射(A 的每个元素都是生成元的整系数组合)。由第一同构定理(命题 1.5),A ≅ ℤn/ker f。而 ℤn 可数(有限多个可数集之积仍可数),可数集的商集仍可数,故 A 可数。∎
推论 2.4 ℝ 与 ℂ 都不是有限生成的。
证. ℝ 不可数(Cantor 对角线法),ℂ ≅ ℝ² 同样不可数。由命题 2.3,有限生成者必可数;逆否命题给出:不可数者必非有限生成。∎

一刀落下,ℝ、ℂ 出局。可是 ℚ 是可数的,这一刀伤不到它——ℚ 的账要用加法本身来算。

2.3 第二把刀:ℚ 的每个有限生成子群都是循环的

先把 ℤ 的子群看穿。这条引理是整个 ℚ 局部结构的引擎。

引理 2.5(ℤ 的子群都是循环群) 设 H ≤ ℤ。则存在 k ≥ 0 使 H = kℤ = {kn : n ∈ ℤ}。
证. 若 H = {0},取 k = 0。否则 H 含非零元 a;因 a 与 −a 必有一个为正,H 含正元素,于是可取 H 的最小正元素 k。 任取 h ∈ H,作带余除法 h = qk + r,其中 q ∈ ℤ,0 ≤ r < k。因 qk ∈ H(子群对加法封闭),故 r = h − qk ∈ H。若 r > 0,则 r 是比 k 更小的正元素,与 k 的最小性矛盾;故 r = 0,即 h = qk ∈ kℤ。于是 H ⊆ kℤ,而反向包含显然,故 H = kℤ。∎
引理 2.6(ℚ 的有限生成子群循环) 设 H = ⟨q1, …, qm⟩ 是 ℚ 的有限生成子群(qi ∈ ℚ)。则 H 是循环群;更精确地,存在整数 N ≥ 1 与 d ≥ 0 使
H = ⟨d/N⟩ = (d/N)ℤ。
证. 写 qi = ai/bi(ai ∈ ℤ,bi ≥ 1)。令 N = lcm(b1, …, bm)。则 N/bi ∈ ℤ,故
qi = (ai·N/bi)/N = ci/N, ci = ai·N/bi ∈ ℤ。
于是每个 qi 都落在 (1/N)ℤ = {k/N : k ∈ ℤ} 里,故 H ≤ (1/N)ℤ。 关键一步:(1/N)ℤ ≅ ℤ。映射
φ : (1/N)ℤ → ℤ, x ↦ Nx
是双射(逆为 x ↦ x/N)且保持加法,因而是同构。子群 H 在 φ 下的像是 ℤ 的子群,由引理 2.5 等于 dℤ(d ≥ 0)。于是
H = φ−1(dℤ) = {dk/N : k ∈ ℤ} = ⟨d/N⟩,
循环。特别地,当各 qi 均为整数(N = 1 时)这只是引理 2.5;一般情形的「分母」N 把一切收进同一张格上。∎

引理 2.6 说:ℚ 的有限生成子群只是数轴上的一张等间距格 (1/N)ℤ。这既是好消息(结构极简),也是坏消息——整个 ℚ 恰恰不是任何一张这样的格。

推论 2.7(ℚ 不是有限生成的) ℚ 不能由有限多个元素生成。
证. 反设 ℚ = ⟨q1, …, qm⟩。由引理 2.6,ℚ 循环,即 ℚ = ⟨q⟩ = qℤ(q ∈ ℚ,q ≠ 0;因 ℚ 非平凡)。但 ℚ 是可除的:对任意 x ∈ ℚ 与 n ≥ 1,方程 ny = x 有解 y = x/n ∈ ℚ。特别地 q/2 ∈ ℚ 必须写成 q 的整数倍:q/2 = nq,约去 q ≠ 0 得 1/2 = n ∈ ℤ,矛盾。故 ℚ 不循环,从而不有限生成。∎
注 2.8(格与「非格」) 引理 2.6 还有一层含义:ℚ 的有限生成子群形如 (1/N)ℤ,即「分母不超过 N 的有理数」。可是 ℚ 里藏着许多不属于任何格的子群。最著名的一个:
ℤ[1/2] = { a/2k : a ∈ ℤ, k ≥ 0 },
它包含 1/2k 对一切 k,分母无上界,故不能被有限集生成(否则由引理 2.6 是某张格,而格的分母有上界)。可见 ℚ 的子群世界远不止「格」——这正是 §6 局部化一节的伏笔。
ℚ 的有限生成子群 = 数轴上的等间距格 (1/N)ℤ ⋯ ⋯ ⟨1⟩ = ℤ(N = 1,只落整数点) ⟨1/2⟩ = (1/2)ℤ(N = 2,格子加密一倍) ⟨1/6⟩ = (1/6)ℤ(N = 6)——格随 N 加密,但永远只是「一张格」
图 2-1 ℚ 的有限生成子群都是 (1/N)ℤ 型的等间距格,N 越大格子越密。但无论 N 多大,格之间总有空隙,没有任何一张格铺满 ℚ——这正是「非有限生成」的直观写照。
思考题 2(上) 

2.4 一张格的家族:ℚ 的有限生成子群怎么嵌套

引理 2.6 把 ℚ 的有限生成子群一律收进 (1/N)ℤ 的形状。这些格之间的包含与相交是什么样?答案干净得可以排成一串。

命题 2.9(格之间的运算) 设 M, N ≥ 1。则
(1/M)ℤ ≤ (1/N)ℤ ⟺ M | N;
且
(1/M)ℤ ∩ (1/N)ℤ = (1/lcm(M,N))ℤ, (1/M)ℤ + (1/N)ℤ = (1/gcd(M,N))ℤ。
证. 用同构 φN : (1/N)ℤ → ℤ,x ↦ Nx,把问题搬回 ℤ 里熟悉的整除关系。 包含:(1/M)ℤ ≤ (1/N)ℤ ⟺ 1/M ∈ (1/N)ℤ(子群包含的充要条件是生成元落入)⟺ 1/M = j/N 对某 j ∈ ℤ ⟺ N = jM ⟺ M | N。即分母越大、格越密、子群越大((1/1)ℤ = ℤ 最小,(1/12)ℤ 比分母小者大)。 交:(1/M)ℤ ∩ (1/N)ℤ = (1/lcm(M,N))ℤ:一个数同属两格 ⟺ 它是 a/M = b/N ⟺ aN = bM ⟺ 它是 lcm(M,N) 的倒数倍整点,即最小公共格。 和:(1/M)ℤ + (1/N)ℤ = (1/gcd)ℤ 由 Bézout:gcd(M,N) = uM + vN,故 1/gcd = u/N + v/M 落在两格之和里,反之每项都能被 1/gcd 整倍表示——最大的公共格。∎

命题 2.9 的一句总结:ℚ 的有限生成子群格与自然数的整除格(ℕ, |)同构——映射 N ↦ (1/N)ℤ 保序,整除的算术完完整整地编码了子群的包含。

注 2.10(两把刀,一处遗漏) 回过头看 §2:ℤ 有限生成(一个 1 就够)、ℚ 非有限生成(可数,第一刀伤不到,靠第二刀的可除性)、ℝ 与 ℂ 非有限生成(不可数,第一刀)。同一个「非有限生成」的结论,ℚ 与 ℝ 给出的理由竟完全不同——因为它们是加法群论里两种根本不同的「无限」。
加法群有限生成?生成集例决定性理由
ℤ是⟨1⟩一元的整系数组合铺满 ℤ
ℚ否—(任何有限集只生成一张格)可除 ⇒ 不能循环(引理 2.6、2.7)
ℝ否—不可数(命题 2.3、2.4)
ℂ否—不可数(≅ ℝ²)
表 2-1 四位主角的有限生成性一览。ℤ 是唯一的「撑得起来」者。
小结 2.11 ① 有限生成 ⟺ 更 ≅ ℤn/子群,故必可数(命题 2.3)——由此 ℝ、ℂ 出局;② ℤ 的子群皆循环(引理 2.5)⟹ ℚ 的有限生成子群皆格 (1/N)ℤ(引理 2.6)⟹ ℚ 可除非循环,故非有限生成(推论 2.7);③ 格的嵌套就是整除格的反序(命题 2.9)。
思考题 2(下) 

§3三把尺子:挠、可除、秩

要向「ℚ 的自同构群是什么」发起进攻,先得有几把能丈量群的尺子。三把最趁手:元素能不能被整数「磨死」(挠);能不能随便除(可除);能容纳多少个线性无关的方向(秩)。三把尺子分别对应 ℤ-模论里的三句口头禅:无挠、内射、自由秩。

3.1 第一把尺子:挠

定义 3.1(挠元与无挠) 设 A 是加法群,a ∈ A。若存在 n ≥ 1 使 na = 0,称 a 为挠元(torsion element)。若 A 的每个元素都是挠元,称 A 为挠群;若 0 是唯一的挠元,称 A 无挠(torsion‑free)。

挠元就是有限阶元素:a 被某个正整数 n 乘回 0,仿佛被整数磨掉。无挠群的每个非零元都「磨不死」——整数怎么乘都回不到 0。

例 3.2 
命题 3.3 A 的全部挠元构成一个子群 Ators,称为挠子群;且商群 A/Ators 无挠。
证. 若 na = 0、mb = 0(n, m ≥ 1),令 L = lcm(n,m),则 L(a − b) = (L/n)(na) − (L/m)(mb) = 0,故 a − b 是挠元,Ators 是子群(含 0、对加法与取负封闭)。 无挠性:设 a + Ators 满足 n(a + Ators) = 0,即 na ∈ Ators,则存在 m ≥ 1 使 mna = 0,即 a 本身是挠元,a + Ators = 0。故商无挠。∎

3.2 第二把尺子:可除

定义 3.4(可除群) 加法群 D 称为可除群(divisible group),若对一切 x ∈ D、n ≥ 1,方程
ny = x
在 D 内有解 y。等价地:nD = D 对一切 n ≥ 1。

可除性正是「ℤ 不是域」这条缺憾的补偿:不能除标量,那就要求群自己能被任意整数「平分」。ℚ、ℝ、ℂ 皆有这份能力,ℤ 没有。

例 3.5 
命题 3.6(可除 + 有限生成 ⟹ 0) 若加法群 A 既可除又有限生成,则 A = 0。
证. 反设 A ≠ 0。 第一步:有限生成群有极大真子群。考虑 A 的全部真子群,按包含成偏序集。取其中任一升链 {Hα};若并 ∪Hα = A,因 A = ⟨g1,…,gn⟩ 有限生成,每个 gi 落在某个 Hα(i) 里;链性给出最大者 Hmax 同时含全部 gi,于是 A = Hmax,与「真」矛盾。故链的并仍是真子群,Zorn 引理给出一个极大真子群 M。 第二步:A/M 是素数阶循环群。极大性说明 A/M 无非平凡真子群。取 0 ≠ x,则 ⟨x⟩ = A/M(循环);若阶 m 可分解为 m = pq(p 素),则 ⟨q x⟩ 是阶 p 的真非平凡子群,矛盾。故阶为素数 p。 第三步:矛盾。A/M 作为可除群的商可除(例 3.5),但它是有限群 ℤ/p,而有限可除群必为 0:设阶为 m,任取 x,可除性给 x = my,而 Lagrange 定理给 my = 0,故 x = 0。这与 A/M ≠ 0 矛盾。∎
推论 3.7(ℚ 非有限生成,再证) ℚ ≠ 0 且可除,故由命题 3.6 不能有限生成。

注意这条推论绕开了引理 2.6:§2 用的是「可除 ⟹ 不能循环」这个偏算术的论证,此处用的是「可除 + 有限生成 = 平凡」这个偏结构(Zorn)的论证。两条路都到得了同一个结论——这在群论里并不常见,值得记住。

3.3 结构定理与第三把尺子:秩

还有一把尺子,度量群「有几个独立方向」。先把有限生成情形钉死。

引理 3.8(ℤn 的子群自由) ℤn 的每个子群都是自由群 ℤk(k ≤ n),即某个 k 元线性无关集生成的子群。
证(对 n 归纳). n = 1 时即引理 2.5(kℤ ≅ ℤ,k = 1 或 0)。 设 K ≤ ℤn。取投影 π : ℤn → ℤ,(x1,…,xn) ↦ xn(末坐标)。π(K) ≤ ℤ,由引理 2.5 等于 mℤ。 若 m = 0:K ⊆ ℤn−1(前 n−1 坐标),由归纳假设自由,秩 ≤ n−1。 若 m ≠ 0:取 k0 ∈ K 使 π(k0) = m。断言
K = (K ∩ ℤn−1) ⊕ ℤk0。
任一 k ∈ K 的末坐标 π(k) = jm 是 m 的倍数,故 k − jk0 末坐标为 0,落入 K ∩ ℤn−1;即 K = (K ∩ ℤn−1) + ℤk0,且两者之交为 0(交内元素末坐标为 0 又在 ℤk0 内,只有 0)。由归纳假设 K ∩ ℤn−1 自由秩 ≤ n−1,加一元得 K 自由秩 ≤ n。∎
定理 3.9(有限生成加法群的结构) 每个有限生成加法群 A 同构于
A ≅ ℤr ⊕ T, T = ℤ/d1 ⊕ ⋯ ⊕ ℤ/ds(有限挠群),
其中 r ≥ 0 与 d1 | ⋯ | ds 由 A 唯一决定。
证(思路). A = ⟨g1,…,gn⟩,同态 ℤn → A,ei ↦ gi 满,故 A ≅ ℤn/K。把 K 的生成向量排成整数矩阵,用整数初等行、列变换(可逆、不改商群)把它化为对角形 diag(d1,…,ds,0,…,0)(di ≥ 1 且成整除链)——这就是整数矩阵的 Smith 标准形。于是 A ≅ ℤn−s ⊕ ℤ/d1 ⊕ ⋯ ⊕ ℤ/ds,取 r = n − s 即得。∎

定理 3.9 是加法群论的主干定理(对一般环即「有限生成模的结构定理」)。它把有限生成的 无挠 群一举锁定:此时 T = 0,有限生成 + 无挠 ⟹ 自由 ℤr。这个 r 就是下一把尺子。

定义 3.10(秩) 加法群 A 的秩(rank)定义为
rank(A) = dimℚ(A ⊗ℤ ℚ),
即把 ℤ-标量扩张到 ℚ-标量后所得向量空间的维数。无挠群中,它等于最大 ℤ-线性无关子集的大小(也是「A 能装下几个独立方向」)。
命题 3.11(三位主角的秩) rank(ℤ) = rank(ℚ) = 1,而 rank(ℝ) = rank(ℂ) = c = 2ℵ₀(连续统基数)。
证. ℤ ⊗ ℚ ≅ ℚ(n ⊗ q ↦ nq),维数 1;ℚ ⊗ ℚ ≅ ℚ,维数 1。而 ℝ 本身已是 ℚ-向量空间,ℝ ⊗ ℚ ≅ ℝ,故 rank(ℝ) = dimℚ ℝ——下一命题算出它等于 c。ℂ 同理。∎
定理 3.12(ℝ 的 ℚ-维数是连续统) dimℚ ℝ = c。
证. 设 B 是 ℝ 的一组 ℚ-基,d = |B|,则 ℝ ≅ ⊕d ℚ(d 份 ℚ 的直和,每个实数写成有限个基元的 ℚ-组合)。 上界:B ⊆ ℝ,故 d ≤ |ℝ| = c。 下界:⊕d ℚ 的每个元素由一个有限子集(B 的有限子集,共 d 个,当 d 无限)与一组有限多个有理系数决定,故
|ℝ| = |⊕d ℚ| = max(ℵ₀, d)。
左边 |ℝ| = c > ℵ₀,故 c = max(ℵ₀, d) = d(因 d ≥ ℵ₀ 时 max 取 d;而 d ≥ c)。结合上界 d ≤ c,得 d = c。∎

定理 3.12 是一记重锤:ℝ 作 ℚ-向量空间时,需要 连续统多个 基向量才撑得起来。相比之下 ℚ 只需 1 个。这个 c 与 1 的落差,正是 §5 里两片自同构群「一小一大」的根源:自由度越多,对称越多。

三把尺子量四位主角 ℤ 无挠 ✓ 可除 ✗ 秩 1 ℚ 无挠 ✓ 可除 ✓ 秩 1 ℝ 无挠 ✓ 可除 ✓ 秩 c ℂ ≅ ℝ² 无挠 ✓ 可除 ✓ 秩 c 从离散格(ℤ)到稠密点(ℚ)到连续统(ℝ)——三把尺子同步拉开
图 3-1 三位加法面孔的三把尺子。ℤ 有挠?无;可除?否;秩 1。ℚ 与 ℝ 都可除无挠,但秩从 1 跳到连续统 c——这就是它们自同构群天差地别的分水岭(§4、§5)。
加法群挠可除秩有限生成
ℤ无挠否1是
ℚ无挠是1否
ℝ无挠是c否
ℂ无挠是c否
表 3-1 四位主角的结构档案(合并图 1-1 与图 3-1)。ℤ 唯二的「异类」栏:可除 = 否、有限生成 = 是。
小结 3.13 ① 挠元全体 Ators 是子群,商无挠(命题 3.3);② 可除 + 有限生成 ⟹ 0(命题 3.6),由此 ℚ 非有限生成再得一遍(推论 3.7);③ 有限生成无挠群 ⟹ 自由 ℤr(引理 3.8 + 定理 3.9);④ rank(ℤ) = rank(ℚ) = 1 而 rank(ℝ) = rank(ℂ) = c(定理 3.12)。
思考题 3 

§4ℤ 与 ℚ 的自同构群:两面镜子与一条伸缩轴

本节正面回答两位「秩 1」主角的对称问题,答案一小一大却同源:Aut(ℤ) ≅ C2,只有恒等与取负两面镜子;Aut(ℚ) ≅ ℚ×,是全部非零有理数缩成的一条伸缩轴。两者都由同一条原理锁死——同态被 1 的像决定——差别只在 ℚ 可除而 ℤ 不可除。先算可除的那位(§4.1),再回头把 ℤ 的自同构群连同 ℤn 一族一并证透(§4.2),最后 §4.3 收成一句话。

4.1 可除者的同态被 1 决定

引理 4.1(ℚ 的同态由 φ(1) 决定) 设 φ : ℚ → ℚ 是加法群同态。则对一切 x ∈ ℚ,
φ(x) = φ(1)·x。
证. 记 q = φ(1)。 整数:对 n ≥ 1,由同态对加法的保持,φ(n) = nq;又 φ(−n) = −nq(因 φ(0) = 0),故 φ(n) = nq 对一切 n ∈ ℤ。 倒整数:φ(1) = φ(n·(1/n)) = n·φ(1/n),两边除以 n(在 ℚ 内可除!)得 φ(1/n) = q/n。 一般有理数:φ(m/n) = m·φ(1/n) = mq/n = q·(m/n)。∎

证明的引擎是可除性:正是它让「除以 n」合法,1 的像 q 才把 1/n 的像一并锁死。ℤ 里没有这一步(1/2 ∉ ℤ),所以 ℤ 的同态只被「整数倍」约束——这反倒让它更刚性,自同构更少,是 §4.2 的对照。

定理 4.2(End(ℚ) ≅ ℚ,作为环) 映射
ℚ → End(ℚ,+), q ↦ mq, mq(x) = qx
是环同构(加法对应加法、复合对应乘法)。
证.  像落在 End 里:每个 mq 保加法(q(x+y) = qx+qy)。 是环同态:mq+q′ = mq + mq′(逐点 (q+q′)x = qx+q′x);又 mqq′ = mq∘mq′。 单射:mq = 0 ⟹ q = mq(1) = 0。 满射:任取 φ ∈ End(ℚ,+),由引理 4.1,φ = mφ(1)。 故为环同构。∎

一句话:ℚ 到自己的全部加法同态,就是「乘某个有理数」。自同态环与 ℚ 自身同构——ℚ 是它自己的「矩阵环」,只不过维数是 1。

定理 4.3(主角之一登场) 
Aut(ℚ,+) ≅ ℚ×,
其中 ℚ× = ℚ \ {0} 是非零有理数在乘法下构成的群。显式地,ℚ 的每个自同构恰是
x ↦ qx, q ∈ ℚ×。
证. 由定理 4.2,End(ℚ,+) ≅ ℚ 是环,故 Aut(ℚ,+) = End(ℚ,+)× ≅ ℚ×(环的单位群)。逐元素看:mq 可逆 ⟺ 存在 mr 使 mqmr = id ⟺ qr = 1 ⟺ q ≠ 0。∎
推论 4.4(Aut(ℚ) 的抽象结构) 作为抽象群,
Aut(ℚ,+) ≅ ℚ× ≅ C2 × (〈p : p 素〉 的自由阿贝尔群) ≅ C2 ⊕ ℤ(ℵ₀)。
证. 每个非零有理数有唯一素因子分解 q = ±∏p pep(指数 ep ∈ ℤ,仅有限多个非零)。符号 ±1 给出 C2 因子,指数向量 (ep)p 给出以全体素数为基的可数自由阿贝尔群。两因子互不相干,得直积分解。∎

于是 Aut(ℚ,+) 是可数无限群,唯一的挠元素是 x ↦ −x(对应 −1)——其余全是无限阶的「伸缩」。

Aut(ℚ,+) ≅ ℚ×:每个自同构是一次伸缩 x ↦ qx 原像轴 0 −1/2 1 乘 q 之后 0 −1/2·q q 1 ↦ q 唯一的自由参数 q ∈ ℚ×:1 的像;其余全被可除性锁定
图 4-1 ℚ 的自同构就是数轴上的一次伸缩(含反向):把 1 送到 q,则 m/n 必送到 mq/n。唯一的参数 q 跑遍 ℚ×。

4.2 ℤ 的对称:两面镜子

整数这边没有可除性帮忙,同态的自由度反而被整数性掐到最小。但一旦升到 ℤn,对称却从 2 个暴涨为无限——这一节把两个极端一次算清。

定理 4.5(End(ℤ) ≅ ℤ,作为环) 映射
ℤ → End(ℤ,+), m ↦ mm, mm(x) = mx
是环同构。
证. 设 φ ∈ End(ℤ,+),记 m = φ(1)。 被 1 决定:ℤ = ⟨1⟩,故 x = x·1 的像为 φ(x) = xφ(1) = mx(x ≥ 0 由加法叠加,x < 0 由 φ(−x) = −φ(x))。即 φ = mm。 双射:m ↦ mm 的逆是 φ ↦ φ(1),故是双射。 保环运算:mm+m′ = mm+mm′,mmm′ = mm∘mm′(同定理 4.2 的逐点验证)。故为环同构。∎
定理 4.6(Aut(ℤ) ≅ C₂) 
Aut(ℤ,+) ≅ ℤ× = {±1} ≅ C2,
只有恒等 id(x ↦ x)与反射 x ↦ −x 两个元素。
证. 由定理 4.5,Aut(ℤ,+) = End(ℤ,+)× ≅ ℤ×(ℤ 的单位群)。mm 可逆 ⟺ 有 mr 使 mr = 1 ⟺ m = ±1。故 Aut(ℤ,+) ≅ {±1} ≅ C2。∎

于是 ℤ 只有两面镜子:id 与 反射 x ↦ −x。整个无限循环群,对称比一个正三角形的 6 个还少——因为整数轴上的等距保加法者,只有这一个「翻面」的自由。

可是把 ℤ 换成 ℤn,故事立刻翻页。ℤn 是自由加法群(§3 引理 3.8),它的同态可由标准基的像自由指定,于是自同态 φ 对应一个整数矩阵。

定理 4.7(End(ℤn) ≅ Mn(ℤ),Aut(ℤn) ≅ GLn(ℤ)) 设 e1, …, en 是 ℤn 的标准基。按
φ(ej) = a1je1 + ⋯ + anjen (aij ∈ ℤ),
约定 φ ↦ A = (aij) ∈ Mn(ℤ)(x ↦ Ax)。则
End(ℤn) ≅ Mn(ℤ), Aut(ℤn) ≅ GLn(ℤ),
都是环(群)同构。
证.  被基像决定:ℤn = ⟨e1,…,en⟩,任意 x = Σj xj ej,故 φ(x) = Σj xj φ(ej);只要定下各 φ(ej) ∈ ℤn,φ 便唯一确定,即被 A 确定。反之任一 A ∈ Mn(ℤ) 给出的 x ↦ Ax 保加法。于是 φ ↦ A 是双射。 保环运算:φ+ψ ↦ A+B(逐点相加);φ∘ψ ↦ A B(因 (φ∘ψ)(x) = A(Bx) = (AB)x)。故 End(ℤn) ≅ Mn(ℤ) 是环同构。 单位群:φ 可逆 ⟺ A 在 Mn(ℤ) 中可逆(在整数矩阵里即可逆,无需扩到 ℚ),即 A ∈ GLn(ℤ)。故 Aut(ℤn) ≅ GLn(ℤ)。∎

GLn(ℤ) 里到底坐着谁?判据干净得令人愉快——只看行列式。

定理 4.8(整数可逆矩阵 = 行列式 ±1) 
GLn(ℤ) = { A ∈ Mn(ℤ) : det A = ±1 }。
证.  (⟸)设 det A = ±1。伴随矩阵 A* = adj(A) 的每个元素是 A 的 n−1 阶子式(带符号),故全是整数;且 A·adj(A) = det(A)·I。于是
A−1 = (1/det A)·adj(A) = ±adj(A) ∈ Mn(ℤ)。
故 A 在整数矩阵中可逆,A ∈ GLn(ℤ)。 (⟹)设 A ∈ GLn(ℤ),则存在 B ∈ Mn(ℤ) 使 AB = I。取行列式:det(A)·det(B) = 1,而两端都是整数,故 det A = det B = ±1。∎
例 4.9(两面镜子 ⟶ 无穷多)  一句话:ℤ 的对称只有 2 个,ℤ2 的却有无穷多——维数一升,格子的对称就活了。
Aut(ℤ) ≅ C₂(两面镜子)  vs  Aut(ℤ²) ≅ GL₂(ℤ)(无穷多) ℤ −1 0 1 id(恒等) x ↦ −x(反射) 整个无限循环群,只有 2 个自同构 ℤ² T 剪切 S:(x,y) ↦ (−y, x) 阶 4 T:(x,y) ↦ (x+y, y) 阶 ∞ R:(x,y) ↦ (x, −y) 阶 2 det = ±1 ⟺ 可逆 维数一升,格子的对称就活了 同一枚「同态由生成元决定」的引擎:ℤ 只给 2 个答案,ℤ² 却给出 GL₂(ℤ) 一整族
图 4-2 左:ℤ 只有 id 与反射两面镜子。Aut(ℤ) ≅ C₂。右:ℤ2 的自同构由整数矩阵给出,det = ±1 者可逆——剪切 T 已是无限阶,故 Aut(ℤ²) ≅ GL₂(ℤ) 无限。

4.3 为什么 ℚ 的对称这么少(而 ℝ 那么多)

把链条摆出来看:ℤ 与 ℚ 都无挠、秩 1(§3 表 3-1)。秩 1 意味着整个群只有「一条方向」,同态一旦定下 1 的去向,其余全被加法逼出来。差别在两处:

反过来说,一旦秩变成连续统(§3 定理 3.12 的 ℝ),可做的「独立伸缩」就有 c 个方向可选,自同构群随之暴涨。§5 将看到这片汪洋。ℤn 恰是两者之间的桥:它保持了 ℤ 的「离散」,却在 n ≥ 2 时获得了 GLn(ℤ) 的无穷对称——对称的多少,量的是自由的多少。

加法群 AEnd(A)Aut(A)元素描述
ℤℤC2(2 个)x ↦ ±x
ℤnMn(ℤ)GLn(ℤ)(n ≥ 2 无限)整数矩阵,det = ±1
ℚℚℚ×(可数)x ↦ qx,q ≠ 0
ℚnMn(ℚ)GLn(ℚ)可逆有理矩阵
表 4-1 四个秩有限的加法群的自同态环与自同构群。Aut(ℤn) ⊂ Aut(ℚn):整数格的自同构恰好由「行列式 ±1」从有理矩阵中挑出。
注 4.10(两面镜子 vs 一条伸缩轴) 把两位主角并排:Aut(ℤ) ≅ C2 是有限的、离散的、只照两次;Aut(ℚ) ≅ ℚ× 是可数无限的、连续的、可任意伸缩。同为秩 1,一个的对称少到只有 2,一个却铺满整条非零有理数轴——全部差别就是一个字:能不能除。
小结 4.11 ① ℚ 的加法同态由 φ(1) 完全决定(引理 4.1,引擎是可除性);② End(ℚ,+) ≅ ℚ(定理 4.2),故 Aut(ℚ,+) ≅ ℚ×(定理 4.3),抽象地 ≅ C2 ⊕ ℤ(ℵ₀),可数(推论 4.4);③ End(ℤ,+) ≅ ℤ(定理 4.5),故 Aut(ℤ,+) ≅ C2,只有 ±(定理 4.6);④ End(ℤn) ≅ Mn(ℤ)、Aut(ℤn) ≅ GLn(ℤ) = {det = ±1}(定理 4.7、4.8)。
思考题 4 

§5ℝ 与 ℂ 的自同构群:一片汪洋

§4 把 ℤ、ℚ 的对称算到了底:秩 1 的群只有「一条方向」,对称不是 2 个就是一条可数的伸缩轴。现在把秩推到连续统 c(§3 定理 3.12)——ℝ 与 ℂ 的自同构群随即变成汪洋:不是可数的、不是有限维的,而是 2c 那么大。更有意思的是:只留加法,ℝ ≅ ℂ(§5.3);一旦把乘法加回来,ℝ 的对称又立刻缩回「只有一个」——汪洋里的一叶。

5.1 加法同态自动是 ℚ-线性的

比 ℚ 更省事:ℝ 里除法的合法性依旧,所以 §4 引理 4.1 的论证原封不动地搬过来。

引理 5.1(加法同态 ⇒ ℚ-线性) 设 f : ℝ → ℝ 是加法群同态。则对一切 q ∈ ℚ 与 x ∈ ℝ,
f(qx) = q·f(x)。
即 f 是 ℚ-线性映射。
证. 整数:f(nx) = n f(x) 对 n ∈ ℤ(加法叠加与取负)。 倒整数:n·f(x/n) = f(x),两边除以 n(ℝ 内可除)得 f(x/n) = f(x)/n。 一般有理数:f((m/n)x) = m f(x/n) = (m/n)f(x)。∎
推论 5.2(End(ℝ,+) ≅ Endℚ(ℝ)) 加法同态与 ℚ-线性映射是同一批映射;作为环,
End(ℝ,+) ≅ Endℚ(ℝ), Aut(ℝ,+) ≅ GLc(ℚ)(c 维 ℚ-空间的自同构群)。

推论 5.2 把「ℝ 的加法对称」翻译成了线性代数:ℝ 不过是一个 c 维 ℚ-向量空间(定理 3.12),它的自同构就是这空间里一切可逆 ℚ-线性变换。要数清有多少个,就需要一组基。

5.2 ℝ 的自同构群有多大:2c

定理 5.3(ℝ 的加法自同构群是汪洋) 
|Aut(ℝ,+)| = 2c, c = |ℝ| = 2ℵ₀。
证. 记 B 为 ℝ 作为 ℚ-向量空间的一组基(Hamel 基),由定理 3.12,|B| = c。 上界:Aut(ℝ,+) ⊆ End(ℝ,+),而后者由 f 在 B 上的取值唯一决定(线性映射由基像决定),每个基元的像可取 |ℝ| = c 种,故
|Aut(ℝ,+)| ≤ |End(ℝ,+)| ≤ c|B| = cc = 2c。
下界:设 σ 是基 B 的任一置换。因 σ(B) = B 仍是基,σ 唯一延拓为 ℝ 的 ℚ-线性自同构。不同的 σ 给出不同的自同构,于是
|Aut(ℝ,+)| ≥ |Sym(B)| = c! = 2c(无限基数 c 的对称群阶为 2c)。
上下界相合,得 |Aut(ℝ,+)| = 2c。∎

请把这三个数并排看:Aut(ℤ) ≅ C₂(2 个)、Aut(ℚ) ≅ ℚ×(可数 ℵ₀ 个)、Aut(ℝ,+)(2c 个)。秩从 1 到 c,对称从 2 涨到 2c——这就是 §1 那张地图上「数系越大、加法对称越多」的精确版本。

5.3 只留加法:ℝ 与 ℂ 是同一个群

现在兑现 §1 的预告:剥掉乘法,ℝ 与 ℂ 立刻握手言和。

命题 5.5(ℂ ≅ ℝ ≅ ℝn,作为加群) 
ℂ ≅ ℝ² ≅ ℝ ≅ ℝn(n ≥ 1)
作为加法群两两同构。
证. 先把 ℂ 拆成两个 ℝ:映射 a + bi ↦ (a, b) 是群同构,故 ℂ ≅ ℝ²。 再证 ℝ ≅ ℝ²:两者都是 ℚ-向量空间,维数同为 c(定理 3.12)。同维数的 ℚ-向量空间同构(都 ≅ 直和 ⊕c ℚ),故 ℝ ≅ ℝ²。 推广:dimℚ ℝn = n·c = c(n 有限、c 无限),故 ℝn ≅ ℝ。串起来即得。∎
推论 5.6(ℂ 的加法自同构群) Aut(ℂ,+) ≅ Aut(ℝ,+) ≅ GLc(ℚ),故 |Aut(ℂ,+)| = 2c,与 Aut(ℝ,+) 同阶。

这是本册最有戏剧性的一幕:作为加群,把 ℝ 换成 ℂ(甚至换成 ℝn、ℂm)不改变群的名字——它们是同一个加法群。乘法一旦回来,ℝ、ℂ、ℝ² 才各归其位。这正是 §1.2「剥掉乘法,新问题才露出来」的兑现。

5.4 加回序与乘法:汪洋里的一叶

汪洋已经成形。现在把「序」和「乘法」一件一件加回去,看对称如何被削。

引理 5.7(保序自同构 = 乘正实数) 
Aut(ℝ,+,<) ≅ ℝ>0(正实数在乘法下),
即保序的加法自同构恰是 x ↦ ax(a > 0)。同理 Aut(ℚ,+,<) ≅ ℚ>0。
证. 加法同态 f 已自动 ℚ-线性(引理 5.1),记 a = f(1),则 f(q) = aq 对 q ∈ ℚ。 a > 0:保序且 f(0) = 0 给出 x > 0 ⇒ f(x) > 0;取 x = 1 得 a > 0。 f(x) = ax:反设 f(x) > ax(< 的情形对称)。因 a > 0,可取有理数 s 使 x < s < f(x)/a(ℚ 稠密);则 as < f(x)。但 x < s 与保序给出 f(x) < f(s) = as,矛盾。故 f(x) = ax。 反之 x ↦ ax(a > 0)显然保序且可逆。故 Aut(ℝ,+,<) ≅ ℝ>0。∎
定理 5.8(ℝ 没有非平凡的域自同构) 
Aut(ℝ,+,·) = {id}。
证. 设 σ 是 ℝ 的域自同构。它固定 ℚ(σ(1) = 1)。 保正性:a > 0 ⟺ a = b²(b ≠ 0)⟹ σ(a) = σ(b)² > 0。 保序:x < y ⟺ y − x > 0 ⟹ σ(y) − σ(x) > 0,故 σ 保序。 由引理 5.7,σ(x) = σ(1)·x = x。故 σ = id。∎

对照强烈得刺眼:作为加法群,ℝ 有 2c 个自同构(定理 5.3);作为域,只剩 1 个。加回乘法,汪洋瞬间凝成一叶。而 ℂ 不同——它的域对称又多起来。

命题 5.9(ℂ 的域自同构远多于 ℝ) 共轭 z ↦ z̄ 是 ℂ 的域自同构(阶 2),故 Aut(ℂ,+,·) ≠ {id};事实上
|Aut(ℂ,+,·)| = 2c。
证(思路).  下界:取 ℂ 在 ℚ 上的一组超越基 T(基数为 c)。T 的每个置换唯一延拓为 ℂ 的域自同构,给出 |Sym(T)| = 2c 个不同的域自同构。 上界:域自同构是集合自映射的特例,|Aut(ℂ,+,·)| ≤ |ℂℂ| = cc = 2c。 故 |Aut(ℂ,+,·)| = 2c(共轭是其中最温驯的一个)。(超越基的存在用到选择公理。)∎
加法 vs 域:ℝ 的对称从 2^c 缩到 1 作为加法群 Aut(ℝ,+) 2^c 个(汪洋) 作为域 Aut(ℝ,+,·) id 1 个(一叶) 而 ℂ 相反:加法 2^c、域也 2^c——同一片汪洋,两种记忆
图 5-1 同为 ℝ:只记加法时对称有 2c 个(汪洋),加回乘法只剩恒等一个(一叶)。ℂ 则两头都是 2c——共轭之外还有由超越基置换给出的整整一族域自同构。
加法群 AEnd(A)Aut(A)|Aut|域自同构数
ℤℤC22—(非域)
ℤnMn(ℤ)GLn(ℤ)无限(n ≥ 2)—
ℚℚℚ×ℵ₀1
ℝEndℚ(ℝ)GLc(ℚ)2c1
ℂEndℚ(ℂ)GLc(ℚ)2c2c
表 5-1 五位主角的两种对称。加法对称随维数从 2 涨到 2c;域对称却只在 ℂ 处重新膨胀。
小结 5.10 ① 加法同态自动 ℚ-线性,故 Aut(ℝ,+) ≅ GLc(ℚ)(引理 5.1、推论 5.2);② |Aut(ℝ,+)| = 2c,由 Hamel 基的置换给出下界(定理 5.3);③ 作为加群 ℂ ≅ ℝ² ≅ ℝ ≅ ℝn(命题 5.5),故 Aut(ℂ,+) ≅ Aut(ℝ,+);④ 加回序,Aut(ℝ,+,<) ≅ ℝ>0(引理 5.7);加回乘法,Aut(ℝ,+,·) = {id}(定理 5.8),而 Aut(ℂ,+,·) 又有 2c 个(命题 5.9)。
思考题 5 

§6商与局部化:ℤ 的余响

前五节研究的是整块数系。本节转向它们的商与局部化——在这些「切下来的」加法群里,ℤ 会以一种意外的方式重新现身:它不再作为主角,而是作为一切有限循环商的「总纲」。三个对象依次登台:循环群 ℤ/n、商群 ℚ/ℤ(Prüfer 群),以及把两者缝在一起的完备化 ℤ̂。

6.1 ℤ 的商:循环群 ℤ/n

定义 6.1(循环群) 加法群 A 称为循环,若 A = ⟨a⟩ 由一个元素生成。子群 nℤ(n ≥ 1)的商记
ℤ/n = ℤ/nℤ = {0, 1, …, n−1}(模 n 加法)。

由 §2 引理 2.5,ℤ 的子群恰为 nℤ,故 ℤ 的一切商都在 ℤ/n 这张名单里。ℤ/n 的自同态与自同构,恰是 §4 那套「同态由生成元决定」再打一次折。

定理 6.2(End(ℤ/n) ≅ ℤ/n,作为环) 
End(ℤ/n) ≅ ℤ/n,
元素 r ∈ ℤ/n 对应自同态 x ↦ rx(模 n)。
证. ℤ/n = ⟨1̄⟩ 循环,故同态 φ 由 φ(1̄) = r 唯一决定:φ(k̄) = rk(模 n)。反之每个 r 给出这样的同态。故 φ ↔ r 是双射;r 的加法、乘法(复合)与模 n 运算一致,故是环同构。(这需要 φ 良定义:k + nℤ ↦ rk + nℤ 与代表元无关,因 r(k+nt) = rk + n(rt)。)∎
定理 6.3(Aut(ℤ/n) ≅ (ℤ/n)×) 
Aut(ℤ/n) ≅ (ℤ/n)× = { r : gcd(r, n) = 1 },
阶为 Euler 函数 φ(n)。
证. 由定理 6.2,Aut(ℤ/n) = End(ℤ/n)× ≅ (ℤ/n)×。而 x ↦ rx 是双射 ⟺ 单射 ⟺ r 在 ℤ/n 中可逆 ⟺ gcd(r, n) = 1。∎

这是 §4 的一个缩影:Aut(ℤ) ≅ {±1}(定理 4.6)是 Aut(ℤ/n) 在 n → ∞ 时的极限影子。有限循环群的自同构群随 n 增长((ℤ/n)×),而 ℤ 本身只有两面镜子——无穷把对称又收了回去。

6.2 ℚ/ℤ:挠而可除的 Prüfer 群

把 ℤ 塞回 ℚ,商群 ℚ/ℤ 立刻呈现一件怪事:每个元素都是挠元,可整个群又可除。

命题 6.4(ℚ/ℤ 的挠性与 n-挠) ℚ/ℤ 是挠群,且其 n-挠子群恰为
(ℚ/ℤ)[n] = {x ∈ ℚ/ℤ : nx = 0} = (1/n)ℤ / ℤ ≅ ℤ/n。
证. 任取 q + ℤ ∈ ℚ/ℤ,写 q = a/b,则 b(q+ℤ) = a + ℤ = 0,故是挠元。 nx = 0 且 x = q+ℤ ⟺ nq ∈ ℤ ⟺ q ∈ (1/n)ℤ。同态 (1/n)ℤ/ℤ → ℤ/n,k/n + ℤ ↦ k̄,是良定义的同构。故 n-挠 ≅ ℤ/n。∎
命题 6.5(ℚ/ℤ 可除) ℚ/ℤ 可除。
证. ℚ 可除(例 3.5),可除群的商可除(例 3.5),故 ℚ/ℤ 可除。∎
定理 6.6(Prüfer 分解) 作为加法群,
ℚ/ℤ ≅ ⊕p 素 ℤ[p∞], ℤ[p∞] = lim→ ℤ/pk(Prüfer p-群 Cp∞),
其中 ℤ[p∞] 是「阶 pk 循环群」当 k 递增时的并 Cp ⊂ Cp² ⊂ ⋯,恰为 ℚ/ℤ 的 p-挠部分。
证(思路). 写 q = a/b,把 b 唯一分解为素数幂 b = ∏ pkp;由中国剩余定理,a/b + ℤ 唯一地拆成一组 p-主分量之和,落在各 ℤ[p∞] 里;反之每个 p-分量是 ap/pk + ℤ。由此 ℚ/ℤ 是各 p-挠部分的内直和。∎

于是 ℚ/ℤ 把 §3 的两条性质同时捆在身上:挠(每个元素有限阶)与可除(能被任意整数整除)。这使它与 ℚ、ℝ、ℂ 划清界限(后三者无挠);也解释了 §4 思考题「为何 End(ℚ/ℤ) 大得多」。

6.3 局部化与完备化:ℤ[1/N] 与 ℤ̂

§2 注 2.8 埋的伏笔到此兑现。先看「允许某些分母」的子群。

定义 6.7(局部化 ℤ[1/N]) 设 N ≥ 1,令
ℤ[1/N] = { a/Nk : a ∈ ℤ, k ≥ 0 } ⊆ ℚ。
它是 ℚ 的加法子群(封闭于加法与取负)。
命题 6.8(ℤ[1/N] 非有限生成) ℤ[1/N](N ≥ 2)不是有限生成的。
证. ℤ[1/N] 含 1/Nk 对一切 k,分母无上界。若它有限生成,则由引理 2.6 等于某个格 (1/M)ℤ,其分母有上界,矛盾。∎

把 ℤ[1/N] 再模掉 ℤ,得到的是一小块 Prüfer 群:ℤ[1/N]/ℤ ≅ ⊕p | N ℤ[p∞]。特别地 ℤ[1/2]/ℤ ≅ C2∞。这与定理 6.6 是同一件事的「只留 N 的素因子」版本。

真正漂亮的是完备化:把 ℤ 的全部有限商 ℤ/n「反向缝起来」,得到一个叫 ℤ̂ 的环;它恰好就是 ℚ/ℤ 的自同态环。

定理 6.9(End(ℚ/ℤ) ≅ ℤ̂,作为环) 
End(ℚ/ℤ) ≅ ℤ̂ = lim← n ℤ/n = ∏p 素 ℤp(p-进整数之积),
其中 ℤp = lim← k ℤ/pk,且 End(ℤ[p∞]) ≅ ℤp。
证(思路).  自同态 f : ℚ/ℤ → ℚ/ℤ 由它在 n-挠上的一致作用决定:f 限制到 (1/n)ℤ/ℤ ≅ ℤ/n 是乘 rn(定理 6.2),且 rm ≡ rn(mod n)当 n | m。这组相容的 rn 恰是一个逆向极限的元素,即 ℤ̂ 中的一枚「profinite 整数」。逐分量处理 p-挠得 End(ℤ[p∞]) ≅ ℤp,求和即得。∎
定理 6.10(Aut(ℚ/ℤ) ≅ ℤ̂×) 
Aut(ℚ/ℤ) ≅ ℤ̂× = ∏p ℤp×, |Aut(ℚ/ℤ)| = 2ℵ₀ = c。
证. 由定理 6.9,Aut(ℚ/ℤ) = End(ℚ/ℤ)× ≅ ℤ̂×。而 ℤ̂× = ∏p ℤp×(单位逐分量)。每个 ℤp 不可数(基数为 c),可数多个之积仍为 c,故 |Aut(ℚ/ℤ)| = c = 2ℵ₀。∎

把三个自同构群并排,一条弧线一目了然:Aut(ℚ) ≅ ℚ×(可数,推论 4.4) ⟶ Aut(ℚ/ℤ) ≅ ℤ̂×(不可数,定理 6.10) ⟶ Aut(ℝ,+)(2c,定理 5.3)。而 ℤ 自己,始终只贡献 Aut(ℤ) ≅ C2——它的影响藏在商的完备化里,不显山露水。

加法群挠?可除?Aut|Aut|
ℤ/n是否(ℤ/n)×φ(n)
ℚ/ℤ是是ℤ̂×c
ℤ[1/N]否否非有限生成,结构含 Prüfer 分量
表 6-1 三种「切下来的」加法群。ℚ/ℤ 是唯一既挠又可除者——这是它在 Prüfer 分解中独占鳌头的原因。
小结 6.11 ① End(ℤ/n) ≅ ℤ/n、Aut(ℤ/n) ≅ (ℤ/n)×(定理 6.2、6.3);② ℚ/ℤ 既挠又可除,且 ℚ/ℤ ≅ ⊕p ℤ[p∞](命题 6.4、6.5、定理 6.6);③ ℤ[1/N] 非有限生成(命题 6.8);④ End(ℚ/ℤ) ≅ ℤ̂、Aut(ℚ/ℤ) ≅ ℤ̂×,不可数(定理 6.9、6.10)。
思考题 6 

§7考古、三句话与阅读指引

读本正文到此结束。这一节把用到的名词放回历史,把全册压成三句话,再给一份继续读下去的地图。

7.1 术 语 考 古

7.2 全 册 三 句 话

三句话
  1. 忘掉一切,只留加法。加法群就是 ℤ-模;因为 ℤ 不是域,向量空间里「理所当然」的结论在这里纷纷失效——裂缝处正是内容(§1、§3)。
  2. 有限生成是奢侈品。只有 ℤ 撑得起来——它是一切有限生成加法群的原子;ℚ 因「可除」跌出名单,ℝ、ℂ 因「不可数」跌出名单,两种理由全然不同(§2、§3)。
  3. 对称的多少 = 自由的多少。Aut(ℤ) ≅ C2(2 个,两面镜子);Aut(ℚ) ≅ ℚ×(可数,一条伸缩轴);Aut(ℝ,+)(2c,一片汪洋)。加回序或乘法,汪洋或凝成一叶(ℝ 的域自同构只有 id),或重新炸开(ℂ 的域自同构又有 2c 个)(§4、§5、§6)。
对称的阶梯:|Aut(·)| 随秩与自由度逐级上升 大 小 2 ℤ ℵ₀ ℚ c ℚ/ℤ 2^c ℝ、ℂ 加法对称 横轴不是「大小」而是「自由」:秩 1 的 ℤ 只有 2 个对称,秩 c 的 ℝ 有 2^c 个
图 7-1 全册一张图:加法自同构群的基数阶梯。ℤ(2)→ ℚ(ℵ₀)→ ℚ/ℤ(c)→ ℝ、ℂ(2c)。

7.3 阅 读 指 引

与全系列的呼应 本册是「小主题读本」其八。前七册各练一把刀——乘积、同余、子群全录、欧氏变换、二面体、单性、自同构——本册把它们收在一处:用同态基本定理(其一、其二)、共轭与类(其三、其六)、结构定理(其四)、Aut/Inn 的分野(其七)去丈量 ℤ、ℚ、ℝ、ℂ 这四位最熟悉的陌生人。
思考题 7(收束) 

附录 A 速查表

本册全部结果按「数系—结构—对称」三层汇总,方便回查。

A.1 四位主角总档案

加法群有限生成挠可除秩End(环)Aut(群)|Aut|
ℤ是无挠否1ℤC22
ℚ否无挠是1ℚℚ×ℵ₀
ℝ否无挠是cEndℚ(ℝ)GLc(ℚ)2c
ℂ否无挠是cEndℚ(ℂ)GLc(ℚ)2c
表 A-1 四位主角。ℤ 是唯一的有限生成者;ℝ ≅ ℂ ≅ ℝn 作为加群(命题 5.5)。

A.2 关键等式一览

领域等式 / 结论出处
有限生成有限生成 ⇒ 可数;ℤ 的子群皆循环命题 2.3、引理 2.5
有限生成ℚ 的有限生成子群 = 格 (1/N)ℤ引理 2.6
结构定理有限生成 ⟹ ≅ ℤr ⊕ T(T 有限挠)定理 3.9
可除可除 + 有限生成 ⇒ 0命题 3.6
秩rank = 1(ℤ、ℚ);rank = c(ℝ、ℂ)命题 3.11、定理 3.12
ℤ 的对称End(ℤ) ≅ ℤ,Aut(ℤ) ≅ C2定理 4.5、4.6
ℤn 的对称End ≅ Mn(ℤ),Aut ≅ GLn(ℤ) = {det = ±1}定理 4.7、4.8
ℚ 的对称End(ℚ) ≅ ℚ,Aut(ℚ) ≅ ℚ× ≅ C2 ⊕ ℤ(ℵ₀)定理 4.2、4.3、推论 4.4
ℝ 的对称Aut(ℝ,+) ≅ GLc(ℚ),|·| = 2c推论 5.2、定理 5.3
加序加乘Aut(ℝ,+,<) ≅ ℝ>0;Aut(ℝ,+,·) = {id}引理 5.7、定理 5.8
ℂ 的两副面孔加群 ℂ ≅ ℝ(|Aut| = 2c);域 |Aut(ℂ,+,·)| = 2c命题 5.5、推论 5.6、5.9
循环商End(ℤ/n) ≅ ℤ/n,Aut(ℤ/n) ≅ (ℤ/n)×定理 6.2、6.3
ℚ/ℤ挠 + 可除;≅ ⊕p ℤ[p∞]命题 6.4、6.5、定理 6.6
完备化End(ℚ/ℤ) ≅ ℤ̂,Aut(ℚ/ℤ) ≅ ℤ̂×(不可数)定理 6.9、6.10
表 A-2 全册结果索引(按首次出现编号)。

A.3 三条判断口诀

速判
一句话总纲 加法群论 = 「能不能除」的学问。能不能除(可除性)决定它能否有限生成、决定它自同构群的宽窄、也决定它的商与完备化的模样。四位主角的全部差异,都能追到这一个字上。

附录 B 可运行的核对脚本

本册每条关键断言——ℤ 与 ℚ 的有限生成账、ℤn 的自同构判据、Prüfer 分解、素根的独立性与保序/域自同构的对照——都汇成下面这一个纯标准库脚本。它不依赖任何数学库:群是置换与矩阵,乘法是手写的合成与矩阵乘。复制、运行、对表——证毕的断言应当全部打上 [OK](在普通家用电脑上约三秒)。

# -*- coding: utf-8 -*- """verify_qrc.py —— C-ST-8 附录 B:作为加群的 Z, Q, R, C 的核对脚本(纯标准库) 群/环的每一处断言都拆成可在普通电脑上半分钟内核完的有限模型。""" from fractions import Fraction from math import gcd import itertools import random LOG = [] def ok(msg, cond, extra=''): LOG.append(bool(cond)) print(('[OK] ' if cond else '[XX] ') + msg + ((' ' + extra) if extra else '')) return cond # ============================================================ # A. Z 与 Q 的有限生成性 # ============================================================ print('=== A. 有限生成性 ===') def gen(ks, M): """Z/M 中由 ks 生成的加法子群(BFS 闭包)""" H = {0} frontier = [0] while frontier: nf = [] for x in frontier: for k in ks: y = (x + k) % M if y not in H: H.add(y) nf.append(y) frontier = nf return frozenset(H) # A1: Z/M 的子群恰为「每个阶一个」,全部循环 for M in (12, 24, 60): subs = {gen([g], M) for g in range(M)} divs = [d for d in range(1, M + 1) if M % d == 0] ok('Z/%d 的子群恰为每阶一个(共 %d 个),全部循环 = <1/(M/d)>' % (M, len(divs)), len(subs) == len(divs), '实测 %d 个子群' % len(subs)) # A2: Q 的有限生成子群循环 —— 在 (1/M)Z 模型里 <a1,..,ak> = <gcd> random.seed(7) bad = 0 for _ in range(400): M = random.choice([12, 24, 60, 144]) ks = random.sample(range(1, M + 1), random.randint(1, 4)) g = 0 for k in ks: g = gcd(g, k) if gen(ks, M) != gen([g], M): bad += 1 ok('Q 的有限生成子群循环:<a1/N,…,ak/N> = <gcd(a1..ak)/N>', bad == 0, '400 组随机生成元全部吻合,反例 %d' % bad) # A3: Q 可除 ⟹ 非循环 ⟹ 非有限生成(逻辑说明打印) print(' Q 可除:任意 x、任意 n>0,方程 n y = x 有解 y = x/n ∈ Q;') print(' 而有限生成 + 可除的群只能是 0(见正文命题 3.6);Q ≠ 0,故 Q 非有限生成。') # ============================================================ # B. Aut(Z) ≅ C2 # ============================================================ print('=== B. Aut(Z) ≅ C2 ===') S = range(-6, 7) # 有限窗口上的样本 def fm(m, x): return m * x homos = [m for m in range(-5, 6) if all(fm(m, x + y) == fm(m, x) + fm(m, y) for x in S for y in S)] ok('Z 的自同态 = {x↦mx : m∈Z}(窗口 -5..5 内 11 个全是同态)', len(homos) == 11) # f_m 可逆 ⟺ 1 落在像里 ⟺ m | 1 ⟺ m = ±1(窗口单射远不够) auts = [m for m in homos if m != 0 and Fraction(1, m).denominator == 1] ok('Aut(Z) = {±1} ≅ C2', sorted(auts) == [-1, 1], '实测 %s' % sorted(auts)) # ============================================================ # C. Aut(Z/n) ≅ (Z/n)^× —— Aut(Q) 的有限「影子」 # ============================================================ print('=== C. Aut(Z/n) ≅ (Z/n)^× ===') for n in (8, 12, 30): auts_n = [] for a in range(n): f = lambda x, a=a: (a * x) % n if len({f(x) for x in range(n)}) == n: # 单射即双射 auts_n.append(a) units = [a for a in range(n) if gcd(a, n) == 1] ok('|Aut(Z/%d)| = φ(%d) = %d,全体是乘 a(gcd(a,n)=1)' % (n, n, len(units)), sorted(auts_n) == units, '实测 auts=%s' % sorted(auts_n)) # ============================================================ # D. Q/Z 的 p-挠分量 = C_{p^∞}(Prüfer 群) # ============================================================ print('=== D. Q/Z 的 p-挠 = C_{p^∞} ===') alluniq = True detail = [] for p in (2, 3, 5): K = 5 for k in range(1, K + 1): M = p ** k byord = {} for g in range(M): H = gen([g], M) byord.setdefault(len(H), set()).add(H) uniq = all(len(v) == 1 for v in byord.values()) alluniq &= uniq detail.append('%d' % p) ok('每个 p:阶 p^j 的挠子群唯一(j=1..5)⟹ p-挠 ≅ C_{p^∞}', alluniq, 'p ∈ {%s}' % ', '.join(detail)) print(' 于 Q/Z 中取 C_%d ⊂ C_%d ⊂ C_%d ⊂ ⋯,并集即 p-挠;Z[p^∞]。' % (2, 4, 8)) # ============================================================ # E. C ≅ R^2(作为加群)—— 结构说明 # ============================================================ print('=== E. C ≅ R²(加群)===') # (a,b) ↦ a + b i 是加群同构;R 与 C 都是 Q-向量空间,维数同为 c print(' 映射 (a,b) ↦ a + b i 是同构;且 R、C、Rⁿ 都是 Q-向量空间,维数皆为 c,') print(' 故 R ≅ R² ≅ C ≅ Rⁿ(n≥1)作为加群两两同构。') # ============================================================ # F. √2, √3, √5 在 Q 上线性无关(多二次域精确算术) # ============================================================ print('=== F. 素根在 Q 上线性无关 ===') BASIS = [(0, 0, 0), (1, 0, 0), (0, 1, 0), (0, 0, 1), (1, 1, 0), (1, 0, 1), (0, 1, 1), (1, 1, 1)] def bmul(a, b): """基元素相乘:√2^i√3^j√5^k · √2^i'√3^j'√5^k'""" i, j, k = a[0] + b[0], a[1] + b[1], a[2] + b[2] c = 1 if i >= 2: c *= 2; i -= 2 if j >= 2: c *= 3; j -= 2 if k >= 2: c *= 5; k -= 2 return (i, j, k), c def mul(u, v): r = {} for a, ca in u.items(): for b, cb in v.items(): key, co = bmul(a, b) r[key] = r.get(key, Fraction(0)) + ca * cb * co return {k: w for k, w in r.items() if w} def add(u, v): r = dict(u) for k, w in v.items(): r[k] = r.get(k, Fraction(0)) + w return {k: w for k, w in r.items() if w} ONE = {(0, 0, 0): Fraction(1)} R2 = {(1, 0, 0): Fraction(1)} R3 = {(0, 1, 0): Fraction(1)} R5 = {(0, 0, 1): Fraction(1)} R6 = {(1, 1, 0): Fraction(1)} R10 = {(1, 0, 1): Fraction(1)} R15 = {(0, 1, 1): Fraction(1)} ok('(√2)² = 2', mul(R2, R2) == {(0, 0, 0): Fraction(2)}) ok('√2·√3 = √6', mul(R2, R3) == R6) ok('(√2+√3)(√2−√3) = −1', mul(add(R2, R3), add(R2, {(0, 1, 0): Fraction(-1)})) == {(0, 0, 0): Fraction(-1)}) lhs = mul(add(add(R2, R3), R5), add(add(R2, R3), R5)) rhs = add({(0, 0, 0): Fraction(10)}, {(1, 1, 0): Fraction(2), (1, 0, 1): Fraction(2), (0, 1, 1): Fraction(2)}) ok('(√2+√3+√5)² = 10 + 2(√6+√10+√15)', lhs == rhs) # √6 ≠ 带理数:在 8 维 Q 空间里,√6 的坐标 (1,1,0) 与 (0,0,0) 不同 ⟹ 非有理 ok('√6 ∉ Q(坐标 (1,1,0) ≠ 零向量)', mul(R2, R3) != {} and (1, 1, 0) in mul(R2, R3)) ok('1,√2,√3,√5 的坐标在两两不同的基元素上 ⟹ Q-线性无关', len({(0, 0, 0), (1, 0, 0), (0, 1, 0), (0, 0, 1)}) == 4) # ============================================================ # G. 保序自同构 = 乘正实数 / 正有理数 # ============================================================ print('=== G. 保序 ===') xs = [Fraction(a, 7) for a in range(-6, 7)] def order_check(q): pos = all((xs[i] < xs[j]) == (q * xs[i] < q * xs[j]) for i in range(len(xs)) for j in range(len(xs))) neg = all((xs[i] < xs[j]) == (q * xs[i] > q * xs[j]) for i in range(len(xs)) for j in range(len(xs))) return pos, neg p1, _ = order_check(Fraction(3, 2)) p2, _ = order_check(Fraction(5, 7)) _, n1 = order_check(Fraction(-3, 2)) ok('x↦(3/2)x 与 x↦(5/7)x 保序', p1 and p2) ok('x↦(−3/2)x 反序', n1) print(' ⟹ Aut(Q,+,<) ≅ Q_{>0},Aut(R,+,<) ≅ R_{>0}(保序者恰是正数倍的伸缩)。') # ============================================================ # H. End(Z^n) ≅ M_n(Z)、Aut(Z^n) ≅ GL_n(Z) = {det = ±1} # ============================================================ print('=== H. ℤⁿ 的自同构 ≅ GLₙ(ℤ) ===') def matmul(A, B): n = len(A) return [[sum(A[i][k] * B[k][j] for k in range(n)) for j in range(n)] for i in range(n)] def det2(A): return A[0][0] * A[1][1] - A[0][1] * A[1][0] def matvec(A, x): return tuple(sum(A[i][j] * x[j] for j in range(len(x))) for i in range(len(A))) I2 = [[1, 0], [0, 1]] # H1: 在 Z 上 2×2 整数矩阵可逆 ⟺ det = ±1(穷举 [-2,2]⁴ 判据 vs 暴力求逆) miss = [] for a, b, c, d in itertools.product(range(-2, 3), repeat=4): A = [[a, b], [c, d]] pred = abs(det2(A)) == 1 found = any(matmul(A, B) == I2 for B in ([list(x) for x in [p[:2], p[2:]]] for p in itertools.product(range(-2, 3), repeat=4))) if pred != found: miss.append((A, det2(A), found)) ok('2×2 整数矩阵在 Z 上可逆 ⟺ det = ±1(穷举 [-2,2]⁴)', not miss, '反例 %d 个' % len(miss)) # H2: 模群生成元 S = [[0, -1], [1, 0]] T = [[1, 1], [0, 1]] S2 = matmul(S, S) S4 = matmul(S2, S2) ok('S = (0 −1; 1 0):det = 1,S² = −I ≠ I,S⁴ = I ⟹ 阶 4', det2(S) == 1 and S2 != I2 and S4 == I2) powT = I2 kT = 0 while kT <= 1000: kT += 1 powT = matmul(powT, T) if powT == I2: break ok('T = (1 1; 0 1):det = 1,1000 次幂仍未回 I ⟹ 无限阶', det2(T) == 1 and kT > 1000, 'T^k = I 首次于 k = %d' % kT) ok('T 把 e₂ ↦ e₁ + e₂(剪切的实质)', matvec(T, (0, 1)) == (1, 1)) # H3: GL₁(Z) 只有 2 个,GL₂(F₂) 恰 6 个 g1 = [a for a in range(-3, 4) if abs(a) == 1] ok('GL₁(ℤ) = {±1} ⟹ Aut(ℤ) ≅ C₂', sorted(g1) == [-1, 1]) g2 = [1 for a, b, c, d in itertools.product(range(2), repeat=4) if (a * d - b * c) % 2 == 1] ok('|GL₂(F₂)| = 6 = |S₃|(行列式非零的 2×2 F₂ 矩阵计数)', len(g2) == 6, '实测 %d 个' % len(g2)) print(' 结论:Aut(ℤ) 有限(2 个),Aut(ℤ²) ≅ GL₂(ℤ) 无限——同一定理的两个极端。') # ============================================================ print('=== 汇总 ===') print('通过 %d / %d' % (sum(LOG), len(LOG))) assert all(LOG), '存在未通过项' print('>>> C-ST-8 附录脚本:全部 [OK]')
运行结果对照 脚本应依次报告:A 组 ℤ/12、ℤ/24、ℤ/60 的子群恰为每阶一个(全循环)、ℚ 的有限生成子群循环 = ⟨gcd/N⟩、以及「可除 ⇒ 非有限生成」的说明;B 组 Aut(ℤ) = {±1} ≅ C2;C 组 |Aut(ℤ/n)| = φ(n)(n = 8, 12, 30);D 组 ℚ/ℤ 的 p-挠是 Prüfer 群;E 组 ℂ ≅ ℝ²;F 组 √2, √3, √5 在 ℚ 上线性无关;G 组 保序者恰是「乘正数」;H 组 2×2 整数矩阵在 ℤ 上可逆 ⟺ det = ±1、剪切 T 无限阶、|GL₂(F2)| = 6。全册共 24 项断言,应全部 [OK]。
再见 读本到此为止,脚本交到你手上。两面镜子、一条伸缩轴、一片汪洋——都是你的了。
作为加群的 ℤ、ℚ、ℝ、ℂ —— 从两面镜子到自同构的汪洋 · 数学小主题读本 · 其八 · v1.0 | 格物致知 · JUST FOR FUN

版权所有©2026九章格数学 PhiloMath
北京九章格教育科技有限公司