1. 命题逻辑
1.1语言
在我们所生活的世界中, 很久很久以前人们就学会了从 0 开始数数. 我们数出的 0, 1, 2 等等将被称作元自然数或是标准自然数, 默认用小写字母 表示. 我们在元自然数上熟知有加法、乘法等各种操作, 最重要的是有数学归纳法.
定理 1.1.1 (数学归纳法). 给定一个性质 , 若 成立, 且任给元自然数 均有 , 则 对每个元自然数成立.
首先, 我们对以上采取的立场作一解释. 所谓元, 自然是相对于对象而言; 因为我们今后要将大部分数学活动作为对象进行反思, 我们需要一个元理论来进行这一反思活动, 元自然数上的以上理论正是我们所用的元理论. 笔者对这一理论 (可以理解为 PA) 的辩护是康德式的, 即认为这是先天综合知识.
另一方面, 将元自然数又称作标准自然数则是一种约定俗成. 为不同却一致的实体指定标准本是一个困难的任务, 但好在这些元自然数有各种各样的唯一确定性质和辩护, 一般没什么人会对其提出质疑.
接下来, 我们学会了给字母加上下标, 以创造不同的符号. 我们称 , , 等记号为命题符号, 当无需刻意指定下标上的元自然数时默认用小写字母 表示. 我们又引入两个符号 与 , 这就是命题逻辑的语言元素.
注 1.1.2. 如果我们认为朴素集合论也具有良好的辩护, 可以将以上陈述抽象为一句话: 命题逻辑的语言元素是三元组 , 其中 是可数集. 不过这时 上的良序需要由可数性和 上的良序共同指出, 相对而言不够自然.
我们今后将全体语言元素简称为语言. 命题逻辑的语言中因而有三类对象: 命题符号, 与 . 我们接下来按照字符串的长度定义语言对象:
定义 1.1.3. 命题逻辑的语言对象如下按字符串长度归纳地定义:
1. | 命题符号 . |
2. | . |
3. | , 这里 和 是语言对象. |
语言对象默认用小写希腊字母 表示, 并被称为公式.
注 1.1.4. 注意, 命题逻辑的公式现在已经被反思而成为一种对象了, 现在仍然保留在元语境中的只有公式的长度. 这一归纳定义事实上由一层编码和数学归纳法决定, 我们将在后面详细考察这一过程.
为了方便, 我们有时也将前缀表达式 记为中缀表达式 , 引入左右小括号确定构造次序, 并默认 右结合.
公式有唯一且能行的方法确定其构造过程. 不过我们这里还不需要证明这个过程能行, 因此只需要证明一个常见版本的定理.
定理 1.1.5 (唯一可读性). 任给公式 , 存在最短的公式序列 使得 , 且每个 或是某个 , 或是 , 或是 , 这里 , 且这一序列中的公式在不记顺序时唯一. 我们称此定理中宣称的公式序列为 的一个最短构造序列.
证明. 由公式的定义知存在一个构造序列, 因此由数学归纳法给出的最小自然数原理指出存在最短构造序列. 我们现在只要证明它在不记顺序时唯一. 我们作以下定义.
定义 1.1.6. 若一个公式 在 的每个最短构造序列中出现, 则称 是 的一个子公式.
引理 1.1.7. 的所有子公式可以给予适当的排序, 使之成为一个 的构造序列.
证明. 对 的结构归纳. 下面的等号意为形如, 以后默认此记号.
1. | 或 , 这两个情况都是显然的. |
2. | , 此时 的全体子公式显然就是 的全体子公式、 的全体子公式, 再多加一个 自己. 我们把 和 的子公式构造序列串接在一起, 再在最后串接一个 , 则这个序列恰好也是 的一个构造序列. |
注 1.1.8. 这种归纳证明的方法是非常典范的.
最后, 我们引入一些常见的记号.
定义 1.1.9. 下面的:=意为将右侧式简记为左侧式, 或定义为, 以后默认这种记法.
1. |
|
2. |
|
3. |
|
4. |
|
我们称 为真, 称 为矛盾 (或为假), 称 为推出 (或为蕴含), 称 为或 (或为析取), 称 为且 (或为合取).
1.2语法
有了公式, 我们现在来定义推理规则, 又称语法. 这里介绍的是 Hilbert 式的语法.
定义 1.2.1. 我们统称以下三种公式为公理:
1. | , 与 是两个公式. |
2. | , 与 是三个公式. |
3. | , 与 是两个公式. |
有了递归可枚举的公理们, 我们就可以定义证明序列了.
定义 1.2.2. 一列公式 被称作从一个公式集 到公式 的一个证明序列, 若 且每个 均满足:
1. | 是公理, 或 |
2. | 在 中, 或 |
3. | , 这里 . |
将存在 到 的证明序列这件事记为 .
这个 直接读作证明, 它有各种性质, 不过这些性质的证明都繁琐但简单, 我们仅仅是列举一些在下面.
命题 1.2.3. 以下论证成立.
1. | 当且仅当 . |
2. | 当且仅当 . |
3. | 当且仅当存在有限个 使得 |
4. | 且 , 这里 是任意公式. |
5. |
|
6. |
|
1.3语义
我们现在定义一种看起来与可证明不一样的概念, 它称作真. 首先, 我们给出赋值的概念.
定义 1.3.1. 一个原始赋值 将每个不是 的语言元素对应为 两符号之一, 且将 对应为 .
每个原始赋值 都归纳地成为一个赋值 , 它将每个公式对应于 两符号之一, 这个对应由以下规则归纳地给出:
1. |
|
2. |
|
3. | , 且 而 , 则 . |
4. | , 且 或 , 则 . |
显然, 一个赋值将每个公式判断为真或假. 我们借此给出满足的定义.
定义 1.3.2. 若任何把公式集 中的每个公式都赋真的赋值都同时把公式 赋真, 则称 满足 , 记作 .
这个 与 一样有各种性质, 这些性质的证明同样也都繁琐但简单, 我们仅仅是列举一些在下面.
命题 1.3.3. 以下论证成立.
1. | 当且仅当 . |
2. | 当且仅当 . |
3. | 且 , 这里 是任意公式. |
4. |
|
5. |
|
6. | , 这里 是公理. |
注意, 不存在赋值使得 被赋为 , 那么使得 被赋为 的全体赋值就满足任何对它们的要求 (因为其实没有赋值需要回应这些要求).
1.4可靠性与完备性
既然 和 的性质如此相似, 我们自然会问它们在外延的意义下是否是同一个关系, 答案是肯定的.
定理 1.4.1 (命题逻辑的可靠性). , 则 .
证明. 我们沿着证明序列考察其中所有的公式的赋值. 我们证明, 任何将 中公式都赋真的赋值也必须将这个证明序列 中的每个公式都赋真, 进而 被赋真. 对序列下标 归纳.
1. | 是公理, 由命题 1.3.3 论证. |
2. | 是 中的句子, 由对赋真的要求显然. |
3. | 存在 , 这时由于 和 都被赋真, 必须被赋真. |
然而, 另一个方向的证明却不轻松, 因为从满足关系造出所需的证明序列的能行方法是困难的. 我们采取一种绕行的手段.
定义 1.4.2. 称 是一致的, 若不存在它到 的证明. 称 是可满足的, 若存在把其中所有公式都赋真的赋值. 称 是极大一致的, 若 一致, 且任意不在其中的 加上 都可以证明 .
定理 1.4.3. 任何一致的 都可以扩张为一个极大一致的 .
证明. 我们递归地枚举所有的公式 , 并给出一列一致的 . 令 , 然后:
1. | 若 在 中, 则 . |
2. | 若 不在 中, 由于 一致, 与 不能均加入 后都得到 的证明, 因此可以从二者中选取一个加入 得到仍然一致的 . |
定理 1.4.4. 极大一致的 一定是可满足的.
现在, 我们来证明完备性定理.
定理 1.4.5 (命题逻辑的完备性). , 则 .
证明. 这是因为 则 , 当且仅当 一致则 可满足.
仅当: 反证, 假设有一个一致命题集 不可满足, 则必有 对任何 成立, 进而由条件有 对任何 成立, 所以 , 这与一致性假设矛盾.
当: 反证, 若有一个 且 , 这指出 一致, 从而不妨设某个赋值满足之. 这样这个赋值就必须同时把 和 都赋真值, 矛盾.