☰
从Dedekind分割构造实数:定理1.19与最小上界性质解析
2026/10/31 19:47:31 网站建设 项目流程

翻到《数学分析原理》第一章最后那几页附录的人,多半是被同一件事绊住的:正文里定理 1.19 的证明短得反常,五行不到,一句“由最小上界性质”就交代完了,可真正让人心里发虚的地方在后面——那个被反复引用的最小上界性质,凭什么成立?定理 1.19 讲的是下确界的存在性:非空且有下界的实数集一定存在最大下界。这条结论本身不难,难的是它脚下的地基。第一章附录干的正是浇筑地基这件事:用有理数的 Dedekind 分割把实数系从零造出来,逐条验证域公理、序公理与完备性,最后让正文那句“由最小上界性质”变成可以兑现的承诺。这篇东西写给两类人:一类是读到这里觉得证明“跳步”的初学者,另一类是想把构造性证明的手艺学到手、以后自己造代数结构的人。我会把附录的每一步为什么这么设计、参数怎么来的、哪些地方最容易读漏,拆开讲一遍,中间还会用代码把几个关键等式真算一遍。

1. 定理1.19到底在证明什么

1.1 三组公理背后那张未付的账单

第一章正文的推进方式很像工程上的“接口先行”:先把实数系当成一个已经存在的东西,规定它必须满足三组性质——域公理(加减乘除规矩)、序公理(大小关系与运算相容)、完备性(最小上界性质)。三组性质一旦摆好,后面极限、连续、微分的所有定理都可以只依赖这三组性质推出来,不必关心实数“长什么样”。这套做法省力到极点,也是整本教材能在两百多页里讲完微积分骨架的原因。

问题在于,公理化路线只解决“如果存在这样的东西,它有什么性质”,不解决“这样的东西到底存不存在”。万一三组公理互相矛盾,整套理论就是空中楼阁;万一最小上界性质与其他公理不相容,那所有依赖它的证明都白写。附录的任务就是把这个存在性补上:造一个具体的数学模型,逐条核对三组公理,让前面所有推导获得合法性。这不是形式主义的仪式,而是整套分析学的地基验收。

1.2 定理陈述里三个容易被跳过的前提

定理 1.19 的陈述短,但每个限定词都在干活。“非空”这一条不能省:空集的下界集是全体实数,没有最大下界;反过来,如果集合非空但没下界,下界集为空,也谈不上最大元。“有下界”是第二个闸门,保证下界集合非空,这样才有资格去谈它的上确界。“实数集”这个限定同样关键,换成有理数集结论立刻失效——比如所有平方小于 2 的正有理数构成的有理数子集,下界集里没有最大元,因为这个“最大下界”本该是根号 2,而有理数里没有它。

我见过不少人第一次读这条定理时觉得“这不废话吗”,原因是脑子里已经默认了数轴是一条连续无孔不入的直线,最大下界肉眼可见。但数轴的连续性恰恰是待证的东西。定理 1.19 之所以值得单独立项,是因为它把“完备性”从一个关于上界的陈述翻译成了关于下界的陈述,从此以后处理下确界不必每次重走一遍反证,这在后面讨论区间套、单调有界、聚点的时候反复被调用。

1.3 正文与附录的分工关系

把定理 1.19 的正文证明抄出来看,逻辑链只有三步:取所有下界构成的集合,它对最小上界性质适用,取其上确界,验证它就是下确界。三步都用到了最小上界性质,而最小上界性质在正文里是作为公理(定义 1.18)直接接受的。于是整条依赖链变成:定理 1.19 依赖最小上界性质,最小上界性质由附录的构造保证,附录的构造只依赖有理数的性质。

这条链子最脆弱的一环在中间。所以读附录时不要把它当成“补充材料”,它其实是定理 1.19 的真正证明主体,正文那五行只是把结论从“上”翻到“下”的一次改写。搞清楚这个分工,你就不会在附录里迷失——你不需要背下每个验证细节,你只需要确认:构造出来的对象确实满足最小上界性质,其余部分都是机械核对。

2. 分割:把实数定义成一个有理数集合

2.1 为什么选择 Dedekind 分割这条路线

造实数有三条常见路线:Dedekind 分割、Cantor 的柯西序列完备化、以及十进制(或任意进制)展开。三条都能成,但代价不同。柯西序列路线的麻烦在于它天生需要“距离”和“极限”这两个概念,而这两个概念本身要用实数来定义,稍不留神就循环论证;要绕开循环,得先建立有理数上的度量空间理论,引入等价类、完备化的一般框架,抽象层级一下拔高很多。十进制展开路线直观,但进位带来的“0.999…=1”这类边界情形会让加法乘法的定义变得极其啰嗦。

Dedekind 分割的好处是只用有理数的序结构,一个工具都不用额外引入。有理数的大小关系是小学就有的东西,把它当唯一原料,造出来的对象天然带序,完备性也几乎是“白送”的。代价是乘法的定义要绕一个大弯,域公理的验证工作量惊人——附录那几页的密度,本质上是在为“原料最省”这个优点付账。我个人认为这笔账划算:对初学分析的人来说,逻辑依赖越少,信任成本越低。

2.2 三个条件,每一条都在防一个具体的坑

分割的定义是:有理数集的一个子集 α,满足三条——非空且不等于全体有理数;向下封闭(p 属于 α、q 小于 p,则 q 也属于 α);没有最大元(p 属于 α,则存在更大的 r 属于 α)。

第二条最符合直觉:分割就是一条“从负无穷往上长”的集合。第三条看起来最像装饰,其实最要紧。设想取消第三条,允许集合有最大元,那么有理数 q 会对应两个候选分割:小于 q 的全体有理数,以及小于等于 q 的全体有理数。两个都“代表”q,实数系里就出现了重复元素,等号的意义立刻模糊。更要命的是,取消第三条之后,零元 0* = {p : p < 0} 会变成 {p : p ≤ 0},它有最大元 0,于是加法的逆元构造会失败——因为任何“负元素”加上它都会得到一个含 0 甚至含正数的集合,无法落回 0* 里面。第三条正是保证逆元存在的技术前提。

第二条和第三条合起来产生一个非常有用的推论:如果 p 不在 α 里、q 在 α 里,那么必有 q < p。这个推论在附录里被反复用来做“跳跃点”论证,是后面所有存在性证明的发动机。第一条里的“不等于全体”同样不可省:如果允许 α 等于全体有理数,它就没有上界,最小上界性质会在这里出现例外,整个序结构被撑破。

2.3 序关系几乎是白送的

定义 α < β 当且仅当 α 是 β 的真子集。这个定义美在它自动继承了集合包含关系的所有好性质:传递性、三歧性(任意两个分割,要么相等,要么一个真包含另一个)都直接从集合论搬运过来,不需要额外证明。三歧性的验证要点是:如果 α 不是 β 的子集,就存在 p 属于 α 而不属于 β,由 2.2 里的推论可知 β 的每个元素都小于 p,于是 β 的每个元素都属于 α(向下封闭),β 是 α 的真子集。

这一步是整个构造里性价比最高的地方:用“包含”定义“小于”,序公理几乎不用额外工作量。对比柯西序列路线,那里要定义等价类之间的大小关系还得先证明它与代表元选取无关,麻烦得多。这也是我建议初学者在这里停一下、把三歧性自己证一遍的原因——五分钟的活儿,能把“分割”这个抽象对象握在手里。

3. 加法与负元:域公理的第一块硬骨头

3.1 加法定义与封闭性检查

定义 α + β 为所有 p + q 的集合,其中 p 来自 α、q 来自 β。这个定义的动机很直白:实数相加,就是让两个“向上无穷延伸的集合”逐点相加。但要成为合法的分割,四条性质得逐条核对。

向下封闭:设 s < p + q,令 p' = p - (p + q - s),则 p' < p,所以 p' 属于 α,而 s = p' + q,落进集合里。没有最大元:取 p 在 α 里、r 更大的也在 α 里,q' 在 β 里更大,则 p + r + q' 严格大于 p + q 且仍在集合里。非空显然。最需要动脑的是“不等于全体有理数”:取 p₁ 不属于 α、q₁ 不属于 β,那么 p₁ + q₁ 一定不在 α + β 里——假设 p + q = p₁ + q₁ 且 p < p₁、q < q₁,两个严格不等式相加就矛盾了。这一步用了 2.2 的推论,把“不在集合里”翻译成“严格大于集合里的元素”,是整段证明的关键转换。

这几条验证看起来琐碎,但它们构成一个固定套路:封闭性靠“调整一个变量”,无最大元靠“两个变量都往上推”,有界性靠“取两个外部点”。把这套模板记下来,后面乘法的验证可以照抄大半。

3.2 负元素的定义为什么长那样

零元定为 0* = {p : p < 0},这符合直觉:负有理数全体。负元素的定义是 α* = {p : 存在 r > 0,使得 -p - r 不属于 α}。这个式子第一次看几乎无法理解,因为它绕了两道弯:既取了相反数,又加了一个正的余量,还用了“不属于”。

要理解它,得先想清楚目标:我们要的是一个集合 α*,使得 α + α* 恰好等于全体负有理数,不多不少。取 p 在 α* 里,意味着负的 p 稍稍往右挪一点(挪 r)就跳出了 α。换句话说,p 比 α 的“上边缘”的相反数还要小一些。这个“小一些”正是第三条(无最大元)逼出来的:如果没有这个余量,α* 可能刚好贴着边缘,导致 α + α* 里混进 0 甚至正数。

我的建议是:读这一段不要追求“一眼看懂”,而是把定义抄在纸上,然后拿具体数字代进去算一遍。抽象定义的价值只有在算过之后才显现。

3.3 一个可以完全手算的验证:α + α* = 0*

先做包含方向 α + α* ⊆ 0*。设 p 在 α 里、q 在 α* 里。按定义存在 r > 0 使 -q - r 不属于 α。由 2.2 的推论(p 在 α 里、-q-r 不在 α 里,故 p < -q-r),立刻得到 p + q < -r < 0,于是 p + q 在 0* 里。两行搞定,干净得让人意外。

反方向 0* ⊆ α + α* 才是真正的技术活。设 s < 0,要找到 p 在 α 里、q 在 α* 里,使 p + q = s。这里有一个参数选择问题:q 由 s - p 决定,而 q 属于 α* 要求存在 r > 0 使 -q - r 不在 α 里,代入 q = s - p 得到 p - s - r 不在 α 里。要让“p 在 α 里”和“p - s - r 不在 α 里”同时成立,最省事的办法是让后者等于 p 加上一个正数,也就是令 -s - r = r,解得 r = -s/2。

这个“一半”不是猜的,是解方程解出来的。取定 δ = -s/2 > 0 之后,剩下的事就是找一个跳跃点:存在 p 在 α 里而 p + δ 不在 α 里。这样的 p 一定存在,因为 α 非空又有上界,从 α 里取一点、从 α 外取一点,以 δ 为步长往上走,总会跨出去,取跨出去之前的最后一步即可。有理数的阿基米德性质保证了步进有限次就能越界,不需要任何实数概念。

代入具体数字体验一下。取 α 为“平方小于 2 或者为负”的有理数全体(这是根号 2 的分割表示),取 s = -1/4,则 δ = 1/8。从 1 开始往上走:1 + 1/8 = 9/8,平方 1.265625 小于 2,仍在 α 里;9/8 + 1/8 = 5/4,平方 1.5625,还在;5/4 + 1/8 = 11/8,平方 1.890625,还在;11/8 + 1/8 = 3/2,平方 2.25,出去了。于是 p = 11/8,q = s - p = -1/4 - 11/8 = -13/8。检验:-q - δ = 13/8 - 1/8 = 3/2,确实不在 α 里,所以 q 属于 α*;而 p + q = 11/8 - 13/8 = -2/8 = -1/4,正好是 s。

注意:这个例子里 δ 必须正好取 -s/2,取别的值(比如 δ = -s)会导致方程配不平,验证时会出现“p 在 α 里但 p + δ 也在 α 里”的死循环。参数不是凑出来的,是解出来的。

3.4 加法群公理逐条过

交换律、结合律直接从有理数搬运,因为集合层面的加法定义就是逐点相加,有理数加法满足什么,分割加法就满足什么。零元验证:α + 0* = α,两个方向都是“调整一下代表元”的机械操作。逆元刚刚证完。四条凑齐,加法群成立。

这里有个容易被忽略的细节:证明 α + 0* = α 时,包含方向 α + 0* ⊆ α 用的是向下封闭(p + q < p,所以落在 α 里),反方向 α ⊆ α + 0* 用的是无最大元(取 r 在 α 里比 p 大,让 r 加上一个负的余量凑回 p)。两条性质各管一个方向,缺一不可。这就是为什么我一直强调三条定义条件不能删——它们不是审美要求,是工作部件。

4. 乘法:绕开减法的技术妥协

4.1 为什么不能照抄加法的写法

最自然的乘法定义是 αβ = {pq : p 在 α 里,q 在 β 里}。这个定义对正分割能用,对负分割立刻崩掉:负负得正,两个“从负无穷长上来”的集合逐点相乘,上界行为完全失控,得到的集合既可能无上界,也可能不满足向下封闭。举个具体的:α = β = 0*(全体负有理数),逐点相乘得到全体正有理数,这个集合根本不向下封闭,p 在里面而 q < p 可能不在里面。

更根本的原因是:分割的定义天生偏心,它把“上边缘”编码进集合,但“下边缘”不存在(集合从负无穷延伸)。加法对这种偏心免疫,因为平移不改变上边缘的形态;乘法不行,它会把上边缘翻到下面去。所以乘法必须绕道,而绕道要用的工具是符号规则——而符号本身要靠序来定义,序又刚刚由包含关系给出,环环相扣,一步都不能提前。

4.2 正分割先行,再用符号规则补全

附录的做法是分层:先只对正分割(即含有正有理数的分割)定义乘法,αβ = {pq : p 在 α 里且 p > 0,q 在 β 里且 q > 0} 再并上全体非正有理数;然后把一般情形按符号分成四种,分别规定结果等于哪个正分割的乘积或其相反数。

正分割情形下,封闭性验证的思路与加法类似但更细:向下封闭要分“s 是正数”和“s 非正”两种情况,前者靠调整 p、q 的取值,后者直接由定义里的“并上非正有理数”兜住。有界性靠“取两个外部正点相乘”得到。这些验证没有新思想,纯粹是耐力活。

值得留意的是这里的一个设计取舍:为什么不干脆对所有分割都用“绝对值化”处理,先取正部再补符号?原因是“绝对值”这个概念本身要靠序和减法定义,而减法又要靠加法逆元定义,逻辑上虽然可行,但对初学者来说层层套娃,反而更难跟踪。分成四种符号情况虽然啰嗦,但每一步都停在最原始的层面,出错容易定位。

4.3 逆元构造与跳跃点的第二次出场

乘法逆元是整章最费劲的地方。对正分割 α,要找 β 使 αβ = 1*(1* 定义为小于 1 的全体有理数)。想法是“倒数翻转”:β 由那些 p 组成,满足存在 α 之外的正有理数 q,使 pq < 1。直观解释是:q 是 α 的上边缘之外的点,1/q 就落在 α 的上边缘之下,p 只要比这个倒数小就行。

验证 αβ = 1* 的两个方向都要用到跳跃点论证,形式和 3.3 里几乎一样:给定一个目标有理数,用固定步长找到一个“恰好跨过 α 边缘”的位置,再用这个位置配出需要的 q。这一步做完,域公理就齐了。我个人的体验是:附录里这一段的密度最高,第一次读完全可以先接受结论,把细节留到第二遍——但第二遍一定要自己动手把跳跃点那步补全,因为它是整套构造的通用工具,后面证最小上

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询