编者按:本文是集合论学者、哲学家乔尔·大卫·哈姆金斯(Joel David Hamkins)在《Lex Fridman Podcast》第 488 期的谈话实录。哈姆金斯现任教于圣母大学,兼治数学与哲学,是 MathOverflow 历史积分第一的用户,著有《证明与数学的艺术》《数学哲学讲义》等书。谈话从康托尔的多重无穷讲起,纵贯罗素悖论、哥德尔不完备定理、停机问题、连续统假设、集合论多宇宙、超实数与无穷象棋,最后落到他心目中数学与哲学里最美的思想。本文依据现场录音编译整理,以讲者第一人称成文,仅删去寒暄、口头语与重复枝节,论证与例子悉数保留。
谈无穷,我想把故事讲得比康托尔早得多。你可以一直回溯到古希腊:亚里士多德强调无穷的潜在性质,在他看来,实际达成的无穷是不可能的。阿基米德的穷竭法,是把一块区域切成越来越多的三角形,把面积一点点耗尽,再用各块面积之和去理解总面积。此后几百年、上千年,数学都在这种潜无穷的理解上运转,几乎所有数学家都只是潜无穷论者,认为谈论实无穷根本是不通的。
伽利略是一个极为突出的例外。他在《关于两门新科学的对话》里反对这种潜无穷的正统,写得非常漂亮。从很多方面看,伽利略已经预见了康托尔的发展,只是没能推到底,最后只好在困惑中摊手。所谓伽利略悖论是这样的:想想自然数,我从零开始数,他大概从一开始,一、二、三、四,一直下去;再想想其中哪些是完全平方数:零的平方是零,一的平方是一,二的平方是四,然后是九、十六、二十五。伽利略注意到,完全平方数可以与全体自然数一一对应,我们刚才就做到了,把每个数与它的平方配对。照这种一一对应看,完全平方数应该和自然数一样多;可完全平方数之间明明有那么多空隙,这又提示平方数应该更少,因为自然数包含了全部平方数,外加中间那么多。伽利略为此深感困扰,他认为这让无穷量的比较陷入了不融贯。
另一个例子:取两条长短不同的线段,想象画一把扇形的线束把它们连起来,端点对端点,中点对中点,如此铺开。短线段上每一点都以一对一的方式对应长线段上唯一的一点,于是两条线段的点似乎一样多,尽管一条更长。两个同心圆也一样,从圆心引射线,小圆上每一点都对应大圆上一点,一一对应,这又表明小圆的点和大圆一样多。
今天的看法是,这两个无穷确实一样大,伽利略关于等势的观察是对的。我们现在用我所谓的康托尔-休谟原理(有人只叫休谟原理)来说这件事:两个集合,不论有限还是无穷,当且仅当它们之间存在一一对应,我们才说它们同样大小,即等势。伽利略观察到的正是:不同长度的线段等势,完全平方数与全体自然数等势,任意两个圆等势。与康托尔-休谟原理相冲突的,可以叫作欧几里得原理:整体永远大于部分。欧几里得在《几何原本》里计算面积时反复诉诸它,这是个基本观念,一个东西若只是另一个东西的一部分,整体就大于部分。伽利略困扰的就是这两条原理之间的张力。
我认为这件事直到康托尔才真正解决。是他把无穷的不同大小讲得那么清楚、那么令人信服。他拿出两个不同的无穷集合,证明它们不等势,不可能一一对应。传统的讲法是实数的不可数性,康托尔的大结果就是全体实数构成一个不可数集。不过要讲可数集,我建议先讲希尔伯特旅馆,它把这个想法说得再明白不过。
希尔伯特旅馆有无穷多个房间,每个房间是整整一层的套房。零号房、一号房、二号房、三号房,一直下去,就像自然数。我总是从零开始,因为对我来说自然数从零开始,这一点也许有些数学家不同意,那是他们错了。所以旅馆有一个房间对应每个自然数,而且住满了:对每个 N,N 号房里都住着一个人。这时来了一位新客人,走到前台说想要个房间。经理说:稍等一下。原来其他客人入住时都签过一份协议,住宿期间房间可能有调整。于是经理给全体住客发了条消息:麻烦各位往上挪一间。五号房的人搬到六号房,六号房的人搬到七号房,以此类推,大家同时搬。我们当然不能把两位客人塞进同一间房,每个人都要有自己的单间。可是所有人往上挪一间之后,最底下的零号房就空出来了,新客人正好住进去。
所以即便有无穷多个东西,新客人也能被安顿下来。这正是希尔伯特旅馆住客这个特定无穷违反欧几里得原理的写照:给一个集合添一个元素,它没有变大,因为按房间号,新的全体住客与旧的全体住客之间仍有一一对应。旅馆是满的,却还能再挤进一个人,这打破了传统的数学直觉,人们一想无穷就要头疼,大概就是为此。这是无穷的一个性质:有时你往集合里加一个元素,它并不会变大。
故事还可以往下讲。第二天来了二十个人,同样的把戏再来一遍,大家往上挪二十间,底下空出二十间,二十位新客人住进去。到了周末,开来一辆大巴,希尔伯特大巴,当然有无穷多个座位:零号座、一号座、二号座,一直下去。车上所有人都想入住,可旅馆已经满了,经理该怎么办?我在课堂上讲希尔伯特旅馆时,总要求学生自己给出办法。一个很简单的办法是把旅馆分成奇数房和偶数房:让所有现住客把房间号翻倍,N 号房的人搬到 2N 号房,每个人都得到自己的新单间,而且号码总是偶数,因为 2N 永远是偶数。这样所有奇数房都空了出来,大巴上的乘客住进奇数房。
这一手,等于把一个无穷塞进了另一个无穷。它真正表明的是:我们可以定义,一个集合是可数的,当且仅当它与自然数集等势;用希尔伯特旅馆来理解,就是一个集合能装进希尔伯特旅馆,因为旅馆的房间号本质上就是自然数集。我们刚才证明的是:两个可数无穷集的并集仍然是可数无穷。把两者合起来组成一个新集合,包含二者所有元素,这个并集仍然只是可数无穷,没有变大。对无穷这个概念来说,这是一个了不起的性质。不过,假如你以为无穷只有一种,那就一点也不奇怪:两个无穷集合并起来当然还是无穷。所以,假如无穷只有一种,可数集的并仍可数就不足为奇。
还可以把这件事推得更狠:希尔伯特列车来了。列车有无穷多节车厢,每节车厢有无穷多个座位。这是无穷个无穷的乘客,加上旅馆现有的住客,而车上所有人都要入住。经理当然可以再发一遍消息,让每个人房间号翻倍,占满偶数房,空出奇数房。现在要把列车乘客放进奇数房。每位乘客坐在某节车厢的某个座位上,比方说 C 号车厢 S 号座。我们需要把车厢号和座位号这两个坐标以一对一的方式变成一个奇数。这其实不难,一个简单的办法是用 3 的 C 次方乘以 5 的 S 次方:把 3 自乘车厢号那么多次,把 5 自乘座位号那么多次,再把两个数相乘。这个数永远是奇数,因为它的素因子分解里只有 3 和 5,没有 2;而且互不相同,因为素因子分解唯一。每个数都能唯一地分解成素数的乘积,所以拿到一个这种形式的数,分解一下,就知道 3 的指数和 5 的指数,也就知道这个人来自哪节车厢、哪个座位。
于是我们证明了:可数个可数集的并集仍然可数。每节车厢都是可数的,旅馆现有住客也可以看作另一节车厢,把可数个可数集合成一个大并集,它仍然可数。我觉得这非常了不起。许多年前我第一次学到这一点时完全被震住了,着迷不已:可数无穷这个概念竟然在「无穷多个无穷相加」这种操作下封闭,加起来仍是同一个无穷。这又是对欧几里得原理的一次强烈违反:我们建出的新集合在「多出了额外元素」的意义上比旧集合多得多,可在大小上却没有多,因为它仍只是可数无穷,仍装得进希尔伯特旅馆。
要说直觉,有很多别的方式来看这件事。比如考虑整数格点,取自然数对,也就是整数格的右上象限。零行、一行、二行,零列、一列、二列,每行每列都有可数无穷个点。把每一列看作一节车厢,就和列车一模一样。而在这个网格图景里,我可以想象一条沿对角线来回蜿蜒的路径:从角上那个点出发,向下走,再向左上走,再向右下走,再向左上,如此往复,让这条路径经过每一个格点。这就给出了一种给格点分配房间号的办法:每个格点都是这条路径上的第 N 个点。前面用 3 的 C 次方乘 5 的 S 次方,是一种过于算术化的思路;而这幅图直接告诉你,可数个可数集为什么仍然可数:你只管把它们往一张清单上排,只要让每个无穷集合都有机会往清单上添一个人,最后就能把所有集合里的所有人都排进一张清单。
在讲不可数之前,我想插一步:有理数。刚才我们做的是自然数对,也就是列车车厢。但看一看分数,也就是有理数,是有启发的,因为很多人会预期这是个更大的无穷,毕竟有理数是稠密有序的:任意两个分数之间还能找到另一个分数,两个分数的平均数还是分数。这看上去和整数的离散顺序完全不同,整数从任何一个出发都有下一个和上一个,有理数没有。然而有理数仍然只是可数无穷。理由与希尔伯特列车完全一样:每个分数由两个整数组成,分子和分母。告诉我两个自然数,你就知道我说的是哪个分数(加上正负号的问题,但只看正分数就行)。形如 P 除以 Q 的数,Q 不为零,照样可以用 3 的 P 次方乘 5 的 Q 次方,同样的办法在有理数上仍然管用,它还是可数集。
你也许会想,既然无穷只有一种,那所有集合都可数吧。假如你抱这种观点,那它是错的。康托尔的深刻成就,正是证明了实数集不是可数无穷,它是严格更大的无穷,因此无穷的概念不止一个,无穷的大小不止一种。
实数包括数轴上所有的数。整数和有理数都在实数系里;此外还有代数数,比如根号二、五的立方根,也就是满足某个整系数代数方程的数。很长时间里有一个悬而未决的问题:这就是全部实数了吗?还是存在不是代数数的实数?不是代数数的实数叫超越数(transcendental numbers)。是刘维尔首先证明了超越数存在,他给出了一个具体的数,现在叫刘维尔常数。康托尔则以另一种方式著名地证明了超越数非常多:从他关于实数不可数的论证可以推出,超越数有不可数多个,所以大多数实数都是超越数。著名的超越数包括圆周率 π,3.14159265 那个,还有欧拉常数 e,指数函数里的那个 e。可以说数学里最迷人的一些数都是超越数。不过根号二也相当漂亮,美可以在各种集合里找到;而假如你偏爱简洁,零和一看上去也很不错。
顺便说一个证明:每个数都是有趣的。零有趣,因为它是加法单位元;一有趣,因为它是乘法单位元,任何数乘以一还是那个数;二是第一个素数,超级有趣。当然可以这样一个一个地给理由,但我想作为一般原理证明每个自然数都有趣。证明如下:假设存在无趣的数,那么就存在一个最小的无趣的数。可这是矛盾,因为「最小的无趣的数」是一个极其有趣的性质。因此不存在无趣的数。这个证明里「有趣」一词藏了不少东西,但它只涉及自然数,对实数和超越数什么也没说。至于我最喜欢的数是哪个,我的答案基本上是:我爱所有的数。
康托尔要证明实数的无穷与自然数的无穷不同,而且严格更大。自然数从零开始逐次加一;实数则来自数轴,包括所有整数、有理数、代数数和超越数。既然自然数包含在实数里,实数至少和自然数一样大,我们要证的是严格更大。
假设不是严格更大,那它们就一样大,而一样大按定义意味着存在一一对应。于是对每个自然数 N,我们有一个实数,记作 R_N,即清单上第 N 个实数。这个假设让我们可以把全体实数想成排在一张清单上:R1、R2,如此下去。现在我来定义一个数 Z。它的整数部分是零,然后小数点,然后我开始指定它的各位小数 D1、D2、D3。我要保证的是:Z 小数点后第 N 位与清单上第 N 个数的第 N 位不同。也就是说,要定 Z 的第 N 位,我就去看清单上第 N 个数 R_N,看它小数点后第 N 位是什么,然后确保我的这一位与它不同。我还要多做一点:我永远不使用零和九,只用其他数字。如果把清单上的数写成一列,那么每个数的第 N 位构成一条向右下延伸的对角线,这个论证因此叫作对角线论证。我们构造的 Z,第 N 位与第 N 个数的第 N 位不同。
现在可以看出 Z 不在清单上:Z 与 R1 不同,因为 Z 小数点后第一位与 R1 的第一位不同,我们正是这样构造的;Z 的第二位与 R2 的第二位不同,依此类推,对每个 N,Z 的第 N 位都与 R_N 的第 N 位不同,所以 Z 不等于任何一个 R_N。这就是矛盾,因为我们假设清单上有全部实数,可这里却有一个不在清单上的实数 Z。
这是一种构造性的证明。说来有意思,围绕康托尔的构造究竟算不算构造性的,恰恰有一场哲学争论。可以这样看:给定一张数的清单,康托尔给出了一种具体的办法,构造出一个不在清单上的实数。另外有一个小问题:有些实数不止一种十进制表示。比如数 1,可以写成 1.000……,也可以写成 0.999……,这是同一个数的两种不同表示,会给论证造成一点麻烦。而我们把零和九都排除了,这种现象只在数最终全是零或最终全是九时发生,Z 里没有零和九,所以它不是那种数。对这些数,我们其实不需要做任何特别的对角化,Z 有唯一表示这一事实本身就意味着它不等于它们。
也许在一百多年前康托尔的时代这件事有争议,但今天它通常被视为集合论最初的主要结果之一,深刻、惊人、富于洞见,而且是后来无数论证的起点。对角化这个想法被证明是极其丰产的证明方法,数理逻辑里几乎每一个重大结果都在某种抽象意义上使用对角化。罗素悖论、停机问题、递归定理,以及许多别的原理,核心都是对角化。
这场无穷的危机导致了数学的重建:集合论成了数学的基础,悖论迫使数学家发展出 ZFC 等公理系统,数理逻辑作为一门学科诞生了。
集合论实际上扮演着两种角色。一方面,它是一门独立的数学分支,有自己的问题、答案和证明方法。从这个角度看,集合论研究的是超限递归构造,也就是良基的定义与构造,这些想法极其丰产,集合论学者从中发展出了无数东西。另一方面,集合论碰巧还承担着基础的角色。人们对集合论的许多议论,其实没有注意到这两种角色的区别:它既是自己的一门学科,又是数学的基础。
在基础的角色上,集合论提供了一种方式,把一堆东西看作一个东西。这是集合论的中心思想。集合是一堆东西的汇集,但你把集合本身看作一个抽象的对象。当你构成实数集时,它就是一个集合,一个东西,里面有元素,有点像一袋物品。我们有许多不同的公理,来刻画「把一堆东西当作一个东西」这个观念的性质。公理就是我们假定为真的事实,在此之上建起数学的观念。关于集合的一批公理放在一起,如果足够有力,就能在上面建起许多有意思的数学。
现在的集合论公理,即策梅洛-弗兰克尔公理,出自二十世纪初策梅洛的想法。这段历史很有意思。1904 年,策梅洛给出一个证明:所谓选择公理蕴涵良序原理。他描述了自己的证明,当时极具争议。那时没有任何理论,也没有任何公理。康托尔不在公理框架里工作,他没有我们今天那样的集合论公理清单,策梅洛也没有。他关于良序定理的想法受到了那么多质疑,以至于他被逼着拿出一套理论,让他的论证可以在其中形式化,这就是策梅洛集合论的起源。
选择公理说的是,给定任意一族非空集合,可以从每个集合里各取出一个元素,即便没有明确的规则指定怎么取。一方面,这条原理显然是我们希望成立、也确实成立的,很多人把它当作一条逻辑规律。有一堆集合,就有办法从每个集合里挑一个元素:存在一个函数,把它作用到任何一个集合上,就给出该集合的一个元素。这是一个完全自然的原理。它叫「选择」公理,多少是把数学观念拟人化了,不是说函数在做选择,而是说假如你做了这样的选择,就会存在一个由你所做的选择构成的函数。困难在于,当你无法说明做选择的规则或程序时,就很难说清你断言存在的那个函数是什么。你的看法是:确实存在一种选法,我没法轻易说出这个函数是什么,但它肯定存在。这就是理解选择公理的方式。
ZFC 三个字母:Z 是策梅洛,F 是弗兰克尔,C 就来自选择公理。ZFC 听上去极其技术化,但它就是现代数学赖以立足的那套公理。也应该知道,数学里有很大一部分工作专门关注选择公理是否被使用,他们不想用它,于是研究不用选择公理或只用策梅洛-弗兰克尔集合论的弱化形式能得到什么结果,这方面的研究相当活跃。
罗素对选择公理有一个很好的描述。一位富人有一个无穷大的衣柜,里面有无穷多双鞋。他吩咐管家:请从每双鞋里给我拿一只来。管家很容易办到,对任何一双鞋,他总可以拿左脚那只。这是一种可以描述的选法:总拿左边的,或总拿右边的,或者红鞋拿左边、棕鞋拿右边。我们可以发明各种规则,得出这类选择函数,也就是说可以描述出明确的选择函数。在这些情形下,你不需要选择公理就知道选择函数存在。当你能描述一种具体的选法时,就无须诉诸公理。麻烦的情形出现在衣柜里那无穷多双袜子上。假如每双袜子里的两只无法区分,彼此一样,那管家就没有任何规则来决定每双拿哪一只,他能否从每双里取出一只就不那么清楚了。这就是问题所在:你能否给出一条规则来定义选择函数,还是说其中有一种任意选取的成分。后一种情况下,你就需要选择公理来断定这样的函数存在。
当然,从数学本体论的角度,我们也许会觉得下面这个想法很有吸引力:并非每一种挑袜子的方式都必须由规则定义。为什么数学实在中存在的每样东西都得遵循某种规则或程序呢?如果我认为我的数学本体论中对象丰富,那么各种各样的函数和选法都是我要谈论的数学实在的一部分,我断言选择公理毫无问题:确实存在一种选法,我未必能告诉你它是什么,但在数学论证里我可以固定住一个选择函数,因为我知道它存在。有选择公理和没有选择公理,哲学上的差别在于论证的构造性。如果你的论证诉诸了选择公理,那你也许是在承认,证明中产生的对象不会是构造性的,你不一定能对它们说出具体的东西;但如果你只是在做存在性断言,那完全没问题。反之,如果你对数学的本性持构造主义态度,认为只有在能给出明确程序产生所涉对象时,数学断言才有根据,那你大概会想否认选择公理,也许还会否认更多。
ZFC 的主要公理包括:外延公理、空集公理、配对公理、并集公理、幂集公理、无穷公理、分离公理、替换公理、正则公理和选择公理。这段历史很有意思。策梅洛引入了其中大多数公理,作为现在所谓策梅洛集合论的一部分,用来形式化他从选择公理到良序原理的证明,那是一个极具争议的结果。1904 年他给出了没有理论的证明,然后被要求提供理论,于是 1908 年他拿出了策梅洛集合论,并证明在这套理论里每个集合都有良序。
清单上的这些公理表达了他想谈论的关于集合的最基本的理解。比如外延公理说:两个集合若有相同的成员,就相等。这是一种观念:集合就是由它的成员构成,除此之外集合里什么也没有发生,成员相同就是同一个集合。在某种意义上它是最原始的公理。再比如:存在一个没有元素的集合,即空集;对任意两个集合,存在一个集合恰以这两个集合为元素;对任意集合,存在一个集合恰好包含该集合各元素的元素,即并集;对任意集合,存在一个集合,其元素恰是原集合的所有子集,即幂集;无穷公理说存在一个无穷集合,通常是一个包含空集并在「再加一个元素」的操作下封闭的集合,这又回到了旅馆的例子。设身处地想想当年那些试图把集合论形式化的人,人类能做这件事本身就很奇妙。
我读过一些历史学家关于那个时期的记述,专门讲策梅洛的公理和他对良序定理的证明。历史学家说,数学史上从来没有哪个定理像策梅洛这个定理那样,被如此公开、如此激烈地争论过。有意思的是,选择公理起初被广泛视为一条基本原理,但人们对良序定理非常怀疑,因为没有人能想象出实数的一个良序。于是策梅洛似乎是从看起来相当合理的原理出发,证明了一个显然不真的东西,数学家们纷纷反对。但后来策梅洛和其他人去查那些激烈反对者自己的论文,发现在很多情况下,他们在自己的论证里暗中使用了选择公理,尽管公开反对它。因为它太自然了,太像一条显而易见的原理,如果你不够审慎,很容易不知不觉就用了它。直到今天也是如此,人们仍然留意数学论证里有没有用到选择公理。它过去更重要:二十世纪初,人们不知道这套理论是否一致,二律背反不断出现,人们担心公理的一致性。后来有了哥德尔和科恩的结果,关于选择公理本身的一致性问题就消解了。我们知道选择公理本身永远不会成为集合论不一致的根源:如果加上选择公理不一致,那不加它也已经不一致了。从一致性的角度看,留意它是否被使用就不那么重要了,但出于前面说的构造主义理由,人们仍有理由关注它。
所谓一致,指的是无法从理论的公理推出矛盾。一个一致的理论,就是你不能从它证明出矛盾的理论。
我们讲了康托尔关于实数不可数的证明,但康托尔其实证明了一个一般得多的事实:对任何集合,它的幂集都是严格更大的集合。幂集是由原集合所有子集组成的集合。子集总是至少和元素一样多,因为对任何元素,你都可以做出只含这个元素的单点子集,问题是子集是否严格更多。
康托尔的推理非常简单,它把抽象的对角化思想提炼了出来,不受实数复杂性的拖累。设有集合 X,考虑它的所有子集,即 X 的幂集。反设 X 与它的幂集一样大,那么每个 X 的个体都对应一个子集。现在我定义一个新集合 D:D 是 X 中所有「不在自己对应的那个集合里」的个体组成的子集。也许没有这样的个体,也许全都是,也许有些是有些不是,这对论证无关紧要。D 是一个完全合格的子集,所以按照等势,它必定对应某个个体,就叫她 Diana。现在问:Diana 在 D 里吗?如果她在 D 里,那她就在自己对应的集合里,可 D 是由不在自己集合里的个体组成的,所以她不该在里面;如果她不在 D 里,那她就不在自己对应的集合里,那她就该在 D 里。矛盾。所以对任何集合,子集的数目总是大于元素的数目。
拟人化的讲法是这样的:对任何一群人,能组成的委员会比人数多,哪怕人有无穷多。什么是委员会?就是一份名单,谁在委员会里。有所有两人委员会、所有一人委员会,还有那个人人都在其中的、最糟糕的全体委员会;最好的委员会是空委员会,没有成员,从不开会。或者空委员会其实一直在开会?我不确定。断言是委员会比人多。反设不是,那就可以在人和委员会之间建立对应,每个委员会都以一个人的名字命名,一一对应。我没说这个人在以他命名的委员会里或不在,有时在有时不在,无所谓。现在组一个委员会 D,由所有「不在以自己命名的委员会里」的人组成。也许是所有人,也许没有人,也许一半,无所谓,它是一群人,是一个委员会,所以要以某个人命名,就叫她 Daniella。问:Daniella 在以她命名的委员会里吗?如果在,她就不该在,因为那是由不在自己委员会里的人组成的;如果不在,她就该在。又是矛盾。
我在牛津教书时,一个学生想出了另一种拟人化:水果沙拉。有一些水果,苹果、橙子、葡萄之类,一份水果沙拉就是这些水果的某个组合,有香蕉梨葡萄沙拉等等,每一组水果都能做一份沙拉。我们要证明,对任何一批水果,哪怕有无穷多种,可能的沙拉都比水果多。如果不是,就能在水果和沙拉之间建立一一对应,给每份沙拉以一种水果命名,那种水果未必在那份沙拉里,只是命名。然后组成对角沙拉:由所有不在以自己命名的沙拉里的水果组成。这是一份完全合格的沙拉,可能是空的减肥沙拉,可能是包含全部水果的全沙拉,也可能只有一部分。这份对角沙拉必须以某种水果命名,假设是榴莲。问:榴莲在以它命名的沙拉里吗?在,就不该在;不在,就该在。同样的矛盾。
所有这些论证,都与康托尔关于幂集大于原集合的证明如出一辙。而这正是罗素悖论里的逻辑。
罗素论证的是,所有集合的类不可能是一个集合。因为如果它是集合,我们就能构成「所有不以自身为元素的集合」组成的集合。罗素证明的实际上是:集合的汇集比元素多。我们可以构成对角类,即所有不以自身为元素的集合组成的类;如果它是一个集合,那它属于自身当且仅当它不属于自身。四个论证的逻辑完全一样。所以不可能有所有集合的类,因为如果有,就会有所有不属于自身的集合组成的类,而这个集合属于自身当且仅当它不属于自身,矛盾。这就是罗素悖论的精髓。我教这个的时候不叫它罗素悖论,我叫它罗素定理:不存在全集。它已经不再令人困惑了。在当时它非常令人困惑,但今天我们已经把集合论的这种性质吸收进了对集合的基本理解。
不过这段历史很动人。在那之前,弗雷格正在进行他不朽的工作,实施逻辑主义的哲学,即把全部数学还原为逻辑的尝试。弗雷格想用逻辑概念来说明全部数学,他写下了这部巨著,并提出了他的基本原理。这些原理碰巧蕴涵:对任何性质,都可以构成具有该性质的对象的集合,这叫作一般概括原理。他在整部著作里都诉诸支持这条公理的原理,这不是附带的东西,他确实在用它。罗素看到这项进行中的工作,写信给他说这里有问题:如果接受对任何性质都能构成具有该性质的对象的集合,那就能构成所有不属于自身的集合的集合,这只是一般概括原理的一个实例。而这个集合不可能是集合,因为它属于自身当且仅当它不属于自身。
罗素的信寄到时,弗雷格正好要完成他的工作,书稿已经在出版社,基本上在付印了。这是毁灭性的。弗雷格的处境该有多可怕:他完成了这部巨著,为它奉献了多年生命,而罗素找到了一个基本上只有一行的证明,从他的基本原理中推出矛盾,彻底摧毁了整个体系。弗雷格在书的附录里回应了罗素的信,写得非常有风度,大意是:对一个科学写作者来说,没有什么比在著作完成之后发现其大厦的一处根基被动摇更不受欢迎的了,而罗素先生的一封信恰在本卷付印将近之时把他置于这个境地。接着他解释了问题所在,涉及他的基本法则五。你把一生献给这项工作,然后它被证明是矛盾的,这一定让人心碎。
当然,逻辑主义的计划并没有随弗雷格而死,它被继续下去了,直到今天还有新逻辑主义之类的整个运动。但我的看法是,逻辑主义的主要目标,随着集合论基础主义的兴起,基本上已经完全实现了。把 ZFC 看作数学的基础,而在我看来,ZFC 的原理在性质上是根本逻辑性的,包括我前面说的、作为逻辑原理的选择公理。这是一个争议很大的观点,很多人认为连无穷公理都是内在数学性的而非逻辑性的。但如果你认为 ZFC 的原理关乎抽象的集合构成原理,而这在性质上是根本逻辑性的,那么这就是逻辑主义的完全成功。集合论能够充当基础,意味着数学可以建立在逻辑之上。
哥德尔不完备定理是数理逻辑最深刻的发展之一。在我看来,不完备定理是数理逻辑第一次变得成熟,是这门学科的诞生。但要理解这些定理,得从稍早的希尔伯特纲领讲起。当时有罗素悖论、布拉利-福尔蒂悖论等等,集合论各处冒出各种矛盾。希尔伯特是集合论的著名支持者,他有一句话:没有人能把我们从康托尔为我们创造的乐园里赶出去。我理解他的意思是,他被用集合论作数学基础的想法深深吸引,这种基础极其有力、便利,而且起着极为重要的统一作用,他不想放弃它,哪怕这些悖论、这些矛盾像雷区一样危险。
于是希尔伯特说:我们得解决这个问题。我们想用集合论作基础,但要以可信赖、可依靠的方式来做,不能允许数学的基础受到质疑。这是希尔伯特纲领背后的态度。他提出:一方面,我们要有一个强理论,也就是我们希望在其中证明定理的集合论,它要尽可能强,最好能回答所有问题。希尔伯特退休演说里还有一句名言:我们必须知道,我们终将知道。他对数学回答所有已提出问题的能力非常乐观:我们有这么多想解决的问题,我们会把它们全部解决。所以要提出这个强理论,人们感觉他心里想的是集合论,在其中所有问题都会得到回答。另一方面,我们要在一个非常弱的、纯粹有穷主义的算术理论里,证明强理论的推理过程是安全的。
要让这种观点说得通,你基本上得发明形式主义哲学:审视什么是证明,数学推理的本性是什么。在希尔伯特的想法里,证明本身是一种有穷的对象。想想证明是什么:它是一串断言,可以看作一串符号序列,符合某些逻辑推理规则。这是形式主义对证明的理解,把证明看作句法的、形式的东西。即便这些语句的内容可能指涉无穷的、不可数的对象,语句本身却不是无穷的、不可数的对象,它们只是有限的符号序列。
形式主义的要点在于:你把做数学的过程与数学断言的意义分离开来。你在无穷理论里做出的断言,其意义可能涉及巨大的不可数无穷,那是一个很不确定的领域,在一些人心里正是悖论的来源。但推理过程本身,只是在纸上写下符号序列,按照有穷的规则进行论证。把符号的意义与操作符号的过程分开,就是把数学看作一种形式游戏,意义可以完全缺席。我不认为形式主义观点必然主张背后没有意义,它强调的是我们可以把语句的意义与操作语句的过程分开。然后希尔伯特要在纯有穷理论里证明:只要遵守这个游戏的规则,就永远不会得出矛盾。这就是希尔伯特纲领的两个目标:建立强的无穷理论,大概是集合论,它将回答所有问题;然后在有穷理论里证明强理论是安全的,也就是一致的。
「有穷」究竟指什么,在哲学上有争议,有几百篇论文专门讨论这个问题。我倾向于非正式地理解:我们谈的是有限的符号序列,一个有穷理论的主题就是这类东西,可以对这些有限符号串的性质进行论证。证明就是一个有限的语句序列,每条语句要么是公理,要么按某种指定方式(比如肯定前件式或别的逻辑规律)从前面的语句推出,最后一行是要证的定理。举个具体例子,我总觉得最自然的有穷理论就是皮亚诺算术,一个关于算术性质的一阶理论。有人说皮亚诺算术有很强的一阶归纳公理,还有弱得多的算术,比如 IΣ0 或 IΣ1,比皮亚诺算术更有穷。不同的哲学立场对「要多有穷才算真正有穷」有不同的看法。我把皮亚诺算术视为有穷的,但这是有争议的观点。皮亚诺算术是关于自然数和初等数论的极为成功的理论,本质上全部经典数论,不管你想证明关于素数、因子分解的什么定理,或任何关于有限组合对象的有穷推理,都能在皮亚诺算术里形式化。当然,鉴于哥德尔不完备定理,这些说法需要限定,但大体上,关于有限数的经典数论分析几乎全部可以在皮亚诺算术里展开。
回到希尔伯特纲领:两个目标,产生一个回答所有问题的强理论,然后用纯有穷手段证明它永远不会导向矛盾。不完备定理应被视为对希尔伯特纲领的决定性反驳,它彻底击败了这两个目标。但在解释之前,不妨想想:假如希尔伯特是对的,他要我们寻找的那个世界里,数学会是什么样子?
我们会有一个有穷理论,它证明强理论没有矛盾。于是我们可以开始枚举强理论的证明。今天我们就能写一个程序,系统地生成给定理论的所有可能证明。于是可以有一台定理枚举机,整天吐出定理,每一条定理最终都会被这台机器产生。任何数学问题,你只要等着机器吐出「是」或「否」的答案就行了。在希尔伯特的世界里,数学研究的本质就是转动定理枚举机的曲柄,不需要创造性思考或想象力,只是照本宣科地从中获取答案。实际上,希尔伯特通过他的纲领在告诉我们,数学的根本性质是机械计算。
在担心二律背反、担心不一致的历史背景下,希尔伯特纲领看起来极有吸引力。首先,有一个回答所有问题的强理论似乎很自然,因为我们今天所知的逻辑独立性及其普遍性,当时完全无人知晓,他们从未见过那种事,自然觉得不会发生;其次,他们以为能防住不一致。所以在那个历史语境里,纲领的目标相当自然。但只要多想一想它的本质,就看到那种机械程序。也许你会说,这在今天看起来并不那么离谱,随着计算机能力增强,机器替我们算的越来越多,这正在变成日常经验,甚至令人警觉。
那么反过来,如果希尔伯特错了,数学实在的本性是什么?第一个目标失败,意味着我们永远写不出一个回答所有问题的理论:我们最好的理论,哪怕是无穷理论,也总会有它无法回答的问题,独立性会出现。第二个目标失败,意味着我们还得不断担心理论是否一致,而且没有任何真正令人信服的手段说它们没有矛盾。哥德尔不完备定理表明,这恰恰就是数学实在的本性。第一不完备定理说:你写不出一个可计算公理化的、回答所有问题的理论,只要它包含一定量的算术,每个这样的理论都是不完备的。第二不完备定理说:任何这样的理论都不能证明自身的一致性。不只是有穷理论证不了强的无穷理论的一致性,连无穷理论自己都证不了自己的一致性。在这个意义上,它是对希尔伯特纲领的决定性击倒。一个定理就把整个谜题回答了,真是了不起。
还有一个容易想到的角度。你会信任一个证明自己一致的理论吗?那就像二手车推销员对你说:我很可靠。他这么说并不构成信任他的理由。同样,一个证明自身一致的理论,哪怕它不一致也会证明自身一致,所以这不构成相信其一致性的逻辑理由。
顺便说明一下「理论」这个词。在数理逻辑里它是术语,指形式语言中任意一组语句,与公理系统基本同义。人们有时不清楚它指的是公理本身还是公理的推论,两者关系紧密,但特征并不完全相同。如果你有一份可计算的公理清单,你可以开始枚举公理的推论,但你无法可计算地判定一个给定语句是否为推论。你能枚举推论,也就是半判定,却无法给出是或否的判定。这就是可计算判定与可计算枚举的区别,由图灵等人的工作弄清楚。你也许能可计算地判定一个东西是不是公理,但这不意味着能可计算地判定一个东西是不是定理。通常你只能判定肯定的实例:如果某个东西是定理,你终究会认出来;如果不是,也许你永远没有哪一刻能说「不,那不是定理」。这当然与停机问题相连,所有这些矛盾和悖论都漂亮地互相勾连。
真与证明的区别是一个核心的区分。回头读哥德尔和塔斯基之前二十世纪初的那些人,会发现他们在这个区分上完全是马虎的,直到哥德尔才弄清楚。甚至晚到布尔巴基,在他们的基础著作里还有这种混淆:那部法国研究生标准教材在讲逻辑时把真和证明混为一谈,对他们来说,真就意味着可证。早年也许人们不够清楚真这个概念需要数学的研究和分析,也许他们以为它已经完全清楚了。因为不完备定理,我们意识到这里发生着相当微妙的事情。对我来说,真与证明的区分是今天我们理解数理逻辑的绝对核心。
真属于句法与语义二分中语义的一侧。真关乎实在的本性,我说的不是物理实在,而是数学实在。我们有一个概念:一个语句在某个数学结构中为真。比如你有实数域,想知道它是否满足某个语句;或者你有一个群,或者一个图,一种有顶点和边的数学结构,你想知道这个图是否满足某个语句。塔斯基给出了关于真的一个极为出色的说明,即现在所谓去引号真理论。塔斯基说:「雪是白的」这个语句为真,当且仅当雪是白的。他的意思是,真是断言的性质,可以把断言看作句法对象;语句为真,就是语句的内容是实际情形。语句「雪是白的」加引号为真,就是说雪是白的。之所以叫去引号,是因为我们把断言上的引号去掉了。你可以用这个想法给形式语言中的语句在数学结构中的真给出形式定义。假如我有一种形式语言,可以对结构里的对象和关系做原子断言,再用「与」「或」「蕴涵」「非」等逻辑联结词以及量词把它们组合起来,那么,比如说,结构满足「φ 与 ψ」这个单一语句,就是说它满足 φ 并且满足 ψ。注意刚才发生了什么:起先「与」是语句内部的一部分,然后我用「与」来指两个条件的合取,这就是去引号。这个想法可以对所有逻辑联结词和量词进行,运用塔斯基的去引号思想,就能归纳地定义形式语言中任何断言在任何数学结构中的真。所以说一个语句为真,除非你告诉我是在哪个结构里为真,否则是有歧义的。也许我们心里想的是算术的标准模型,自然数及其算术结构,我想知道某个语句在其中是否为真,那么按塔斯基的递归定义,我们对这句话有形式的定义。这是真。
证明则是希尔伯特式的想法,可以发展出证明论。对数理逻辑学家来说,证明是形式语言中语句的某种序列或排列,符合某个证明系统的逻辑规则。有某些被允许的推理模式:如果你知道 A,也知道 A 蕴涵 B,那么在后面的步骤里你可以写下 B 作为推论,这是肯定前件式,有人叫它蕴涵消去。还有许多别的规则,证明论学者研究着许多不同的形式证明系统。它们都有一个性质,叫可靠:如果论证的前提在一个结构里全部为真,而你有一个证明得出结论,那结论在该结构里也为真。证明保真。证明系统一般还是完备的:只要一个语句是另一些语句的逻辑推论(即只要假设为真,推论在该结构里就也为真),那就存在它的证明。逻辑学家总是说「可靠而完备」,但其实还有隐藏的第三个形容词,他们本该总是一并谈到:你应该能够识别某个东西是不是证明。证明系统有可计算的一面,判定一个语句序列是不是证明应当是可计算可判定的。我们不想要一种证明系统,有人声称有证明,我们却无法检验。数学史上有人说自己有证明,只是页边太窄写不下,那不算证明。所以一般来说,所有经典证明系统都是可靠的、完备的,并且可计算可判定的。
不完备定理的问题是:我们能否为算术,比如为带有加法、乘法、零、一和小于的自然数标准模型,写下一个理论。在这种形式语言里,我们能表达的不只是关于算术性质的大量语句,通过各种编码方法,本质上能表达全部有限数学。问题是:我们能否写下一份可计算的公理清单,通过证明回答所有这些问题?换句话说,我们想要一个完备的算术理论,证明所有且仅有的真语句。希尔伯特会喜欢这个。而哥德尔证明了这是不可能的:你写不出一份可计算的、在这个意义上完备的公理清单。只要理论一致,总有你既不能证明也不能反驳的语句,它们独立于该理论。
这令人创伤吗?我的看法是,一点也不。它反倒完全打开了我们对数学实在本性的理解。我们懂得了关于数学真理处境的这个深刻事实:不完备定理告诉我们,我们无法写下一份既一致又回答所有问题的公理清单,这不可能。我不把它看作创伤,我只是想:这就是数学实在的本性,知道它是好事,现在我们要从这里往前走,在这个事实的光照下做能做的事。
一般来说,给你一个语句,你无法知道你的公理系统能不能证明它。可证性问题可以表述为判定问题:给定一个理论和一个语句,该语句是否为该理论的推论?这是最著名的判定问题之一,实际上是第一个,因为它等价于希尔伯特-阿克曼的判定问题(Entscheidungsproblem),这个词也出现在图灵 1936 年那篇对可计算性理论至关重要的论文标题里。给定理论是否以给定语句为逻辑推论?由于哥德尔的完备性定理(不是不完备定理,而是他更早的完备性定理,证明了他们研究的证明系统确实具有前面说的完备性),可证性等同于逻辑推论。而这是一个不可判定的判定问题,图灵证明了这一点,我们现在知道它等价于停机问题。
停机问题表达了计算过程的一个根本性质。给定一个程序(或程序连同输入,我就简称程序),我们可以运行它,但我想把它提成一个判定问题:这个程序会完成任务吗?会停机吗?对任何单个实例,答案是「会」或「不会」,我们谈的不是这个,而是有没有一个可计算的程序能回答这个问题的所有实例。判定问题是作为一个实例的模式给出的,涵盖所有可能被问到的程序,我想知道有没有一个可计算的程序能回答这些问题。答案是没有。停机问题是可计算不可判定的:不存在可计算的程序,能正确回答给定程序是否停机的所有实例。
当然,我们能得到一半的答案。你给我一个程序问它会不会停,我可以拿来运行,一直运行,也许一周后它停了,那时我可以说:是的,它停了。所以肯定的答案我能全部正确给出。问题在于,如果它还没停,比如我等了一千年它还没停,我似乎没有资格说「不,它不会停」,因为也许一千零一年它就停了。似乎没有哪一刻我能说「不」。要说「不,它永远不会停」,我似乎必须真正理解这个程序如何运作、在做什么。给出「会停」的答案是平凡的,不需要理解,只要运行,那是机械劳动;而给出「不会停」的答案,你需要对程序的本性有某种深刻的洞察,能看出这个程序永远不会停。说「不会停」比说「它停了,因为我运行了它就停了」困难得多。结果表明,不可能有一个可计算的程序给出那些「不」的答案。
论证不难。这些证明都是反证法,而这个论证是对角线论证,与罗素、康托尔和哥德尔的论证风格相同。反设我们有一个程序,能判定给定程序在给定输入上是否停机。我要把它当作子程序,构造下面这个过程,叫作 Q。Q 以一个程序 P 作为输入,它做的第一件事是问那个子程序:如果把 P 作用在 P 自己上,P 会停机吗?这就是对角的部分,我们把 P 作用于 P。如果子程序回答「会停」,那 Q 立刻进入无限循环,不停机;如果回答「P 在 P 上永远不停」,那 Q 立刻停机。就这样,我描述完了 Q 的行为。Q 的特点是,Q 在 P 上的行为与 P 在 P 上的行为相反,我们正是这样专门设计的。现在做罗素和康托尔做过的事:问 Q 在 Q 上会怎样?由于这种相反的行为,Q 在 Q 上停机当且仅当 Q 在 Q 上不停机。这是矛盾,因为 Q 必须与 Q 在 Q 上的行为相反,而这自相矛盾。
这个证明极其漂亮,它遵循罗素和康托尔的逻辑,追根溯源就是康托尔,罗素给弗雷格的信里也引用了康托尔。结论是停机问题不可计算判定。而由此可以立刻证明哥德尔定理。我认为这是哥德尔定理最简单的证明:不需要哥德尔语句,用停机问题就够了。假设我们能写下初等数学(算术以及图灵机计算之类的有限组合事实)全部真相的可计算公理化。事实上,所有这些有限组合过程都能通过标准的算术化编码在算术内部形式化,但让我说得非正式一点:假设我们能写下一个初等有限数学的完备理论。那么,就像前面讲希尔伯特纲领时描述的那样,我们可以从这些公理产生所有可能的定理,造出一台定理枚举机,产生该理论的所有定理且只产生定理。现在我桌上有了这台定理枚举机,我宣布开门营业,解决停机问题。你给我一个程序和输入,我等着机器吐出「P 在该输入上停机」或「P 在该输入上不停机」这两条语句中的一条。其中一条必然会出现,因为这是一个枚举初等数学全部真语句的完备理论。所以如果我有这样的系统,我就能解决停机问题;但我们已经证明停机问题无法解决,因此不可能有这样一个完备的算术理论。哥德尔定理证毕。
教年轻数学家学习如何成为数学家、学习证明,是我觉得非常美好的事。我写《证明与数学的艺术》那本书时,正在纽约教这样一门证明写作课。很多大学都有这种课,通常由已经学过一些数学的学生来上,他们大多修完了微积分序列,正要过渡到高等数学,而高等数学涉及多得多的证明,对他们来说是一个有挑战的台阶。我对现有的大多数教材不满意,原因是它们往往太乏味,专注于写证明这件事里完全无趣的部分,那些机械的操作程序:要证明一个蕴涵式,就假设前件、论证后件,诸如此类。这些都对,都值得知道,可如果关于证明的本性你只说这些,我不认为你学到了多少。我觉得可以有一本好得多的书,更有意思,里面有有趣的定理,但仍然只需要初等的证明。于是我写了这本书,尽量填满有吸引力的数学命题,配上非常初等的证明,展示各种各样的证明风格。学生们很喜欢。这本书献给我的学生:愿他们的定理都为真,愿证明它们的论证优雅,从假设到结论一气呵成,并在其间显露奇妙的数学之美。
我们来做书里的一个证明,离散数学那一章的 5.1 节,「被指多于指人」。设你和一些朋友围成一圈,可以随意指别人,也可以指自己,可以同时指不止一个人,用手指或脚都行。也许你指了三个朋友,他们各指两三个人,有人指了十个人,有人谁也不指,各人也被不同数量的人指着。问题是:能否安排一种指法,使得每个人被指的次数都多于他指人的次数?比如有七个人指我,而我只指五个人;有二十个人指你,而你只指十五个人。推特上有一个类似的问题:一群人在推特上,能否安排得每个人的粉丝都比关注多?数学上是同一个问题。严格说不完全同,因为我允许指自己,而你不能关注自己。
书里我给了几种不同的证明,有归纳证明,我记得一共三种。这里说我最喜欢的那个。假设可以安排得人人被指多于指人。现在我们约定,每个人给自己指的每一个人一美元。结果如何?每个人都赚钱了:指我的人比我指的人多,我收到十美元,只付出七美元;你收到二十美元,只付出十五美元。所以如果人人被指多于指人,那人人都赚钱。可是一群人仅靠彼此之间倒腾钱,显然不可能全体赚钱。因此不可能人人被指多于指人。
这个证明体现了我在书里建议的一个习惯:把数学观念拟人化。想象你问题中的数学对象是人,或者动物,或者某种有意志、有目标的活物。这往往让问题更容易理解,因为我们都熟悉赚钱有多难,而这个证明之所以完全令人信服,靠的是我们知道,没有新钱进来,一群人靠互相转钱不可能人人赚钱。但这本身其实是一个不容易的数学断言。如果有人必须证明「一群人仅靠内部转钱不可能人人赚钱」,你也许觉得显然,谈钱时确实显然;可如果问题是关于某类数学函数的,就未必像谈钱时那么清楚了,因为我们可以借助人类获取钱财或别的资源有多难的经验。不一定是钱,可以是糖果,我们就是知道,光靠群体内部交换不可能轻易让大家都得到更多。证明的力量就在于把非显然的东西显示出来,久而久之它就变成显然的了。我们刚刚证明了钱的一个性质。
有意思的是,假如你的群体里有无穷多人,定理就不成立了。事实上可以安排得人人被指严格多于指人。而且,哪怕每人只有一张一美元钞票,也可以安排得事后每人都有无穷多张钞票。从基数上看这是一样的,两种情形都是可数无穷。假如你有可数多个朋友,每人一张钞票,你可以安排一种传递方式,使得事后人人有无穷多张。做法是把每个人对应到列车的某节车厢上:把每个人既看作从希尔伯特列车上来的,又看作住进了希尔伯特旅馆。让第 N 节车厢上的每个人把钱都给最终住进第 N 号房的那个人,每人给他一美元。事后那个人有了无穷多美元,而每个人只付出了一美元。
无穷是否应被看作真实的东西?数学哲学的很大一部分就在讨论这类问题:数学对象,包括无穷,其存在的本性是什么。但我认为专门问无穷,与问数字五没有太大不同。数字五存在是什么意思?数究竟是什么?这也许是数学本体论的根本问题之一。关于数学对象或一般抽象对象的存在,有许多立场可取。而讨论时常常出现一种谈话,大致是这样:有些人觉得谈论数这类抽象对象的存在有问题,似乎希望能对数或别的抽象对象的存在给出一种说明,更像桌子、椅子、石头那样的存在。也就是说,有一种把数学存在还原为我们在现实世界里能够物理经验到的东西的渴望。
我对这种尝试的态度是:它完全搞反了。因为我认为我们对物理对象的本性并没有那么清楚的理解。我们都有在物理世界里存在的经验,这是必然的,因为我们确实存在于物理世界;但我不知道有任何令人满意的说明,能讲清物理地存在是什么意思。假如我请你想象某种蒸汽机车,我描述它的工程设计、重量、齿轮联动的构造,给你看整套设计的示意图,我们把这台机车的每一个细节都谈透了。谈完之后我说:现在请你告诉我,它物理地存在,而不只是一台想象中的机车,那会是什么意思?你能说什么呢?除了说「我是指它存在于物理世界」。可那是什么意思?这正是问题所在,它不是问题的回答,它就是问题本身。所以我不认为关于物理存在的本性我们能说出任何理智的东西,这是一个深刻的谜。而且我们知道的物理越多,它越神秘。牛顿物理学时代,人们把物理对象想成小台球之类的东西,或者无限可分的东西;原子论推翻了这幅图景;然后我们发现原子可以分裂,由电子、质子、中子组成,图景又被推翻;然后发现这些东西又由夸克和轻子组成,天知道还有什么在后头。而且所有这些东西,其存在的本性其实是概率云中的波函数。我们学得越多,它越神秘,毫无澄清。要说清「我桌上有一个苹果」归根到底是怎样一种物理存在,我认为我们完全给不出说明。
相反,我们对抽象存在的本性似乎有一种令人满意得多的说明。我可以谈空集的本性,它是那个永远不为真的谓词之类的东西,我可以谈它的逻辑性质,谈空集的单点集等等。当然走得很远之后也很困难,但要点在于它不会越来越神秘,你说得越多,它只会越来越清楚。所以在我看来,我们并不真正理解物理世界是什么,倒是在抽象世界里,存在要清楚得多。我们其实对汽水瓶或蒸汽机车一无所知,只是因为能碰它们;我们把它们拟人化,这有时还会让我们上当,因为摸它的时候我感觉不到量子力学。于是很容易觉得这些是真实的,而数学对象不是。我的论证正好相反。
数存在吗?我碰巧认为存在。我站在数学实在论一边,我认为这些抽象对象有一种真实的存在,可以用我刚才试图描述的方式来说明。至于四是不是「有四个元素的集合的大小」,理解四的本性有不同方式,这就进入了结构主义的问题。
结构主义是数学哲学中的一种立场,强调数学对象重要的不是它由什么构成、其实体或本质是什么,而是它在数学结构中如何起作用。我所谓的结构主义态度是:我们只应在同构意义下关心数学结构。如果我有某种数学结构,用不同的个体作元素做出它的一个精确复本,那么这个同构复本在数学上同样好,用它代替原结构不会产生任何重要的数学差别。换句话说,数学结构中个体的实体,对该结构的任何数学性质都无关紧要。所以问「数字四究竟是什么」是一个反结构主义的问题:如果你有自然数结构,0、1、2、3、4 都在里面,我可以把四换成别的东西,比如这瓶水就可以在该结构里扮演四的角色,结构仍是同构的,对任何数学目的来说,用这个替代系统都毫无影响。这就是说,我们不关心四究竟是什么,那是无关的。唯一要紧的是四在给定数学系统中有哪些性质,并且认识到该系统还有其他同构复本,那些系统里的四与这个系统里的四,就任何关于四的重要问题而言,性质完全相同。但那些问题不会是关于本质的。在这个意义上,结构主义是数学里的反本质主义。可以把数看作指向某种深层结构的指针,因为结构主义的一部分要点是,孤立地考虑数学对象没有意义,数学对象有趣、重要的地方在于它们如何彼此互动、在一个系统里如何行为,所以要考虑对象在更大结构里扮演的结构角色。
弗雷格在研究数的本性时问过一个著名的问题。在他的逻辑主义纲领里,他要把全部数学还原为逻辑,其间他援引了康托尔-休谟原理:两个集合等势当且仅当它们元素个数相同。他把数的理论建立在这条原理上,却认识到有一点让他不满意:康托尔-休谟原理似乎没有给出「哪些东西是数」的判据,它只给出两个数何时相等的同一性判据。两个数相等,当且仅当相应大小的集合等势,这是数的同一性判据,却不是「什么是数」的判据。这个问题后来被称为凯撒问题,因为弗雷格说,从休谟原理我们似乎没有办法判断尤利乌斯·凯撒是不是一个数。他问的是数的本质。人们感觉他大概是有意挑一个荒谬的例子,因为你会觉得凯撒显然不是数,许多哲学著作似乎也持这条线。但结构主义者不同意。结构主义的态度是:你给我一个数系,如果凯撒不是数,那我把 17 从系统里拿出来,把凯撒放进那个位置,现在我有了一个新的数系,凯撒恰好就是 17。这完全没问题。结构主义的要点在于,凯撒是不是数这个问题与数学无关,因为它不关乎结构,只关乎数学对象的本质。这就是结构主义对弗雷格的批评。
哪个更真实,我们眼睛看到的实在,还是数学定理表达的实在?我不太确定。我完全住在柏拉图领域里,对物理宇宙一点也不理解,所以没有强烈的看法。柏拉图领域是真实的吗?完全是。这就是数学实在论的立场:抽象对象有真实的存在,意思是存在某种意义上的存在,这些对象在其中可以被视为真实的。抽象对象是否存在于某个地点、某个时间?这很有争议。它们存在于所有时间。
我不会说数学的柏拉图领域更真实,我说的是,我们对它的真实性的理解深刻得多、可信得多。我不认为我们对物理实在的本性理解得有多好,而且我认为大多数人甚至没有触及我想问的那个问题的表面。当然,我们「理解」物理实在:我敲敲桌子,我们知道开生日派对、喝一杯马提尼是什么样。我们对在物理世界里存在有深刻的了解。但「理解」也许不是对的词,我们有的是在这个世界里生活、骑自行车之类的经验,我不认为我们真的有理解,对物理存在的本性理解得极少极少,那是一个深刻的谜。而对数学存在和抽象存在的本性,我们的理解要好那么一点。也许我可以希望有人给出令人信服的说明,但在我看来它是深刻的谜,我甚至想象不出对物理存在给出说明会是什么样子。一千年后物理学进步了,这场谈话会是什么样,那会很有意思。
我一脚在数学,一脚在哲学,比较这两门学科的差异很有意思。文化差异很多,其中一个大的差异是对学科进步的看法。数学有巨大的进步。我们对数学观念的理解好得多得多,不断改进,知识在增长。我们今天对无穷的理解比一百年前肯定更好,而一百年前又比之前几千年更好。数学几乎每个部分对核心问题的理解都在提高,以至于手头的问题变得完全不同,领域转向更困难、更有趣的问题。而在哲学里,说有进步也有一点对,但同时也有那些几千年来一直伴随我们的永恒问题,以至于你能找到许多哲学家主张,哲学的重要贡献在于提出问题而非回答问题,因为回答是无望的,这些深刻的哲学问题的本性太难了。我想说的是,进步感更弱。
我看不出有什么理由认为数学的进步、数学理解与知识的增长不会继续下去。一千年后,他们做的数学大概我完全认不出来,不经历中间的发展,我也许根本无法开始理解他们在说什么。把古代的人带到今天,他们也许听不懂我们在讨论的一些问题。但我觉得,假如阿基米德来了,我们能够交流,我能告诉他数学现在在发生的一些事情,那个时代的任何人都可以。所以即便学科随着进步而离开了早先的关切,这种进步仍然是可能的。
MathOverflow 真是我人生的一大乐事。我从中学到了太多。我 2009 年就上去了,那时它刚开始不久,虽然不是一开始。网站会统计你打了多少字符,我不知道是几百万,反正花了大量时间思考那些问题,这对我来说一直是奇妙的经历。任何我觉得有趣的问题都吸引我,当然不是所有问题,有些类型的问题就是不太吸引我。
我刚加入 MathOverflow 时,基本上是少数几个回答问题的逻辑学家之一。有别的人懂一些逻辑,特别是范畴论及其他不那么传统的逻辑相关领域的人,他们也回答一些逻辑问题。所以在最早的日子里,我通过参与逻辑相关的问题做出了贡献。不过提问的逻辑学家也不多。我发现的是,人们对逻辑邻近的话题有巨大的兴趣:问题出现在群论里,却带有逻辑的一面,或者在分析里,总有一个逻辑的角度。我发现只要学够那个领域的东西,我往往能想出答案。这是最让我有收获的地方,因为我必须学。我的主要专长是逻辑,可有人在另一门学科里问关于选择公理或连续统假设的问题,我就得学够那门学科和问题的背景才能回答,而我常常做得到,也很乐意。这样我学到了很多,因为必须了解那些别的问题领域,它让我作为数学家极大地成长。
我回答过的问题包括:有哪些听起来合理却独立于 ZFC 的命题?教学中最有误导性的替代定义有哪些?大学里教的分析其实是可定义数的分析吗?连续统假设的解答?选择公理最反直觉的应用?证明平凡而结论不平凡的定理?归谬法还是逆否命题?棋子在数学上是什么?哲学是否曾澄清过数学?两个定理若一个蕴涵另一个,为何还算两个?
连续统假设是这样一个问题:一旦你证明了无穷不止一种大小,它就自然而然地冒出来。康托尔证明了实数的无穷严格大于自然数的无穷,可你一证明这一点,马上就想知道:中间有没有别的?还有什么问题比这更自然?康托尔问了,并用一生思考它。��续统假设断言:在自然数和实数之间不存在别的无穷。康托尔知道许多实数集。凡是落在那个区间里的东西,都会与某个实数集等势,而我们知道大量实数集:各种闭集、康托尔集、维塔利集,各种各样。你也许会想,如果连续统假设为假,我们大概已经见过那个集合了,只需证明它严格在中间。但结果是,对任何人能定义、能挑出、能观察到的所有实数集,它们要么是可数的(与自然数等势)或有限的,要么与整条实数线完全等势,从来不严格在中间。你面前有成百上千个候选集合,但每一个都能证明落在这一边或那一边,从不在中间。在每一个你能弄清的情形里,都从不严格在中间。
康托尔有一个证明它的纲领,在某种程度上已经得到了印证。连续统假设对开集成立,这很容易看出:一个开区间与整条实数线完全等势,任何区间都与整条线等势,你只需要一个函数,比如反正切函数,把整条实数线一一映入一个区间。所以非平凡的开集都与整条线等势,从不严格在中间。但了不起的是,康托尔对闭集也证明了这一点,用的是所谓康托尔-本迪克松定理。这个结果绝不显然,而且序数正是从这个定理里诞生的:康托尔为了让康托尔-本迪克松过程说得通,不得不发明序数。
一个实数集是开的,如果它包含的每个点周围都有一个小区间整个落在其中;而那个小区间本身就与整条线等势,所以开集的情形容易。闭集是开集的补集,而有大量非常复杂、大小各异的闭集。任何闭区间当然是闭集,但不止如此,还有康托尔集,通过去掉中间三分之一得到,也许有人见过这个构造。或者想象在线上到处随机撒下许多小开区间,合起来是一个开集,它的补集就是闭集。这些集合可能相当复杂,可以有孤立点,比如两个开区间恰好相接,中间只剩一个点;也可以有收敛到某点的序列,那也是闭集,或者收敛序列的收敛序列,等等。问题是能否产生一个具有中间基数的集合。康托尔对闭集证明了不可能:每个闭集要么可数,要么与整条实数线等势。
康托尔解决连续统假设的纲领是逐级向上:先开集,再闭集,然后往上走,进入所谓博雷尔集,即开集与闭集的各种组合,博雷尔复杂性有一个庞大的层级。结果表明,连续统假设对这个层级里的博雷尔集也得到了证明。然后还要往更复杂的集合走。实数集有一个复杂性层级,康托尔的想法是沿着层级往上爬,基于对先前情形的理解,对越来越复杂的集合证明连续统假设越来越成立。这已经被推进到了惊人的程度。不过要进入更高的领域,甚至只是在射影层级(用对实数本身的量词定义的集合,构成博雷尔层级之上的层级)这一层,就开始需要大基数假设了。结果是,如果有足够多的大基数,射影集也总是要么可数,要么与整条实数线等势。还可以试着往上走。我把过去五十年里的这些结果,都看作实现了康托尔一百二十年前的想法:通过对越来越复杂的集合建立越来越多的实例来证明连续统假设。但即便以我们现在所知,它也没有完全成功,也不可能成功,因为复杂性层级并不包括所有实数集,有些集合完全超出了这个层级。所以这个纲领永远不可能完全成功,尤其是考虑到独立性结果。
ZFC 公理是策梅洛 1908 年为他用选择公理证明良序定理而首先提出的。那还不是完整的 ZFC,只是策梅洛理论,缺一条替换公理,正则公理也是后来加的,加上之后才是策梅洛-弗兰克尔公理化,成为标准。还有一点:策梅洛原来的理论允许本元(ur-elements),即原子,那些不是集合、但我们用来构筑集合论宇宙的数学对象;而今天的集合论学者一般完全不用本元。我认为,正是结构主义哲学让他们省去了本元:如果你采用带本元的 ZFC,叫 ZFCU 或 ZFA,那么在这个带原子的集合论宇宙里存在的任何数学结构,都同构于一个完全不用原子的结构。作为结构主义者你不需要原子,因为你本来就只在同构意义下关心结构,而没有原子的理论更优雅、更清晰,原子就是不需要。所以今天谈集合论,一般谈的是无原子版本,ZFC 没有本元。我们表述 ZFC 公理,它表达了我们关于集合的本性和集合存在的主要原理。康托尔在十九世纪末提出连续统假设,此后它一直悬而未决,直到 1938 年。
这是希尔伯特世纪之初的二十三个问题里的第一问。希尔伯特在世纪之交那场著名的演讲里提出了这份清单,他认为这些问题可以指引未来一个世纪的数学,或者说值得考虑。今天人们是这么说的,但我完全不确定希尔伯特当时会以我们现在看待这份清单的方式来构想它。看着这个世纪展开,我们知道这二十三个问题确实引导了整个研究纲领,极其重要、极有影响。但在当时,希尔伯特没有理由认为会这样,他只是在做一场讲座,列出他认为非常重要的问题。所以我觉得更合理的想法是,他只是在列一批他认为极其有趣、重要、根本的问题,而没有背负指引二十世纪研究的沉重使命,虽然结果恰恰如此。
我们已经讲过希尔伯特对集合论的看法,那句「没有人能把我们从康托尔的乐园里赶出去」。我认为希尔伯特被康托尔说服了:连续统假设对数学基础至关重要,而数学基础是数学统一的关键发展。在集合论作为基础出现之前,数学有各门不同的学科,代数、实分析、拓扑、几何,各有各的公理。有时会发生这样的事:比如证明代数基本定理,即复数是代数闭域,任何多项式方程在其中都有解,可证明方法却来自数学的其他部分,比如拓扑证明。这怎么行呢?公理系统完全不同,却在一门学科里使用另一门的结果,除非有一门统一的底层学科,否则这是不融贯的。数学的统一由集合论这样的数学基础提供,在当时就是集合论。有一个单一的理论,把全部数学看作在其中进行,对于解决那种确实在发生的转移与借用现象至关重要。这一定是希尔伯特认为统一基础如此重要的部分原因,而集合论当时正扮演这个角色。当然今天我们有来自范畴论、类型论的其他可能的基础,还有单价基础,各种基础在竞争,不必只用一种集合论基础。不过在我看来,集合论作为基础的元数学分析极其成功,比其他任何基础成功得多,只是它不太适合计算机证明之类的事情,这是人们寻找替代基础的部分动机。所以关于希尔伯特,我认为他的动机是数学需要一个统一的基础,集合论正在扮演这个角色,而连续统假设是如此核心、根本的问题,他把它放进清单是很自然的。
清单上还有别的与逻辑相关的问题,比如希尔伯特第十问题,关于丢番图方程:他要求给出一个算法,判定给定丢番图方程是否有整数解。丢番图方程是一种听上去高深、其实容易理解的东西:多项式方程,只不过不是一个变量而是多个变量,整系数多变量多项式,你想知道它能否求解。希尔伯特的表述是要求提供一个算法,他预设了算法存在,只想知道它是什么。而问题的解决方式是证明不存在这样的算法。它像停机问题一样是不可判定的问题:不存在可计算的程序,能正确判定给定多项式方程是否有整数解。这是一个相当了不起的进展。
这段历史真的很有戏剧性。康托尔在十九世纪末提出问题,然后完全悬而未决。希尔伯特在二十世纪之交问起它,没有人有头绪,直到 1938 年才有答案,那是四十年之后。库尔特·哥德尔证明了一半:如果集合论公理一致,那么存在一个集合论世界,其中选择公理和连续统假设都为真。他所做的,是构造出所谓可构造宇宙,哥德尔的 L。这与他回答选择公理安全性问题是同一个结果,对连续统假设也一样,它们在他得到的同一个集合论宇宙里为真。结果就是:如果不含选择公理的 ZF 一致,那么 ZFC 加连续统假设也一致。1938 年。这是一个美得惊人的论证,因为他在建造一个替代的数学实在。证明的结构是这样的:如果有任何数学实在、任何集合论世界,我们就在其中建造另一个,一个分开的、可能不同的世界。也可能与原来那个相同,如果我们一开始就在他建造的那个世界里,它就是相同的,但没有理由假设它相同。他有一种模型构造方法,建出这个替代的集合论实在,即可构造宇宙,然后证明选择公理在那里为真,连续统假设也在那里为真。真是漂亮的论证。
这只是独立性的一半。哥德尔基本上表明连续统假设不可反驳,但这不等于证明它为真。他表明的是:如果不带连续统假设的集合论一致,那么带上它也一致,这与证明它为真不是一回事。另一半直到 1963 年才到来,保罗·科恩发明了力迫法(forcing),证明如果存在集合论的模型,那么存在一个连续统假设为假的集合论模型。科恩也给了我们一件极其有力的工具来建造替代的数学实在,我是这样看的。他向我们解释了如何取任何一个集合论世界,建出另一个不同的、其中连续统假设为假的世界,即力迫扩张。可以说力迫法是一种从一个数学宇宙逃到另一个、或者扩展它、改变它的办法,你在数学宇宙之间旅行。我正是这样想的。
科恩和哥德尔的结果,这些产生替代集合论宇宙的方法,教训是什么?我们看到连续统假设和选择公理独立于其他公理,但不只是这两个。我们有成千上万个独立性结果。实际上,无穷组合学里几乎每一个非平凡的命题都独立于 ZFC。这是事实。不是普遍成立,有一些极其困难、极为突出的结果是在 ZFC 里证明出来的,但大体上,你问一个关于无穷基数的非平凡问题,它很可能独立于 ZFC,而我们有成千上万个力迫论证来确立这一点。该怎么看待这件事?一方面,如果你有一个理论,它回答不了任何你感兴趣的问题,那意味着什么?如果你持我所谓的宇宙观或一元论观点,你自然会说:ZFC 是个弱理论,真正的集合论实在就在那里,我们需要一个更好的理论,因为现在这个回答不了问题,什么都独立。如果你认为每个集合论问题都有确定的答案,存在唯一的集合论真理或唯一的事实,这就是宇宙观,这样想相当合理。
独立,就是既不能证明也不能反驳。有人觉得最有意思的东西大多被证明独立于 ZFC 是一件令人悲伤或创伤的事。这让我想起我在伯克利读研究生时,另一位研究生跟一位非逻辑方向的教授做 C* 代数之类的东西,属于分析或泛函分析。他们研究一个问题,结果发现它独立于 ZFC。那位教授的态度是:看来我问错了问题。而我和所有集合论学者的态度是:当你问的问题结果独立时,你问的正是最对的问题,因为这是在沿着自然的关节切分。你通过找到两个领域来裁定集合论实在的本性,你发现了一个二分:有它为真的世界和它为假的世界。问出这样的问题值得庆祝,它意味着你问了最对、最有趣、最迷人的问题。它不是一件凄凉的事,「既不能证明又不能反驳,真是灾难」,相反,它意味着你发现了数学实在中的一道裂隙,每当发生时知道它是好事。
对于独立于 ZFC 的东西能做什么?首先,由于不完备定理,我们知道对任何写得下来的理论,都有它证不了的真命题,那些东西会独立。所以我们已经意识到,对我们写下的任何理论,总会有独立现象。而且其中有些理论,我们甚至证不了它们一致,比如自身理论的一致性。这叫一致性强度层级。哥德尔第二不完备定理的直接推论是:对我们能写下的任何理论,其上都耸立着一座极高的一致性强度之塔,更强的理论不只是多加一条公理,而是加上一条连其一致性都无法在层级的先前各层中证明的公理。我们何其幸运,找到了大基数公理,它恰恰体现了这种一致性强度递增的特征,一个无休止、极高的公理一致性强度层级,正好实现了哥德尔定理对这类事情的预言。只不过大基数层级中的公理不是哥德尔分析里有时出现的那种元逻辑自指命题,而是宣告大无穷存在的公理。这是一个非常受欢迎的发展。可我们也知道,连续统假设独立于所有已知的大基数公理。没有一条大基数公理能解决连续统假设。所以对连续统假设和前面说的基数组合学而言,独立现象仍然存在。我们在建造一座越来越强的公理系统的层级,比 ZFC 更强,再更强,再更强,永远继续,永远完不了。而直到今天,连续统假设仍未被任何大基数公理解决。
这是我的多宇宙观的一部分。宇宙观认为,所有这些问题都有事实的答案:如果你持宇宙观(我不持),你会认为连续统假设问题有正确答案,大基数问题也有正确答案,我们应当致力于找出那唯一真正的集合论。相反,我把过去半个多世纪集合论的发展看作证据,表明并不存在这样一个唯一的集合论实在。几十年来我们做的,是产生越来越多替代的集合论宇宙,基本真理在它们之间各不相同。而这就是对连续统假设问题的回答:给定任何集合论模型,都有一个力迫扩张使连续统假设为真,另一个使它为假。你可以像开关电灯一样把它打开、关上。这就是连续统假设的根本性质:在一个非常相近的集合论世界里,你可以要它,也可以要它的否定。不管你碰巧住在哪里,都有一个相近的世界 CH 为真,一个相近的世界 CH 为假。这本身就是一种回答。它不是一元论的、宇宙观的回答,而是多元论的回答。这把我引向了集合论的多宇宙观和多元真理观:集合论真理的根本性质具有多元的品格,基本术语没有单一的意义,而是有一系列真理各异的替代集合论宇宙可供选择。
首先应该说,集合论哲学里的这些立场,多宇宙观也好,宇宙观也好,我们在数学上从不分歧,大家对定理是什么意见一致。分歧在于对底层意义或语境的哲学看法,或者说,数学哲学究竟是干什么用的。回顾历史,比如牛顿和莱布尼茨的微积分时代,他们用无穷小的概念发展了微积分,而那些基础被贝克莱主教等人狠狠嘲笑:这些转瞬即逝的增量是什么?我们不该叫它们「逝去量的鬼魂」吗?我认为那套基础在当时确实完全可疑,无穷小微积分的基础直到二十世纪五十年代左右,随着罗宾逊的非标准分析才变得严格。我想说的是:要在数学上取得持久的洞见,是否需要一个稳固、严格的数学基础?答案,遗憾地,似乎是不需要。在微积分里,牛顿和莱布尼茨用那套糟糕、吱呀作响、连理解都算不上的无穷小基础,证明了微积分的所有基本定理,在早期就获得了所有主要洞见。这告诉你,基础观点对数学的发展、进步和洞见有多大的相关性。因为我把微积分早期的那些发展看作真正的数学,极其重要、极富洞见,尽管以今天的标准,那些基础一点也不好。
所以在集合论哲学里,宇宙观与多元论之争,我的看法是,哲学视角的选择与数学发展本身并不直接相关。它告诉我们的是:集合论该往哪儿走?我们应该研究什么样的集合论?应该问什么样的问题?如果你有宇宙观的心态,你会被推着去寻找并阐明那唯一真正的集合论宇宙的本性。我认为这一点在休·伍丁(Hugh Woodin)的工作中得到了很好的印证,他是持宇宙观的最杰出的数学家和哲学家之一,有他的终极 L 理论等等。他也是我的博士导师,在这个根本问题上我们有分歧,这也是一段个人故事。他有一个非常强大、成功的研究纲领,力图给「寻找唯一真正的集合论宇宙的本性」这件事站稳脚跟,这驱动着他提出的问题和追求的数学纲领。而如果你像我一样持多元论,你会被引向关于不同集合论宇宙之间互动的问题,或者想理解集合论模型与其力迫扩张之间的关系。
这引出了我所谓的集合论潜在主义:以潜在主义的方式看待一个集合论宇宙。不是直接在潜无穷的意义上,因为这些宇宙里已经有无穷集合了,而是在「可以有更多集合」的意义上:通过力迫或向上扩展,宇宙可以更宽、更高。我们想理解这个集合论宇宙领域的本性,这是相当激动人心的工作。我和贝内迪克特·勒韦证明了一些关于力迫的模态逻辑以及末端扩张下集合论潜在主义的定理,我在这个题目上做了不少工作。我还与贡特尔·富克斯以及我自己的博士生约纳斯·赖茨一起,开创了集合论地质学这个题目。它取的是力迫的隐喻:在力迫里,你有基础模型和力迫扩张。我刚开始和约纳斯合作时,他说:我想撤销力迫,我想往回走。我起初说:约纳斯,不是这么玩的,你从基础模型出发,往外走,走到更大的那个,力迫就是这样运作的。他说:不,不,我就想往回走。他相当执着。最后我说:好吧,我们认真做。于是我们坐下来,更精确、更仔细、更深入地思考:取一个集合论宇宙,看看它是从哪里经由力迫而来的。这在当时是看待力迫的新方式,有点像对力迫做逆向工程。力迫是产生新宇宙的方式,你可以从某处出发走到新宇宙,也可以看看自己所在之处,说:我是过去做了那件事才到这里的。我们定义了基岩模型和地基等概念,也就是撤销力迫,成果相当丰硕。我把它看作多元论视角的一部分,不同之处在于,集合论地质学也适用于宇宙观。虽然这项工作受多宇宙哲学观启发,地质学的核心思想现在却被持宇宙观研究纲领的人接了过去,因为集合论地质学正在帮助他们,或者说帮助我们,发现唯一真宇宙如何与它的地幔相关联。我曾引入集合论地幔这个概念,以一种极有意思的方式。历史上这挺好笑的:一个完全从多元论观点里生长出来的研究纲领,最终被宇宙观的研究纲领以相当重要的方式接了过去。
你能在通过力迫到达的世界里证明某件事,然后带回基础模型吗?完全可以,而且这是非常有力的论证方法,人们常常想这么做。假设你处在某个集合论语境里,可以想成住在一个集合论宇宙中,你只想在这个宇宙里证明某件事。一种办法是先构造力迫扩张,利用力迫扩张的特征,认识到某些事情在基础模型里就必定已经为真,然后把力迫扩张扔掉。举一个更初等的例子:想想早年人们在真正理解复数之前用它们推理的情形。他们有想解的代数方程,有解方程的工具和方法,但过程中要对多项式做各种操作,改变因子,产生别的多项式并求解。有时在构造中途,他们会遇到负五的平方根之类的东西,他们不知道这是什么意思,只是符号性地做下去。最终,由于他们的方法,这些东西会合并、抵消,所有复数部分都抵消掉,得到一个实际的答案,比如三加根号十七,可以检验,它确实是原方程的解。这对他们一定很困惑:从一个纯粹关于实数的代数问题出发,沿着方法前进,穿过负数平方根的荒谬之地,最后得出一个可以验证正确的实数答案。我看刚才描述的力迫论证也是如此:你从集合论出发,进入力迫扩张这个荒谬之地、想象的世界,在那里论证,然后回来,在基础模型里得出结论。这是极美的论证方式。
超实数系(surreal numbers)是约翰·康威引入的一个美得惊人的数学系统。康威是这个世上最伟大的数学家之一,愿他安息。我非常欣赏他做数学的思考风格,超实数系就是一个好例子。我把超实数系看作一个统一所有其他数系的数系。它扩展实数,不只是实数,还有自然数、整数、有理数,以及序数和无穷小。它们全都坐在超实数里面,这是一个庞大的数系,它甚至不是一个集合,而是一个真类,因为它包含所有序数。但它由一条规则从无中生成。规则是:我们分阶段生成数,一个超限的阶段序列。在每个阶段,取目前已有的数,以所有可能的方式把它们分成两个集合,左集和右集,使左集里的每个数都小于右集里的每个数;那一刻,我们创造一个新数,填进 L 和 R 之间的空隙。就这样。
例如,一开始我们没有任何数,什么也没创造。我们可以取「无」,把它分成两个集合:空的左集和空的右集。空集里的每个数都小于空集里的每个数,因为这是空洞的真命题,所以条件满足,我们应用数的生成规则,创造一个新数。这就是我所谓的数的大爆炸,超实数的创世,数字零诞生了。零是第一个出生的数,它大于空集里的一切,小于空集里的一切。现在有了零,可以定义新的空隙:把零放进左集,右集为空,就该创造一个大于零、小于空集里一切的新数,叫作一。同一阶段,也可以把零放进右集,得到第一个小于零的数,叫作负一。现在有三个数:负一、零、一,它们有四个空隙:负一以下,负一与零之间,零与一之间,一以上,于是创造这四个新数。一以上的第一个数叫二,零与一之间的第一个数叫二分之一,负的一侧则有负二分之一和负二。现在有七个数,八个空隙,下一个「生日」(人们这么叫每个阶段)就诞生这些空隙里的所有数,然后再下去。随着日子推进,数越来越多,但这些只是有限的生日,因为这是超限过程。到第 ω 天,即第一个无穷天,会创造大量新的超实数:每个实数都在这一阶段诞生,因为每个实数都填补了此前诞生的有理数之间的一个空隙。其实有限阶段诞生的并非全部有理数,只是分母为二的幂的有理数,即二进有理数。所以实数都在第 ω 天诞生,但那天还诞生别的数:序数 ω 本身,是第一个大于所有有限数的数;负 ω 是第一个小于所有有限数的数;还有数 ε,第一个严格大于零、严格小于所有正有理数的数,它是那个空隙里的无穷小。第 ω 加一天又有新数,然后 ω 加二,数就这样永远涌现。
然后可以用一种与这个递归定义相配的自然方式定义加法和乘法,得到超实数上加与乘的递归定义。可以证明它们使超实数成为一个有序域:满足域公理,加法和乘法满足分配律和交换律,每个非零数有倒数,可以加减乘除。而且可以开平方,而且每个奇次多项式都有根,这在实数里成立:想一个三次或五次多项式,它必然穿过横轴,因为奇次多项式在两端无穷处行为相反,正的一侧趋向正无穷,负的一侧趋向负无穷,所以必然穿过。实数里每个奇次多项式有根,超实数里也如此。这使它成为所谓实闭域,一个非常好的数学理论。我们能在超实数里找到所有那些数系的复本,这真的很有意思。
不过超实数有一个根本的不连续性。它们构成实数域的一个非标准模型,提供了一种无穷小的概念,可以在罗宾逊非标准理论的基础上发展微积分。但它们对子类不满足最小上界性质:没有任何非平凡的超实数集有最小上界,超实数里也没有收敛序列。所以基于极限和收敛的普通微积分方法在超实数里完全不管用。这就是我说超实数根本不连续的意思。但你仍然可以用它们做微积分,因为你有无穷小,只要用非标准的、基于无穷小的方法,有人就这么做。
我曾在纽约组织过一次会议,康威是演讲者。问答环节有人问他,我觉得这有点失礼,在那么公开的场合我绝不会这样问:你一生最大的失望是什么?康威非常有风度,他回答说:超实数。不是超实数本身,而是它受到的接纳。他曾抱有雄心,让超实数成为整个数学和科学中使用的基本数系,因为它能做非标准分析,能做微积分,统一了序数等等。它是如此统一、如此惊人的美妙结构,周围满是优雅的证明和精巧的想法。他失望的是它从未真正达到他所期望的那种统一地位。高德纳曾努力推崇它,也没能扎根。不过我不想让人以为超实数不被广泛研究,研究它的人有成千上万。超实数的世界级专家之一菲利普·埃利希曾对我说,在这件事上康威是他自己最大的敌人,因为在康威的风格里一切都是游戏,他把超实数当作一种玩物、玩具,也许这让人们不把它当真。而我认为它极其严肃、有用、深刻,我一直在为我的 Substack「Infinitely More」写一整个系列关于超实数的文章。我觉得整个题目太迷人、太美了。当然,我没有把它用在工程上,那也许是康威雄心的一部分。
康威把一切变成游戏,这一点很有意思。生命游戏是对元胞自动机的探索,元胞自动机是一扇通向我们尚未探索的世界的门。生命游戏是可计算不可判定问题的游乐场。事实上可以证明,给定一个格局,问某个特定的细胞是否会在演化中活过来,这个问题是可计算不可判定的,它等价于停机问题。它是半可判定的:如果它会活过来,你在某个有限阶段就会知道,只要运行生命游戏的算法,它活了你就能说它活了。但如果你跑了一千年它还没活,你似乎没有任何依据说「不,它永远不会活」,如果行为非常复杂的话。也许你对演化行为有完全的理解时能说不,但可以证明你不会总有这种理解,正因为这个问题等价于停机问题。
我认为可计算性理论的主要教训是:你永远不可能通过看程序来彻底理解程序的行为,在最一般的情形下,你从程序中学到的内容总是只能靠运行它、观察它的行为得到。证明这一点的是赖斯定理,它让这个想法完全站得住。
不过我想绕个弯,谈另一个问题:随机程序的行为是什么?你有某种形式的计算语言,考虑某个大小的所有程序,也许只有有限多个。能否对随机选取的一个说点什么,比如它以某种概率具有某种行为?答案非常有意思。多年前阿列克谢·米亚斯尼科夫问过我一个问题。他有一个概念,叫带黑洞的判定问题:一个判定问题在最坏情形下可能很难,但难度集中在一个极小的区域,叫黑洞,黑洞之外非常容易。这种问题拿来做加密方案是很糟糕的,你不想用带黑洞的问题,因为如果有人百分之九十五的时候都能抢银行,那不是你想要的,哪怕任何不可忽略的比例都太危险。所以不要用几乎每个实例都容易解的问题作加密的基础。阿列克谢问我的是:停机问题有黑洞吗?
取标准的图灵机模型,单向无穷纸带,带上写零和一,读写头来回移动,进入停机状态时停止。我们证明了确实有黑洞。意思是:存在一个计算机程序,能正确判定停机问题的几乎每一个实例。尽管停机问题不可判定,我们能判定几乎每一个实例。更精确地说,存在一个图灵机程序的集合,我们能轻易判定一个程序是否在这个集合里,对集合里的程序,我们能轻易判定停机问题;而且几乎每个程序都在这个集合里,意思是随着状态数变大,集合中程序的比例趋于百分之百,渐近密度为一。
证明相当有意思。这是那种定理听起来令人吃惊、对可计算性专家也是如此的情形,能解决停机问题的几乎所有实例,听起来很诱人。可一听证明就完全泄气了,听完证明没人喜欢这个定理。证明太简单了。图灵机有一条无穷纸带,机器在上面写零和一,读写头按刻板的指令来回移动。指令都是这种形式:如果机器处于某某状态、读到带上某某符号,就在带上写这个符号,转到指定的新状态,并按指定向左或向右移动。程序就是一组这样的指令。其中一个状态是停机状态,进入它程序就停。你可以计算有多少程序没有任何指令转到停机状态,这个比例很容易算,极限是 e 的平方分之一,百分之十三点五。这些程序显然永远不停,因为它们停不了,没有任何指令说停。所以百分之十三的程序,你看一眼就能说它们不停。这是不停机的一个愚蠢理由。我最初的观察就是这个,我想,这就是证明策略:这是程序不停机的一个愚蠢理由,我只要把能想到的愚蠢理由堆起来,堆到超过百分之五十,就可以说「大多数」。
我们又想了想,中了头彩:找到了一个巨大的愚蠢理由,极限收敛到百分之百。理由是这样的。想想机器的行为:读写头一开始停在纸带最左端的格子上,处于起始状态,执行一条指令。指令说:当你处于起始状态、读到带上某个符号时,写点什么,转到新状态,向左或向右移动。可其中一半是向左移。如果向左移而你已经在最左端,读写头就掉下去了,计算停止,因为头掉出了纸带。这是个相当愚蠢的理由,但光这样就已经是一半了。然后有些向右移了,转到了新状态。其中又有一半从那里向左,一半向右,而且大多会转到新状态:状态很多时,转到的下一个状态很可能是新的。于是得到一种随机游走的行为,每一步一半向左一半向右。波利亚有一个定理,叫波利亚常返定理:一维随机游走非常可能回到出发点。而对我们来说,一旦回到出发点,其中一半下一步就掉下去了。用这种分析可以证明,随机图灵机以概率一的行为是:读写头在重复任何状态之前就掉出了纸带。这就是解决停机问题的那个愚蠢证明。因为一旦发生这种情况,我们就能回答停机问题:不,计算停止是因为机器崩溃了,不是因为停机,按某些说法这不算停机;或者你想把崩溃定义为停机也行。不管你怎么设定形式体系,对头掉出纸带的机器行为,你都能回答问题。
所以在统计意义上,在极限下,我们解决了停机问题,可计算地解决了。但停机问题本身不可能在所有情形下被完全正确地解决。这是概率意义上的:我们可计算地解决了几乎所有实例。从复杂性理论的角度,有更有意思、也实际有用的版本。有整个 P 与 NP 问题,有一类 NP 完全问题,它们不可行,用普通办法需要指数时间,而且不知道是否多项式时间可解,是否存在可行算法是开放问题。对大多数 NP 完全问题,可以证明存在多项式时间的近似算法,在可行的时间内解决几乎所有实例。比如背包问题、装箱问题、可满足性问题等等,取决于你如何设定形式体系,可以证明这一点。我证明过许多这样的实例,我也认为这对几乎所有 NP 完全问题都普遍成立。这些困难问题在工业应用中很重要,是我们真正想解决的问题,而我们可以有可行的算法解决它们的几乎每一个实例。
有时有人问 P 与 NP 会不会是独立的,对逻辑学家来说这是个有意思的问题。当然,如果你考虑独立性,得说明相对于哪个理论,因为相对于一个极弱的理论,每个命题都是独立的。孤零零地说「它独立」没有意义,独立只能是相对于某个理论。
我对 P 与 NP 的看法是:它当然是关于这些问题渐近行为的理论问题。一个问题属于 P,意思是存在一个可计算的判定程序,运行时间以某个多项式为界。但那个多项式的系数可能极大,次数可能极高。所以对小的输入,相对于我们一生、乃至人类文明存续期间会给它的输入范围,谈论多项式时间的可行性没有意义。因为它是渐近性质,只有当输入大小趋于无穷时,P 或 NP 才有意义。也许应该记住这一点,因为有时会看到一些夸大的说法:如果 P 等于 NP,那对人类文明将极其重要,意味着我们将有可行的算法解决 NP 中那些极重要的问题,给人类社会带来巨大财富,成为新技术和新产业的基础。人们说这种话,但你得用这样一个认识来节制它:由于问题本身的渐近性质,P 等于 NP 或 P 不等于 NP 根本不关乎这些实际的事。这是一方面。另一方面,我们已经有那个算法了,本来就可以用,只是它糟糕透顶,涉及难以置信的编码量。再一方面,我们已经有近似算法,从实用角度解决了人类文明的实际工程问题。比如 SAT 求解器在大量情形下表现惊人,尽管我们可以证明,如果 P 不等于 NP,就不会有多项式时间的 SAT 求解器,可实际的近似 SAT 求解器真的相当惊人。
谁是史上最伟大的数学家?这是一个极难回答的问题。我个人其实不这样想,不按伟大程度给数学家排名。如果非要我选一个,大概是阿基米德,因为他在那么早的时代取得了那么惊人的成就,完全超越了同时代的其他人。但我也持这样的看法:我想从任何能提供数学洞见的人那里学习,无论在哪里找到,而这并不总是来自伟人。有时伟人做的事只是第一个做,别人本来也很容易第一个做到。回头看那些成就,有一种运气的成分。而且由于我们前面谈过的数学进步的问题,我们今天确实比过去理解得好得多,回顾那些成就时也许可以想象,别人也可能有那个洞见,也许真会有。不同的数学家在差不多同一时间证明本质上相似的结果,这已经是一个众所周知的现象,只不过先做的人得到荣誉。这相当常见。我认为某些想法在空气中,被人思考着但没有被完全阐明,这就是知识增长的本性。想法从哪里来,我并不真的知道。
我作为数学家的风格是,我其实不喜欢困难的数学。我爱的是简单、清晰、容易理解、却证明出惊人结果的论证,那是我最喜欢的情形。至于结果是不是新的,对我来说反倒没那么重要。这和伟人、谁先做的问题有关。比如你用一个糟糕或复杂的论证证明了一个新结果,那很好,你证明了新东西。但我仍然想看到美而简单的那个,因为那是我能理解的。而且我对任何复杂的论证天然怀疑,因为它可能是错的。如果我不能完全理解它,不能把每一步同时装在脑子里,我就担心它也许错了。所以有的数学家卷入庞大的研究项目,涉及大量运转的部件和汇集在一起的各种技术,我说的是数学技术。现在越来越多地还有 Lean 这样的程序语言,让一些部分自动化。那是另一个问题,经过 Lean 验证的东西也许不那么容易受怀疑。我想的是那些论证极其复杂的情形,我会担心对不对,而我喜欢简单的东西。所以从这个角度,我往往做一些稍微偏离别人研究热点的东西。我的好奇心把我引向简单。我想做我能理解的东西,幸运的是,我发现我以这种风格做出的贡献别人似乎也喜欢,从这一点看我相当幸运。
我的过程始终是一种游戏式的好奇心,我也一直这样建议我的学生。每当有一个想法或题目,我就拿它玩,改动一些小地方,或者理解一个基本情形再把它复杂化,往这边压一压,或者把想法用到相关的、我最喜欢的例子上,看看会发生什么。你就是拿想法玩,这常常带来洞见,洞见又带来方法,很快你就在问题上取得进展了。这基本上就是我的方法:摆弄想法,直到看见一条通向有趣东西的路,然后证明它。这对我一直非常有效,我对这个方法相当满意。
拟人化的思想实验是我的基本工具,我一直在用。你把一个集合论模型、一个 ZFC 的模型想象成你住的地方,你可以通过力迫旅行到远方,这是对正在发生的事情的一种隐喻。当然实际论证根本不是那样,没有土地,你也没在旅行,但你允许自己的头脑那样去看。它帮助你理解,尤其当论证的各部分彼此紧张时,你可以想象有人在打架;或者用博弈的方式想,两个玩家争胜。这种隐喻式的理解常常极有帮助,让你意识到:啊,敌人会把这个东西选成那样,因为那样更连续之类的,那我们就该做另一件事。它让你从拟人化中冒出的想法里认识到找到答案、证明定理的数学策略。
安德鲁·怀尔斯用七年磨一个数学史上最难的问题,陶哲轩则说撞了墙就换一个问题,之后再回来。怀尔斯证明了惊人的定理,费马大定理的结果不可思议。但那种孤立工作的风格与我的实践完全不同。对我来说数学常常是一种社交活动。我数过,我的合作者、各种论文的合著者正逼近一百人。任何人有想法想和我谈,只要我感兴趣,我就想和他合作,也许我们解决了问题,就有一篇合著论文。我取得数学进展的方式往往大量涉及与他人合作,而不只是自己干,我非常享受这一点。所以我个人永远做不到怀尔斯做的事。也许我错过了什么,也许我把自己锁在卧室里只做一个问题,就能解决它。但我倾向于认为不会。在 MathOverflow 上待了这么久,我得到了那么多想法,那么多论文从 MathOverflow 的来回讨论中生长出来。有人发一个问题,我回答其中一部分,别人又有想法,变成完整的解答,然后我们三个人合写一篇论文,这种事发生过许多次。对我来说,我享受这种社交的一面。而且不只是社交,在我看来这就是数学探究的本性:把数学想法呈现给别人,他们的回应帮助我学习,也帮助他们学习,我认为这是做数学的一种非常多产的方式。独自做数学,尤其是死磕一个曾击垮许多杰出头脑的问题,从外面看去可怕地孤独;但每个人都不同,有人是隐士,在独自的磨砺中找到慰藉。
至于格里戈里·佩雷尔曼拒绝菲尔兹奖和千禧年大奖,我想的是,数学里充满各种各样的人。我的态度是:无所谓,也许他们有好的数学想法,那我就想和他们交谈、互动。佩雷尔曼的情形,他是如此杰出的头脑,解决了这个极其著名、极其困难的问题,那是巨大的成就。但他对奖项有那些看法,我不完全理解他为什么拒绝。最伟大的那些数学家和科学家做这些事,接下这些问题,是出于热爱而非奖项或金钱,这一点我完全同意,我也持这种看法。这就是我成为数学家的原因:我觉得这些问题如此引人入胜,我用一生思考它们。不过要是我得了奖,那也很好。
当然,如果我们想真正客观地评判谁是最伟大的数学家,就需要一个客观的判据来评估各位数学家的相对实力和声望,所以当然应该用 MathOverflow 的积分。我还主张过,终身教职和晋升的决定应该以 MathOverflow 为依据。我女儿把她男朋友介绍给我时,我首先想知道他的国际象棋等级分,其次想知道他的 MathOverflow 积分。
无穷象棋太棒了。普通象棋在一块小得可怜的八乘八棋盘上下,而无穷象棋在整数棋盘上下,四个方向都无穷,但仍是棋盘格纹,棋盘上可以有棋子,我们允许无穷多个棋子。与有限的普通象棋的一个区别是,无穷象棋不从标准初始局面开始。有意思的情形是,你给出一个棋子已经复杂地布满棋盘的局面,然后问:从这个局面或那个局面开始会怎样?我们想做出具有有趣特征的局面,指数学上有趣的特征。
大概很多人熟悉「两步杀」这类棋题:白方走两步,第二步将死;或者三步杀、五步杀,对任何 N 都可以有 N 步杀的局面。而在无穷象棋里,你可以造出一个局面,它对任何 N 都不是 N 步杀,但白方有必胜策略,会在有限多步内赢。再说一遍:无穷象棋里有些局面白方一定能赢,白方一定会在有限步内将死对方,但不存在任何具体的 N 使白方能保证在 N 步内赢。白方会赢,但黑方控制需要多久。黑方注定要输,但可以说:我知道你会赢,可这次你至少得走一千步。换一种下法,黑方可以说:我知道你会赢,可这次你得走一百万步。对任何数,黑方都能这样说。这是非常有意思的局面。
无穷象棋的规则就是普通的棋子在这块无穷棋盘上移动,棋盘就是普通棋盘向所有方向无限延伸,没有边缘,没有边界。棋子的走法和你预期的一样:马照常跳,车沿着横线和竖线走,象沿同色斜线走,只是没有棋子挡路时想走多远都行。白兵永远向上走,黑兵永远向下走,吃子时斜吃。有几处与普通象棋不同需要注意。比如普通象棋有三次重复和棋规则,无穷象棋里我们直接去掉它,因为三次重复只是无限对局的代理。真正的规则是:无限对局为和棋,而不是三次重复为和棋,后者只是我所认为的真正规则的一种便利近似。所以唯一的获胜方式是在对局的有限阶段在棋盘上将死对方;如果你无限地下下去而没有做到,那就是和棋。而且没有升变,因为没有边缘。
我们刚才谈的那个局面的博弈值是 ω,意思是由于它有序数值,白方会赢,但黑方可以像从 ω 往下数那样下棋。从 ω 往下数是什么样的?如果你是黑方,要从 ω 往下数,你必须说出一个有限数,此后最多只能再数那么多次。所以从 ω 往下数的本性是,第一次数就迈出巨大的一步,之后每次减一。你不能从 ω 减一,因为那不是序数。所以从 ω 往下数,必须先到某个有限数,然后每次减一,那就是你还能走多少步。黑方能想拖多久就拖多久,就是这个意思,因为他可以随意选初始数。
我对无穷象棋的兴趣诞生于 MathOverflow,因为有人问了这个问题,是诺姆·埃尔基斯问的。构造满足这种性质的局面没有算法,这真正是数学创造性的行为。我有一位合著者科里·埃文斯,他是美国国家象棋大师,棋力很强,同时也是法哲学教授。我认识他是因为他在纽约城市大学读研究生,我当时在那里,而且我儿子小学时下竞赛象棋,科里是他的教练。那正是我开始对无穷象棋感兴趣的时候,我知道我需要一个懂棋的搭档,科里对那篇论文的贡献无可估量。因为无穷象棋的证明极其琐细,你创造了局面,可论证的细节是象棋式的推理,我的象棋推理不太够用。局面几乎都是我做的,但那是经过科里许多轮纠正之后的。他会来说:这个兵悬着,你的论证就破了;或者这个象能从笼子里漏出去。所以过程是:我大致知道按序数我们需要创造什么样的局面,努力做出一个大体有我想要的特征的东西,拿给科里看,他说这里那里不行,如此往返,对我帮助极大,最终我们收敛到正确的论证上。这篇论文的后续是科里、我和我的博士生诺曼·珀尔穆特三人合作的论文,我们改进了界。我们的目标是做出序数值越来越高的局面:最初的局面值是 ω,第一篇论文里做出了 ω 的平方和 ω 的立方,三人合作那篇做出了 ω 的四次方,论文标题就是《无穷象棋中博弈值为 ω 的四次方的局面》。当时这是已知最好的结果,之后被大幅改进了,现在我们知道每一个可数序数都是无穷象棋中某个局面的博弈值,这是一个了不起的结果。
关于人工智能和大语言模型在数学上越来越强,我想区分我们现在拥有的和未来几年可能出现的。我玩过,试过实验,但我发现它一点帮助也没有,基本为零。我用过各种系统,包括付费模型。我在数学问题上与 AI 互动的典型经历是,它给我垃圾答案,数学上不正确。我觉得这没有帮助,而且令人沮丧。如果是和一个人互动,最沮丧的事就是你得跟他争论他给的论证对不对,你指出了确切的错误,AI 却说「完全没问题」。如果我和一个人有这种经历,我会干脆拒绝再跟他说话。当然,人们得原谅这类缺陷。所以就数学推理而言,我对当前 AI 系统的价值持怀疑态度,它似乎不可靠。但我确实知道,有几位我极其尊敬的杰出数学家说他们在以有帮助的方式使用它,听到这些我常常很惊讶,因为我的经验恰恰相反。也许是我的方法不好,虽然在别的事情上,比如编程或图像生成,我用它,它惊人地强大有用。但对数学论证,我没觉得有帮助,也许是我还没有以正确的方式与它互动,也许我需要提高技能。但我也怀疑,别人提供的那些例子也许涉及大量互动,我怀疑数学想法其实来自那个人,来自那些做这件事的伟大数学家,而不是 AI。
我还出于另一个理由怀疑,那就是大语言模型做数学这种路径的本性。我认识到,AI 在努力给我一个听起来像证明的论证,而不是一个确实是证明的论证。动机放错了地方。我担心这是非常危险的错误来源,因为数学里常常发生这样的事。回想我在加州理工读本科、后来主修数学的时候,LaTeX 还是很新的东西,我在学 LaTeX,用它排版作业,看起来很漂亮。其实以我现在的标准看肯定糟糕透了,但当时我什么都不懂,本科生嘛,LaTeX 几乎没人听说过。我做出这些排版精美的习题解答,打印出来交上去,成绩回来,糟糕透顶。我意识到发生了什么:稿子用这种方式排得那么漂亮,看起来像书里的数学,因为基本上只有在专业出版的书里才能见到那种数学排版,而书里的数学几乎总是对的。我习惯了只在论证完全正确时才见到那种排版,于是因为它太漂亮,我丧失了批判性,在证明里犯着傻瓜式的错误。当然我后来纠正了。但这种效应在现代大语言模型系统上非常真实。聊天程序产生的论证看起来像证明,那正是它们努力做的、被设计来做的。它们不是被设计来做出逻辑上正确的论证,而是被设计来做出看起来逻辑正确的论证。如果你不怀疑,很容易上当。这就是为什么我对人们依赖 AI 做数学论证有些担忧。把它们与 Lean 等形式证明验证系统绑定是一种完全不同的运作方式。但对坐下来用聊天程序想出数学论证的普通人来说,如果你没有特别警觉这一点,我认为它是危险的错误来源:AI 产生的东西不是基于数学理解,而是试图看起来像基于数学理解的东西,这两者完全不是一回事。而且我真的怀疑,能否做出一种产生真正数学洞见的系统,却不基于我所认为的数学理解,而只是文本生成。所用的方法似乎不够扎根于对底层数学概念的理解,而是扎根于关于这些概念的论证中词语在页面上出现的方式,那不是一回事。
我认为,给系统提供足够的信息、让它成为好合作者,确实是一种技能,你面对的不是人,你得把你的工作、你的思考方式尽可能都装进去,从它对大量知识的掌握和跨领域联系的能力中获得启发。这在编程领域也许说得通,那里训练数据太多了。至于数学训练数据,我只能假定 MathOverflow 的答案是训练数据的一部分,所以在某种意义上,我是在和自己说话。
数学里最美的思想是超限序数。这是格奥尔格·康托尔发明的数系,关于数到无穷之外,就是「越过无穷继续数」这个想法。你数过普通的数,自然数,零、一、二、三,一直下去,然后你还没数完,因为之后是 ω,然后 ω 加一,ω 加二,永远可以加一。数完所有形如 ω 加 N 的数之后,就到了 ω 加 ω,即所有那些数之后的第一个数;然后是 ω 加 ω 加一,如此继续,永远可以加一。你就这样沿着序数数下去,永无止境。最终到 ω 乘三、ω 乘四,这些数的极限,排在所有这些数之后的第一个数,是 ω 的平方。这是第一个复合极限序数:极限序数是没有直接前驱的序数,ω、ω 乘二、ω 乘三都是极限序数;而 ω 的平方不仅是极限序数,还是极限序数的极限,因为 ω 乘三、ω 乘四这些极限序数的极限就是 ω 的平方。然后当然又有 ω 的平方加一、加二,永远不停。它绝对美妙、惊人,而且构成了后来那些超限递归构造的基础:从我提到的康托尔-本迪克松定理开始,到 V 层级的构造,哥德尔的可构造宇宙也是这样建起来的,策梅洛用选择公理证明良序原理也是一个超限递归构造。「数过无穷」这个想法如此简单优雅,却引出了那么多迷人的数学。无穷不是终点。
我一脚在哲学,一脚在数学,在某些场合似乎必须选择自己是数学家还是哲学家。我受的训练是数学,我的博士学位和所有学位都是数学。但这些年来我把自己变成了哲学家,因为我的数学工作在与这些哲学问题打交道。在纽约,我起初只有数学的职位,后来也加入了研究生中心的哲学系。第一次去牛津时,我的主要职位在哲学,现在在圣母大学也是如此,同时兼任数学教授,我仍然带数学博士生和哲学博士生。所以我不在乎决定自己是数学家还是哲学家,我的工作既涉及数学,又涉及数学中的哲学问题,也涉及纯粹的哲学,两门学科之间有一片广阔的地带,没有必要选择。记得我第一次去牛津时告诉女儿,我要去当牛津的哲学教授了,她哀怨地看着我说:可是爸爸,你不是哲学家呀。因为在她心里,父亲是数学家,母亲是哲学家,我妻子芭芭拉是哲学家,现在也在圣母大学,我们在一起。幸运的是,我不必在两者之间做选择。
哲学里最美的思想,我得说是真与证明的区分,就是我们已经讨论过的那个。它如此深刻,触及那么多哲学问题的核心。这个区分也许诞生于数学或数理逻辑,但那本身已经带有哲学性,而且它根本上是一个哲学区分。真关乎世界的本性、事情的实际情形,在某种意义上关乎客观实在;而证明关乎我们对世界的理解,关乎我们如何知道我们所知道的东西。关注证明,就是关注我们与客观实在的互动。我说的是数学实在,不是物理世界,因为如我所说,我住在柏拉图领域,与数学实在互动。证明关乎这种互动,关乎我们如何知道在这个数学实在中为真的事实;真则关乎实际情形如何,与我们的知识无关。这是我理解世界、理解逻辑和推理本性的一种核心方式。而两者之间的鸿沟,无论在柏拉图领域还是在物理领域,都充满迷人的谜。
集合论学家 Joel David Hamkins 从 Cantor 的多重无穷讲起,串联 Hilbert 旅馆、对角线论证、ZFC 公理、Gödel 不完备定理、停机问题、连续统假设的独立性与力迫法,最终阐述其"集合论多元宇宙"立场:不存在唯一的集合论真理,数学真理具有多元性。
先让现有住客房号翻倍腾出奇数房,再把 C 号车厢 S 号座的乘客送进 3^C·5^S 号房。这个数永远是奇数(因数只有 3 和 5),且由算术基本定理(素因数分解唯一)保证不同乘客得到不同房号,可反推车厢与座位。这一段出现在「希尔伯特旅馆」章节,结论是可数多个可数集之并仍可数,是欧几里得「整体大于部分」原则在无穷上失效的强例证。
因为十进制表示不唯一:1.000…与 0.999…是同一个数。若 Z 的数位允许 0 或 9,可能出现 Z 与列表中某数「逐位不同」但数值相等的情况,使「Z 不在列表上」的结论失效。避开 0 和 9 后 Z 有唯一表示,与列表上每个数在第 N 位不同就足以断定 Z 是新数。这一细节在「实数不可数」章节由 Hamkins 补充,Lex 随即指出这正是证明「仍然成立」的原因。
弗雷格《算术基本法则》的基本法则五蕴含一般概括原则:任一性质都能定义一个集合。罗素指出「所有不属于自身的集合」按此可构成集合,但它属于自身当且仅当它不属于自身,一行推出矛盾,整个体系崩塌。信到达时第二卷已在付印。弗雷格在附录中写道「几乎没有比大厦基石在完工后被动摇更不受欢迎的事」,Hamkins 称其回应极有风度。本段在「康托尔定理与罗素悖论」章节。
希尔伯特纲领有两个目标:一是找到能回答所有问题的强理论(集合论),二是用有穷手段证明该强理论一致。第一不完备定理说任何包含足够算术的一致可计算公理系统都有既不能证明也不能反驳的命题,第一目标失败;第二不完备定理说此类系统无法证明自身一致性,弱理论更不可能证明强理论一致,第二目标失败。Hamkins 补充「二手车推销员」比喻:即使某理论自证一致也毫无说服力,因为不一致的理论也能证明任何东西。见「希尔伯特纲领与哥德尔」章节。
先用对角线论证证明停机问题不可判定:构造程序 Q,对输入 P 做与「P 作用于 P」相反的事,问 Q(Q) 得矛盾。然后假设初等算术有完备可计算公理化,就能造一台定理枚举机;给定任何程序,等它吐出「P 停机」或「P 不停机」之一,从而判定停机问题,与前述矛盾。这条路线不需要构造自指的哥德尔句,只用了图灵机与「完备理论可枚举全部真命题」两个事实,Hamkins 视之为最简证明。见「真与证明」章节末。
他反转了常见的还原方向。要求说明一台蒸汽机车「物理地存在」意味着什么,除了重复「它在物理世界里」之外无话可说,问题本身没有答案。物理学越进步图像越模糊:台球→原子→电子质子→夸克→波函数概率云,理解在后退。相比之下,空集、单元集等抽象对象的说明越讲越清楚,不会越来越神秘。所以我们对抽象存在有更可信的理解,对物理存在只有「经验」而非「理解」。见「数学对象存在吗」章节。
凯撒问题:休谟原则只告诉我们两个数何时相等,不告诉我们什么东西是数,因而无法排除凯撒是数。结构主义回答:数学只在同构意义下关心结构,把自然数系统中的 17 换成凯撒,得到同构的新系统,凯撒就「是」17,这对任何数学目的都无差别。所以「凯撒是不是数」是关于本质而非结构的问题,与数学无关。这体现结构主义的反本质主义:对象的意义只在于它在系统中的角色。见「结构主义」段落。
他讲了伯克利一位分析教授的反应「我大概问错问题了」,与集合论学家的态度对比。独立性意味着存在该命题为真的模型和为假的模型,你发现了数学实在中的一道「裂隙」,找到了两类世界的分界线,这是「顺着自然关节切分」。在多重宇宙观下,这不是失败而是对实在结构的真正发现,值得庆祝。对于连续统假设,任意模型都有 CH 真与假的力迫扩张,「像开关灯一样」,这种可切换性本身就是答案。见「力迫法与多重宇宙」章节。
证明依赖模型的偶然特征:单向无限纸带上,读写头初始在最左端,每步一半概率向左,按 Pólya 常返定理随机游走几乎必返回起点,于是以概率 1 在重复状态前「掉出纸带」而崩溃。这类程序容易识别、行为容易判定,其渐近密度为 1。人们期待的是深刻洞见,得到的却是「愚蠢理由」的堆积(先是 13.5% 无停机指令的程序,再是掉头崩溃)。它不改变停机问题在最坏情况下不可判定的事实,只说明困难集中在一个测度为零的「黑洞」里。见「停机黑洞」段落。
他在对话中已区分两条路径:绑定 Lean 的形式验证是「完全不同的运作方式」,他并不反对;他担心的是普通人直接用聊天模型得到论证。核心批评针对生成机制:模型的目标是产出「看起来像证明」的文本而非「是证明」的推理,动机错位,不与底层数学理解挂钩。即使有 Lean 兜底,若未经验证的输出被当作理解本身,仍是危险的错误来源,正如他本科时排版精美的作业让他放松了审查。他还会追问:那些成功案例里数学想法是否其实来自使用它的数学家。所以他会说担忧针对的不是工具而是使用方式与信任基础。
他的原论点来自微积分史:牛顿莱布尼茨凭「逝去之量的幽灵」般的无穷小做出了全部基本定理,严格化要到 1950 年代非标准分析才完成,所以哲学基础不决定数学洞见,只决定研究方向。迁移到 AI:这似乎支持「即使 LLM 的推理不严谨,也可能产出有价值的洞见」。但 Hamkins 自己会指出一个不对称:牛顿等人拥有真正的数学理解,只是缺乏严格表述;LLM 则是「模仿证明的外观」而无理解,缺的正是那时人们所拥有的东西。所以论点可以迁移到「Lean 验证 + 人类洞见」的混合模式,而不能直接为「无理解的文本生成」背书。这需要综合他关于微积分史(力迫章节)与 AI(末尾章节)的两段论述。