3124 字

《逻辑的引擎》读书笔记

注:该笔记写于近十年前,现于2020疫情居家令期间重新发布,仅代表当时观点。

作者马丁·戴维斯,计算机科学领域先驱,别的就不好评价了,毕竟幼儿园水平的菜鸟没资格评价科学家,而复制粘贴也深为我自己所鄙视。这里所能写的仅是在对《逻辑的引擎》这本书的肤浅认识与总结,换言之,就是一个大师级数据库被一个新手过滤器处理了一下,但知识无高下之分,仅此而已。

对于计算机的认识,不知有多少人是通过背诵1945年宾夕法尼亚州的宾夕法尼亚大学的ENIAC开始的,当然这不算是计算机的开端,在某种意义上其发布时也并非作为逻辑学的应用进步而更多的是电子管的应用奇迹,当然这一切在冯·诺依曼存储器的设计下走向了离我们更近的计算机逻辑构架。那么,计算机(或者借用图灵的说法为通用机)的根源在哪里呢?

莱布尼茨之梦

如果把莱布尼茨描述为一个吃着外卖且为了贵族的资助而不得不完成一份追溯到 A.D.600 年的家谱的旅行家可能没多少人会认为他有多少贡献(这句话的背后就是光晕效应),但人是活在历史中而不是想象的,这正是后来我们面对莱布尼茨的研究成果时所应感叹的地方——一个被时代所限制的人做出了超越时代的贡献。而莱布尼茨之梦则可以归结为一个关于普遍文字的设想:将我们认知映射为一种符号,通过逻辑推理与运算得到最后的答案。当然,在那个时代这仅仅是一个梦想:符号体系没建立,推演体系也更多的是一种决定论的体现。有意思的是,N年后的爱因斯坦也提出过“上帝不掷骰子”的类似论调来反对量子理论,对于我个人而言,这个问题不关上帝的事反倒更多的是一种人的认知追求,而这条路是否通向真相则更受限于个人认知局限(解决这个问题不啻为一条西西弗斯之路)。

布尔逻辑

数据库检索的一个基本功就是在高级搜索中写下一长串的布尔逻辑表达式,而事实上这个出生在补鞋匠(但爱好科学)的家庭的老大为了生存所付出的艰辛也被深深隐藏,估计也没有多少人知道他的小女儿莉莉是《牛虻》的作者。应该说,当面对每一项为人类智慧做出贡献的发现时仅仅采用一种字典式的描述是不恰当也是不尊重发现者的,但对每个发现者都八卦一番也并非一条明智的选择,对此更应寄希望于现行文献留下更多的扩展阅读(互联网搜索引擎就是最好的工具),将选择权留给读者。乔治·布尔对逻辑的最大贡献就在于他用构建代数逻辑体系的方式总结并超越了亚里士多德,符号抽象,代数运算……当看到结果只会返回0与1时,也许布尔更多是对牛顿的致敬而生活在现代的我们则更多感受到的是一种超越时代的震撼。对于痛恨形而上学的神秘主义者,布尔的逻辑体系正让他们的领地一步步退缩。但是,对于数理逻辑而言,直观的理解也即将被终结。

弗雷格概念文字

如果不是罗素的一封信,弗雷格的晚年也不会如此绝望。的确,如果一个人究其一生的研究被认为理论基础是豆腐渣时,不论这则消息是否公开,对于一个严谨的学者都是毁灭性的打击。但是,如果你马上认为弗雷格的贡献虽然值得尊敬却不值得学习就进入了一种认知误区,事实上,弗雷格的逻辑到今天还在数学系、哲学系与计算机科学系中被教授。其主要的贡献在于将布尔的逻辑体系扩展到了当时的数学基础理论中,基于此弗雷格将当时近乎全部的数学推理归结为一种形式化的人工语言(现代程序的前身),当然其局限性在于其坚信存在矛盾的基础定义是无法得到正确的推论(详见罗素悖论)而没有考虑基础定义的变换可能不会影响其推论。然而,弗雷格的工作却事实上完成了莱布尼茨之梦的一部分,而后续我们也会发现莱布尼兹之梦被证明只能是一个梦。在这里作者并没有对罗素改造的皮亚诺的记号体系作出详尽的论述,相信这方面的科普对于理工科学生是十分必要的。

康托尔的对角线方法

前面的介绍更多的跟形式表达有关,而从康托尔这一章开始,作者开始对图灵通用机的思想构成来进行阐述,而起始部分则是关于无限的讨论。自然数有没有终点?能不能将无限作为一种完成的东西来考虑?在无限的领域中,由逻辑区分的部分与整体大小如何比较(举个例子,偶数集比自然数集大还是小)?如果现在问一个正常的理工科学生,我相信其回答会与莱布尼茨的差不多——这种比较没有意义,而康托尔则对这种牵扯哲学与神学的问题十分着迷。有理数、代数数、超越数、实数……也许这些概念今天看来浅显易懂,但在当时将他们从自然数的限制中剥离出来却需要较大的勇气,而集合论的引入使这些概念马上变得相距甚远而不是直观上的相近。而这一探索为后来者留下了连续统问题即实数的基数为自然数基数(阿烈夫0)之后的下一个基数,这个问题目前被认为超越了当前的数学解决问题的范围。事实上,作者真正注意的是康托尔的对角线方法,这一方法简单说就是一种用自身元素标记自身而不产生矛盾的技巧,正是这一技巧后来被图灵应用到了通用机的设计上。最后还是要说明一下:康托尔跟康德不是一个人。

希尔伯特与算术一致性

沿袭着莱布尼茨之梦,认为这个世界上没有现在将来都解决不了的问题的希尔伯特希望构建一种元数学来解决算术的一致性,也就是说,希尔伯特以一种死理性派的固执将一阶逻辑规则应用于自然数公理系统,而罗素与早期的冯·诺依曼都是为此而不懈努力。就像是康托尔要面对反对自己老师的观点一样,希尔伯特也遭受了来自于自己学生的反对,而且反对方还包括布劳威尔等以直觉而不是理性作为智慧起源的人。然而谁是谁非已经不再重要,重要的是这些争论的地位应该是平等的,也就是说,学术界应该始终保持开放的态度来面对新的观点而学者也应该适应这种环境来提出自己的观点,这一点在今天尤为重要。

在今天人们更多津津乐道的则是希尔伯特在上个世纪初提出的23个数学难题,印象中这个世纪初也有人仿照希尔伯特提过问题,不过面对足以让正常人不正常的东西心态大可以平和一些。

哥德尔的不可证证明

证明一个命题在一个体系中不可被证明,这种听起来就让人想抽人的问题对于古怪的哥德尔而言显得无比正常(坦言之,当我对着注解中的证明完整的回顾整个证明时却更多的感受到一种智慧的体现)。哥德尔就是毁掉希尔伯特一致性证明希望的人,他的工作表明至少在希尔伯特所主张的PM系统中的算术一致性即便是真的也不可被证明,引申一步讲就是在一个完备的数理逻辑系统中总会存在那么几条公理是无法被证明的。这看上去是不用证的废话,但在希尔伯特看来就是其元数学的灾难,因为元数学是要求自明且方法也是有限的。好了,到此是否可以得出一个让理性的人崩溃的结论:既然存在不能自明的命题,那么理性的根源就算不上理性了。杯具吗?不然,一方面这一体系是不是理性依赖的东西还不好说,另一方面来自未知的方法会不会在这一问题上提出新的不加限制的证明也说不准。但是那些号称“理性”的人是否考虑过这些问题呢?也许不应该强求吧。哥德尔,一个因妄想症绝食而死的思想家,其对人类理性思考值得每一个理工科人的尊敬。

图灵与通用机

sdu理综楼的某个楼梯转角里挂着一位图灵奖获得者演讲的照片,但我相信并没多少人知道图灵是个怎样的人,受过怎样的痛苦。阿兰·图灵作为一名二战期间的译码专家却没有得到应有的赞誉,相反,却被他服务国家所逼(根源于其同性恋倾向)而自杀。但是当回顾通用机的设计时,作者认为图灵是将前面理论加以应用的先驱者(没有之一)。的确,将一堆符号变为一部机器的眼光是伟大的,正如看一篇这样的文章能看到这里而不看另一个网页一样。如果是科普,我很乐意将五元组、停机集合等概念分享出来,但这类知识不加回顾的话很快就会遗忘,这里我更希望记录下是作者对于观念的力量与预测其结果的徒劳的观点。

其实这本书是本科期间买的,当时没读完就不管了,当这个冬天重新拿起时才发现其中有些观点对于今天的我有很大帮助。当二进制码在计算机里飞奔时,了解其背后的故事是很重要的,否则计算机就真成了一个魔盒了。