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 (命题逻辑的完备性). , 则 .

证明. 这是因为 , 当且仅当 一致则 可满足.

仅当: 反证, 假设有一个一致命题集 不可满足, 则必有 对任何 成立, 进而由条件有 对任何 成立, 所以 , 这与一致性假设矛盾.

当: 反证, 若有一个 , 这指出 一致, 从而不妨设某个赋值满足之. 这样这个赋值就必须同时把 都赋真值, 矛盾.

现在, 一致公式集总是可以扩张为极大一致公式集, 而后者是可满足的, 因此一致公式集总是可满足的.