引言:欠债的发明

公元七世纪,印度数学家婆罗摩笈多(Brahmagupta)写下了人类已知最早的负数运算规则:「财产减去财产得零,财产减去欠债是财产与欠债之和,欠债减去欠债是较大的欠债。」在《婆罗摩历算书》(628 年)里,他不再回避一个让希腊人退避三舍的问题——3 减 5 等于多少?

古希腊数学家不愿回答这个问题。在他们看来,数是有形的,是几何中的长度、面积、体积;一个比另一个大的数减一个小的数当然有意义,但反过来则没有几何含义——一段长 3 的线段如何减去一段长 5 的?这种「不可能」让希腊数学缺席了整数的扩张,欧洲一直要等到十六世纪意大利文艺复兴时期才真正接受负数。

这一章我们要追溯一条贯穿数系建造的主线:每一次数系的扩张,都是为了让某个曾经「无解」的运算变得可解。从自然数到整数,再到有理数,每一次都不是数学家凭空发明,而是被运算逼出来的必要扩张。

核心张力:封闭性

第一章我们见过自然数 \\mathbb{N}=\\{0,1,2,3,\\dots\\}。它对加法和乘法都是封闭的——任何两个自然数相加、相乘,结果都还是自然数。这看似平凡,却是数系第一个值得珍视的性质。

但减法立刻打破封闭性:5−3 = 2 在 ℕ 中有解,3−5 在 ℕ 中却找不到答案。这种「找不到答案」对实际生活毫无影响——古希腊人买卖牲畜、丈量土地,从未需要负数。但对数学家而言,这是一根深深的刺:减法作为加法的逆运算,理应处处可解,否则代数会处处出现「特殊情况」。

同样的故事会再次重演。我们将在整数中遇到除法的封闭性问题;在有理数中遇到极限的封闭性问题(第三章已讨论);在实数中遇到代数封闭性问题(第四章);最终在复数中找到(暂时的)休止符。「封闭性的追求」是数系扩张的根本动机——这是本章想说清的核心。

+ 减法 → ℤ + 除法 → ℚ + 极限 → ℝ 每一层包围圈都是上一层「不封闭」运算逼出来的

图 1:数系扩张的嵌套结构。每一次扩张都对应某种运算的封闭化。

等价类:把「差」变成对象

在 ℕ 中,「3−5」这个表达式是没有意义的。但「3 和 5 之间的关系」是有意义的——它代表了一种「亏欠」。要让这种关系变成真正的数学对象,我们需要用有序对把它编码:(3, 5) 代表「3 减 5」,(5, 3) 代表「5 减 3」。但这样会有大量冗余——(3, 5)(4, 6)(7, 9) 都代表同一个「差」。

解决办法是引入等价关系

(a, b) \\sim (c, d) \\iff a + d = b + c.

这个定义看似奇怪,但它恰是「a-b = c-d」的等价说法(只用 ℕ 里的加法表达,避免使用尚未定义的减法)。验证 ~ 是等价关系(自反、对称、传递)后,把 \\mathbb{N} \\times \\mathbb{N} 按 ~ 分成等价类,每一类里的有序对都代表同一个「差」。

定义:

\\mathbb{Z} = (\\mathbb{N} \\times \\mathbb{N}) / \\sim.

这就是整数的严格构造。对一个等价类,挑代表元 (a, 0)(如果 a \\geq b)或 (0, b-a)(否则),就回到了我们熟悉的「正整数 / 零 / 负整数」直观。

整数的运算

把整数定义为等价类后,加法和乘法可以这样定义:

[(a, b)] + [(c, d)] = [(a+c, b+d)],
[(a, b)] \\cdot [(c, d)] = [(ac+bd, ad+bc)].

第二条公式看起来突兀,其实就是 (a-b)(c-d) = ac+bd - (ad+bc) 的展开——只不过我们必须把它写成「加法 − 加法」形式才符合 ℕ 中的运算规则。

验证这两条定义不依赖代表元的选取(即「合理性」),是抽象代数的常规练习。完成验证后,\\mathbb{Z} 就成了一个交换环:加法封闭、有零元、有逆元,乘法封闭、有单位元、对加法分配。减法终于封闭了——任何两个整数相减都还是整数。

从「负数即欠债」这个直觉到「负数是某等价类」的形式构造,差距看似巨大。但这种构造方式是数学的标准操作:把一个未知对象用已知对象编码、用等价关系凝并冗余。整数、有理数、实数、商群、商环、商空间——全都遵循这一模式。

除法的下一道关

整数解决了减法,但除法的封闭性又站到了门口:6÷3 = 2 在 ℤ 中有解,5÷3 在 ℤ 中无解(不存在整数 x 使 3x = 5)。这又是一个「逆运算找不到答案」的境况。和前面整数的故事如出一辙——故事的解法也一样。

把「a/b」(b \\neq 0)当作一个有序对 (a, b),并且接受 (2, 4)(1, 2)(5, 10) 都代表同一件事——它们都是「一半」。形式化为等价关系:

(a, b) \\sim (c, d) \\iff ad = bc, \\quad b, d \\neq 0.

定义

\\mathbb{Q} = (\\mathbb{Z} \\times (\\mathbb{Z}\\setminus\\{0\\})) / \\sim.

这就是有理数。每个等价类挑「最简分数」做代表元(互素的 (p, q)q > 0),就和我们日常写 p/q 完全对齐。

加法和乘法的定义来自小学知识:

\\frac{a}{b} + \\frac{c}{d} = \\frac{ad+bc}{bd}, \\qquad \\frac{a}{b} \\cdot \\frac{c}{d} = \\frac{ac}{bd}.

关键是要验证这些运算与代表元无关——这又是「构造合理性」的常规练习。完成后,\\mathbb{Q} 成为一个域(field):除了 0 之外的任何元素都有乘法逆。除法封闭了

有理数的稠密性

整数在数轴上是离散的——任何两个相邻整数之间什么都没有。有理数则完全不同:

定理(稠密性)。

对任意有理数

p < q

,存在有理数

r

使

p < r < q

证明只需取算术平均 r = (p+q)/2。这个看起来朴素的定理却有一个引人深思的推论:任意两个有理数之间存在无穷多个有理数

把有理数标在数轴上,它们「到处都是」——这种直觉催生了一个错觉:有理数充满了数轴。但下一节我们会看到,这是错的。

整数 1/1 1/2 3/2 越细化,有理数越密集——但仍有「漏洞」(√2、π…)藏在缝隙里

图 2:有理数在数轴上的稠密分布——但稠密 ≠ 完备。

有序域的结构

\\mathbb{Q} 不仅是域,还配着一个序——「\\leq」。这一序与运算兼容:

  • 加法兼容性

    a ≤ b ⟹ a+c ≤ b+c

  • 乘法兼容性

    a ≤ b, c ≥ 0 ⟹ ac ≤ bc

这种「域 + 兼容序」的结构叫有序域。它把代数结构和顺序结构绑在一起,让我们既能做四则运算,又能比较大小。\\mathbb{Q} 是最小的有序域——任何其他有序域都包含 \\mathbb{Q} 作为子域。

\\mathbb{Q} 不是「最大」的——它没有完备性。这正是下一章实数登场的伏笔。

负数的接受史

形式化的整数构造看起来朴素,但它经历了漫长的历史阻力。十六世纪意大利数学家 Cardano 在求解三次方程时不得不引入负数(甚至不可避免地引入复数),但仍被同代人指责。Pascal 在 17 世纪声称「0 减 4 是无意义的」。直到 18 世纪欧拉的工作之后,负数才在主流数学中获得正式地位。

这段历史告诉我们一件重要的事:数学概念的「合法性」不是一开始就显然的。希腊人有几何的辉煌却没有代数的负数;婆罗摩笈多有负数却没有现代意义上的代数结构;十九世纪的 Hamilton 和 Dedekind 才真正用「等价类」这种现代手法重新构造了整数和有理数。每一步严格化都不是历史的真实顺序,而是逻辑上的回顾整理。

整数的算术结构

除了运算封闭,整数还有一系列丰富的算术结构,奠定了数论的基石:

  • 素分解唯一性(算术基本定理)

    :每个大于 1 的整数都能唯一地写成素数乘积。

  • 带余除法

    :对

    a, b ∈ ℤ

    b > 0

    ,存在唯一

    q, r

    使

    a = bq + r

    0 ≤ r < b

  • 欧几里得算法

    :通过反复带余除法求最大公约数

    gcd(a,b)

    。这是数学史上最古老、流传最久的算法之一(约公元前 300 年)。

  • 同余

    a ≡ b (mod n)

    把整数按

    n

    取余分类,得到环

    ℤ/nℤ

    ,这是模运算的舞台。

这些结构让 \\mathbb{Z} 成为一个欧几里得整环,即除了运算封闭外,还有一种「带余除法+大小度量」结构。后来抽象代数从中抽出「主理想整环 → 唯一分解整环 → 整环」的层级,每一层削减一些结构,对应一类抽象的代数对象。

有理数与十进制

有理数有一个等价的、可计算的判定:一个实数是有理数当且仅当它的十进制展开有限或最终循环。例如 1/3 = 0.\\overline{3}1/7 = 0.\\overline{142857}

这个判定的证明是带余除法的直接应用:把 p/q 做长除法,余数只能取 0, 1, \\dots, q-1q 种取值。除最多 q 步后,余数必然重复,于是商进入循环。

反过来,无限不循环小数(如 \\sqrt{2}, \\pi, e)必然不是有理数。这个结论会在第三章实数构造中得到严格证明——并通过它发现 \\mathbb{Q} 在数轴上虽然稠密,却充满「裂缝」。

结语:建造的纪律

整数和有理数的构造表面上是日常算术,背后却展示了数学最重要的一条建造纪律:当某个运算在当前结构里不封闭时,把缺失的对象用已有材料编码进来。整数 = ℕ×ℕ 的等价类;有理数 = ℤ×(ℤ\\{0}) 的等价类。同样的模式还会出现在多项式环的「分式域」(构造 K(x))、群的「商群」、模的「张量积」、范畴的「极限」中。这种「先编码再凝并」的建造方式是数学的母语。

更深一层地,这一章揭示了「数」并不是一开始就有的——它是一段建造历程,每一步都对应一个具体的运算诉求。从皮亚诺到柯尔莫哥洛夫的所有数学家,都在用同一种纪律重塑对「数」的理解:数是一个等价类、一个商集、一个抽象代数对象。

与下章纽带

有理数在数轴上稠密,看起来无所不在。但用这套数能否「描述对角线」?设单位正方形的对角线长度为 \\ell,由勾股定理 \\ell^2 = 2。但没有任何有理数的平方等于 2——这是毕达哥拉斯学派最痛的发现。第三章我们将看到这一发现如何引出实数:把「裂缝」用极限填上,\\mathbb{Q} 完备化为 \\mathbb{R}。第三章的钥匙叫「连续性」;本章的钥匙叫「封闭性」。两者一同构筑了实数的合法地位。

系列文章:第一章 自然数 · 第三章 实数 · 第十七章 停机问题 · 第二十七章 哥德尔不完备性 · 第三十七章 群