数理逻辑2 -- 量化理论7
来源:互联网 发布:第一版主新域名 编辑:程序博客网 时间:2024/06/05 09:07
《逻辑的引擎》一书里提到希尔伯特的宏伟计划,要构建一个逻辑根基,以至于所有的数学都建立在这个根基之上。哥德尔著名的“不完备定理”让这个计划落空了。但在一开始,哥德尔非常拥护这个计划,还在1930年给出了一个“完备性定理”的证明。它不难(当然是指对那班天才数学家而言不难,对我们来说,呵呵),给出了希尔伯特想要的结果,只用了逻辑学家普遍掌握的技巧。这个完备性定理跟后面著名的“不完备定理”究竟什么关系,要慢慢读下去才知道。
这里讲的完备性定理很好理解,即任何一阶谓词演算(只包含逻辑公理的一阶逻辑理论)中,所有定理都是逻辑有效的,所有逻辑有效的好式子都是定理。前半部分很好证,前面笔记也有所提及。难就难在后半部分,哥德尔在1930年首次给出了证明。后来其它数学家给出不同证明,教材也就采用了后来的证明。
在这里要先介绍一些康托尔集合论的概念,它关系到经常碰到的一个术语“可数的”,英文叫做”countable”,或者”denumerable”。我们经常会看到诸如”countablely many”,”countablely infinite”。这里”可数的”意思是:对于一个无限集
康托尔是第一个研究“无限大”的数学家。在他之前,“无限大”被看作是“不可完成的极限”,因此讨论它不仅没有意义,而且也是危险的。一些哲学家,比如莱布尼茨,认为不可完成的极限是上帝的事,不是人类能关心的事情。但康托尔第一次给出了“无限大”的分类,他说无限大和无限大是不一样的,比如自然数集的无限大和实数集的无限大就不是一回事,但自然数集和偶数集的无限大是一回事。
为此,康托尔定义了集合的基数,用希伯来字母表中第一个字母表示(类似
康托尔是伟大的,他一个人在“无限的深渊”中探索。他的理念遭到一些数学家、哲学家反对,因为讨论“无法完成的极限”是危险的,毫无意义的,而且要证明一个东西是否存在,应该给出构造性证明。而希尔伯特反对这一观念,他给出例子说“一个教堂里显然存在一个头发最少的人,并不需要把每个人的头发数一遍”。 他又说“谁也无法把我们从康托尔创造的乐园中赶出去”,激励了更多数学家沿着康托尔开创的道路探索。更多的八卦,请参考“逻辑的引擎”一书。
让我们回到“完备性定理”的故事,它是说在一阶谓词演算中(即只包含逻辑公理的一阶理论),任一定理都是逻辑有效的。反过来,任一逻辑有效的wf都是定理。前者好证,前面的讨论中已给出证明。关键是后者,它又涉及到各种“存在性”的证明。
我们先尝试用通俗的语言来描述完备性定理的证明。首先看看它难在哪里。在一个一阶理论
因此,另一种方法是采取“反证法”。证明思路如下:假设
上述证明思路关键在于扩展的理论
完整的证明需要三个关键引理:
引理2.33:如果
引理2.34:如果
引理2.35:如果
上述引理2.33-2.35需要一大堆通俗说明来加强理解。首先,引理2.35中说的是,有这么样一个解释
其次,引理2.33-2.35涉及到一些术语,之后会给出具体定义。这些术语是:闭合项(closed term),扩展理论(extension),完备性(complete),替罪羊(scapegoat),相似性(similar),可数的无限多个(denumerably many)。其中“可数的无限多个”,前面已讨论过,就是能和自然数集建立一一对应关系。
最后,为了证明引理2.33-2.35,还需一些引理以作辅助:
引理2.36:如果
引理2.37:如果一个闭合好式子(不含自由变量)
引理2.38:对于一个一阶语言
引理2.37是关键的,而引理2.36和引理2.38看起来则是“细枝末节”的证明。
下一节笔记将依次给出引理的证明,其中会穿插术语的定义。
- 数理逻辑2 -- 量化理论7
- 数理逻辑2 -- 量化理论2
- 数理逻辑2 -- 量化理论1
- 数理逻辑2 -- 量化理论3
- 数理逻辑2 -- 量化理论4
- 数理逻辑2 -- 量化理论5
- 数理逻辑2 -- 量化理论6
- 数理逻辑2 -- 量化理论8
- 数理逻辑2 -- 量化理论9
- 数理逻辑:命题逻辑(10)公理理论
- 数理逻辑习题集(7)
- 数理逻辑1 -- 命题演算2
- 数理逻辑模拟-2
- 数理逻辑
- 数理逻辑
- 数理逻辑
- 第一部分 数理逻辑 第三章 命题逻辑的推理理论
- 德鲁克理论—《可以量化的管理学》
- 语义分割--Efficient and Robust Deep Networks for Semantic Segmentation
- springmvc笔记-5-国际化
- EL表达式写三目运算
- POJ2566(77/600)
- Jenkins-持续集成平台
- 数理逻辑2 -- 量化理论7
- 在Android so文件的.init、.init_array上和JNI_OnLoad处下断点
- 什么!?几十行代码实现折线图!!!
- linux下实时查看tomcat运行日志
- Java并发ReadWriteLock接口
- python slice的几个小点总结
- OpenCV学习(11) 图像的腐蚀与膨胀(2)
- GitHub和SVN的区别
- 【备忘】徐老师hadoop hbase zookeeper spark kafka大数据视频教程