购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

3.3 什么是数

终于万事俱备,可以来严格地定义我们再熟悉不过的概念——自然数了!我们曾说过想把自然数定义为(动机3.24)

虽说集合论的公理保证了上述构造是合法的,但凭什么我们承认它代表了全体自然数呢?不知你是否还记得,我们说过数被认为是这样的存在,其可以被用于计数,彼此间可以相加、相乘。反之,如此这般的存在便被认为是数(洞察2.9)。于是,我们必须说明公式(3.4)定义出的东西满足这些性质。当然,这第一步自然是将这些性质先更严格地表述出来。

我们先来看计数。它的意思自然是,如果 n 是一个数,那么存在另一个数,为 n 的“下一个”,或曰“后继”。我们要能一个一个数下去,不能数着数着兜回来,所以当前数到的最后一个数的后继必须要是一个新的数。另外,还得有个起头的数让我们开始数。且身为“头”,它不是任何数的后继。把这些想法总结一下,我们便得到了下述若干(非形式的)性质

动机3.37 我们想把“数”定义为满足如下性质的对象:

1.存在一个数,记为0;

2.任何数都存在一个后继,其亦为一个数;

3.0不是任何数的后继;

4.如果两个数的后继相同,那么这两个数相同。

稍加思考不难发现,直观说来,上述四条性质限定了数一定是按照如下方式生成的东西:

0→ x →2→♣…

这里我们从0开始,不断地取后继(用→标示),并为每一个数的后继选择了一个记号(不难看出,这些记号是我随意选取的)。

等下!真的如此吗?要知道,动机3.37中的四条规定,并没有排除在0之外还有另一个起头的数!我们只规定了 存在 一个起头的数并记为0,没有否定存在其他起头的数呀!于是,这样说来,数可能是长下面这个样子:

0→ x →2→♣…

苹果→梨子→太阳…

这就不妙了。我们关于数数的概念中显然只有一个“链条”。于是,我们必须再添加一点性质,缩小动机3.37所能框定概念的边界。

概念3.38 罗宾逊算术公理 Robinson Arithmetic Axioms)我们称一个对象为 (number),若其满足动机3.37中性质之余,还满足如下性质:

· 任何非0数都是另一个数的后继。

这下就没问题了!除了0之外,不可能再有起头的数了,否则我们就有了一个非零但不是另一个数后继的数。不过事情还没完,罗宾逊算术公理仅仅刻画了数的存在,没有提供任何工具让我们能对数进行推理。若我现在想说:“任何除了0和0的后继的数,都是另一个数的后继的后继” 。显然它是成立的,但要怎么证明呢?不难发现,我们不得不诉诸数学归纳法:我们论证一个命题对0成立,且对一个数成立能推出对其后继成立,便说它对所有数都成立 。可为什么能使用数学归纳法呢?问题2.17我们还没回答呢呀!可见罗宾逊公理尚不足以刻画我们对数的本能直觉,咱们需要再补充一条公理,以允许这种对无穷朴素的归纳能力。

概念3.39 皮亚诺算术公理 Peano Arithmetic Axioms)我们称一个对象为 自然数 (natural number),若其满足动机3.37中性质之余,还满足如下 归纳公理 (Axiom of Induction):

· 若0满足某性质,且若一个自然数满足该性质能推出它的后继亦然,那么所有自然数都满足该性质。

你可能会奇怪,罗宾逊公理中的那条咋不要了?很简单,因为它可以基于归纳公理推导出来,是一个定理了!

定理3.40 在皮亚诺算术公理系统中,任何一个自然数要么是0,要么是另一个自然数的后继。

证明 显然命题对0成立。假设命题对 n 成立,因为其后继天然是 n 的后继,故命题对 n 的后继成立。由归纳公理可知,该命题对一切自然数成立。                    □

我们还可以从直观上感受一下归纳公理是如何起到去除其他链条的功能的。其前提是在说若一个命题对 0 开始的链条 成立,结论是说这个命题对 所有 自然数成立,这无非就是在说从0开始的那个链条 就是 所有自然数全部了,否则我们没理由说该命题对另一个毫不相关的链条中的“自然数”成立呀,不是吗?

现在我们可以来回答本节开头的问题了!公式(3.4)是一个我们在集合论中构造的对象,要回答它是否能够代表自然数,我们只要验证它是否满足皮亚诺的五条公理即可!为了说话方便,先做一个定义:

定义3.41 x 是一个集合,定义其 后继 (successor)为集合

x ∪{ x }

并记为 S x )。

于是,说一个集合是“归纳的”就是在说其包含空集,且其任意元素的后继也是其元素(定义3.23)。下面让我们来逐一检验(3.4)中定义的集合 N 是否满足全部皮亚诺算术公理。

第一条:存在一个自然数。 N 为空集吗?当然不是,因为按定义,Ø是 N 的元素,所以自然数存在。自然地,遵照皮亚诺公理,我们将这个空集记为0:

0:=Ø

第二条:任何自然数都存在一个后继,其亦为一个自然数。对于 N 中任意元素 x ,其存在后继吗?当然,在集合论中,“后继”由定义3.41给出,并由公理保证了是一个集合。那后继 S x )依旧属于 N 吗?当然,因为 N 是所有 ω 中归纳集的交集,而归纳集的定义正是在说任何元素的后继仍然包含于其中,它们的交显然 还是一个归纳集!

这里插一句嘴,至今我们都没看到自然数1,2,3,4,5的影子。其实,它们只不过是一些记号改写。

定义3.42 定义记号

· 0:=Ø;

· 1:= S (0);

· 2:= S (1);

现在能看到自然数了吧!不难看出,我们本质上就是在做如下定义:

· 定义0是第一个自然数;

· 定义1是0的下一个数;

· 定义2是1的下一个数;

如果把 S 展开,我们还能看到更深层的想法。我们有:

· 0:=Ø;

· 1:= S (0)=Ø∪{Ø}={Ø}={0};

· 2:= S (1)={Ø}∪{{Ø}}={Ø,{Ø}}={0,1};

· 3:= S (2)=…={Ø,{Ø},{Ø,{Ø}}}={0,1,2}

看出来了吗?正是利用 S x )= x ∪{ x }的定义,我们巧妙地实现了:

洞察3.43 直观上,一个自然数被定义为所有它前面的数。

第三条:0不是任何自然数的后继。是吗?假设不然,那么存在自然数 n N 满足 S n )=0,这也就是在说 n ∪{ n }=Ø。但是要知道,等号左边是一个包含元素 n 的集合,右边是不包含任何元素的集合,怎么可能相等呢!所以,0的确不是任何数的后继。

第四条:如果两个数的后继相同,那么这两个数相同。这一条就没那么显然了,我们一步步来。令 m,n N ,满足 S m )= S n ),这便是在说

m ∪{ m }= n ∪{ n }

这表明什么呢?先从左到右看,左边包含元素 m ,那么右边必然亦如此。而右边是两个集合的并,故 m 只要属于其中之一即可。故我们得到: m n 或者 m ∈{ n },而后者正是在说 m = n !于是从左到右我们得到 m n 或者 m = n 。同理,反过来我们得到 n m 或者 n = m 。我们想证明 n = m ,显然同样用反证法,假设不然,那么必然有 m n n m 。这看起来就不太对了!你中有我,我中有你,怎么可能呢?但要怎么证伪它呢?别忘了我们有一条基础公理3.7正是用来排除自指悖论的!考虑集合

I :={ m,n }

因为 n m n I ,所以 m I ≠Ø。同理, n I ≠Ø,这违反了基础公理,后者要求任意集合都存在元素与自身交集为空。故假设不成立,我们只能有 m = n

很好,还差最后一条皮亚诺公理!第五条:归纳公理。顺便说一句,直到这里我们都没有用到“ N 是所有归纳集的交”这个事实,任何归纳集都满足上述四条公理,也即任何归纳集都定义了动机3.37意义下的“数”,即那种可能有多个独立计数链条的数。

N 满足归纳公理的要求吗?为了验证这一点,第一步要做的便是将归纳公理的表述翻译成集合论中的语言。什么叫“某性质”?就是一个一元谓词!于是,在集合论中,归纳公理无非就是在说:

定理3.44 (归纳定理) ψ 为一个一元谓词,令

X :={ x N| ψ x )}

N 中使得 ψ 为真的元素全体构成的集合。若 X 是归纳的,那么 X = N

没错,皮亚诺所要求的归纳 公理 ,在集合论中是一条 定理 !正是在这个意义下,我们说集合论满足了皮亚诺归纳公理的要求。那么这个定理真的成立吗?我们来证明它,其几乎是显然的 [6] 。首先,由替换公理我们知道 X 的确是一个集合。因为 N 是所有归纳集的交集,故其是任意一个归纳集的子集。于是,若 X 是归纳的,我们便有 N⊂ X 。另一方面,由 X 的定义我们天然有 X ⊂N 。所以, X = N

至此,我们验证了皮亚诺要求的所有公理,成功在集合论中构造出了自然数!

定义3.45 我们称如下定义的集合 N 自然数 (natural number)集:

并称 N 中元素为自然数,其中 ω 是无穷公理3.2保证的集合,“归纳的”由定义3.23给出,交集符号由公式(3.2)定义。

事实上,如脚注22所说,皮亚诺算术其实是一个建立在(包含相等的)一阶逻辑之上的严格形式化的公理系统。于是,如图3.1,我们其实通过集合论为它找到了一个模型!

洞察3.46 作为一个公理系统,皮亚诺算术以集合论为其一个模型。后者本身亦是一个公理系统,我们关于集合的朴素直觉为其一个解释。在该解释下,集合被加以限制,诸多矛盾与悖论被拒之门外。同时,我们关于无穷计数的本能被建模以一个集合与其上天然成立的归纳定理。

图3.1公理化集合论 aUHzrD/ZUlIWbtPg6aX+PTW8BRRw0VZDwWQHsUfa8QwHn6lF9jcXPodAvksYPMSC

点击中间区域
呼出菜单
上一章
目录
下一章
×