小结
我们用了很大的篇幅发明了一个语言,以将我们的推理建立在一套永恒有效的基石之上,同时使得我们能够把握、理解、进而计算我们的推理。事实上,能够仿若人类般推理,是关于人工智能最初的探索。在我看来,这一层智能——关于演绎的人工智能——人类早已实现,自图灵(Turing)发表其划时代的论文起(40),这趟征途的巅峰便是可编程计算机的发明。如今,我们周遭的一切都有着计算机程序的影子,而编程所依赖的计算机语言,正是一个个形式语言!
然而另一方面,我们走到头了吗?形式逻辑足够建模我们人类所有的证明、论证与推理了吗?能充分解释与把握人类的心智了吗?并不能。20世纪初,当时最伟大的数学家希尔伯特(Hilbert)曾提出了一个雄心勃勃的计划,即所谓希尔伯特计划(Hilbert’s program),其核心是如下问题:
问题2.56 能否用一个公理系统建模整个数学?
很遗憾,计划开始还没几年,1931年,哥德尔(Godel)便证明了一个彪炳史册的伟大定理:
定理2.57(哥德尔第一不完备性定理Godel’s First Incompleteness Theorem) 如果一个公理系统是一致的,且足以建模自然数算术,那么在其中存在一个命题,其与其否定均不可证(41)。
在证明中,哥德尔于系统内构造了一个命题G,其有两个身份。在数学这个希尔伯特试图建模的目标体系中,它是一个关于自然数的断言,且哥德尔说明了其是正确的。但是,在其所处的形式系统中,哥德尔证明了G与¬G都是不可证的(参见文献[7]第VII章C节)。于是我们不得不遗憾地承认:
洞察2.58 关于数存在这样的结论,它是正确的,但无法被形式地证明。
我们的所有努力,可以浓缩在图2.2中。我们利用直觉本能在寻觅一个形式系统,其建模我们的演绎推理本能。在这个形式系统之上,我们继续构建一个形式系统以建模我们本能演绎推理中数学的部分,那便是我们在下一章中将要讨论的所谓公理化集合论。很遗憾,我们能够证明无论怎样的形式系统永远不会足够强大到完全覆盖我们的全部本能与直觉,永远都有形式可证之外的直觉真理。但是,这并不会阻止我们探索的脚步。一来,数学家哲学家们依旧在努力构建着更强大的形式系统,使其能尽可能多地覆盖我们的直觉。另一方面,我们也借此为自己的思维与推理划定边界——我们只允许、只承认那些能够被形式化的推理,画地为牢,只在自己为自己划定的边界中进行数学探索。何必作茧自缚?因为我们相信,只有在那个矩形框中进行的推理,在其中得到的定理,才可以肯定是永恒有效的真理。
图2.2逻辑、演绎推理与直觉
虽然有内蕴的缺陷,但是请放心,现代数学所基于的形式系统已经足够强大,足以覆盖直觉上所能想象的几乎全部推理。于是,我们接下来并不会纯形式地来叙述与证明命题和定理,而是依旧用我们熟悉的中文,按照熟悉的直觉演绎来推理。请相信,我们所写下的每一段证明,所得到的每一个结论,都有着坚实的形式基础,如有必要都能被翻译成毫无意义的形式符号串。
接下来,我们就要在形式逻辑的基础上,开始形式化数学。如果你对哥德尔不完备性定理中的“建模自然数算术”感到困惑的话,不用着急,这正是我们接下来将要越过的山丘。还记得我们之前提出过的问题“什么是数”吗(问题2.6)?我们将利用谓词逻辑这门语言,开始搭建数学大厦的第一层——集合,并通过它来构建我们再熟悉不过的概念——数。
(1) 法语原文:la Logistique est invincible, car,..., pour combattre la logique, il faut encore faire de la logique,语出法国数学哲学家皮埃尔·布特罗克斯(Pierre Boutroux)。初看起来这句话仿佛只是一个不错的修辞,但读完本章后,你再回来读读,相信会有不一样的体会。
(2) 为了区别后文正式定义的数学中的“命题”与“定理”,我们称在直观理解下的一个或正确或错误的陈述为断言。
(3) 现代数学告诉我们存在着无穷无尽种几何(geometry),有些于其中成立毕达哥拉斯定理,有些不成立。前者被称为平坦的(flat),后者被称为弯曲的(curved)。现代宇宙学一个很大的课题便是回答我们的宇宙到底是平坦的还是弯曲的。诚然我们在地球上的测量显示直角三角形两边平方和的确等于斜边的平方,但那未必不是由于测量误差导致的,换上精度更高的尺子可能会发现实际上二者并不相等,这样一来毕达哥拉斯信仰的分数说不定就够用了!但无论如何,在平坦的几何中,分数肯定是不够的,是存在的。据我所知,如今的各种实验基本都表明我们的宇宙是平坦的。
(4) 参见文献[2]第43节,该句英文是“The meaning of a word is its use in the language”。
(5) 如果你会编程,可能就更好解释了:1+1=2没问题,但是“1+1”=“2”就不对了。
(6) 我们谈论的自然数包括0。
(7) 一个典型的对比是物理学,其结论与数学定理恰恰相反,紧密依赖经验、时间与空间。随着文明的演进,我们经常推翻之前建立的物理理论。
(8) 质数即不能写成其他自然数乘积的数——除了1乘以它本身——在后文我们会详细讨论它。
(9) 如果你对微积分不甚熟悉,没关系,把它当做一个无意义的形式符号就好。这里其实也省略了一些技术性细节。
(10) 据我所知自然语言词汇所能描述的最大数是10100,其中文为“古戈尔”,英文为“googol”。著名的Google公司即得名于这个词的改写。
(11) 即更海量的标注数据。
(12) 即一个可微函数。
(13) 即沿着梯度方向更新提取特征的参数。
(14) “事实”由其所处的系统定义,为那个系统中被理解为“真”的对象。比如,若该系统是另一个形式系统,则这个事实可以是其中定理;若该系统是我们的日常生活,那这个事实可以是生活常识,此时我们便找到了一个对生活的建模——虽然这不大可能。
(15) 大致可以将“元数学”理解为关于数学的数学,其旨在研究数学的基础。
(16) 关于这句话有很多种不同的解读,这里我选取的是将“常”理解成“恒常”,于是整句话就是“可以言说的道便不是永恒常在之道”的意思,这与维特根斯坦的名言“凡不可言说者,必保持沉默”异曲同工。虽然我们此时正在雄心勃勃地想要道出那不可言说者,但在本章结尾我们会看到,这些哲学先贤的认识真的是深刻的。
(17) 逻辑连词也被称为真值泛函(truth functional),如果你熟悉泛函分析,应该不难看出其中原因。若将原子命题看成一个取值为真或假的函数,那么这些连接词是函数的函数,便是泛函了。不过这里的泛函并非数学中的概念,而是哲学家与逻辑学家使用的一个术语。
(18) 即GB2312标准收录的6763个汉字。显然,任何一本逻辑学的教科书都会定义英文字母为符号,但作为一本中文的通俗读物,我们选择使用中文。这不但没有增加或损失什么(因为只要符号个数是有限个大家就都是等价的),反而带来了一些便利。比如,我们通常会用英文字母来代指命题,比如P:“今天是星期一”,然后写¬P之类的公式。但是要注意,字母“P”本身并不是形式语言中的符号,而是我们自己的语言中的符号,代指着命题逻辑中的一个命题(这一点后文还会提到)。如果使用英文,这样的语言角色转换必须要小心,但若使用中文则天然没有这个问题。
(19) 之所以强调是“直观说来”,是因为将符号“→”翻译成“如果……那么……”是直观上的做法,后文我们会详细讨论它所带来的困惑。
(20) 这个式子的右边直观来看无非是在说“P或Q成立,且并非同时成立”。
(21) 其实,我们只需要定义一个连接词与非(alternative denial)↑,便能够表达出任意连接词。它可以直观理解成“不全为真”,即仅当P、Q都为真时,P↑Q为假,其余都为真。但如果只定义这一个连接词,虽然理论上无伤大雅,但不免偏离直观,所以我们按照惯例定义五个连接词。
(22) 我们就不在正文定义形式语言的“包含”关系了。其实很简单,“包含命题逻辑”的意思是,命题逻辑的字母均是该语言的字母,且所有命题均为该语言中的合式公式。
(23) 其实是拉丁文。就如同我们的文言文一样,拉丁文是西方自古以来用以严肃交流的语言,如今在哲学、逻辑学、医学、生物学等各种学术领域中仍被广泛使用。
(24) 似乎不同逻辑学家使用的符号与术语不尽相同,yield一词来自文献[3]中第35页的建议。
(25) 我们在观察者语言中不使用“真”“假”,而说“正确”“错误”以示区别。
(26) 水的沸点是受海拔高度影响的。
(27) 当然这里隐式预设了“我是人”。
(28) 有的作者使用记号⇒,虽然这与我们上学时的记号相吻合,但终究不是一个东西,我们这里遵循文献[3]中的记号。当然,逻辑记号在学界并不统一也是个事实。
(29) 我相信这个概念最早出自罗素(Russell)所著《数学原理》(Principles of Mathematics),其中他区别了material implication与formal implication两种蕴含,前者为定义2.32中的蕴含连词,后者即为我们这里的逻辑蕴含(参见文献[4]第15节)。注意⊨也被用于声明一个命题是重言式(定义2.37)。如果你熟悉概率论,可以这样理解:类似条件概率,逻辑蕴含无非就是条件重言式。
(30) 其英文名中的material被译为“实质”,意思是其真假不是基于纯粹逻辑的,而是基于实际经验、物理世界等外在因素。
(31) 既然是规定,那自然可以有别的规定。除了命题逻辑之外,还有其他的逻辑模型,在其中命题可以有真假之外的取值。比如所谓的模态逻辑(modal logic),其中一个命题可取值“可能的”与“必然的”(参见文献[3]第49页)。显然这套理论是为了建模我们日常那种模棱两可的推理。
(32) “定理2.46”中的“定理”二字千万别与概念2.26定义的形式系统中的“定理”相混淆。这里我们是在自然语言中叙述并证明一个关于命题逻辑这个形式系统的定理。我们将看到,我们关于这个定理的证明是不能在命题逻辑内被形式化的,如何将这样的证明(进而全部数学证明)纳入到一个更加强大的形式系统之中,是我们接下来要讨论的。
(33) 现在是不是能体会本章开头引言中“逻辑是不可战胜的,因为要战胜它,还得用逻辑”这句话了!
(34) 其实还可以将“一致性”定义为“这个系统中存在不可证的命题”(参见文献[5]第28节),其在命题逻辑内与定义2.45是等价的,且无论是论述还是证明都稍许方便些。但一来其终究不是最一般的定义,二来也不太自然,故这里并未采用。
(35) Reductio ad absurdum是拉丁语,对应英文是reduction to absurdity,意思是“归至荒谬”。严格说来,归谬法是一个抽象的逻辑论证形式,反证法是其在数学中的具体体现。
(36) 正是由于这样的习惯写法,直观说来谓词即命题函数(propositional function):输入若干变量的赋值,返回一个命题。这也通常会作为谓词的非形式定义。但严格说来,此处的“函数”只是哲学上的一种朦胧地表示对应的概念,我们在后文将基于谓词逻辑层层搭建将“函数”的概念在数学中严密地定义出来。
(37) 再提醒一次,“∀x:Sunny(x)”并不是谓词逻辑中的公式,因为Sunny不是其中符号,“∀x:x是晴天”才是其代表的谓词逻辑公式。当然,此时我们尚未将小写字母x纳入字母表,这个稍后会在定义时补上。
(38) 至今为止我都刻意回避了谈论“相等”,在谓词逻辑的定义中也没有出现等号“=”,这样的选择称为不含相等的谓词逻辑(predicate logic without equality),相应地自然有含相等的谓词逻辑(predicate logic with equality)。我之所以这么选择的原因有二,一来“相等(equality)”实际上是一个非常复杂的概念,深究起来有三个相关概念,即相同(identity)、等价(equivalence)与外延(extensionality)(详见文献[3]第30节)但它们无关乎本书主旨,要聊起来就没边了。二来,我们将使用“等价”的概念取代“相等”,这不仅够用了,而且我觉得更体现了现代数学的抽象精髓。不过也不用担心,我们总可以用已有的符号定义出“等号”来。
(39) 增加小写字母与数字是为了能写下诸如“∀x1:x1很开心”这样的公式。当然,我们可以不引入它们,而是写“∀甲:甲很开心”,但这就未免太刻意了。另外,我们就不限制字符可以摆放的位置了,上标、下标等都允许。
(40) 即文献[6],文献[1]便是对这篇论文的解读,值得一看。
(41) 如果你留意到了定理名称中的“第一”,没错,还有“哥德尔第二不完备性定理”,其进一步摧毁了希尔伯特的野心。后者希望不仅形式化建模数学,还要形式化证明数学是一致的。但是哥德尔第二不完备性定理说道:若一个公理系统是一致的,且足以建模自然数算术,那么其一致性无法在系统中被证明。