往期内容:
上回我们说到,在19世纪以前,数学家和我们一样,都相信无论是多难的数学问题,只要你够聪明,这些问题总归还是能得到一个明确的答案的
你解不出题,那不是题出错了
那是你自己菜

但随着罗素悖论的发现
数学家们属于是散兵搬家——绷不住了:
好家伙,原来还有这么一类问题,人能理解的明明白白,但从逻辑上推演却无论如何也说不过去,真就是离谱他妈给离谱开门——离谱到家了。
但好在通过将这类问题定义为“无意义”的问题,数学家们还是勉强保住了数学的阵地:
虽然的确有那么一丢丢问题确实在逻辑上是矛盾的,但只要把这一丢丢问题给排除在外,那数学的大厦总归还是完好的嘛,无论什么问题也都还是有答案的嘛。

万能公式
就在这种心态的作用下,科学家们飘了
飘的最厉害的就是大数学家希尔伯特

之所以说希尔伯特飘的最厉害
是因为他抛出了个相当宏伟的计划:
这个计划的大意其大意是建立一组完备的公理体系,使一切数学命题原则上都可由此经有限步推定真伪,这叫做公理体系的“完备性”;
此外,希尔伯特还要求公理体系保持“独立性”(即所有公理都是互相独立的,使公理系统尽可能的简洁)和“无矛盾性”(即相容性,不能从公理系统导出矛盾)
虽然这段话有点抽象
但我们其实可以这么理解:
希尔伯特的这个计划本质上就是想要通过某种手段建立这么一种机器,这个机器能够无条件的根据条件检验命题的真伪,自动对命题的真假做出判断

如此,后人们就再也不用创建什么新的方法了
所有的问题都可以带入这么一个模式,一算就行
虽然这么一个计划看上去有点天马行空
但您还真别说,在这个计划进行的还挺顺利
到了20世纪30年代,希尔伯特甚至已经宣布自己的计划马上就要全部实现,数学大厦即将封顶,从此世界上再也没有没办法解决的问题啦
然后就在一切都在平稳进行的时候
希尔伯特的计划还是不出意外的出意外的出意外了
这倒不是因为希尔伯特遇到了困难,而是因为有个年轻人来砸场子了,他成功的证明出了所有公理体系都是不完备的,并不是所有的理论都可以经有限步骤推导出来。
这个年轻人的名字叫做哥德尔


砸场子的年轻人
哥德尔是如何证明所有公理体系不完备的呢?
归根结底,其实还是努力的构造出如同“罗素悖论”一样的“自引”,只不过在这个构造的过程中,他用到了一门更复杂,更抽象的工具——元数学
“元”这个字有两个意思,一个是初始之意,比如“元旦”
而在这里,“元”则是另一个意思,意为“根本的,首要的”

“元数学”,其实也就是数学之上的数学。要将平常的数学转化的“元数学”,我们要做第一步是将任何可能的数学语句或一系列语句表示为符号,再映射到一个被称为哥德尔数的唯一数字。
例如,用符号 “+” 表示加法,用符号 “s”表示“后继”
用这个逻辑来表示,“1+2”就可以表示为“s0+ss0”

而命题中的变量则用字母表示
从x,y,z 开始,这些变量被映射到大于12的素数(即13,17,19,...)
除了变量,符号和数有哥德尔数
在元数学中,某条语句也有自己的哥德尔数
具体操作方法就是按照质数顺序的排列,从左到右分别分别将从2开始的质数作为底数,而将数或符号的对应哥德尔数作为幂,再将这一系列数相乘。
例如“1+1=2”就可以表示为“s0+s0=ss0”
也就是“2^7 * 3^6 * 5^11 * 7^7 * 11^6 * 13^5 * 17^7 * 19^7 * 23^6”
虽然这个数很大,但这个表示方法确实有效
因为哥德尔数是整数,而整数仅以一种方式分解为质数。因此,“2^7 * 3^6 * 5^11 * 7^7 * 11^6 * 13^5 * 17^7 * 19^7 * 23^6”对应的整数只能是语句对应的这种分解方式
如此,这些符号和变量的通过任意组合,任何可以被构造的算术公式或公式序列,都将有自己唯一的,独特的哥德尔数。
更进一步,数学证明是由一系列的公式组成的。要求出数学证明的哥德尔数,按照同样的原理将每个公式的哥德尔数相乘就可以
因此,每个数学证明也有自己的哥德尔数

这么做的好处是,我们寻找某一个题设,并不一定要写出它
我们可以写出它的哥德尔数来找到这个对应的题设。
例如我们说“存在某个哥德尔数为x的公式序列,可以证明哥德尔数为k的公式”,或者简言之,“哥德尔数为k的公式可以被证明”
说到这儿,你们是不是已经被绕迷糊了?
但是你们别急,让我先急
因为哥德尔现实的头脑风暴才刚刚开始

Sub(n,n,17)
哥德尔的想法是这样的,如果每个题设都有哥德尔数,那么你说有没有一种可能:
我们可以把这个题设自己的哥德尔数代入这个公式中
为了看出这个代入是如何起效的,考虑公式 (∃x)(x=sy),它读作“存在一个变量 x 使得它是 y的后继”,或者简言之,“y有一个后继”)。
像所有公式一样,它有哥德尔数,即某个大整数,我们就叫它m
现在让我们在公式中用n代替符号 y ,这就形成一个新公式 (∃x)(x=sm)
即“m有一个后继”
这个公式的哥德尔数怎么求呢?
你不知道,我不知道,哥德尔也不知道
但为了用这个哥德尔数,我们就要引入一个函数sub()
sub()函数可以记录三点信息:
起始函数的哥德尔数,用于替换的数字,被替换的数字的哥德尔数
例如sub(a,b,c)的意思就是,要找到a对应公式的所有哥德尔数为c的符号所对应的位置。最后,我们把刚才找到的位置全部替换成数字b。
这种类型的替换构成了哥德尔证明的关键
按照这个思路
哥德尔列举出了下面一个元数学语句“无法证明哥德尔数为 sub(y,y,17)的公式”
回想一下我们刚刚学到的符号,哥德尔数为 sub(y,y,17)的意思就是是通过取哥德尔数为 y(某个未知量)的公式并将该变量y替换掉哥德尔数为17的符号。
虽然我们不知道替换下来会是什么结果,但是不管怎么说,我们的元数学语句“无法证明哥德尔数为 sub(y,y,17)的公式”肯定能对应某个特定哥德尔数
我们把这个数称为 n
随后哥德尔又进行了一轮替换,通过将数字n替换先前公式中y的位置来创建一个新语句,这个新语句为:“无法证明哥德尔数为sub(n,n,17)的公式”
问题就出在这个语句上,因为它的哥德尔数恰好就是sub(n,n,17)
为什么呢?
我们来捋一捋思路
首先,我们最初的题设“无法证明哥德尔数为 sub(y,y,17)的公式”的哥德尔数是n,而我们现在做的操作是用n替换掉这条题设中所有的y。
根据前面sub函数的定义,这个语句用sub函数来写就是sub(n,n,“y的哥德尔数”)
而y的哥德尔数恰好就是17
所以这个新语句的哥德尔数正是sub(n,n,17)
也就是说,这条语句预言了自己没办法被证明!
那么这条语句是一个真命题还是假命题呢?
如果是真命题,那不用说了
没办法被证明的语句确实存在,那就是sub(n,n,17)自己
如果它是假命题,那么语句“可以证明‘无法证明哥德尔数为 sub(y,y,17)的公式’”就必然是一个真命题。你品,你细品,“可以证明‘无法证明哥德尔数为 sub(y,y,17)的公式’”是真命题...
那不还是说“无法证明哥德尔数为 sub(y,y,17)的公式”是真命题吗!
所以“无法证明哥德尔数为sub(n,n,17)的公式”只能是个真命题
没办法被证明的真理出现了

sub(n,n,17)的出现如同一朵乌云悬在了数学界的天空
在sub(n,n,17)之后,哥德尔又相继证明了公理体系不能证明是独立的,不能保证公理系统不能导出矛盾,属于是把希尔伯特的幻想打了个稀巴烂
但另一方面,sub(n,n,17)也并不完全是坏事
它就像一个神秘性十足的符号,表明无论我们有多聪明,总还是有一些东西是我们没办法证明和理解的。也正是从sub(n,n,17)开始,不少人开始被数学的魅力深深吸引...
后来,也正式因为哥德尔卓著的发现
美国《时代周刊》将哥德尔列为了20世纪最具影响力的100位人物之一

真理固然可贵
但认识到有些真理没办法触及,始终对科学带有敬畏之心
或许,这一点要比真理本身更为可贵吧
(图源网络,侵删...)

