随着1999年12月31日午夜倒计时几秒的来临,伴随新年而来的庆典也沉浸在焦虑和担忧之中。在午夜的钟声里,我们有可能见证一场波及全世界互连计算机系统的重大技术事故及宕机,有些人甚至认为这是无法避免的。这场危机不是全球恐怖主义行为,而是由计算机程序员使用了近半个世纪的小捷径造成的。在众多系统的各种应用程序中,人们使用年份的后两位数字表示年份,例如用75代替1975,以此来节省宝贵的计算机存储空间。在那个午夜,这个两位数字的年份将会从99变成00,突然变得很小,而不是更大了。一个曾经无害的捷径竟然变成了一个危险的错误,这个故障有个高科技别名,叫作Y2K(千年虫)。
当然,程序员们早在几十年前就知道这个即将发生的问题。从1998年起,众多耸人听闻的书名开始进入公众的视野,例如Y2K: The Day the World Shut Down、Deadline Y2K、Y2K: It’s Already Too Late、Y2K: An Action Plan to Protect Yourself, Your Family, Your Assets, and Your Community on January 1, 2000、101 Ways to Survive the Y2K Crisis、Y2K for Women: How to Protect Your Home and Family in the Coming Crisis、Crisis Investing for the Year 2000: How to Profit from the Coming Y2K computer Crash、Y2K: A Reasoned Response to Mass Hysteria、Spiritual Survival During the Y2K Crisis、Y2K: The Millennium Bug – A Balanced Christian Response、Awakening: The Upside of Y2K,以及针对儿童阅读的Y2K-9: The Dog Who Saved the World。不久,电视专题节目和杂志也加入这一行列。1999年4月的《连线》杂志刊出一个不祥的黑色封面,上面用大字写着“Lights Out”(熄灯),用小字写着“Learning to Love Y2K”(学会去爱千年虫)。[1]
我们被告之,计算机已经装进了几乎所有的电子产品中,因而届时会有大到大面积停水停电、飞机坠落、汽车失控,小到微波炉罢工、录像机出错等种种事故发生。
20世纪是一个众多科学和技术都在发展进步的时代,但是现在,这个技术却要给我们的洋洋自得一个狠狠的教训。
之前的世纪之交从未有过这样的恐惧。19世纪也是一个科技飞速进步的时代,但没有什么会在午夜时分毁掉,新的世纪充满光明。科学家们似乎已接近了解了所有的知识,当时很多著名的物理学家,比如开尔文勋爵(1824—1907),成功预言了物理世界中最后几个谜题也会很快被解决,这其中包括了以太能填充整个空间并为光线及其他电磁辐射的传播提供介质的本质原因。
数学,也许是19世纪中最接近计算机科学的学科,也有很大进展,而且远超预期。漂亮地逃过了一场危机之后,数学似乎变得前所未有的强大。
19世纪的这个数学危机涉及的领域可以追溯到约公元前300年,即欧几里得几何。(欧拉名字的发音是oiler,欧几里得的发音是yoo-clid。)
欧几里得的《几何原本》以一系列定义开始,随后是五个公设和一些常用概念(也称为公理)。通过这几个基本假定,欧几里得推导出了数百个定理。
欧几里得的前四个公设如此显然,看上去几乎没有写下来的必要。前三个公设说的是可以用直尺和圆规画直线和圆,第四个同样简单。
从一点到另一点可以画一条线。
直线可以向两边不断延伸。
给定圆心和半径可以确定一个圆。
所有的直角都相等。
这四条公设简洁,明了,不言自明。相比之下,第五个公设可谓是出了名的冗长与晦涩。
- 如果一条直线与另两条直线相交,且在同一侧形成的两个内角之和小于两直角,那么无限延长这两条直线,它们会在这一侧相交。[2]
这个公设定义了直线不平行的条件。
从最早对《几何原本》的评论开始,第五个公设就颇有争议。一些数学家认为,第五公设是多余的,是不必要的,其实是可以从前四个公设推导出来的。但是,所有企图推导出第五公设的人都失败了。那些成功了的人,全都不知情地暗中用到了与第五公设等价的假设。
在19世纪初,一些数学家开始探索另一种方法:假定做出了一些违背第五公设的假设。也许无论它们与其他直线相交的角度是多少,两条直线总是相交的。也许两条直线永不相交。如果欧几里得的第五公设真的是多余的,那么矛盾总会在某个地方出现,我们就相当于用反证法证明了第五公设。
然而,事情并没有那样发展下去。在德国、匈牙利和俄罗斯,卡尔·弗里德里希·高斯(1777—1855)、约翰·波尔约(1802—1860)和尼古拉·伊万诺维奇·罗巴切夫斯基(1792—1856)都独立地发现,修改第五公设并不会导致矛盾,而是创造了一个虽然奇怪但前后完全一致的新几何世界产物。
在一个不太成熟的时代,数学家可能会摒弃这些令人厌恶的非欧几何,或者因基本几何被这些荒谬的构造弄得站不住脚而绝望。但是他们没有那样,数学家接受了这些欧氏几何的替代物,学到了有关数学本质的重要一课。
欧几里得一直是对的,第五公设应该纳入他的基本假设当中。作为平面的几何学,欧氏几何的第五公设是必需的,但它并不是唯一的可能。用一些其他公设替换它,会产生与欧氏几何一样合理和有趣(甚至更有趣)的几何学。这些非欧几何与我们称之的“现实世界”有什么关系吗?当然有时候会有。一种非欧几何描述的是球体的表面,从某些角度来看,球面比平面更贴近“现实世界”。
19世纪的数学家对欧几里得在《几何原本》中使用过的公理化方法,也有了更加新颖深刻的理解。(虽然欧几里得和亚里士多德区分了公设和公理[3],但是这种差别在近代很大程度上已经消失了。)一个数学系统首先要从一些特定的公理开始,然后不断证明这些公理的推论并一直继续下去。根据我们的感受,这些公理可能与我们对现实世界的直觉看法相符,也可能不相符。两千年来,模仿真实世界的想法事实上束缚了几何学的发展。如果公理可以摆脱现实世界,变得足够抽象,那么数学自身就解放了,能够探索一番新的前景。我们必须抽象地看待数学公理和由此产生的数学体系,心里不能带有任何假设。
或者如同一位年轻的数学讲师曾经深思的:“我们必定可以用桌子、椅子和啤酒杯来代替点、线和面。”[4]
这位年轻的数学讲师就是大卫·希尔伯特(1862—1943),未来最杰出的数学家之一。希尔伯特的出生地很靠近哥尼斯堡,一个波罗的海港口城市,当时是东普鲁士的首都。在希尔伯特出生前,哥尼斯堡就是一个数学胜地,城市中交错在普莱格尔河上的七座桥就是欧拉解决了的拓扑谜题的原型。
哥尼斯堡还是哥尼斯堡大学的所在地,哲学家伊曼努尔·康德(1724—1804)曾在那里研究和授课。希尔伯特也进过这所大学,并在那里短暂地教课。1895年,希尔伯特接受了哥廷根大学的一个职位。他第一次访问哥廷根是在9年前:“他发现自己被这个小镇和美丽多山的乡村吸引了,这座小镇与喧闹的哥尼斯堡城和城外那平坦的草原都是如此的不同。”[5]
在希尔伯特到来之前,哥廷根大学就已闻名于世。1833年,高斯和物理学家威廉·韦伯(1804—1891)在那里合作发明了电磁电报。随着希尔伯特和菲利克斯·克莱因(1849—1925)对数学系的管理,哥廷根即将成为全世界数学家的圣地。
早些年,希尔伯特解决了代数不变量和数域领域的未解问题,并借此赢得了声誉,但是在1898~1899学年中,他的兴趣有了不寻常的改变。希尔伯特教授几何课,而这门课通常不在大学教授,学生们已经在基础教育阶段完成了欧几里得基础课程。
希尔伯特的几何课教授模式与欧几里得几何相似,从几个公理(事实上是几组公理)出发,然后从这些公理中推导出许多定理。不同的是,希尔伯特的推导无比严谨。希尔伯特重新思考了几何学,并且重新进行了公理化。这是将非欧几何知识融入其自身概念的新时代欧氏几何。1899年,希尔伯特出版了他的几何学讲义《几何基础》(Grundlagen der Geometrie),这本书立即成为了一部数学经典。(英文第2版翻译自德文第10版,由Open Court出版社于1971年出版,目前仍在重印)。
希尔伯特没有像欧几里得那样将他的几何书称为《几何原本》,而是叫做《几何基础》。对于希尔伯特来说,将几何学建立在稳固的公理体系根基上,比解决或证明定理重要得多。建立几何根基的关键工作是证明公理体系的一致性,也就是这些公理不会引起任何矛盾。为此,希尔伯特把他的几何类比到了实数平面上。这基本上就是笛卡儿坐标系上的解析几何。于是希尔伯特几何学的一致性问题就转化成了实数算术的一致性问题。
在那个年代,希尔伯特并不是唯一对构建数学基础感兴趣的数学家。1889年,朱塞佩·皮亚诺(1858—1932)将公理化方法应用在了一个大多数普通人都认为没有必要的地方——自然数算术的公式化上。那时并不太有名(不过现在评价很高)的戈特洛布· 弗雷格(1848—1925),使用一种全新的记号重新构造了数理逻辑,并在其1879年出版的名为《概念文字》(Begriffschrift)[6]的小册子中做了描述。后来,弗雷格出版了《算术基础》(Grundlagen der Arithmetik,1884),试图通过数理逻辑来建立实数算术的基础。之后,弗雷格又在篇幅更大的著作中详细阐述了他的系统。他在1893年出版的《算术的基本法则》(Grundgesetze der Arithmetik)第一卷中,将集合论和数理逻辑结合起来用以建立实数的合理性。
世纪之交到来之前,这些数学的根基在很短时间内先后各归其位,数学看似处在顺利的轨道上。1900年8月,希尔伯特受邀在巴黎召开的第二届国际数学家大会上进行重要的演讲。考虑到这次演讲将为数学开辟一个崭新的世纪,希尔伯特不太确定要说些什么。
希尔伯特求助于他在哥尼斯堡大学的好友,出生于立陶宛的数学家赫尔曼·闵可夫斯基(1864—1909)。闵可夫斯基建议他在演讲中尽量展望数学而不是进行回顾:
最吸引人的莫过于展望未来,你可以列举出一系列有意义的、值得数学家们在即将到来的新世纪为之研究奋斗的数学难题。如果你选择了这样的主题,人们在数十年后还会对你的演讲津津乐道。[7]
因此,在1900年8月8日,希尔伯特按照闵可夫斯基的建议,开始了他的演讲:
我们当中有谁不想揭开未来的帷幕,看一看在今后的世纪里我们这门学科发展的前景和奥秘呢?下一代的主要数学思潮将追求什么样的特殊目标?在广阔而丰富的数学思想领域里,新世纪将会揭示什么样的新方法和新成就?[8]
然后,希尔伯特大概地讨论了一些需要新世纪数学家们解决的问题。他向听众保证,这些问题终有一天会被全部解决。
无论这些问题看起来多么难以解决,无论我们在它们面前显得多么无助,然而我们可以肯定的是,解答它们必然要经过有限步骤的纯逻辑过程……对每个数学问题必然可解的坚定信念,恰恰强烈地激励了我们每个数学工作者。我们会听到内心深处那永恒的呼喊:这里有一个数学问题,去找出它的答案吧!你能通过纯思维找到它,因为在数学中没有不可知(ignorabimus)。[9]
尽管ignorabimus是一个生僻的拉丁词,但是希尔伯特的听众、这些数学家们还是可以很容易解析它的含义,即“我们不知道”。一些人还将这次演讲与1876年物理学家埃米尔·杜布瓦—雷蒙(1818—1896)所做的演讲关联起来。杜布瓦—雷蒙在那次演讲中悲观地总结道:“考虑到物质和力的谜一样的本质……科学家们不得不接受这个残酷的定论:它是不可知的。”[10]
对于杜布瓦—雷蒙来说,物质和能量的本质是永远无法揭开的,而乐观的希尔伯特显然不能容忍这样的态度。尤其对于数学,他很明确地说,没有什么是“我们不知道”的。
然后,希尔伯特提出23个来自于多个数学领域的未解决问题,向他的同僚们提出了挑战。(当时因为演讲时间有限,只提及了10个问题。发表出来的演讲全文中包含了所有23个问题。)在这些问题中,有些十分深奥,而有些则是其领域里的基础问题。
第一个被提到的问题就是“康托尔的连续统基数问题”,即连续统的势是不是紧挨着自然数集的势之后的第一个超限数,或者说,这两个超限数之间是否有其他的超限数。在当时,对格奥尔格·康托尔的工作的争议已经少了很多,而希尔伯特就是康托尔最有力的拥护者之一。
第二个问题关注于“算术公理系统的相容性”。希尔伯特将自己的几何学的一致性建立在实数系统和算术的一致性之上。由此,实数也需要被公理化,并且“需要证明它们是无矛盾的,也就是说,经过有限步的逻辑运算之后不会产生任何的矛盾结果”。[11]
对于第十问题,希尔伯特用德语说道:
Entscheidung der Lösbarkeit einer diophantischen Gleichung.
注意单词Entscheidung,它是本书中一个非常重要的词,意思是决定、判定、判断。希尔伯特第十问题的完整叙述如下所示。
10. 丢番图方程可解性的判定
给定一个包含任意个未知数的有理整系数不定方程,试推导一个过程,通过有限步运算判定该方程是否存在有理整数解。[12]
是的,自丢番图撰写《算术》起已经过了1650年,而数学家们仍然热衷于研究丢番图方程。有些数学家在研究特定形式的丢番图方程,而希尔伯特询问的却是通用判定过程。要注意的是,这个问题并不是要寻求一个解决所有丢番图方程的通用方法,它寻找的是可解性的判定。考虑任意一个丢番图方程,它是可解的吗?它有有理数解吗?希尔伯特要的是一个判定过程,而且他丝毫不怀疑这样的过程是存在的,唯一的问题是要找到它。
希尔伯特定义这个问题时所使用的词,为这个特殊的判定性问题和今后一些年的其他判定性问题定了基调。希尔伯特想要一个由有限步操作构成的过程。简言之,希尔伯特想找一种算法,但是这个词(无论是英语的Algorithm,还是德语的Algorithmus)在当时还未使用,最起码没有现在的含义。现在的算法一词,还是在20世纪60年代通过计算机相关著作推广开来的。[13]
在1900年的那次演讲中,希尔伯特邀请他的听众“揭开”20世纪的“帷幕”。但是无论是他自己还是其他任何人都没有想到其后所发生的事情。如果当时的物理学家们坚信,他们已经接近了解所有的知识,那么他们的希望在1905年将被彻底摧毁。那一年,如今称为物理学家阿尔伯特·爱因斯坦(1879—1955)的“奇迹之年”(annus mirabilis)。在短短的一年中,爱因斯坦发表了一篇博士论文和其他四篇论文,建立了相对论和量子力学的基本原理。
宇宙再也不是线性的、欧氏的和确定性的了。空间与时间在相对论的宇宙中失去了依靠。在1907年著名的相对论论文中,希尔伯特的朋友赫尔曼· 闵可夫斯基杜撰了时空(Zaumreit)[14]这个词。(闵可夫斯基在1902年来到哥廷根大学,但在1909年因阑尾炎猝死。)最终,在整个世纪里,量子力学中最知名的成果应该是不确定性原理(1927)。
或许正是回应了这种新的转变和不确定性,现代艺术和音乐走向了惊人的、令人振奋的方向。可视的形状和物体被肢解,然后重新组装成立体画和雕刻。随着真实世界中“客观”宇宙变得越来越不可靠,超现实主义者们转向在其潜意识生活和非理性梦想中寻求自我。
在音乐上,浪漫的时代似乎终结了。在后期,瓦格纳和德彪西等浪漫主义音乐家大量采用半音化和声的作品,不得不为伊戈尔·斯特拉文斯基充满了不和谐音及不对称节奏的《春之祭》让路。事实上,《春之祭》于1913年在巴黎首演时,听众就群情激愤,差点酿成暴动。在20世纪20年代早期,奥地利作曲家阿诺德·勋伯格提出的十二音列理论,就是对音乐和弦的根基进行重新公理化,从而创造出非欧音乐。
20世纪的数学家们也不可避免地卷入了这股颠覆性的风潮。第一个不和谐的音符在1902年被弹奏出来。
戈特洛布·弗雷格,1848年出生于德国维斯马。在希尔伯特到达哥廷根前20年,他从哥廷根大学获得了博士学位,此后任教于耶拿大学,并在那儿待了44年。其毕生之作《算术基础》的第一卷出版于1893年,他在书中尝试对所有的数学理论进行系统性的开发,第一个被选中的就是数理逻辑,现在称之为逻辑学。谁知第一卷销量太差,以至于出版商都不愿意出版第二卷了,所以1902年弗雷格试图自费出版第二卷。
与此同时,《算术基础》的第一卷引起一位重要读者的注意。
这个读者就是伯特兰·罗素(1872—1970),一个非同寻常的人物。他的第一篇数学论文发表在维多利亚执政期,而他一直活到了越南战争时期,并参加了反战运动。罗素出生于名门望族,他的祖父约翰·罗素(1792—1878)曾是英国首相,他的教父是功利主义[15]哲学家约翰·斯图亚特·密尔(1806—1873)。罗素很早就对数学产生了兴趣:
11岁时,我的哥哥开始教我学习欧氏几何。这是我一生中的一个大事件,就如同初恋一样使我神魂颠倒。我从来没有想到,世界上还有如此令人愉悦的东西存在。待我学完第五命题的时候,我的哥哥告诉我大家普遍都认为这个很难,但我一点也不觉得。这是我第一次意识到我可能智力非常。[16]
1902年,罗素正在忙于撰写自己的《数学的原理》(计划第二年出版),他发现了皮亚诺和弗雷格的集合论中都存在一个同样的问题。
一个集合的成员可以是其他的集合,一个集合甚至可以包含其自身。罗素于是考虑:那么由所有不包含自身的集合所组成的集合呢?它包含其自身吗?如果答案是否定的,它是一个不包含自身的集合,那么根据定义它应该包含自身;而如果它包含自身,那么它就不再是不包含自身的集合了。
这就是众所周知的罗素悖论,一个新的困扰了数学家至少两个千年的悖论。罗素后来用小镇上的理发师来类比这个问题。如果一个理发师只给所有不给自己刮胡子的人刮胡子,那么谁为他刮胡子呢?
罗素给弗雷格写了一封信,询问关于集合以所有不包含自身的集合作为成员的问题,[17]弗雷格完全被挫败了。他很快为《算术基础》的第二卷写了一个附录,不过这个问题还是没法得到解决。这个悖论成为弗雷格理论的一个基本缺陷,波及他毕生的主要成果。
伯特兰·罗素发现的这个悖论是由集合包含自身所导致的。如果去掉这种自我指涉,集合论就有可能没有悖论了。罗素开始探讨类型论,他先在《数学的原理》中谈了一些,然后在1908年的一篇论文里进行了详细的讨论。[18]罗素建立了一组具有层次结构的集合。处于结构最低层的集合称为1类型集合,它只包含个体(比如数字)。从下往上,1类型的集合只能是2类型集合的成员,2类型的集合只能是3类型集合的成员,以此类推。
罗素在1908年发表这篇论文的时候,所包含的内容远不止这点。罗素正在着手准备《数学的原理》第二卷,而他先前的导师及良师益友阿尔弗雷德·诺尔司·怀特海(1861—1947),也正在准备写他的著作《泛代数论》(A Treatise on Universal Algebra,1898)的第二卷。罗素和怀特海认识到他们的目标有所重合了,因此,在1906年开始合作,完成了继亚里士多德以来最重要的逻辑学著作。
由阿尔弗雷德·诺尔司·怀特海和伯特兰·罗素撰写的近两千页的《数学原理》(Principia Mathematica)一共三卷,分别出版于1910年、1912年和1913年。与之前的《数学原理》[艾萨克·牛顿1687年的著作《自然哲学的数学原理》(Philosophiae Naturalis Principia Mathematica),有时称为《数学原理》]不同的是,怀特海和罗素的著作只有书名是拉丁文。他们选用此书名也有可能受到了他们剑桥的同事乔治·爱德华·摩尔(1873—1958)的著作《伦理学原理》(Principia Ethica,1903)的影响。[19]怀特海、罗素和摩尔在当时都是“剑桥使徒社”的成员,这个秘密精英社团致力于研究学习哲学论文和吃光讨论会上的沙丁鱼面包。
尽管《数学原理》并不是用拉丁文写的,但它也不是完全用英文写的。书中的很多页都是密密麻麻的公式,“就像冬天早上畜棚场里母鸡在雪上留下的脚印。”一个早期读者这么说。[20]
《数学原理》综合了类型理论和数理逻辑,其中后者大都基于皮亚诺和弗雷格的理论,但使用了皮亚诺的符号表示法而不是弗雷格的图形法。《数学原理》在逻辑学上继续了弗雷格的研究,其中一个高潮部分就是怀特海和罗素证明了
1 + 1 = 2
这个式子比它看上去难多了![21]
直到此时,大卫·希尔伯特对逻辑学还没有特别的兴趣。1904年,希尔伯特在海德堡召开的第三届国际数学家大会上做了“论逻辑和算术基础”的演讲。他在其中提及了一些可能的方法,不过直到《数学原理》出版,逻辑学的问题才走到了舞台中央。
在《数学原理》出版之后,希尔伯特和罗素本可以在数理逻辑方向进行合作,谁知国际形势如风云变幻。1914年8月4日,英国向德国宣战,德国则在几天前已向俄国和法国宣战。第一次世界大战一直持续到1918年。
罗素和希尔伯特都不是军事家。在1914年,德国政府要求主流科学家和艺术家们签署一份反驳“敌人的谎言和诽谤”的声明。希尔伯特根本不能判断德国政府所作的这些声明是否真实(政治上的判定性问题),所以他拒绝签字。[22]罗素,一位毕生反战的运动家,参加了更多的公开抗议,并因此在1916年被剑桥三一学院解聘,之后又被监禁了五个月。[23]
事实上,希尔伯特曾经在1917年邀请罗素前往哥廷根大学做讲座。即使罗素的护照没有被英国政府扣留,也很难想象这样的访问在战争期间能够成行。[24]
1917年9月11日,希尔伯特受瑞士数学家学会之邀,在苏黎世做了一次题为“公理化思考”的演讲,从而再一次公开踏入了数学基础理论领域。(尽管战争仍在进行,但因为瑞士是中立国,所以希尔伯特仍然能够在苏黎世与来自其他国家的数学家们见面。)在这次演讲中,希尔伯特第一次提出了在20世纪20年代早期开始为大家所知的希尔伯特计划,该计划偏离了逻辑主义,试图为所有的数学体系寻求严格的公理系统。为了分析公理系统,希尔伯特构思出了“元数学”和 “证明论”,能够使用数理逻辑推导其他数学体系结构中的结论。
现在,这种方法在数学中称为形式化。在希尔伯特的概念里,要构建一个形式化的数学系统,首先要构建定义、公理和从公理推导至定理的法则。理想状态下,生成的系统应该拥有以下四种互相关联的特性:
⟩ 独立性
⟩ 一致性
⟩ 完备性
⟩ 可判定性
独立性是指不存在任何冗余的公理,即没有一个公理可以由其他公理推导出来。事实上,对于独立性的思考正是数学家怀疑欧几里得五个公设的起因。他们试图利用其他四个公设推导出第五公设,由此证明欧几里得公设不符合独立性。不过后来证明,这几条公设实际上都是相互独立的。
一致性是现如今任何公理系统中最重要的特性。推导出来的任何两个定理绝不能相互矛盾!
例如,假设你设计了一个新的数学系统。这个系统包含符号、公理以及利用公理推导出定理的各种法则。事实上,这正是你主要要做的事情:利用公理推导定理,这就是所谓的证明。同时,这些法则也给出了系统内所有可能的合式公式(well-formed formula,往往简称为wff,读作woof)的语法。你可以不去推导,自己组合一个合式公式,然后再试着用公理和法则给出一个证明,说明这个公式是公理的必然推论。
我将展示一个假想数学系统中的两个合式公式。下面是第一个,我们称之为A:
gobbledygook = yadda–yadda–yadda
等号表明等式两边的表达式在某种意义下是等价的。下面是公式B:
gobbledygook ≠ yadda–yadda–yadda
除了等号替换成了不等号,这个公式和A一样。可以说,公式B是公式A的否定,或者矛盾体。
公式A和公式B是相反的,因此二者中只有一个可能为真。现在,数理逻辑中“真”的概念往往和真实生活中的一样难以捉摸。在这里,我并不想进行任何形而上学的讨论,所以仅仅粗略地将真的概念定义为“与公理所做的假设一致”。
如果你能够从已知的公理同时推导出公式A和公式B,那么该公理系统必然是不一致的,而且不仅仅是不一致——它毫无意义。这是因为,不一致性会波及整个系统,使得所有的东西同时既为真又为假,这是一个传统上称为ex falso quodlibet(从矛盾可以推出任意命题)的逻辑灾难。
这就是所谓的一致性。
完备性是指能够从已有公理推导出所有为真的公式。利用证明可以推导出为真的公式。如果通过公理既不能推导出公式A,也不能推导出公式B(即A和B都不可证明),那么该公理系统则是不完备的。事实上究竟哪一个为真?或许你根本不知道,又或者你有一些思路,但是无论如何你不能提供一个证明。
公式为真与公式可证明之间的区别可能会令人迷惑:如果一个东西不可证明,那么我们往往无法百分之百地确定它的真假,但这并不能阻止我们在缺乏证明的情况下断言它的真假。例如,几乎所有人都相信哥德巴赫猜想为真:所有大于2的偶数都可表示成两个质数之和。然而,它仍然被称为“猜想”,因为它依然是有史以来最伟大的未被证明的数学问题之一。
(在以上讨论中,我实际上已经简化了“可证明性”和“正确性”之间的区别。可证明性是句法上的概念,它基于系统的公理以及用来推导定理的法则。而正确性则是语义上的概念,它取决于我们为系统中的符号赋予的实际含义。在本书的第三部分,我将针对这些问题进行更多的讨论。)
对希尔伯特来说,同样重要的还有可判定性。他追寻一个判定过程——用以确定任一给定合式公式的可证明性的通用方法。
如果一个数学系统被认为是不完备的,是不是也说明判定过程不存在?不一定。假设公式A和公式B都不可证明,因而系统是不完备的,但是仍然可能存在一个判定过程,通过分析公式A和B可以得出和刚才相同的结论——它们都不可证明。判定过程的存在与系统是否完备无关。
当然,更好、更强大的判定过程是那种能够确定正确性而不是可证明性的过程。即使我们不能从公理推导出来,这样的判定过程也能够直接识别出到底是A为真还是B为真。
希尔伯特在1900年的巴黎演讲中谈及丢番图方程问题时,第一次提出了判定过程的想法。在1917年关于“公理化思考”的苏黎世演讲中,希尔伯特也谈及了“有限步运算以内的数学问题的判定性问题”。在公理系统的整个数学体系中,他说,判定性问题“是流传久远的,也是讨论最多的,因为它是数学思考的本质”。[25](当然,希尔伯特说一个东西“流传久远的,也是讨论最多的”,指的是他自己所在的数学世界的核心,也就是他自己以及他在哥廷根大学的同事和学生。在《数学原理》中,怀特海和罗素根本就不关心完备性或判定性。)
希尔伯特或许是第一个将德文单词Entscheidung(判定性)和Problem(问题)连接在一起的人,但根据记载,首次使用这个五音节合成词的是希尔伯特的一个助手海因里希·贝曼(1891—1970),那是在1921年5月10日,哥廷根数学协会的一次题为“Entscheidungsproblem und Algebra der Logik”的座谈会上。现在回顾起来,贝曼对于假想判定过程的描述真是让人瞠目结舌(黑体字原文是德文,取自贝曼文集中一篇未发表的文档):
这个问题的一个特性至关重要,就是证明过程只允许根据给定指令进行的纯机械式的计算,不允许掺杂任何严格意义上的思考活动。如果愿意,我们可以说是机械的或像机器一样的思考(说不定以后我们可以用机器来运行这种过程)。[26]
如果贝曼能寻求这种思想的逻辑性结论,那么我们今天谈论的可能就是贝曼机,而不是图灵机了!
在1922~1923学年,希尔伯特教授了一门课,叫做“数学的逻辑学基础”,也开始使用了单词Entscheidungsproblem,[27]但是直到1928年,它才开始从哥廷根扩展到数学界。同一年,希尔伯特的助手威廉·阿克曼(1896—1962)帮助希尔伯特将其课堂讲义(有些内容一直追溯到1917~1918学年)汇编成了一本小薄册子出版,名为Grundzüge der theoretischen Logik[28](《数理逻辑原理》),这本书现在称为《希尔伯特与阿克曼》。
《希尔伯特与阿克曼》完全没有《数学原理》如此广阔的视野和宏伟的目标。书中只包含了除集合论和逻辑学之外的数理逻辑基础知识。但是《希尔伯特与阿克曼》以自己的方式证明了,薄薄的120页书所带来的影响实在是极其深远。书的核心部分是对于有限函数演算法(engere Funktionenkalkül)的解释,即我们今天所说的“一阶谓词逻辑”,其中涉及了对完备性和判定性的讨论。
《希尔伯特与阿克曼》的一位早斯读者是居住在维也纳的奥地利数学系学生库尔特·哥德尔(1906—1978)。关于一阶谓词逻辑,他读道:
在所有论域内都正确的逻辑公式是否都可以从公理推导出来,即便从这个意义上讲,公理系统是否完备还是个未解决的问题。[29]
这一段指的是这样的一阶逻辑公式,无论命题函数(现在称之为谓词)处于哪个论域,也无论对之如何解释,公式总是为真。这些所谓的“永真”公式,能不能从公理推导出来?哥德尔接受了这一挑战,并在1929年的博士论文中证明了一阶谓词逻辑在该意义下是完备的。这个定理就是哥德尔完备性定理。如果哥德尔的贡献只是止步于此,那么他或许没有今天的声望。不过对于哥德尔来说,他的探索只是刚刚开始。
一阶谓词逻辑的完备性虽在意料之中,但也是一个重要的结果。它展示了,用公理和证明机制足以推导出所有普遍成立的命题。然而,数理逻辑显然不是无中生有。谓词逻辑的一个主要目的,就是为数字和算术建立坚实的框架和基础。为了达到这个目的,就必须将公理加入逻辑系统中,以便建立数字理论,这正是《算术原理》所追求的首要目标。那么,加入这些公理之后,是不是所有的命题或者其否定式都是可证明的呢?一阶谓词逻辑在这个更强的意义上是否也是完备的呢?这有时被称为“否定的完备性”,而证明它要难得多。这正是哥德尔紧接着要解决的一个问题。
1930年春,大卫·希尔伯特从执教工作退了下来,时年68岁。同年晚些时候,他被授予哥尼斯堡荣誉市民的称号。在“自然的逻辑和知识”会议的演讲上,希尔伯特一如既往地乐观。[30]30年前,他告诉巴黎的听众,对于数学家来说没有“我们不知道”,现在他又重申道:“对于数学家来说,不存在ignorabimus,并且据我看来,实际上自然科学中的任何分支都是这样。“希尔伯特还引用了哲学家奥古斯特·孔德的例子。孔德曾经为了说明人类的认识有局限性而声称,人类永远都不可能了解遥远的恒星是由什么物质组成的,结果几年之后这个问题就被解答了:
在我看来,孔德不能找出不可解问题的根本原因,在于根本就没有不可解的问题。针对愚蠢的ignorabimus,我们的答案恰恰相反:
我们必须知道。
我们必将知道。
Wir müssen wissen. Wir werden wissen.
在希尔伯特被授予哥尼斯堡荣誉市民的前一天,哥德尔也到访了哥尼斯堡,出席一个数学会议。1930年9月7日,哥德尔宣称,他证明了,为了让一阶谓词逻辑能指出算术运算规则(包括加法和乘法)而必须加入的公理,将会使整个系统变得不完备。他在系统内部构造出了一个公式和它的否定式。如果算术是一致的,那么这两个公式之一必为真,但是,它们两个中的任何一个都不能被证明。
通过后来称为哥德尔配数法的方法,哥德尔使用系统中得到的算术将每一个公式和每个证明都与一个数关联起来,从而得到一个断定自己不可证明的公式。这听起来有点像说谎者悖论(“我说的每一句话都是谎话,包括这句话在内”)的数学形式,但它其实不是悖论。这个公式所断言的并不是自己为真或为假,而是自己不能被证明。如果代数系统是一致的,那么这个公式不能为假,否则会引出矛盾。因此,这个公式必须为真(但是这个真仅仅是元数学中的真,因为真假不是这个逻辑系统本身的概念),也就是说该公式是不可证明的。
哥德尔的论文在次年发表,题为“论《数学原理》及有关系统的形式不可判定命题I”。[31]罗马数字 I 表明,哥德尔本想在这篇论文之后再接着写下去,给出更多的例子,但是该论文很快就引起了极大的反响,第二部也就没必要再写了。
不完备性定理的一个关键前提是算术的一致性。作为一个推论,哥德尔还证明了,在系统内部对算术的一致性进行证明是不可能的。因为有些公式是既不能证明又不能推翻的,所以它们有可能是不一致的。(这是不是说明了算术和初等数论是不一致的?极不可能,并且也没人这么认为。问题在于,一致性不能在系统本身中被证明。)
听说了哥德尔的不完备性定理,作为一个数学家,大卫·希尔伯特的反应有些出人意料。他“有些愤怒”,[32]但最终开始将哥德尔的发现引入自己的体系之中。
另一位数学家直接就丧失了自己对于数理逻辑的兴趣。伯特兰·罗素似乎在撰写《数学原理》中耗尽了热情:
最终,工作结束了,而我的智力再也没能从紧张中恢复过来。自此之后,我不能像以前那样处理困难的抽象问题了。这是我转变自己工作性质的部分原因,尽管绝不是全部原因。[33]
罗素开始追求其他爱好,比如关于哲学、政治以及社会事务的写作。1950年,他因为“在各种重要的作品中拥护人道主义理想和思想自由”[34]而获得了诺贝尔文学奖。那个时候,许多人已经忘记了他一开始是个数学家。
另一位在20世纪20年代中期居住在哥廷根的匈牙利数学家约翰·冯·诺依曼(1903—1957),也在哥德尔之后放弃了逻辑学的研究(按照他自己的说法)。不过,后来他将数理逻辑中的法则应用于对电子计算机的开发中。
哥德尔的不完备性定理并不是哥廷根所面临的最大麻烦。1933年,纳粹党禁止犹太人在德国大学中任教。对于哥廷根大学,这个几十年来以智力成就为单一评判标准的研究圣地,这个法令带来的打击是毁灭性的。理查德·柯朗(1888—1972)离开那儿去了美国,在纽约大学找到了一个职位。(今天,柯朗数学科学研究所占据了曼哈顿西第4街的一整幢大楼。)赫尔曼·韦尔(1885—1955)自己虽然不是犹太人,但是他的夫人是犹太人。像爱因斯坦一样,韦尔去了新泽西州普林斯顿高等研究院。保罗·伯尔内斯(1888—1977)被剥夺了授课的权利,但是他保住了作为希尔伯特最忠实助手的职位,一直到他离开前往苏黎世。伯尔内斯对两卷《几何基础》(1934,1939)做出了主要贡献,尽管这两本书是以希尔伯特和伯尔内斯两个人的名字出版的。
在一次宴会上,希尔伯特发现自己坐在了教育部部长的旁边。部长问希尔伯特:“没有犹太人的影响,哥廷根的数学现在怎么样了?”他回答道:“哥廷根的数学?已经不存在了。”[35]
对于那些继续研究数理逻辑(哥廷根对此的影响日趋减弱)的数学家来说,那些数学问题仍然亟待解决。1928年版的《希尔伯特与阿克曼》中用斜体恰如其分地做了表述:“判定性问题应该作为数理逻辑中的主要问题来看待。”(Entscheidungsproblem muß als das Hauptproblem der mathematischen Logik bezeichnet werden.)[36]哥德尔的不完备性定理并没有指出判定过程是不存在的,它只是证明了这样的判定过程不能确定任意公式是否为真。充其量,它只能确定一个公式的可证明性。
《希尔伯特与阿克曼》这本书用了9页篇幅讨论一阶谓词逻辑中的判定性问题,并且其中一半的篇幅讨论的是关于“特定情况下的判定性问题的解”。对于那些标准的(并且常见的)数理逻辑的公式来讲,判定过程已经开发出来了。所以看起来,通用的判定过程也应该是存在的。
但事实并非如此。1936年,美国数学家阿隆佐·邱奇(1903—1995)总结道(原文同样刻意使用了斜体):“一般情况下的一阶谓词逻辑的判定性问题是不可解的。”(The general case of the Entscheidungsproblem of the engere Funktionenkalkül [first-order predicate logic] is unsolvable.)[37]
阿兰·图灵独立于邱奇,应用了完全不同的方法,得到了同样的结论:“希尔伯特的判定性问题是无解的。”[38]这是他在论文开始就提出来的,最终也作为了论文的结论:“因此判定性问题不可解。”[39]
在邱奇和图灵发表他们的研究成果时,希尔伯特已经74岁了。那时,就连希尔伯特自己也被纳粹怀疑,仅仅因为他的名字是大卫。[40]希尔伯特生命中的最后一年在孤独和老迈中度过。他于1943年去世。在哥廷根大学希尔伯特的墓碑上刻着这样的文字:
Wir müssen wissen.
Wir werden wissen.
我们必须知道。我们必将知道。只是现在当人们读到希尔伯特的这段话时,他们能想到的仅仅是哥德尔、邱奇和图灵,以及不完备性和不可判定性。
希尔伯特的家乡哥尼斯堡在战争中被英国人的炸弹严重毁坏了。1945年并入前苏联,改名为加里宁格勒。由于坐落在波罗的海的海边,这座城市成为一个理想的海军基地,因此几十年来未曾对外开放。前苏联解体之后,加里宁格勒归属俄罗斯,但是它被其他国家隔开,夹在了立陶宛和波兰之间,犯罪率出了名的高。
千年虫问题——有些人预测它会为20世纪带来终极的大灾难,并没有产生多大的影响。《纽约时报》在2000年第一个早晨的报纸头版上写着:
1/1/00:
技术和2000
——————
巨大的安慰
计算机在’00年首个小时获胜
计算机程序员并没有真的在大量的关键系统中埋入时间炸弹。程序员们通常聪明得多!此外,他们还花费了很长时间努力搜索并解决了许多隐藏的问题。实际上,修改计算机程序通常来讲是很简单的,这就是为什么称之为软件。
计算机程序是以文本文件的形式编写和维护的,它们称为源代码。这些文本文件本身能够被其他程序读取和解析。程序员还可以编写特殊的程序,用来检查已有的源代码并找出可能存在问题的地方。比如,这样的程序可以搜索包含字符“year”或者“yr”的变量名,然后,程序员可以人工进行检查,看看相关程序是如何处理日历年的。
随着这些潜在的千年虫故障被找到并消除,一定有人开始思考一个更有野心的计划:能不能写出一个程序用来分析其他程序并且找到其他程序的问题?当然,这样的程序会非常复杂,编写起来非常困难,然而一旦能写出,就可以用来修正任意其他的程序,而这是非常有价值的。
是的,这会很困难,但是它在理论上可行吗?
答案是否定的。开发一个通用的故障发现算法是不可能的,这也是阿兰·图灵关于可计算数和判定性问题的论文所带来的一个令人不安的推断。