乍看之下,自然数太熟悉了,好像根本不需要定义。我们从小数到大,仿佛
已经把内容讲完了。
但严格的构造观点会问:到底什么结构使自然数成为自然数? 答案不在于符号本身,而在于一个起点、一个后继运算,以及一条归纳原理。
为什么要有形式定义
如果我们只是写下 ,其实并没有真正解释:
- 省略号到底代表什么;
- 为什么这个过程会一直继续;
- 为什么归纳法有效。
Peano 观点就是直接把这些核心性质说出来。它不依赖直觉,而是说明:凡是 自然数模型,都必须满足若干条基本公理。
一个模型包含什么
定义
自然数的模型
设 是一个集合,并且有:
- 一个指定元素 ;
- 一个函数 ,称为 后继映射。
如果三元组 满足以下 Peano 公理,就称为 自然数模型:
- 是单射:若 ,则 。
- 没有元素会等于自己的后继:对每个 ,都有 。
- 零不是任何元素的后继:不存在 使 。
- 归纳成立:若某个性质 对 成立,而且每当 成立时, 也成立,那么 对所有 都成立。
核心思想是:自然数由它们之间的结构关系刻画,而不是由写法刻画。
每条公理各自做什么
每条公理都排除一种病态结构。
- 单射性表示两个不同的数不可能在做一步后继以后突然合并。
- 排除固定点。
- 表示零是起点,而不是后来又绕回去的位置。
- 归纳排除额外断开的部分,保证所有元素都位于从 出发生成的链上。
这几条合起来,就强迫出我们熟悉的“每次前进一步”的计数图像。
用后继读出各个数字
例题
平常的数字其实由 和 生成
一旦 与后继映射固定,接下来的数就可以理解为
所以记号 只是“从 开始连续做两次后继所得到的对象”的简写。 记号固然方便,但结构才是根本。
因此,为了让定义保持可见、不被熟悉记号遮住,我们会重新写回后继形式。
归纳不是额外技巧
很多学生先把归纳法当成一种证明工具,之后才觉得自然数已经理解完毕。 严格的构造观点正好把这个顺序倒过来。
在 Peano 观点里,归纳原理本身就是自然数定义的一部分。换句话说, 归纳不只是用来证明 上命题的技巧;它本身就是使 成为自然数的 结构事实之一。
定理
归纳真正给你什么
要证明命题 对所有 成立,只需要证明:
- 成立;
- 对每个 ,若 成立,则 成立。
一旦这两步完成,归纳公理就保证 对每个自然数 都成立。
一个失败的例子
例题
为什么有限循环不是自然数模型
考虑集合 ,并定义后继为
这个结构不满足 Peano 公理。
首先,因为 ,所以 竟然是某个元素的后继,第三条公理失败。 这已经足以排除它作为自然数模型。这个例子不应读成“归纳公理失败”:从 反复取后继仍会到达整个有限集合。真正的问题是后继映射绕回去,并让 成为了某个元素的后继。
因此,虽然符号看起来熟悉,这个结构也不是自然数模型。
这个例子很重要,因为它说明 Peano 公理不是装饰,而是用来排除“表面像数数, 实际上并不是”的结构。
常见错误
常见错误
不要把记号和结构角色混为一谈
Peano 观点并不是说写出来的符号 天生带有某种神秘意义,而是说 所代表的对象是 的第二个后继。
常见错误
归纳不是可有可无的附加品
如果没有归纳公理,一个结构即使包含从 开始的熟悉后继链,仍然可能有额外 断开的部分,甚至出现循环。归纳原理正是用来排除这些情况的。
快问快答
思考检查
为什么公理 很重要?
想一想如果 可以是某个数的后继,会对整体结构造成什么影响。
解答 · 答案
如果 可以是某个后继,那么数数链就可能回头成环,而不再有真正的起点。 这样就不再符合我们对自然数“从起点一直向前”的理解。
思考检查
后继映射是单射,到底防止了什么事情发生?
请用“两个不同数想共享同一个下一步”来回答。
解答 · 答案
它防止两个不同元素拥有同一个后继。若没有单射性,两个不同的数可能在下一步 突然合并,这会破坏通常的线性计数结构。
思考检查
当你证明了基本情形和后继步骤之后,可以精确推出什么?
答案要把结论范围说清楚。
解答 · 答案
你可以推出该命题对 中的每一个元素都成立,而不只是对前几个例子成立。
后继结构的两种失败方式
必须逐条检查四条 Peano 公理:(1) 后继单射;(2) ;(3) 不是任何后继;(4) 归纳原理。
思考检查
令 ,并令 、、。四条 Peano 公理中哪些失败?
检查单射性、固定点、 的像,以及所有包含 且在 下封闭的子集。
解答 · 引导解答
公理 (1) 失败,因为 而 。公理 (2) 成立:、 且 。公理 (3) 成立,因为 的像是 ,不包含 。公理 (4) 也成立:任何包含 且在 下封闭的子集,必须先包含 ,再包含 ,于是包含整个 ;循环只会返回已经包含的元素。
思考检查
令 ,在 上令 ,并令 、、。四条 Peano 公理中哪些失败?
同时检查三个循环元素和自然数链。
解答 · 引导解答
公理 (1) 成立:自然数后继是单射,三循环的像彼此不同且与自然数后继的像不相交。公理 (2) 成立,因为自然数链不断前进,而三循环没有固定点。公理 (3) 成立,因为没有后继等于 。公理 (4) 失败: 是 的真子集,包含 且在 下封闭,却遗漏了 。
下面要用的递归定义
在证明算术恒等式以前,先写出使计算有意义的递归定义。对 ,定义
以及
后继出现在第二个输入上,所以除非已经证明左侧引理,之后的归纳都要遵守这个方向。
加法规则 与 不只是记号;它们指定了怎样把一个后继输入化为较早的输入。乘法规则 与 也同样把乘法化为重复加法。于是 会逐步减到 , 会逐步变成 。这些规则尚未证明交换律;交换律和分配律必须在此基础上另行归纳证明。
第一个递归恒等式
加法的递归定义把后继写在第二个输入上。若要把后继放在左边,不能在还没有 证明交换律以前直接把两个输入交换;我们要先证明一个独立的恒等式。
定理
左边的后继可以穿过加法
对所有 ,都有
证明
固定 ,令 表示 。
基本情形。 当 时,加法定义给出
而右边也满足
所以 成立。
归纳步骤。 假设 成立,即 。于是
因此 推出 。归纳原理便给出所有 的结论。
这个证明显示了一个重要习惯:只有先把表达式改写成归纳假设认识的形状,才能 使用归纳假设。归纳假设不是把任意表达式都替换成后继形式的许可。
例题
证明 ,而不是把它当作定义
加法定义给出 ,这是基本情形。假设 ,则
所以归纳法证明 对每个自然数 成立。这是递归计算最后在左边遇到 零时所需要的恒等式。
常见错误
归纳假设中的输入是固定的
在上面的证明中,归纳假设是当前 的 。它并没有直接说 带有 的命题已经成立;那正是归纳步骤必须证明的内容。
思考检查
为什么证明 时对 归纳,而不是对 归纳?
把归纳变量的选择和递归定义的方向联系起来。
解答 · 答案
递归定义会把第二个输入降低: 被改写成 的表达式。对 归纳 正好沿着定义提供信息的方向进行。若对 归纳,还需要先有另一条引理,才能 使用这条递归规则。
定理
每个非零自然数都有唯一的前驱
对每个 ,若 ,则存在唯一的 使 。
前驱命题为什么来自 Peano 归纳
令 表示:要么 ,要么存在唯一的 使 。基本情形直接成立, 因为 。在步骤中, 本身就是 的后继,所以存在性立即成立。若 ,由后继的单射性可得 ,因此唯一性成立。于是后继结构为每个 非零自然数提供恰好一个前一个元素。
后继路径与归纳范围
归纳公理讨论模型中的每个元素,但证明机制沿着一条明确路径运行:从 出发,连续应用后继映射。基本情形把命题放在路径起点;归纳步骤把它从一个点传到下一个点;归纳公理保证没有相关元素留在这条路径之外。因此只验证 、、 不是归纳证明,而对任意 证明 蕴含 才是。
后继映射和归纳原理也承担不同工作。前者告诉我们如何向前走一步,后者说明一个在这一步下保持、并在起点成立的命题能够到达所有自然数。一个结构可以看起来有计数式的后继映射,却因出现循环或额外部分而不满足公理,所以必须先检查模型条件。
接受归纳证明前的检查
先写清楚命题的定义域;然后逐字写出基本情形;再以任意变量陈述归纳假设;最后只用允许的递归规则和已证恒等式推出后继情形。把几个数字算对、把目标本身当成假设,或只对一个具体数字证明步骤,都不能得到全称结论。这个习惯以后会迁移到整数代表元和有理数代表元:要明确说出不变量,并验证换表示后它仍保持。
可选模型:von Neumann 自然数
Peano 公理说明自然数必须有什么行为,但它不强迫我们采用某一种内部表示。 一个标准的集合论模型是 von Neumann 构造:
一般而言,
所以每个自然数都是所有较早自然数所组成的集合。在这个模型里,属于关系 反映大小次序: 正好表示 小于 。
例题
为什么 变成
由 开始,后继规则给出
再得到
这不是说日常记号 改变了意思,而是说我们建立了一个具体的集合论代表, 它满足同样的后继模式。
前后衔接
这一节是数系构造章节的起点。接下来会衔接到 3.2 归纳法与递归算术, 而它所使用的语言则可追溯到 2.2 函数与关系。