数到无穷大之后–无穷序数简介

本文的标题叫“数到无穷大之后”,这里的“数”就是数(第三声)数的意思。数数大家都会数,但是今天我带大家看看数学家是如何开脑洞,数数数到无穷大之后还能继续数。其中的主要概念叫“序数”(ordinal number)。相关的一个概念叫“基数”(cardinal number)。

英语里有本身就有基数词和序数词, 基数词就是one, two, three……,序数词就是first, second, third等等。在中国人看来这很多余,但是我们从中学到了基数词和序数词使用的场合,老师会说:基数词用于表示数量,序数词用于表示顺序的场合。

而对应的,集合论里有一套“无穷基数”理论和”无穷序数”理论,都是康托发明的。无穷基数理论是衡量无穷集合大小的一套理论。基本理念就是,两个集合如果其中元素可以建立一一对应或叫双射,则认为这两个集合大小相等。根据这个理念,康托得到两个基本结论就是自然数集合是最小的无穷基数,也被称为可数集。而实数集大小要大于自然数,叫不可数集。


(在无穷基数理论中,两个集合中的元素如果能建立一一对应的关系,则认为这两个集合大小相等,具有相同的“基数”)

有关无穷基数理论网上有很多科普,相信听众中很多也了解。你可以上网搜索“希尔伯特旅馆”几个字,因为曾经希尔伯特用一个有无穷多个房间的旅馆来形象解释了一下无穷基数理论,非常有意思。

但是当你了解过无穷基数理论后,会发现用无穷基数去衡量无穷集合的话,这把“尺子”的刻度太粗糙了。从“可数集”跳跃到“不可数集”,跳跃非常大。而且根据关于“连续统假设”的结论,我们永远不知道“可数集”和“不可数集”之间还有没有其他的无穷基数。这样总感觉无穷基数这个工具实在有点太粗糙了。

另一方面,尽管实数是不可数集,但我们感觉上实数也可以某种程度程度上被数出来,因为实数是可以比大小的。给定两个实数,我总能比较出它们的大小,因此直觉有一种数实数的方法,就是按从小到大的次序来数。

因此,数学家就考虑,如果给集合元素添加一个顺序的属性,那我们有没有可能得到另一套衡量集合大小和其他一些性质的“尺子”?康托在发明无穷基数理论的同时,也发明了一套叫“无穷序数”理论,就是解决这样一个问题。

既然要对集合的元素添加“顺序”这个属性,那先要定义什么是“顺序”。直观上,我们认为“顺序”就是能把元素排成一串,但这个定义一下子把集合限制在可数集范围内,这个条件太强了。数学家这样定义顺序:集合中任意两个元素都能按某种方式比大小,这种比大小的关系,称为“序关系”,经常用“(\leq)”符号来表示。

如果我把这种序关系小于等于,我们还要求这种比大小符合以下三个条件:

反自反:如果(a\leq b)(b\leq a),则a=b。

传递性:如果(a\leq)b,且(b\leq c),则(a\leq c)

完备性:即(a\leq b)(b\leq a)。不存在不能比较的情况。

以上三个条件都是非常自然的,我们熟悉的自然数到实数里的“(\leq)”都符合这些性质,数学里把一个集合上的这种比大小操作叫做“全序关系”。

那是否一个集合里存在这种全序关系,我们就可以考虑这个集合的序数了呢?还差一点,我们还要加入一个条件:就是这个我们希望这个集合的任何非空自己总有最小元素。当一个集合当它有某种全序关系,并且任何非空自己都有最小元素时,我们就称这个集合为“良序集”,well-ordered。“良序”的意思就是它的性质优良,比如自然数就是良序集,因为0就是最小的自然数,并且自然数的任何子集里总有一个最小的数。但整数就不是良序集,因为没有最小的整数。

为什么我们要加入这个条件呢?其实是被迫加入的,因为我们希望能按元素的大小关系从小到大开始数数。如果不加入这个条件,一串数字,往小往大都是无穷无尽的,怎么开始数呢?但为什么不加入有最大值这个条件呢?因为稍后你会发现这个没必要,根据奥卡姆剃刀原则,如无必要,勿增实体。

以上说了半天,其实就是解释了“良序集”这个概念,说白了就是集合元素能排序,且有最小值,就这么简单。但是没办法,数学语言需要精确,就不得不啰嗦。而这个良序集里的比大小的方法,我们经常称为“良序关系”。

到现在我们还没有定义什么是“序数”,但我们知道我们定义序数的目标是,使序数在某种程度上也能成为衡量(良序)集合大小的一个标尺。基数情况下,我们用一一对应来识别两个集合大小相同。类似的,我们可以这样定义序数:

序数也是一个良序集合,如果某一个良序集可以与这个序数建立一一对应的关系,并且对应的结果保持自己的良序关系,那么就称两个集合“同序数”。(顺便说一句,数学里有很多这种通过某种一一对应的变换,来建立两个对象性质相似性的定义,术语经常是以“同”开始的,比如同构,同调,同态……)

这个同序数听上去有点抽象,举个例子就明白了。比如军棋的棋子,从司令开始,军长,师长,旅长,团长,营长,连长,排长,到工兵。一共10个棋子,按子力大小,从大到小构成了一个良序集。那么自然数从1到10,也构成了一个良序集。显然可以构造从军棋的这些棋子到自然数1到10之间的一一对应,并且这个对应结构是保持了顺序的。所以,可以说这些军棋的棋子与自然数1到10这个集合同序数,经常也简单说成“序数是10”。


(上图:军棋棋子里如果加入地雷的话,就不是良序集了,请大家可以考虑下为什么)

那明显对任何自然数n,它都是一个序数,因为从1到n,就构成了一个良序集,但这只是有限集的情况。那全体自然数能否构成一个序数呢?你想一下,它也可以啊。因为全体自然数,天生可以比大小,是一个全序集。而且有最小的自然数,不管你认为是0还是1啦,它总有最小元素。所以全体自然数是一个良序集,所以它也是一个序数。我们就得到了第一个无穷序数——全体自然数。

有没有可能从全体自然数里拿走一些元素,构成一个更小的无穷序数呢?稍微想一下,你会发现这就像“希尔伯特旅馆问题”里描述的一样,从自然数里那走任意多的元素后,只要剩下无穷多个元素,那么它的序数还是与全体自然数同序数。

那么当目前为止,我们的序数理论还是非常的平淡无奇,与基数理论几乎没有区别。但不要急,激动人心的部分马上就要来了。我们要考虑这么一件事:怎么在自然数集合中增加一个元素,得到一个更大的序数(集合)?

听上去这好像是不可能的?自然数集合已经有无穷多个元素,再加入一个元素,仍然要保持良序集的性质,那这个元素往哪里加?如之前所述,往中间加没有意义,得到的还是与自然数集合等大小的序数集。
这里,康托做了一个听上去不可能的操作:

在所有自然数后面添加一个元素!

但自然数有无穷多个,怎么能在所有自然数后面添加一个元素?

那现在到了本文的第一个也是唯一的难点了。如果你理解了怎么在全体自然数后面添加一个元素,那么你会发现后面的内容就太顺理成章,而且有一种突破天际、冲出宇宙的感觉。那我们就开一下脑洞,看看怎么在全体自然数后面加入一个元素。

先考虑一下,为什么要在自然数“后面”添加一个元素?原因就在于我们希望得到一个比自然数集大的序数。根据序数的定义,序数必须是一个良序集,可以排序的。我们已经有一串排列好的自然数,要扩大它,那么当然只能在自然数末尾再添加元素。

但是按照原先自然数自带的比大小的方法,我们显然找不到一个比全体自然数都大的数。所以,这时我们需要改一改序数里的序关系的定义,找另一种比大小的方法,使得我们仍然可以排序下去。

因为我们一直在讨论集合,集合里天生就有一种很自然的比大小的方法,就是“子集”或者叫“包含”关系。所以我们考虑试着把自然数用集合的方法定义出来(以下有关自然数的定义方法据说是冯诺依曼发明的)。

一开始,最小的集合是空集,我们先把0就定义为空集。即:(0:=\varnothing)

1的话,我们就定义为有一个元素的集合,这个元素就是0,这是不是很自然?即:(1:={ \varnothing }={0})

那找规律题来了,有了以上关于0和1的定义,你怎么定义2?你可能认为2就是以1为元素的集合。这不是不行,但在今天的情形下不太合适。因为如此一来,3就是以2为元素的集合。你会发现1和3谁都不是谁的子集,不能比大小了,但我们需要的序关系是全序的,必须任意两个元素都能比大小,所以这样定义不合适。

但稍微改进一下,我们定义2就是以0和1为元素的集合就可以了,即

(2:={0,1})

那么,(3:={0,1,2})。以此类推,自然数n就是以0到n-1,有n个元素的集合,即:

n:={0,1,2, \ldots n-1}

如此定义自然数后,再结合“子集”关系,全体自然数仍然是一个良序集,符合序数的条件。

那现在我们就可以考虑在自然数集的最后面再加入一个元素了。其实还是一道找规律题,根据之前构造自然数的规律,你会发现每个自然数都可以这样构造:

把前一个自然数自身作为一个元素加入到自身的集合中。

那么我们现在就问:如果把自然数集合本身作为一个元素加入到自然数集合中,会得到啥?通常我们把自然数集合记作N,但是在序数语境中,我们经常把自然数集合记作 (\omega)

\omega:={0,1,2,3,4, \ldots, n \ldots}

那么将(\omega)加入自身所得集合就是:

{0,1,2,3,4,\ldots n, \ldots \omega }

这个集合是良序集吗?它是!

因为其中任何两个元素都可以比较,而且(\omega)包含所有其他元素,其他所有元素都是(\omega)的子集,这个(\omega)在排序时应该排在最后!因此,我们确实在所有自然数的末尾添加了一个元素!


(序数序列从0到(\omega^{\omega})的一个螺旋生成图示)

这样太棒了,我们得到一个比全体自然数还大的序数!那这个序数我们如何命名呢?很自然的,你发现把它命名成(\omega +1)是最贴切了。当然,这里还我还留个思考题,如何证明(\omega +1)(\omega)是不同的序数呢?也就是证明(\omega +1)与自然数集之间不可能存在一种保持次序关系的一一对应。这个留给各位思考。

有了(\omega +1)后,之后的推理就可以大大加速了。你当然可以把(\omega +1)加入自身,那就得到了(\omega +2)(\omega +2)加入自身,就得到(\omega +3)

那么以此类推,会不会有(\omega +\omega)呢?当然可以啊?(\omega +\omega)就是\omega +1+1+\ldots,加了无穷多次之后的一个结果。那么对(\omega +\omega),我们自然就叫它(2\omega)

但是要注意,跟之前的加法情况类似,序数集也没有乘法交换律。(2\times \omega)其实等于是2+2+…..,加了(\omega)次,其结果还是(\omega);而(\omega \times 2=\omega + \omega),真的是另一个序数。这一点还是请各位自行验证。

为了书写简便,我一下还是把(\omega + \omega)叫做(2\omega)。但你要知道它不等于(2\times\omega)。那么(2\omega)之后,我们当然还可以有(2\omega+1), (2\omega+2), (2\omega+3)等等,如此到了(2\omega + \omega)之后,我们就得到了(3\omega)

现在我们进一步加速了,得到(3\omega)之后,当然有(4\omega), (5\omega)。顺理成章,我们就会得到 (\omega \times \omega),这个序数。对(\omega \times \omega)你会怎么称呼它呢?当然是(\omega ^{2})嘛。那么继续“顺理成章”,我们会得到(\omega ^{3}), (\omega ^{4})等等。

这里,事情听上去已经有点疯狂了,但远远没有结束。我们有了(\omega ^{3}), (\omega ^{4})等等之后,我们就会想到会有(\omega ^{\omega})这个序数。

有了(\omega ^{\omega})这个序数后,你会发现我们可以有(\omega ^{2\omega})(\omega ^{3\omega})(\omega ^{4\omega})等等,当然,这一切不妨碍存在(\omega ^{\omega ^{\omega}})序数。

(\omega ^{\omega ^{\omega}})可以的话,(\omega ^{\omega ^{\omega^{\omega}}})(\omega ^{\omega ^{\omega^{\omega^{\omega}}}})等等当然都可以。

所以,我们就会……来到了(\omega)层指数,我们得到了这样一个序数:(\omega ^{\omega ^{\omega^{.^{.^{.}}}}}),一共(\omega)层,有没有比这个序数更大的序数?说老实话,我写这句话的时候已经有一种问:“宇宙的外面还有什么?”的感觉。

现在的情况是,对(\omega ^{\omega ^{\omega^{.^{.^{.}}}}})这个序数,一个情况是你对它再加(\omega),乘(\omega),叠加更多层(\omega)的指数都没有太大意义了,无法对其有效扩大。那么还能对它扩大吗?

诡异的是,仍然可以。数学家的处理方法有点偷懒,他们就直接定义了一个符号(\epsilon_0),来表示这样一个序数。并且,通过观察这个序数的形式,我们知道这个(\epsilon_0)有一个性质,即(\omega^{\epsilon_0}=\epsilon_0),也就是说(\omega)的指数叠加已经无法突破(\epsilon_0)的牢笼了,这个性质就被用作(\epsilon_0)的定义(准确的说(\epsilon_0)是符合这个性质的最小序数)。

有了(\epsilon_0)之后,序数叠加游戏就像重置了,又可以重新开始了。这里,可以说游戏进入了第三阶段(第一阶段是有限序数,即自然数,第二阶段是从(\omega)开始,到(\epsilon_0)),此时有效扩大序数,需要采取一些其他方法。接下来的游戏我就不一一叙述了,因为这个扩大序数的游戏是无穷无尽的。

那总结一下无穷序数的构造过程和主要性质:

  1. 无穷序数可以理解成一个这样的游戏:从空集开始,在后面写更多的集合,要求是每一个集合都以之前所有的集合为其元素。那么这些集合都是有穷序数。
  2. 这个游戏的第一个奇点是:可以定义一个序数,它包含所有有穷的序数,这个序数就叫(\omega),它是一个无穷序数。以这个无穷序数为起点,你可以继续这个游戏。
  3. 继续这个游戏到下一个奇点:可以定义一个序数(\epsilon_0),它使得(\omega^{\epsilon_0}=\epsilon_0)。从(\epsilon_0)开始,继续这个游戏。可怕的是,这个游戏可以无穷无尽地继续下去。
  4. 序数的最重要性质就是,它们本身都是良序集合,并且所有序数之间也有良序关系。即它们互相之间都有包含关系,并且最小的序数就是空集。

有意思的是,序数不只是这样一套集合上的游戏,它对许多命题的证明有帮助。一个直观的印象就是序数的粒度要比基数精细的多。本文所讨论的所有序数,其大小还都是可数的,我们还远没到达不可数序数那一层。所以可数集范围内,就有那么多序数。这就好比一把尺子,它的粒度精细很多,就会变得很有用。另外,良序性本身也是很有用的,否则也不会叫它“良序”。后面几期节目中我会跟大家讲一些序数理论的应用。

今天,大老李教了大家,怎么数数,数到无穷大之后。这实在是一次脑洞大开,冲出天际的过程。

参考链接:

https://zh.wikipedia.org/wiki/%E5%BA%8F%E6%95%B0

https://www.cut-the-knot.org/WhatIs/Infinity/Ordinals.shtml

https://zhuanlan.zhihu.com/p/98566798

https://en.wikipedia.org/wiki/Ordinal_number