从前有座山

小时候想听故事,但是又嫌故事短,还没听过瘾就结束了。因此大人们就讲了一个不会结束的故事,故事是这样的:

从前有座山,山上有座庙,庙里有两个和尚,大和尚对小和尚说:“从前有座山,山上有座庙,庙里有两个和尚,大和尚对小和尚说:“从前有座山,山上有座庙,庙里有两个和尚,大和尚对小和尚说:…..”

反正我是很烦这个故事,因为翻来覆去都那么几句话,但是却没完没了。

上小学时候发现,其实不光是我家大人给我讲这个故事,同学家的家长也都讲过这个故事,我不禁怀疑他们是不是从同一个人那里听到的版本。

山上有座庙

其实使用递归定义,可以很容易将这个故事写出来:

两个和尚的故事 :从前有座山,山上有座庙,庙里有两个和尚,大和尚对小和尚说两个和尚的故事。

故事持续到这里已经可以结局了。其实在生活中,类似的东西还有很多,而这些东西说起来都很奇妙,例如自由软件里面鼎鼎大名的 GNU ,他是一个缩写,缩写的内容是 Gnu is Not Unix 。 《GEB》的作者候世达,总结了一条候世达定律:

候世达定律 : 做事情的时间永远比预计的时间要长很多,即使在预计时已经考虑了候世达定律。

这类描述的共同特征其实很明显,就是自己的描述中又包含了自己。这个概念,就叫做自指。

庙里没有和尚,庙塌了

上面的自指虽然看起来比较奇怪,至少也带来很多趣味性。但是有一类自指,却给逻辑,或者数学带来了灾难。 原本大家以为这个世界是可以用数学定义的,因为数学的体系足够严格和有序。于是就有大神希尔伯特,提出了一个希尔伯特方案,其中核心思想就是,将数学完全形式化,详尽的列出基本概念和公理,那么其他所有的定理,什就可以从这个系统中直接证明。定理的发现,再也不需要一些羚羊挂角的思维灵感,也不需要一些天才的奇妙直觉,可以通过系统的推理来实现。

理想崇高又美好,也足够吸引人。但是理想毕竟是理想,理想被现实给打脸了。打脸的核心就是自指。打脸的武器叫哥德尔不完备性定理。哥德尔不完备性定理的证明,从技术手段上看,即能构造一个在形式化系统中为真的描述,这个描述是不可证的。

听起来很绕口,也有些反直觉,在数学系统里面,如果我们只放进去那些确定的公理,将自指排除在外,那自指是怎么跑进去的?我们先从看简单的集合论看起。

经典的说谎者悖论是说,有个人说:“我说的这句话是假话”。那这到底是真还是假?《攻壳机动队》中,塔奇克马就是用这个成功将一个人工智能妹子卡死的。但是实际上,这句话可以用我们的语言表达出来,恰恰证明了语言也是逻辑上不完备或者不相容的。如果把文字看作是语言的编码,那么一句话的意义和的编码实际上是两回事,他们存在两个系统中,一个是符号的表达,一个是意义的表达,将语言的意义表达再嵌入到表达语言的符号本身去的时候,悖论就产生了。

上述解释依然比较绕,再通俗一点,在一个逻辑系统里面如何表达这样的悖论?

命题逻辑是没戏了。如果 G 表示“这句话是假的”,那么实际上要表达的变成了 “ G 是假的”, 这个新的命题叫做 G1 , 那我们需要的命题又变成了 “ G1 是假的”,似乎我们又看到了山上的和尚。所以我们需要一个手段,将 G 和“这句话是假的”中的“这句话”联系起来,而这个联系就是“哥德尔配数”。

哥德尔证明了,任何一个只要包含算数公理的一阶逻辑系统,都可以构造一个这样的悖论出来。因此也就证明了任何一个包含算术公理的系统,都无法同时满足完备和相容。而如果不包含算术公理,那这样的系统太弱,无法表达真实世界一些简单的事件。

华丽丽的庙塌掉了。

小说中的自指桥段

《银河系漫游指南》中的黄金之心号飞船,是由“无限非概率引擎”驱动的,这个驱动器怎么发明的?

他们所不能忍受的另一件事就是,他们制造一台能够产生无限非概率的仪器的尝试一再失败。这样的仪器如果用在飞船上,就能够跨越哪怕是最远的星球之间的距离。最终,他们恼怒地宣称这样的一台仪器根本就是不可能的。

此后的一天,一个学生留下来打扫实验室,他这样推理:如果,他对自己说,这样的一台仪器事实上是不可能的,那么它就必定是一种有限非概率。因此,如果我要造出一台来的话,所要做的全部事情就是算出它如何不可能的精确数值,把这个数值输入有限非概率发生装置,再来上一杯热茶……然后,打开它!

他这样做了,于是震惊地发现自己成功地凭空造出了人们苦苦寻求已久的珍贵的无限非概率发生装置。

熟不熟悉,也是通过一个漂亮的自指,结果造就了最强大的引擎,虽然作者在一本正经的胡说八道,不得不说,说的漂亮。

《银河系漫游指南》还有一个奇特的观点,讲述宇宙的不可知:

有一种理论宣称,如果任何一个人真正发现了宇宙存在的原因、宇宙存在的目的,宇宙就会立刻消失,被某种更为怪异、更难以理解的玩意儿取代。 还有另外一种理论宣称,上述事件已经发生了。

同样的观念和桥段在乔斯坦贾德的《纸牌的故事》中也有涉及,说的是大脑的秘密:

如果我们的大脑足够简单,简单到我们能够轻易的了解,那么我们就会变得足够笨以至于不能理解我们的大脑。

《GEB》这本书, 就是那个发现“候世达定律”的奇人候世达写的那本奇书,把自指玩得出神入化。不说其中那些形形色色的小故事,光看艾舍尔的画,实际上形象的显示了这种“自指”的概念。

还有一个更奇特的段子,也出自《银河系漫游指南》,讲的是一个装满船员的飞船,所有船员冬眠了,并且把记忆也托管给了飞船。某天飞船里有个最低级别的守护进程发现有些情况不对,于是一层层唤醒了高层控制,大家都感觉有问题,但是又都不知道具体出了什么问题。主控觉得这样不行,可能是自己某些功能丢失了,必须换一个备份的主控,于是指挥机器人去更换。机器人在工作时候,把备份取出来,扔进了茫茫太空。这时大家知道出现了大故障,调查来调查去,最后发现飞船被陨石击中了,而为什么没发现这么明显的事实,因为正好是飞船上负责判断飞船是不是被陨石击中的模块被陨石击中了…

这个段子讲给软件工程师,他们会觉得不可思议。为什么没有监控摸块?为什么没有冗余设计?为什么没有独立的灾备系统?

故事的结局

其实很早时候,我就为两个和尚的故事编了一个结局:

从前有座山,山上有座庙,庙里有两个和尚,大和尚对小和尚说:“从前有座山,山上有座庙,庙里有两个和尚,大和尚对小和尚说:我们就是这两个和尚”。