到底什么是哥德尔不完备性定理, 总结成一句话就是,任何包含了自然数论的形式体系中,自洽性和完备性必定无法同时满足, 也就是说,哥德尔用数学及逻辑学的方法证明出了完备性与一致性无法共存于一个数学系统里,可能有点绕,我们一个概念一个概念的解释一下。
首先是自然数论,自然数论也叫皮亚诺算数,这个体系是基于五大基础公里之上建立起来的,它们分别是
- 0是自然数,若不将0视作自然数,则这里的“0”要换成“1”
- 每一个确定的自然数
, 都具有确定的后继数
,
也是自然数(例如
等等). 可是仅有这两个公理还不够完整地描述自然数,因为满足这两条的有可能不是自然数系统。比如考虑由 0, 1 构成的数字系统,其中1的后继为0。这不符合我们对于自然数系统的期望,因为它只包含有限个数。因此,我们要对自然数结构再做一下限制:
- 0不是任何自然数的后继数. 但这里面的漏洞防不胜防,此时仍不能排除如下的反例:数字系统 0, 1, 2, 3,3其中3的后继是3。看来,我们设置的公理还不够严密,我们还得再加一条.
- 不同的自然数有不同的后继数,如果自然数
的后继数都是
,那么一定
. 最后,为了排除一些自然数中不应存在的数(如 0.3,0.22),这一条是如何破功第三条的漏洞的呢,看一下数字2和3,它们有相同的后继数3,按照本规则可以推导出2等于3,这显然是错误的,所以本规则可以防止第三条的漏洞。同时也为了满足一会儿制定运算规则的需要,我们加上最后一条公理。
,且满足
,以及如果
,那么
,则
是包含全体自然数的集合,也就是
,这条公理也叫归纳公理,保证了数学归纳法的正确性,翻译成人话就是任意关于自然数的命题,如果证明:它对自然数0是真的,且假定它对自然数a为真时,可以证明对a' 也真。那么,命题对所有自然数都真
皮亚诺公理还有一套稍微复杂一点的形式化表达:
在中还有一个比较魔幻的定义:
- 怪物(0)是一个神怪(自然数)
- 每一个神怪(自然数)有一个元(它也是一个神怪).
- 怪物不是任何神怪的元.
- 不同的神怪有不同的元
- 如果怪物有X,并且每个神怪都把X传递给它的元,那么所有的神怪都能得到X.
我们用程序表达出皮亚诺的五条公理,推导出自然数的生成式为:
#include <stdio.h>
#include <stdlib.h>
typedef int (*pfunc_succ)(int n);
int func_succ(int n)
{
return n + 1;
}
int foldn(int init, pfunc_succ succ, int n)
{
if(n == 0)
return init;
else
return succ(foldn(init, succ, n-1));
}
int main(void)
{
printf("%s line %d, numer N is %d.\n", __func__, __LINE__, foldn(0, func_succ, 100));
return 0;
}
总之,这五条公理就是连没上过小学的人也都能理解,而数学上的工作,就是基于这五条牢不可破的公理,继续往上构建数学大厦。我们今天能看到的所有关于自然数的定理,不管它有多么复杂,全部都是由这五条公理推到出来的。而这样一个自然数的数学体系,就叫做一个形式体系。
自洽性(一致性,相容性一个意思),就是说不矛盾,不能说一个定理既正确,又错误,中学时候学过的反证法便是基于数学理论的一致性所得出的一种证明方法.主要目标是根据假设推导出不自洽。 而完备性就是说,一个体系内的命题不管它有多么复杂,最终一定可以由这个体系内的东西来判断它是否正确,只是时间的问题罢了。
但是,哥德尔说不,如果这个形式体系内没有任何命题是相互矛盾的话,那么它就必然有些命题是永远无法证明对错的。如果硬是要求这个体系内所有的命题都可有由这个体系内的东西来判断对错的话,那么它必然就会有一些相互矛盾的结论出来。
这样就能理解了,就是任何一个包含了自然数论的形式体系中,你要么就要求它是逻辑自洽,没有矛盾的,要么就要求它所有东西都是可被证明真伪的。不能两者都要。可以说哥德尔不完备性定理,相当于是立下了数学界不可逾越的两堵墙,你可以自由选择,但是必须且只能选择一边。
大家可能看到过很多悖论的段子,比如引发第三次数学危机的理发师悖论,说有一个理发师只给哪些不给自己理头发的人理头发,那么请问他要不要给自己理头发,还有非常经典的自涉悖论,说 我现在说的是谎话,那么请问我现在说的到底是谎话还是真话。其实本质就是数学家在构建数学集合论的过程中,数学家们选择了完备性,而导致了很多矛盾的产生。包括希尔伯特23问和世界七大千禧数学难题,为什么证明会这么困难呢,其实非常有可能是因为数学家们选择了自洽性(无矛盾),而导致了包括黎曼猜想在内的顶级数学难题,它压根就无法证明对错。
那么,这个哥德尔它到底是怎么证明的呢?据说哥德尔当年在做汇报的时候,只有冯诺依曼跟得上他的思路,这个冯诺依曼是什么人? 他可以说是天赋领域这一块上的的无上天才,贵族出身,八岁就会了当时的全部高等数学,天赋强到让现在的大学教授流泪的地步。虽然说是难懂,但这个证明过程真可以说是巧夺天工,第一步,哥德尔把形式系统中的所有逻辑符号,数的变量,数的集合的变量,集合的集合的变量,都换了一种表达方式,叫做哥德尔数,把形式系统转化到了算术系统,第二部,定义原始递归函数和原始递归谓词,用表现定理联通形式系统和算术系统,最终证明了哥德尔不完备性定理。可以说这个定理是数学史上到目前为止,最震撼三观的定理。 这个定理可不是说所有的数学的公理化体系都是不完备的,只能说,能定义自然数的体系是不完备的。换句话说,能用1,2,3,4来数的可数的世界是不完备的。
如果是和非两者之一是定理,那我们就说它是可以判定的.哥德尔定理虽然结论很惊世骇俗,但在一个系统里面,不可判定性是没有什么神秘的,它仅仅是该系统还能够扩充的一个标志,举例来说,在绝对几何里面,欧几里得的第五条公设是不可判定的,他必须作为一条特别的几何公设加入进来从而引向欧式几何或者非欧几何.为什么会出现稀奇古怪的非欧几何呢?回想一下我们学习几何的过程,在欧几里得的前四条公设里面,没有固定住"点"和"线"这些术语的意义,从而为这些概念具有不同的外延留下了余地,欧几里得几何学的点和线提供了这两个概念的一种外延,非欧几何的点和线则是提供的另一种,然而,两千年来,人们先入为主的使用点和线,认为它只有欧氏空间所赋予的意义,实际上,是空间本身的特性推导出第五公设,而不是第五公设决定了空间本身.在球面几何中,点的意义和欧式几何一致,但是线的概念有所不同,球面几何中的线是测地线,也即是过两个点的大圆被两个点截取的最短的那条弧线.
我们现在知道的量子力学,连能量都有一个最小的单元,能量辐射,不过都是这个最小单元的自然数倍罢了,如果我们真的生活在一个颗粒化的自然数世界,那么很不幸,因为我们生活在一个底层规则不完备的世界里,我希望我们生活在一个实数世界,因为那样即便真理无穷,也会给我们人类探索世界的欲望和勇气!
根据哥德尔不完备定理,可以看出,命题的可证明性和正确性是两码事,正确的自然数命题,不一定可以用自然数公理演化的东西证明,比如古德斯坦定理,虽然这个定理是正确的,但是却是用集合论的方法证明的,自然数体系内无法证明古德斯坦定理。还比如黎曼猜想,人类为了证明黎曼猜想已经奋斗了200年,仍然没有看到希望,或许从根本上,黎曼猜想就属于那种无法证明正确性的正确定理呢。
在举一个哥德尔不完备定理的例子,句子”本句话是一句谎话“,如果你试图弄清这句话的真伪,你会发现,如果这句话是真的,那么这句话就是个假话,如果这句话是假话,那么这句话就是真话,无论从哪个角度看,结论都是互相矛盾的。也就是说,如果这句话可以被证明真伪(无论真假,具备完备性),那么推导出来的结论必然互相矛盾(不满足一致性).相反,如果要保证证明一致性(不会产生互相矛盾的结论),那这句话无论真假,它都是不可以被证明的(不具备完备性),触之即死!
有些事情被认知为真,但是它不是必然可证的!
不完备理论使得我们知道了有些东西我们即使是在理论上也是不可能知道的,数学之王大卫希尔伯特的那句名言 “我们必须知道,我们必将知道",言犹在耳,却遥不可及!