? 如果有两组数的立方和相等的情况存在,则肯定存在最小的数可以同时充当两组数的立方和。

? 如果不等于自身的数存在,则肯定存在最小的不等于自身的数。

针对任何你能想到的特性(比如说“偶数”、“质数”、“可以充当两个数的立方和”,以及“不等于自身”),我们都可以归纳出相应的公理。顺便说一句,最小的偶数是0,最小的质数是2,可以充当两个数的立方和的最小的数是1 729(1 729是1的立方加上12的立方,也是9的立方加上10的立方),不过事实上并不存在不等于自身的数。

这无穷的推导过程得出了完整的数学公理列表。当我提到公理列表的时候,我的意思是指常用的公理列表。当然,我也欢迎你写下自己心里认为可以成为公理的列表。第一份被写出来的类似列表出现在约一个世纪前,其作者是意大利逻辑学家朱塞佩·皮亚诺(Giuseppe Peano),因此这些公理通常被称为“皮亚诺公理”。

以皮亚诺公理为出发点,使用逻辑推理的规则,我就可以推导出某些定理。例如,我们可以证明,两个偶数的和还是偶数,合数都可以被分解成质数,以及最大的质数不存在。我们知道这些定理是正确的,因为它们是由公理通过逻辑推导而得出的结论,而且公理是正确的。但是,这并不是公理之所以正确的本质原因,两个偶数的和本来就肯定是偶数,无论这是否遵循我们(或者皮亚诺教授)所写下来的公理。

讨巧的哥德尔不完备性定理

什么是正确的,这是一个数学问题。什么是可以被证明的,这取决于我们对于公理的(或许武断的)选择。

事实上,作为著名的“哥德尔不完备性定理”的一部分,克尔特·哥德尔(Kurt Godel)给出的一个明确的范例是一个在算术领域是正确的但却无法证明的命题。在这里列出哥德尔的范例显得有点过于繁琐了,不过我在后面会给你介绍一个同样合适的例子。

永恒的数学(4)

如果哥德尔的命题无法被证明,那么他如何得知这是正确的呢?答案是,他知道这是正确的,因为他设法推导出了这一点。但是,他通过使用一个在皮亚诺公理列表之外的办法来“作弊”了。

这里便有这个列表之外的公理,让我们把它称为“超级公理”:皮亚诺公理是具有一致性的。这就是说,你不能用皮亚诺公理来证明自相矛盾的事物,例如,不能证明“不是所有的偶数都是偶数”。

我们可以轻松地写下那些并不具有一致性的公理列表:例如,你可以把“0不等于1”作为你的第一公理,而“0等于1”作为你的第二公理。这两个公理互相矛盾,而它们互相矛盾的理由便是其中有一条公理是错误的。

尽管如此,皮亚诺公理列表的内容不能自相矛盾,因为它们都是正确的。因此,“超级公理”是正确的,而且它推导出来的一切都是正确的。哥德尔发现了这样一个命题:一方面,它遵循皮亚诺公理和“超级公理”(所以我们知道它是正确的);但另一方面,它不能单独由皮亚诺公理推导出来(因此按照通常标准,它是无法被证明的)。

你是不是感觉被骗了?哥德尔著名的“无法被证明”的命题其实是正确的,而且是可以被证明的,只要你允许自己使用那无可争议的“超级公理”。

因此,让我们把“超级公理”也加进自己的公理列表里。现在,哥德尔的命题也是正确的,而且是可以被证明的,就像“1加1等于2”这个命题一样是正确的,而且是可以被证明的。这并没有什么稀奇的。那么,什么才算得上是哥德尔的伟大成就呢?

“继续吧,”哥德尔回答说,“把‘超级公理’添加到皮亚诺的公理列表里。现在你可以证明我的命题了。不过我可以给你提供一个新的命题,它仍然是你的最新升级版公理列表所无法证明的。而我的新命题仍然是真实的。”

哥德尔怎么知道自己的新命题是正确的呢?因为他证明了这一点。这一次他“作弊”的办法是加入了另一个新公理,它被称为“超超级公理”(Super Duper Axiom):皮亚诺公理加上“超级公理”组成的升级版的公理列表仍然是正确的。

这个“超超级公理”是正确的,因为包括“超级公理”在内的所有其他公理都是正确的。因此,哥德尔的新命题还是正确的,因为他可以利用“超超级公理”来证明它。但你不可以证明这一点,因为“超超级公理”不在你所承认的公理列表里。

回顾一下,从皮亚诺公理开始。哥德尔提供了一个你无法证明的正确的命题。但他利用“超级公理”证明了。你说:“好,我把‘超级公理’加进自己的公理列表,现在我可以证明你的命题了。”哥德尔说:“好。那么我再给你一个新的你无法证明的命题,即便你使用新的、扩展了的公理列表,也无法证明。”然后他再使用“超超级公理”来证明这个新命题。

你的下一步棋当然是把“超超级公理”添加到你的公理列表里。哥德尔的下一步棋当然是提出一个新的你用“超超级公理”也无法证明的命题。他知道这个命题是正确的,因为他已经使用新的“超超超级公理”证明了。然后我们就这么一直继续下去了(而且哥德尔确实已经证明了自己可以永远继续下去)。

并不存在一个完备的公理列表来证明数学领域的所有正确命题,这便是“哥德尔不完备性定理”的大部分内容。这就告诉你,正确的事物和可以被证明的事物之间是有区别的。

总之,在数学领域存在着正确的命题。“正确”并不意味着“可以被证明”,而仅仅意味着通常意义上的正确。但是这些命题必须跟自然数体系有关才能是真实的。此外,这些命题在人们发现它们之前的漫长岁月就已经是正确的了,而且无论人们是否发现它们,这些命题都是正确的。因此,自然数在人们发现它们之前也是存在的,而且无论人们是否发现它们,自然数都是真实存在的。这种看法对本书第一章的论点来说是极为重要的。

如果你足够聪明,你或许会尝试将所有有关数学法则的正确命题都设置成公理。那样的话每个命题就都只需要一步即可证明。你如何证明两个偶数的和还是偶数呢?回答:这是一个公理。你如何证明最大的质数不存在呢?回答:这还是一个公理。但这种逃避的办法是不可取的。问题在于,按照这种制度,我们就没办法知道什么是公理而什么不是公理。偶数是两个质数之和,这是不是公理呢?回答:这是一个公理,当且仅当这是正确的时候我们才知道这是不是公理,但我们没办法知道这到底是不是正确的,因此我们没办法了解它是不是公理。游戏规则是这样设置的:你可以使用任何自己想提供的公理,只要判定了什么是公理、什么不是公理的明确规则确实存在。按照这个标准,所有正确的命题的列表便可等同于公理。

漫长的胜利(1)

漫长的胜利:你知道谷歌名字的来源吗?

海格力斯用棒子敲击九头蛇的头,但这毫无益处,因为每当一个头被打掉时,断处就会有两个新头生长出来。

阿波罗多罗斯

海格力斯需要花多长时间才能杀死九头蛇?

在前文中,我答应过给你描述一个数学领域中正确但无法被证明的命题。你或许认为这个任务会相当困难,甚至会像“海格力斯面临的问题”那样“困难无比”。

或许你听说过这个古希腊神话,海格力斯在狂暴状态中误杀了他的妻子和孩子。为了“赎罪”,他同意去完成死敌欧里斯修斯分配的一系列任务。

第一项任务是杀死可怕的“涅墨亚雄狮”,海格力斯赤手空拳完成了任务。第二项任务是处理掉那多头的怪物九头蛇。古希腊神话还告诉我们,每次海格力斯打掉九头蛇的一个头时,断处就会有两个新头长出来。

事实上,古人们讲述有误。实际情况应该比那还要糟糕。

首先,九头蛇可能会有很多类型。每种九头蛇的头的连接、排列方式都不同,我们可以先给出一个典型的图例:

正如你看到的那样,这条九头蛇已经长出来了9个头(每个带圈字母代表着一个头)。海格力斯可以先打掉位于最顶端的4个头中的一个C、D、F或者H。

在被打掉一个头之后,九头蛇的反应方式就是将这个掉下来的头的“父结点”带上其衍生结点(不包括敲掉的这个头)复制一遍。如果海格力斯打掉了C,九头蛇会复制一遍B(C的父节点)和B衍生出的所有节点(也就是D、E、F)。就像这样:

在接下来的一轮,海格力斯还是可以继续打掉处于最顶端的一个头可以是原始状态下生长出来的,也可以是新复制出来的。这下,九头蛇又从这个掉下来的头的“父结点”开始复制两遍!(也就是说,九头蛇会创建出两份新的“备份”然后加入到自己的头当中。)如果在第一次打掉头C之后,海格力斯决定打掉第一个头D,那么九头蛇便会增添两个头B-E-F的分支。

依此类推。海格力斯第三次打掉头,九头蛇创建出3份新的相应的分支。海格力斯第四次打掉头,九头蛇创建出4份新的相应的分支……

如果海格力斯打掉所有的头,从而杀死九头蛇,他就胜利了。

有很多九头蛇,以各种形状、大小生长着,某些比其他的更容易被杀死。现在的问题就是,海格力斯可以杀死遇到的所有九头蛇吗?实际上,我们可以将这分解为两个问题:

? 如果海格力斯聪明,他总能取得胜利吗?

? 如果海格力斯愚蠢,他总能取得胜利吗?

第一个问题的答案是“可以”。如果海格力斯足够聪明(这或许正意味着他首先就打掉了最根部的头而使九头蛇遭一击便致命),他总会取得胜利。

令人惊讶的是,第二个问题的答案也是“可以”。无论海格力斯表现得多么愚蠢,他都可以获得最后的胜利。这似乎一点也不明显,但确实如此。

当一个人比较愚蠢的时候,获胜确实需要相当长的时间。

假设他仅仅需要面对简单的五头蛇,海格力斯只需几下子就会将这场竞赛拖入到处理成百上千的蛇头的状态中去,正如以下数列:

我们根本没有办法来简单地领会这个数列规模的巨大程度,所以先让我们一起来看看数列中的前几个数字代表什么吧!前五个数字就是2、4、16、256、65536。第六个数字就是一个巨大的数字了。比较一下谷歌的名称的来源那个著名的“天文数字”(googol)吧!它不过是10的100次方而已。第五个数字并没有被命名,所以我们在这里不妨为它取个名字以便讨论,接下来我会叫它“schnoogol”。

漫长的胜利(2)

数学家利特伍德(J. E. Littlewood)曾经计算过老鼠在太阳表面存活一个星期的概率。显然,这概率实际上几乎为零,利特伍德算出的结果是……1(1之前有多达137个0),换句话说,几乎为零。根据利特伍德的计算推断,如果你把144只老鼠扔到太阳表面,它们当中任何一只在那里侥幸地继续存在一个星期的概率就是“schnoogol”分之一。你该明白“schnoogol”有多大了吧?

这才仅仅是数列里的第五个数字呢。至于第六个数字,我称它为“kanoogol”,如果你同时扔“schnoogol”个硬币,它们均正面朝上的概率便是“kanoogol”分之一。至于第七个数字,我只能放弃了。谈论它到底多大,这几乎没有任何实际意义。

这个数列中的第上百号数字可以告诉你,愚蠢的海格力斯需要花费多长时间才能领悟到必须直接打掉根部的头,从而杀死五头蛇。不过,海格力斯最后的确可以获得胜利,只是这确实需要相当长的时间。