因为数学始终如一,所以上帝存在,而且魔鬼也存在,因为我们无法证明。
——安德烈·威尔(Andre Weil)
如果把“宗教”定义为一个观念体系,里面包含了一些无法证明的陈述,那么哥德尔教诲我们数学不仅是一种宗教,而且是唯一一种可以证明自身是宗教的宗教。
——约翰·巴罗(John Barrow)
我把一列数字加了两次,得出两个不同的答案,我相信我一定算错了。这是因为我相信算术具有一致性,它不会自相矛盾。
我为什么要相信数字而不是自己呢?以下就是人人都知晓的最令人信服的论证:数学法则肯定是具有一致性的,因为它们在逻辑上都是真实存在的,在逻辑上真实存在的论断不会相互矛盾。
要接受这一论证,你必须得相信运算法则为真。[1]要接受这一点,你必须得相信运算法则与某些东西有关。只要世界上存在数字这个东西,“一列数字只能有一个总和”这个陈述就为真。
还有一些别的方法可以证明算术的一致性,但是与进行简单观察,从而得出自然数存在并且运算法则逻辑上为真相比,其他证明办法都得基于那些不太能够达到不证自明境界的原理(因而显得更加不可信)。如果你跟99.8%的数学研究者一样,跟99.8%的用过计算器的人一样,就会相信数学法则的一致性,这几乎肯定是因为我们发自内心地相信自然数从某种重要意义上来说是真实存在的。
诚然,“真实”这个词用在这里有些含糊。如果我们想理解得更深刻一点,让我们给它下一个定义:“自然数是真实存在的”就意味着数学法则是具有一致性的。
和你一样,我也相信自然数字是真的。和你一样,关于这个信念我的依据也是量少且珍贵。没错,这辈子我确实一直在和数字打交道,但我还从来没发现有过不一致的地方。但是这个证据微乎其微,可忽略不计:我接触过的所有数字都具有高度的非典型性。四位数、五位数或者六位数的数字都算过加法,但是我还从来没有算过百万位数字列的加法。然而几乎所有的数字都比百万位数字大。因此我并没有直接的证据来说明大部分数字是什么样的。
顽固的怀疑论者也许会做出这样的结论:因为我们没有接触过大数字,我们无法判断它们是否表现得具有一致性,甚至我们根本就不知道它们存不存在。这个顽固的怀疑论者就是亚历山大·叶塞林–沃尔平(Alexander Yessenin-Volpin),他是一位古怪的数学家,还是一位勇敢的苏联时代的异议分子,因为写了“反苏诗歌”在精神病院待过一段时间。根据叶塞林–沃尔平的观点,我们应该只去关注那些“小到足够让人思考的地步”的数字。这一学说被称为“极端有限主义”,不过很少有数学家去认真对待它。
为了反驳这种极端有限主义,主流数学家也许会提出这样的问题:“我们究竟如何来判断哪些数字属于‘小到足够让人思考的地步’的范畴呢?或许一两位的数字算,而30位的数字就不算。那么,界限到底应该是多少位?”
这位主流数学家就是哈维·弗里德曼(Harvey Friedman),他非常有名,不仅是因为他在数学逻辑上做出的贡献,还因为他在还不到19岁的时候就被斯坦福大学聘为教授。弗里德曼曾试图批驳叶塞林–沃尔平的理论。以下就是他对事情的描述:
我从2开始,询问他这个数字是否“真实”或者能让人感到‘真实’的效果。他几乎立即表示同意。然后我询问4,他仍然同意,但感觉略有停顿。接下来是8,他还是同意,但更加犹疑。反复多次这样做,直到他处理这种讨论的方式已经很明显了。当然,他已经准备好回答‘是’了,尽管他在面对2的100次方时要比面对2时犹疑得多。(2的100次方就是一个30位的数字。)除此之外,我也没办法这么快就得到这个结果。
最后,弗里德曼和叶塞林–沃尔平决定求同存异。
几乎每个数学家在面对大数字的真实性时都与弗里德曼持有相同的立场。除了叶塞林–沃尔平本人,几乎没有人称自己是极端有限主义者。我们不但相信数学法则,也相信代数、几何和数学的其他部分是真实可信的。但我们几乎没有丝毫逻辑理念和证据来支持这种信念。[2]
那么,我们的信念必须依赖于一些其他的基础,我们称之为信仰、直觉、本能、启示或者“超感官知觉”(我不太确定这些里面有多少其实是同一个事物,只是叫法不同)等。这样说也许只是人们的错觉——或者是一个真理——正好按照人的大脑的连接方式成为大脑(至少我的大脑)的组成部分。那么,从某种意义上来说,我对算术的了解和教皇(传说中的)对上帝的了解位于同一个基础上。我可以自信地说,两者之间最关键的不同是,我是对的,而教皇是错的。[3]
人们宣称能直接了解到上帝,质疑这点的一个重要原因是,他们很难在一些细节上达成一致。不可否认,可能从狭义的角度来讲,同样的告诫也适用于像我一样的人,我们都宣称可以直接了解数学。哪些数学真相可以明显地被直觉理解到这个问题已经由不同的人在不同时代和地点以不同的方式回答过了。1888年,伟大的德国数学家大卫·希尔伯特(David Hilbert)证明了自己的“基础命题”,这个命题为现代代数的大部分奠定了基础。他通过“将无限集合的无限集当成具体的对象”这一前所未有的创举得出了证明,同时代的保罗·戈尔丹(Paul Gordan)对此嘲笑说:“这好像不是数学,它是神学。”然而,这一方法几年后就带来了丰硕的研究成果,甚至戈尔丹也不得不承认“神学也有用处”。
1888年的时候希尔伯特的证明方法还颇有争议,但是10年之后就成了一股主流;现如今几乎没有哪个数学家(叶塞林–沃尔平除外)会质疑这些方法。叶塞林–沃尔平会接受的范围、戈尔丹和希尔伯特过去所接受的范围以及我们现在大部分人所接受的范围之间有相当大的差距。我自己对现代代数的信念——对得出希尔伯特基础命题的方法的信念——都非常强烈,虽然可能不会像我对基础运算的一致性的信念那样强烈。
但是究其核心,古往今来人的数学直觉并没有发生什么实质性的变化。关于数数和算术的一些基本事实,毕达哥拉斯(Pythagoras)凭感觉“就知道”的和我们凭直觉就知道的分毫不差。欧几里德关于证据的观点和我们的也相关不大。虽然欧几里德的证据在现在看来有些不充分,但是如果当时有人指出来的话,欧几里德本人也会承认的。欧几里德的东西有时候不符合现代标准,但那并不是因为他的标准有所不同,是因为他出了一些差错。我们所有人都是如此。
换句话来说,数千年来,我们掌握的那些不证自明的数学真理几乎没有什么变化。在学习算术的时候,我们会把这些真理挑出来,称之为“公理”。算术公理有无限多个;然而,如果你感兴趣的话,我可以一一为你描述。(如果你不感兴趣的话,请务必直接跳过这一两页。)
下面是前四个公理:
? 0是一个数字。
? 每一个数字后面都紧跟一个数字。
? 没有哪两个数字后面紧跟的数字相同。
? 0不紧跟在任何数字后面。
这是其四,接着还有无数个。下面再从其他公理中挑一些:
? 如果偶数存在,那么必定存在最小的偶数。
? 如果质数存在,那么必定存在最小的质数。
? 如果存在数字可以用不同的方法写成两个立方数之和,那么必定存在一个可以用不同的方法写成两个立方数之和的最小数。
? 如果存在数字不等于它本身的话,那么一定存在一个最小的不等于它本身的数字。
我们还可以依次类推下去。你能想起来的关于数字的任何一种属性(例如“偶数”或者“质数”,或者“能够用不同的方法写成两个立方数之和”或者“不等于它本身”),都有一个对应的公理。顺便提一下,最小的偶数是0,最小的质数是2,最小的可用不同的方法写成两个立方数之和的数字是1729(1729等于1的立方加上12的立方,同时还等于9的立方加上10的立方),没有哪个数字不等于它自身。
这个无限系列就是算术公理的完整列表。当我提到这个公理列表的时候,我的意思是那个通用的列表。我当然也欢迎你加入比赛,继续往下写。早在一个世纪前意大利逻辑学家朱塞佩·皮亚诺(Giuseppe Peano)第一个写下了这一特别的列表,人们通常称作皮亚诺公理。
以皮亚诺公理作为起点,然后再借用逻辑规则,我们就能证明一些定理。例如,我们可以证明两个偶数的和还是偶数,每个数都可以被分解成几个质数,以及没有最大的质数。我们知道这些定理都是真的是因为它们是从公理按照逻辑得出的,并且那些公理是真的。但这可不是定理为真的原因;两个偶数之和还会是偶数,不管这个事实是不是恰好由我们(或者皮亚诺教授)选择写下来的那些公理得出。
关于数学事实的问题都是真的。而其是否可被证明则取决于我们(有时候是任意的)所选的公理。
实际上,库尔特·哥德尔(Kurt G?del)在他那著名的不完全性定理中针对算术中的一句话,举了一个明显的例子,这句话是真的,但无法证明。他的这个例子太复杂,不适宜收录在此,但是我将在下一章中提供一个同样好的例子。
如果哥德尔的那句话无法证实,他是如何知道其为真呢?答案:他知道是真,是因为他有过证明。不过他“作弊了”,因为他用了另外一个公理,并不在皮亚诺公理列表上。
来说说那个额外的公理,我们将它称为超级公理:皮亚诺公理都是一致的。也就是说你不能用他的公理去证明自相矛盾的内容,例如“不是所有的偶数都是偶数”。
写一串前后矛盾的公理很简单,比如说你可以拿“零不等于一”作为第一公理,然后“零等于一”作为第二个。这两个公理相互矛盾,你能够使它们相互矛盾的原因是,其中有一个为假。
然而,皮亚诺公理不可能互相矛盾,这是因为他所有的公理都是真的。因此,那个超级公理为真,所有由此得出的内容也为真。哥德尔发现的那个句子一方面由皮亚诺公理加超级公理得出(因此我们知道它是真的),但是另一方面,它又不是只由皮亚诺公理得出(因此按照通常标准,它又是不可证明的)。
你感觉被骗了吗?哥德尔那个著名的“无法证明的”句子实际上是可以证明的——只要你让自己去用下那个完全没有争议的超级公理就行了。
因此,让我们把这个超级公理添加到我们的公理列表上来。现在的话,哥德尔的那个句子既是真的,又是可以正式证明的——就跟这个句子一样,“一加一等于二”,它既是真的,又是可以证明的。这里并没有什么不同寻常的东西。那么哥德尔的伟大成就在哪儿呢?
哥德尔回复到“只管说下去”,“把超级公理添加到皮亚诺公理列表。现在你能够证明我那个句子。但是我将给出一个新句子的例子——即使你用上这个新的、更长的公理列表也无法去证明它。而且我的这个新的句子也是真的”。
哥德尔是怎么知道他的新句子是真的呢?因为他去证明了!这次他又用了一个别的新的公理来“作弊”——我们称它为超超级公理:扩展了的公理列表——也就是说皮亚诺公理列表加超级公理——仍然具有一致性。
这个超超级公理为真,是因为包括超级公理在内的所有公理都是真的。哥德尔的新句子为真,因为他可以用这个超超级公理来证明。但是你却不能,因为这个超超级公理不在你的公理列表上。
我们来回顾一下:你从皮亚诺公理开始。然后哥德尔给了你一个句子,它是真的但你却不能证明。但是他用超级公理做出了证明。之后你说:“好吧,我将把这个超级公理添加到我的公理列表上;现在我也可以证明你的句子了。”哥德尔回复:“好吧。我将给你一个新的、证明不了的句子——即便用上你那个新的、自由化的证据规则也不行。”然后他用超超级公理来证明了这个新句子。
自然,你的下一个开场白就是把这个超超级公理添加到你的公理列表上。哥德尔的下一步棋必然是再找出一个新的、你无法证明的句子,即便是用上超超级公理也不行。他知道这个句子是真的,因为他已经用一个超超超级公理证明了。我们就这样一直下去。(实际上哥德尔的确也证明了他可以永远继续下去。)
没有哪一个公理列表可以来证明算数中所有为真的句子,这是哥德尔定理内容的一半。[4]仅这一点就能告诉你为真的东西和可证明的东西之间是有差别的。
我们来概括下:算术上存在陈述内容为真的东西。“真的”并不意味着“可证明”。相反,这里指的是普通意义上的“真的”。但是要想为真,这些陈述就必须是关于某些事物的,这里的某些事物就是自然数字这一体系。此外,这些陈述在任何人能够想到之前就是真的,而且不管曾经有没有人能够想到都将是真的。因此,自然数字在有人能够想到之前很久就已经存在了,而且不管曾经有没有人能够想得到,它都存在。在本书的第一章,上述观察便是其中心论点。
[1] 稍后我会在本章中把这些“运算法则”列出来。
[2] 经过再三思考,没有逻辑和证据的帮助我们也能了解事物,这点似乎也不足为奇。毕竟,蜘蛛知道如何织网,并不需要去寻找“第一定理”来推断出织网技术或者认真观察其他蜘蛛的工作过程以便推断出来。你可能会争论说蜘蛛的本能是无意识的,因此不能算作知识,但是如果蜘蛛天生就能织网,从原则上来讲,我找不到反对人们硬生生地理解数学的理由。
[3] 关于这一点在第十三章中会再讲一些。
[4] 如果你很聪明,你可能会忍不住把算术中所有真的句子拿出来作为公理。于是每一个为真的句子都有一个单行证据。你怎么来证明两个偶数的和还是偶数?答案:这是个公理!你怎么能证明不存在最大的质数?答案:还是公理!但是这种托词行不通。问题就在于按照这一方法,我们没有办法来辨别什么是公理,什么不是。每一个偶数是两个质数之和这句话是不是公理呢?答案:当且仅当它是真的,它就是一个公理——但是我们没有办法来辨别它是否为真,因此也就没有办法断定它是不是一个公理。游戏规则是这样的:你能够用任何你想用的公理,前提是有一个清晰的规则来判定什么是公理,什么不是。有了这个标准,我们可以说一列为真的句子并不等于是一列公理。