编者按:2007 年夏天,MIT 高中生暑期项目开设了一门《哥德尔、埃舍尔、巴赫》读书课,主讲人贾斯汀·柯里(Justin Curry)当时还是 MIT 的本科生,课程录像后来由 MIT 开放课程计划公开。这是第三讲,主题横跨一致性与完备性、哥德尔的两条不完备性定理、欧氏与非欧几何,以及侯世达笔下那篇层层嵌套的对话《小和声迷宫》。本文依据现场录音编译整理,仅删去口语枝节、寒暄与重复,讲授的论证、例子与临场问答一概保留。
上次课我不在,回家看了看家人,几个月没回去了,抱歉。今天这一讲带点复习性质,把前面几次课的东西串一遍,然后我们一起读一篇对话,大概是我最喜欢的一篇:《小和声迷宫》。开始之前,如果谁对前两讲还有疑问,随时打断我。没有也不要紧,问题会自己冒出来。
第四章我请大家在上一次课前读完,尽管那一整堂课讲的是递归。这一章其实只讲三件事:一致性(consistency)、完备性(completeness),还有几何。我先尽可能把这三个词界定清楚,然后你们就会明白第四章到底想干什么,那段「对位藏头诗」到底要把你引向哪里。答案是:它要把你引向哥德尔定理。
谁能告诉我一致性是什么意思?有同学说:没有哪些定理彼此打架。完全正确。用形式系统的话来讲,就是当我们在推演的时候,不管玩的是 MU 系统还是别的什么系统,如果我们推出了一个命题 P,那就绝不能同时从同一组公理里推出非 P。
打个比方,假设我们有一套操作性假设,想用它形式化地预报今天的天气,结果计算机吐出来一句:今天会下雨,并且今天不下雨。这就是一个不一致的系统,你直接推出了矛盾。
有意思的地方在这里,细节我今天不展开:只要你的形式系统里任何一处出现了矛盾,你就能推出任何东西。这件事非常荒唐,很多哲学家都为它苦恼过。凭什么我推出了「这张桌子是红的并且不是红的」,就能由此推出「宇宙是无限的」?可事实就是如此,一旦有矛盾,整个系统就疯了,什么都能推出来,麻烦成堆。哥德尔的两条定理,正是要告诉我们这件事背后的东西。
我刚才用了「不完备」这个词。那么完备是什么意思?这个概念要难得多,第一次接触时非常反直觉。
它要回到我第一讲画过的一幅图,那幅图其实出现在一个我没给你们布置的章节里。设想我们有一个「真值盒子」,它是所有定理、所有我们能证明也确实知道为真的东西的图示。这一块是「真」,这一块是「不真」。像前几天说的那样,我们有一批公理,也就是搭建真理的起点,从公理出发可以推演出各式各样的结论,长成一棵奇形怪状的推演树。就像我们玩 MIU 系统时,先有 MI 这条公理,再把所有推理规则轮番用上,得到所有可能的定理。这些东西,都是可证的(provable)。
可是你看,真值盒子里还剩下一大片空白。那片空白里的命题是真的,却不可证。这个想法很反直觉,但我猜你们中有些人会说:对,这正是我心里的感觉。存在一些我们知道为真的东西,它们不可被证明。这就难住人了:既然没有证明,我们凭什么知道它们为真?我们就是知道。哥德尔的两条不完备性定理,讲的就是这件事。
所以完备性可以给一个简短的定义:系统中每一个为真的命题,都能从公理里推导出来。按照这幅图,我们画的这个系统显然是不完备的,那一大片空白摆在那里,那些真命题从公理出发根本够不着。
谁能想出一个可能为真却不可证的东西?有同学说:宇宙之外的任何事情。这是一个思路。我前几天正好在读塞思·劳埃德(Seth Lloyd)的《宇宙编程》(Programming the Universe)。宇宙从大爆炸起这样膨胀开来,可它膨胀的速率是光速的四倍,而我们能感知的东西最快只以光速传播,于是就有了一个光锥,阴影区域里的才是我们可以感知的。宇宙膨胀得比这更快,所以关于宇宙,永远有一大堆事情是我们不可能知道的。这是个很漂亮的物理例子,但它还不是我说的那个意思。我说的是形式系统内部的完备性,是那种真而不可证。那才是哥德尔定理的心脏。
在往下走之前,我想先说几句几何,这一章里它会以两种面貌出现,你们已经见过欧氏与非欧的对照,我等下再展开。不过现在我更想说清楚哥德尔定理是什么,库尔特·哥德尔(Kurt Gödel)是谁,为什么这本书的三个名字里有他一个。
哥德尔生于维也纳,是数学家。他成长的年代,数学正被一堆冒出来的悖论直接冲击着。当时有个人叫大卫·希尔伯特(David Hilbert),一心要把数学里这些悖论收拾干净。在希尔伯特看来,数学是我们最可靠、最确定的知识来源;如果数学里有裂缝,那作为人类,我们在「知道真的东西」这件事上就彻底完蛋了。
我说的悖论主要指两类。一类是欧氏与非欧的分歧,这场革命从十九世纪初开始,人们花了一百年慢慢消化,一直折腾到二十世纪。另一类是世纪之交的两个集合论悖论,我之前讲过,比如理发师悖论。第一堂课没来的同学,我再说一遍:设想有个镇子,镇上的理发师给所有不给自己刮胡子的人刮胡子,而且只给这些人刮。那么,理发师给自己刮胡子吗?按照我们给这个镇子设定的规则,怎么答都是矛盾:如果他给自己刮,按定义他就属于「自己刮胡子的人」,理发师不该给他刮;如果他不给自己刮,那他就该给自己刮。
我们当时认为,这是从集合论里长出来的悖论。而集合论本来被当作可靠确定的知识地基。希尔伯特声势浩大,他说:诸位,数学里没有不可知的东西,数学必须有一个可靠而确定的基础,我们应当能够把数论当作样板,确立它的一致性和完备性。他觉得,如果世上真有什么东西为真,那非数论莫属。
我很喜欢做这个投票,请大家表个态。下面两句话,你觉得哪一句更真:天空是蓝的,还是 1+1=2?
选第二句。你觉得它在一切可能世界里都为真?你不认为存在某个宇宙,在那里 1+1 不等于 2?
还有别人吗?请注意,这句话根本不涉及感知。它在说什么?它说的是我刚刚随手造出来、写在纸上的抽象对象,毫无感知基础可言。而天空是蓝的,我往外一看,看到的就是蓝天。既然如此,我亲眼所见的,难道不该比那个抽象的东西更真吗?有谁愿意替「天空是蓝的」辩护?
有同学说:因为你的感官。笛卡尔当年就死抠这一点:万一这一切都是一场梦呢?万一这是母体呢,尼奥?他说的就是这个意思。
我们换个角度。假如我们把算术建立在别的东西上,比如雨滴。有一颗雨滴,再有一颗雨滴,我们把「加法」定义为它们相遇。那么一滴雨加一滴雨,得到的还是一滴雨。在这个系统里,1+1=1。这有什么不对?它可是被感知验证过的:我开车走六十英里的时速,雨点打在挡风玻璃上,我亲眼看见雨滴一颗颗并到一起。
有同学说:那你得去量它的大小。对,问题正出在这里。同一性有问题,系统的构造方式也有问题。可即便在数学内部,我们也必须把话说清楚,说明自己是在什么域上工作。假设我做的是模 2 的整数算术,模运算是说:凡是能被某个数整除的,我就记为零。做模 2 算术时,2 模 2 等于 0,所以在模 2 的整数上,1+1 不是 2,而是 0。
也就是说,麻烦确实不少,不确定也确实存在,但这些东西都是严格定义的。我只要说明「我是在整数上工作」,那就万无一失:1+1=2 在一切可能世界里都成立。希尔伯特想要的正是这个,他觉得数学非如此不可,数论必须可靠确定到连一丝问题都不会有。
库尔特·哥德尔确立的是两件事,也就是他的两条不完备性定理。我不会把证明走一遍,其中一条我们今天也不太会细讲,但我希望你们抓住每一条的意思。
第一条:任何与数论一样强的系统,如果能够证明自身的一致性,那么它必然是不一致的。我把数论简写成 NT。也就是说,一旦一个与数论一样强的系统能够谈论它自己,事情就要出乱子。假如数论真能站出来说:「我向各位保证,你们可以从我内部证明我是自洽的」,那么任何能这样谈论自身的系统,必定是不一致的。这条定理的证明极其琐碎繁难,细节我给不了你们。
第二条:任何与数论一样强的系统,必然是不完备的。这意味着,任何与数论一样强的系统,都长成我刚才画的那个样子:存在一些我们能表述出来、却无法证明的真命题。
有同学问:「与数论一样强」是什么意思?好问题。我在这里打个星号,等一下回答。为了证明不完备性定理,哥德尔用了一个非常有趣的花招,叫哥德尔编号(Gödel numbering)。我先把那个句子给你们看,再回过头来说这个星号。
我讲过说谎者悖论。就这么一句话:这句话是假的。
有同学说:在你的语言里不该允许说这种话。为什么不该允许?如果你有一门逻辑上完美的语言,你会禁止什么?你要阻止句子做什么,才能杜绝这类东西?对,自指。自指是关键。
有两个非常非常聪明的人,伯特兰·罗素(Bertrand Russell)和阿尔弗雷德·诺思·怀特海(Alfred North Whitehead),写了一本书。那本书读起来毫无乐趣,我听人形容说,它的趣味程度约等于读轮胎上的花纹。这本书叫《数学原理》(Principia Mathematica),侯世达在书里会反复提到它。罗素和怀特海在这本书里造的,正是你说的那种完美语言。
基本思路是这样:我们造一门第一层语言 L1,只允许某些词项进入,L1 里的句子形如「天空是蓝的」「雪是白的」,都是奉公守法的良民句子,从不越界。同时我们禁掉某些词项,不许这些句子谈论它们自己。而当我们坐在这间教室里谈论这些句子的时候,我们其实是在说另一门语言 L2,L2 把 L1 整个包含进去。于是我们可以说:「『雪是白的』这个句子是白的」,诸如此类。「雪是白的」属于 L1,我在谈论它,而这件事只能在 L2 里做。因为要谈论某样东西,你不能站在它内部谈自己,你必须跳到它外面去,从别的地方回头指着它。就像你没法直接看见自己,非得借助别的东西才行。
罗素和怀特海造出了这套系统,可它仍有缺陷。哥德尔干的事,是拿《数学原理》本身开刀。他构造了一个跟说谎者句子形似、却聪明得多的句子,用它证明了不完备性定理。这个句子是:
这句话不可证。
我们还可以指明是在哪个系统里不可证,比如在 PM(也就是《数学原理》)中不可证,或者在数论中不可证。关键是,这句话到底说了什么?它跟说谎者句子不一样。假设它是假的,那么它关于自身的断言就不成立,也就是说它是可证的。所以假定它假,就得出它可证。
有同学问:在这种情形里,可证与真是不是一回事,因为系统是完备的,所以证出来就是真的?我要提醒的是,这只在一个方向上成立。可证的东西一定为真,这一点我们无比确信:如果我能向你证明某件事就是如此,那它自动就是如此。人们之所以那么信任数学,正是因为一旦有了证明,我们就知道它为真。可反过来呢?真是否总蕴含可证?
那就来问问这个句子。假设它为真,那么它关于自身的断言就必须为真,而它说的是「我不可证」。所以这句话为真的唯一方式,就是它确实不可证。于是我们一下子看清楚了:反方向走不通。
哥德尔用的花招,正好回答刚才那个打星号的问题。上面这个句子并不是一个数学命题。哥德尔做的是:他让每一个字母、每一个逻辑符号都代表一个数,P 对应某个编码,比如 10100 或者别的,每一个符号(包括空格)都分到一个唯一的数。这样一来,整个句子就有了一个哥德尔数。
接着,我们可以给这些数配上运算。回想玩 MIU 的时候,我们说:只要出现三个 I,就可以把它消掉;M 后面的字符串可以整个复制一遍。哥德尔做的,就是把每一条推理规则改写成一条算术规则。推理规则与算术规则之间,建立起同构。
这很反直觉,细节我讲不完,第九章我们会再碰到它。举个例子:我们有命题 P,又有命题「P 蕴含 Q」。比如「如果多云,就会下雨」为真,而我往外一看,确实多云,那我立刻可以推出:要下雨了。哥德尔说,这些命题我都可以变成数,逻辑联结词「与」可以变成加法之类的运算,「蕴含」也是一个符号,而整套「分离」出 Q 的操作,就变成了一个几乎像 1+1=2 那样的算术式子。
然后他做了最关键的一步:把「可证性」这个概念,变成数的某种性质,就像「是素数」那样的性质。于是那句话最终归结为:为这个句子编码的那个数,不具有某某性质。正因为要做这套编号的把戏,你的系统必须强到数论那个程度。
这只是哥德尔定理的第一瞥,我今天不想陷进太多细节。
我想回头再说几句第四章里一带而过的几何,这部分非常漂亮,而且跟「解释」(interpretation)有关。请大家回忆一下解释是什么意思,我第一堂课草草定义过。有同学说:就是给形式系统里的东西挑一个真实世界的模型。完全正确。
我们见过一个不成立的解释:把 1+1=2 里的符号解释成雨滴与雨滴相遇,结果得到的不是两滴雨,而是一滴。这个解释就不成立。我们也给过别的解释:玩 PQ 系统时,我们没给它现实世界的解释,而是给了一个数学解释,即加法。我们说「一横 P 一横 Q 两横」读作 1+1=2。这个不算多有趣。
有趣的是两千五百来年前,一个叫欧几里得的人说:几何对我们来说,已经是最真最确定的东西了,但我要把规矩全部写下来,把我们知道的一切写下来,这样我们就能从这些命题直接往下推,并且知道说出来的每句话都为真。可他没法把自己从地上拎起来,总得先有个落脚点,于是他提了一串要求,就是欧几里得公设。这些公设第四章里都列着,我不一条条念。其中有一条最让他心烦,就是著名的第五公设。他试图从前四条推出它,没能成功。
第五公设是说:给定一条直线,以及一个不在这条线上的点,过这个点存在唯一一条直线,永远不与原来那条相交。几何里的直线是往两头无限延伸的,线段才有端点,这里说的是老老实实的无限长直线。欧几里得证不出它,此后一千五百多年里人们前赴后继地想证明第五公设。可它看上去如此直观、如此显然,有谁觉得它不对,觉得我们有理由不假定它吗?
有同学说:如果换一个曲面呢?对,这就引出了非欧几何。
举个快例子。设想我们待在球面上,并把「直线」定义为大圆。大圆是这样做出来的:拿一个球心为 O 的球,用一个过球心的平面把它切开,切出来的那个圆就是一条「直线」。经线是这样的圆,纬线则不一定,因为不过球心的截口不算。凡是与球半径相同的这类圆,任意两条都必然相交,而且至少交于两处。
所以球面几何里,事情显然不一样。从欧几里得的公理可以推出三角形内角和恒为 180 度,但在球面上,我们从赤道上某点出发,一路走到北极,在那里转 90 度,再直着回到赤道。这里是一个直角,这里是一个直角,那里也是一个直角。球面三角形的内角和可以达到 90+90+90,等于 270 度。这在球面几何里显然不成立。
类似地还有双曲几何,这门学问美极了。双曲几何有好几种模型,可以把它们看成投影,一种是上半平面模型,一种是单位圆盘模型。在圆盘模型里,我们把「直线」定义为那些与圆周正交的弧。这样一来,过一点我们不只能作出两条不与给定线相交的直线,而是能作出无穷多条。球面上有两个交点,欧氏平面上只有一个,而这里可以有一整族毫无交点的直线。
古怪之处在于:我们用的是同一批词、同一批命题,还是「点」和「线」,欧几里得做过的许多几何我们照样能做,只要给这些词换一种解释,比如把直线定义成这个样子或者那个样子,结果就完全不同了。
有同学总结说:形式系统本身是必然的,真正起作用的是你给它的解释。在这个例子里确实如此,命题的真假直接取决于你怎么解释「点」「线」这类词。而麻烦在于,欧几里得的第五公设作为一条假设、一条公理,只有当你在最朴素的平面几何里(比如在这张桌面上)解释它时,才能与前四条公设相容。可你一旦把五条公设全都搬到球面上解释,第五条就与前四条不一致了,它说的东西本身就是错的。双曲的情形也一样,你必须对自己的解释和假定极为小心,否则得到的就是一个内部不一致的解释。
这一整片风景属于双曲几何,它骨子里连着复数之美。双曲几何里能做的事情简直让人瞠目:比如你有这么一条线(记住,它是线,因为它与实轴正交),你能找到一个映射把它送到那边去,并且保持这两点之间的距离不变。诸如此类的花样多得很,这门学问美不胜收,我强烈建议你们去多学一点。
举出这些例子是因为:一千五百多年里,我们一直以为欧几里得说的东西是人类能拥有的最可靠最确定的知识。人们常常想把自己的论证归约到几何上去。有个有趣的掌故:卡尔·马克思和弗里德里希·恩格斯写他们那些著作时,真的试图把自己的主张还原成数学,因为他们觉得,只要能像证明数学那样证明自己主张的那套制度,别人就非接受不可。
可要是数学本身就不一致呢?要是你碰上集合论那样的悖论,或者碰上这种解释一换、真假就跟着变的局面,那该怎么办?如果数学的立足之地并不牢靠,那接下来怎么办?我希望你们带着这个问题读下去,顺便想想:给出一个解释,究竟意味着什么。
我们先休息一下,因为接下来要读的是我最喜欢的对话之一,篇幅不短。大家去拿点吃的喝的,五分钟后回来读,我需要几位志愿者念台词。至于为什么让你们准备食物,读完你们就明白了。
《小和声迷宫》读完了,感觉如何?有人说混乱。为什么混乱?因为角色在几个故事之间来回滚动,乌龟变成了另一个人。对,角色互换,他们对待彼此的方式、谁被关在笼子里,全都翻了个个儿。更有意思的是,他们之所以有机会这样翻转,是靠不断往下钻进一层又一层嵌套的故事,在某种意义上,他们每一层都成了新的人。
这种在层级之间的腾挪,用朗读的方式其实很难完美呈现。但你们边读边看应该注意到了,文本里有缩进,那是一个视觉提示,提醒你此刻身处故事的第几层。侯世达用了各种巧妙的把戏,比如上面这一层里某个角色说:「我想他的意思是补药(tonic)」,而下面那一层里另一个人说:「谢谢,补药正是我需要的。」而这些人对自己头顶上那层现实一无所知。
这跟黄鼠狼的遭遇是同一个问题:他坐在我们日常的生活里,喝了一口「跳出药」,就跳到了更高一层现实。这会让人浮想联翩。我脑子里总浮现出一幅画面:把宇宙想成一个分形,我们所有人一辈子都住在谢尔宾斯基三角(Sierpinski gasket)的这个角落里,某一天有人喝了一口跳出药,然后惊呼:我的天,原来还有这么多层。而仅仅有过这一次在两层现实之间穿行的经验,就足以让你开始猜想:为什么不能有更多层?为什么不能有无穷多重现实?我又怎么知道自己身处哪一重?
有件事我想在这里挑明。第一堂课我说过(当时不是所有人都在场),这门课最终要回答的根本问题是:什么是「我」?是什么让有意识的东西区别于无意识的东西?粒子和原子究竟怎么开始像我们这样谈论它们自己?
所以这门课注定要碰很多又深又要命的问题。我希望没有人担心自己的看法会招来围攻。要知道,这篇对话中途我们连上帝都碰见了;如果连上帝都不能谈,那我们能谈的东西就太窄了。同样,当我问「心灵是什么」「一个物理的大脑怎么会开始生出心理活动和意识」时,我问的其实是关于灵魂的问题,你们各自的看法在这里很重要。我不希望任何人觉得自己是在一个充满敌意的环境里学习,所以请踊跃发言。
有意思的是,侯世达给出了一幅很独特的上帝图景:他挑的是那种递归的、一层叠一层的无穷。
顺便讲一个历史掌故。微积分诞生的那个年代,牛顿和莱布尼茨在 1670 年前后做他们的工作,或许还要晚一点,而其他人真正跟上来已经是 1730 年代了。这批人研究的是无穷小。回忆一下我们玩微积分的时候:先用有限的方式近似一个函数,然后取极限,让分割变得无穷小,那到底意味着什么?靠这个,你能求出曲线下的面积,方法是用一堆小方块去逼近,再取无穷小的极限。
希腊人其实已经很接近微积分了,阿基米德在概念上离它只差几步之遥。但希腊人在某种意义上比牛顿和莱布尼茨更聪明,因为他们说:笨蛋,你把一堆无穷小的东西加起来,怎么可能得到一个有限的东西?我怎么可能把一叠无穷薄的二维圆片摞起来,得到一个圆柱?这说不通。它确实说不通。
所以后来发生的事,一直到欧拉这批人,本质上是把「无穷」这个概念严格化。我讲这段是因为:耶稣会士在那个年代以及稍后,是最早在学校里教学生微积分的群体之一,理由是他们相信,一个人若能在数学上严格地处理无穷的概念,就能更好地理解上帝。耶稣会真心认为,懂微积分是懂上帝的必要条件。
我觉得这跟《小和声迷宫》的精气神很合:你在那里看到「上帝凌驾于精灵之上」的层层套叠,而「精灵」(Djinn)本来是阿拉伯语里的精怪,然后一路上升到上帝本身,再折返回来。这要求你真刀真枪地摔打一番处理无穷的概念工具。这门课里我没法把它教全,但我建议你们自己去追下去。
一个小问题:你们注意到,每个精灵办事所花的时间都是前一个精灵的一半。谁能说说为什么,或者说侯世达为什么要在这个细节上做文章?有同学说:因为你不能一直做下去。对,你需要某种收束。总时间是 1,加上第一个精灵所用时间的一半,再加上前一个精灵所用时间的一半,也就是 1 + 1/2 + 1/4 + 1/8 + 1/16 + ……,一直加下去。它等于多少?对,等于 2。
这是一个几何级数(geometric progression)的例子,它告诉我们:一个无穷的过程可以在有限的时间内收敛。而人类花了多久才明白这一点?我们把时间轴倒着拉回去,大概在公元前三世纪到二世纪,埃利亚的芝诺(Zeno of Elea)正是用同一个论证宣称运动本质上不可能,我们哪儿也去不了,一切运动都是幻觉,因为运动要求你完成无穷多件事,而无穷多件事永远做不完。作为一个集体意识,人类花了一千七百年、接近两千年,才发展出处理无穷所需的工具。我觉得这件事本身很值得琢磨。
关于无穷我能开一整门课,讲一大堆重要人物。这里我只想引入一个术语和几个概念。
第一,永远没有最大的那个无穷,而且你总能用较小的无穷造出更大的无穷。你甚至可以搞出一套形式系统来摆弄这些无穷。比如自然数 1、2、3……一路排下去,我们说:好,把这一整批都拢起来,叫它 ω(欧米伽)。然后我们可以有 ω+1,再排下去,就有了两个 ω,接着可以做基数与序数的算术。不同领域的记号和概念有些混杂,你也会看到把这第一级无穷写成 ℵ₀(阿列夫零)的,它指的是自然数给出的那一级无穷。
我们还能造出无数种无穷,甚至能定义指数运算。一个大问题是:2 的 ℵ₀ 次方是什么?通常的说法是,它就是 ℵ₁,大致相当于实数的多少,也就是实数轴上所有的数。这件事有点悖谬的味道。
有同学说:无穷不是有这么个性质吗,它的一部分可以和整体一样多?完全正确,你刚刚说出了「无穷」的一个严格定义方式:一个集合是无穷的,当且仅当它能与自身的真子集建立一一对应。举个例子,取普通的整数,我们有无穷多个;把它们与偶数配对,通过乘 2 或除 2 就能造出一个完全的双射。可我们的直觉偏偏觉得,偶数明明都在整数里面,理应比整数少。到了无穷这里,什么怪事都办得到。
更妙的是,你还能取 0 到 1 这个区间,造一个映射把它送到整条无限长的实轴上。所以我们能用一个非常有限的东西装下一个无穷的东西,这太惊人了。同时,多亏一位好人康托尔(Cantor),我们知道自然数与实数确实是不同量级的无穷,它们之间隔着一级。这靠的是对角线论证,哪天有机会我讲给你们听。
今天这一讲你们读的是第五章,递归的结构与过程,虽然我们一路岔开谈了别的。之所以布置它,是因为上一次课柯伦讲得非常好,把无穷与递归交汇的各种花样都摆给你们看了。
但我们仍然揣着那个问题不放。这引回到本书第一部分里两件最重要的思考工具:递归(recursion)与同构(isomorphism)。同构出现在你想在两样东西之间建立对应关系,并且能以一种定义良好的方式建立起来的时候。我希望你们琢磨一下这两者之间是什么关系,它们又怎样把这些概念串在一起。
第五章里我至少想拎出一两处。递归能做的事情太多了,柯伦演示过用它构造分形、树、山脉,各种漂亮东西;用递归转移网络还能写出生成句子和语言的递归程序。既然如此,如果递归真是智能的核心,为什么人类如此不擅长递归?第二,它真的会通向创造力,通向一台我们分辨不出是人是机器的计算机吗?
从这里能看出这本书的年份。侯世达提到,当年人们说,只需要十年就能造出一个下国际象棋的世界冠军程序;十年过去,又说再等十年,然后再等十年。他其实是在暗示:这事永远不会发生。可到了九十年代初,IBM 造出了深蓝,击败了当时的世界冠军卡斯帕罗夫。
这场胜利恰恰凸显了:人思考的方式、人下棋的方式,远比分析式的解题直觉得多。书里说的那种递归算法是这样运作的:分析所有可能的走法,挑出对对手最不利的那一步;再判断对手下一步会怎么走时,换位使用同样的方法,站到对手的位置上,分析在那一步之后的所有可能走法,找出对他们最不利的一步,如此继续下去。你能在这棵国际象棋的走法树上往前搜多深,就有多大优势。可卡斯帕罗夫不是这样思考的,他靠的是直觉,那是人类智能中至今仍未被我们的程序捕捉到的、带点魔力的部分。而深蓝居然赢了。我觉得这是关于「递归在智能中扮演什么角色、它是不是最终答案」的一个很有意思的例子。
第五章我不多讲了,那部分我们读过,你们也上过一整堂递归课。我要请你们认真读的是第六章,那是下次课的阅读任务。因为在那里,你们要问一个根本问题:意义从哪里来?我们凭什么知道自己说的词有意义?
意义理论、语言理论的问题可以这样引入。假设我把你扔到一座孤岛上,岛上的人来来往往,说着他们自己的语言,你一个词也听不懂。可你被困在那儿,得靠他们活命,于是你觉得学他们的语言是个不错的主意。你打算怎么学?
假设你跟着这个部落出去打猎,每当一只兔子从旁边窜过,就有人喊:Gavagai!Gavagai!你于是想:好,我要在脑子里编一本词典,为这门语言写一本词典,我知道 Gavagai(我也不知道该怎么拼)等于「兔子」。
现在我们换个位置,假设你是当地人中的一个。你们的文化里有一条信念:绝不把整体看成大于部分之和。所以当你说 Gavagai 的时候,你指的并不是那只完整的兔子,而是「未分离的兔子部件」。因为一旦兔子被切开,你正在烹饪它,它的一条腿架在明火上,它就不再是 Gavagai 了。这就像我们说到牛通常叫牛肉,说到猪通常叫猪肉,一旦开始吃,叫法就变了。我们脑子里把 Gavagai 连到整只兔子上,他们要的却是「未分离的兔子部件」,而这个东西在他们的概念网络里,与我们的概念网络完全不同。所以这个等号并不成立。
这在意义理论里是一个非常严格的问题,下一讲我们就从它入手,谈同构在其中扮演的角色。
有同学问:那你到底要怎么学会那门语言?我们显然可以搭出某种功能性的装置,我确实能一步步逼近「兔子」这个意思,可我们究竟怎样破译意义本身?我们确实能以某种方式学会一门语言,但这跟另一个问题是同一回事:我怎么知道我说出来的,正好就是你要我说的那个意思?从来都不完全一样。这正是要害所在。那么,我们该如何建立一套意义理论?
好问题,都是留给下一讲的好问题。请把问卷交上来,下次见,下课。
这节 MIT《哥德尔、埃舍尔、巴赫》第三讲以“一致性、完备性、几何”三个概念为线索,从希尔伯特纲领与集合论悖论讲到哥德尔两条不完备定理的核心思想(自指语句 + 哥德尔编码),再借非欧几何说明“解释”决定公理真假,最后通过《小和声迷宫》对话引出无穷、递归与意义理论等后续主题。
一致性指系统中没有互相矛盾的定理:不能从公理同时推出 P 和非 P(讲师用「今天下雨且不下雨」的天气预测举例)。完备性指系统内所有真命题都能从公理推导出来,即「真理盒子」图中没有真而不可达的空白区域。讲师在第 2–7 段依次给出这两个定义,并强调完备性更反直觉,因为它意味着可能存在「我们知道为真却无法证明」的东西,这正是哥德尔定理的核心。
第一条:任何与数论一样强的系统必然不完备,即存在能表述出来但既无法证明也无法否证的真命题。第二条:任何与数论一样强的系统若能证明自身一致性,则该系统必然不一致——换言之,一致的系统不能证明自身一致。讲师在第 13–17 段板书这两条,并说明「一样强」的含义要靠哥德尔编号解释:系统必须强到能给符号编号并把可证性表示为数的性质。
讲师在第 50–52 段引入:把你丢到陌生部落,每次兔子跑过族人都喊「gavagai」,你自然把它译成「兔子」。但若该文化不把事物看作「大于部分之和」,gavagai 可能指「未分离的兔子部件」——兔子一旦被切开烹饪就不再是 gavagai,正如英语中牛变成 beef、猪变成 pork。这说明词与词的等价依赖于双方概念网络是否同构,仅凭行为证据无法唯一确定意义,这就是下一讲要处理的意义理论问题。
总时间为 1+1/2+1/4+1/8+…,这是一个几何级数,和为 2。讲师在第 42–43 段指出,这说明一个无穷的递归过程可以在有限时间内收敛完成,侯世达特意设计此细节就是为了让无限嵌套的下降能够「返回」。讲师随后联系芝诺悖论:公元前 300 年左右芝诺用同样论证否认运动,而人类花了近两千年才发展出处理无穷的工具,这也呼应了微积分史的讨论。
可证蕴含真是系统可靠性的基本要求,也是人们信任数学的理由:有证明就知道为真。但反向不成立,讲师在第 21–22 段用句子 G=「本命题在 PM 中不可证」论证:若 G 假,则它所说的为假,即 G 可证;而可证的东西为真,与 G 假矛盾。故 G 只能为真;而 G 为真意味着它所说的成立,即 G 不可证。于是得到一个真而不可证的命题,直接填充了「真理盒子」中可证区域之外的空白,证明真↛可证。
共同主题是「解释」(interpretation):形式符号本身无真假,真值取决于赋予的解释。第 26–32 段中,同样的「点」「线」术语,在平面上第五公设为真,在球面(大圆为线,两线必交)上为假,在双曲圆盘(无穷多条不交线)上也为假。这说明第五公设与前四条独立,欧氏几何不再是唯一确定的真理。它与雨滴算术、模 2 算术一样,都在动摇「数学是确定无疑知识」的希尔伯特信念,为「数学自身可能不一致」的问题铺路。
讲师在第 3 段指出,若系统中任何地方出现矛盾(如「桌子是红的且不是红的」),逻辑上可以推出任意命题,包括「宇宙是无限的」,这与直觉相悖,哲学家对此长期困惑。正因如此,一个不一致的系统毫无价值。希尔伯特把数学视为最可靠的知识来源,认为若数学有缺陷人类就无法认识真理,因此他要求证明数论的一致性和完备性(第 9–10 段)。哥德尔的第二定理恰恰说明这种自证一致的愿望无法在系统内部实现。
讲师在第 22–25 段分三步说明:第一,给每个符号(包括空格)指派唯一数字,使每个命题对应一个哥德尔数;第二,把推理规则(如由 P 和 P→Q 得 Q 的分离规则)转化为数之间的算术运算,形成推理规则与算术规则的同构;第三,把「可证性」表达为数的一种性质,就像「是素数」一样。于是「本命题不可证」就变成「某个数不具有某性质」这样的纯数论命题。这也回答了学生的问题:系统必须「与数论一样强」,才能完成这种编码。
第 48–50 段中,讲师先指出递归能生成分形、语言等复杂结构,似乎是智能的核心,但随即提出两个疑问:人类为何不擅长递归?递归能否带来创造力?深蓝用递归的极小化极大搜索遍历走法树,确实赢了棋;但卡斯帕罗夫靠直觉而非穷举思考,这种直觉是人类智能中「尚未被程序捕捉的神奇元素」。讲师的结论是开放的:深蓝证明递归可以在特定任务上胜过人,但它未必是智能的「最终答案」,这为全书关于心智本质的追问保留悬念。
讲师在第 7–8 段已预先回应:他承认光锥之外的宇宙是一个「不错的物理例子」,但明确说「这并不完全是我在形式系统意义上所指的」。差别在于:物理视界是因观测手段有限而不知道某事实,本质上是经验性的;而哥德尔式的「真而不可证」是在给定公理系统内、关于自然数的命题,我们能从外部(元层面)确知它为真,却能证明它在系统内部无法推出。前者可能随技术进步改变,后者是逻辑必然,任何足够强的一致系统都逃不掉。
可以。几何中「线」的意义由解释决定,同样「gavagai」的意义由说话者的概念网络决定;学习者以为建立了词典等价,实则可能在两套不同构的概念系统间做了错误映射,正如把 1+1=2 解释为雨滴合并会失效(第 26 段)。与哥德尔的联系在于「跳出系统」:正如 L1 的句子只能在 L2 中被谈论,要判断一种翻译是否正确,也需要一个更高的元视角,而学习者身处系统之内往往无法获得。学生追问「那怎么学语言」正说明这一困境无法完全消除,只能靠功能性的近似,这也是第六章「意义的位置」要展开的内容。