一些逻辑话题:如何证明自然演绎系统的一致性、完备性,以及直觉主义逻辑

Abstract. 本文讨论了几个形式系统的语法和语义之间联系的问题,包括证明自然演绎系统的一致性和完备性,以及直觉主义逻辑中不能推导出 $(\neg\neg P)\rightarrow P$。阅读本文需要的对数理逻辑的理解大概与清华大学出版社的“数理逻辑与集合论”前三章一致,如果没有相关知识可以参考这篇笔记。但本文不采用其中定义的公理系统和证明方式,这点在“声明与记号”中有所说明。

声明和记号

在前面两节当中,我们采用的形式系统是Dirk van Dalen, Logic and Structure(Fifth Edition), Springer(2004) 2.4 节定义的自然演绎。不同于国内教材中常见的将证明过程写作有序列表的形式,我们的证明均写作树形。系统的语义仍然采用众所周知的布尔代数来表示。

定义 1.1. 对于 $m : \mathbf{PROP}\rightarrow \{0, 1\}$(这样的映射 $m$ 称为模型),若命题 $\phi$ 中的原子命题 $p_1, …, p_n$ 均以 $m(p_1), …, m(p_n)$ 赋值,在布尔代数当中能够推出 $\phi$ 的真值为 $1$,则称

$$
m\vDash \phi
$$

定义 1.2. 考虑命题 $\phi_1, …, \phi_n$ 和命题 $\psi$,若对于任意的模型 $m$,一旦 $m\vDash \phi_i$ 均成立则 $m\vDash \psi$ 也成立,则称

$$
\phi_1 \cdots \phi_n \vDash \psi
$$

定义 1.3. 考虑命题 $\phi_1, …, \phi_n$ 和命题 $\psi$,如果存在一个自然演绎系统的证明树推导出了 $\psi$,其中所有未被 $\rightarrow I$ 推理取消的叶子恰为 $\phi_1, …, \phi_n$,则称

$$
\phi_1 \cdots \phi_n \vdash \psi
$$

前面的命题序列若具体内容不重要,通常简写作 $\Gamma$。

例子 1.4. 我们有 $p \vdash q\rightarrow p$,因为存在这样一个证明树:

$$
\dfrac{p \quad [q]_1}{q\rightarrow p}\scriptsize(\rightarrow I_1)
$$

其推导出 $q\rightarrow p$,叶子有 $p, q$,但 $q$ 被 $\rightarrow I$ 推理取消。

通常的一致性和完备性定理是指下面两条定理:

定理 1.5(一致性). 若 $\vdash \phi$ 则 $\vDash \phi$。

定理 1.6(完备性). 若 $\vDash \phi$ 则 $\vdash \phi$。

这无非是对于任意的 $\Gamma$ 都有 $\Gamma \vDash \phi \Leftrightarrow \Gamma \vdash \phi$ 的简单推论,在接下来的两节中我们将对这个形式做证明。这里特别声明我们考虑的所有字符串(命题序列、命题本身、证明树)都是有限长度的。

一致性定理的证明

一致性定理的证明是高度平凡的,只需要对所有的证明树做归纳法,在最后一次推理处验证即可。整个证明都不超过习题难度,因此不写。

完备性定理的证明

兹重申我们要证明的结论是如果

$$
\phi_1 \cdots \phi_n \vDash \psi
$$

则必有

$$
\phi_1 \cdots \phi_n \vdash \psi
$$

现在提取 $(6)$ 中所有出现过的原子命题,记作 $p_1, …, p_m$。

Remark. 现在思考如何将语义上验证和语法上推导联系在一起。此处的突破点是模型 $m$ 到底做了什么事情:事实上模型 $m$ 指定了每个原子命题的真假性。在语法层面模拟这个事情,可以定义出命题集合 $\Gamma = \{\hat p_1, …, \hat p_m\}$,其中 $\hat p_i = p_i$ 或者 $\neg p_i$。因为 $\Gamma$ 事实上枚举了每个命题的真假性,所以存在唯一的模型 $m\vDash\Gamma$。我们是否能验证若 $m \vDash \psi$ 则 $\Gamma \vdash \psi$?

事实上,有

引理 3.1. 考虑命题序列 $\Gamma = {\hat p_1, …, \hat p_m}$,其中 $\hat p_i = p_i$ 或 $\neg p_i$,$p_1, …, p_m$ 为所有的原子命题。此时恰好存在一个模型 $m\models\Gamma$,那么

  • 若 $m \models \psi$,则 $\Gamma \vdash\psi$。
  • 否则 $\Gamma \vdash \psi\rightarrow \bot$。

证明. 只需对命题 $\psi$ 做结构归纳。原子命题的情形是简单的。

若 $m\models \psi$:

  • 若 $\psi = \neg\phi$,那么必然有 $m\not\models\phi$,于是根据归纳假设 $m\vdash\phi\rightarrow\bot$ 即 $m\vdash\psi$。

若 $m\not\models\psi$:

  • 若 $\psi = \neg\phi$,那么必然有 $m\models\psi$,于是 $\Gamma\vdash\phi$,容易证明 $\vdash\phi\rightarrow\neg\neg\phi$。

打省略号的部分无非是用惯用的手法做一些琐碎的分类讨论。读者只需知道此思路确实能够证明结论即可。

引理 3.2. 若 $\phi_1 \cdots \phi_n \vDash\psi$,那么任取命题序列 $\Gamma = {\hat p_1, …, \hat p_m}$,其中 $\hat p_i = p_i$ 或 $\neg p_i$,$p_1, …, p_m$ 为所有的原子命题,都有 $\phi_1 \cdots\phi_n, \Gamma\vdash\psi$。

证明. 此时存在唯一的模型 $m$ 使得 $m\vDash \Gamma$。

  • 若 $m \vDash \psi$,那么由引理 3.1 直接证毕。
  • 否则因为 $\phi_1 \cdots\phi_n\vDash\psi$,必然存在 $i$,$m\not\models\neg\phi_i$,引理 3.1 指出 $\Gamma\vdash\phi_i\rightarrow\bot$。于是 $\phi_1\cdots\phi_n, \Gamma\vdash\bot$。使用 $\bot$ 规则推出 $\psi$。

上面两条引理扫除了证明工作的绝大部分障碍,现有 $2^n$ 种 $\phi_1\cdots\phi_n, \Gamma\vdash\psi$,只需要将 $\Gamma$ 消去即可。

引理 3.3. 对于命题集合 $S$,若 $S, \phi \vdash \psi$ 且 $S, \neg\phi \vdash \psi$,那么 $S\vdash\psi$。

证明.

读者不妨自行思考如何基于此引理从 $\phi_1\cdots\phi_n, \Gamma\vdash\psi$ 导出 $\phi_1\cdots\phi_n\vdash\psi$。

直觉主义逻辑:如何证明去掉反证法的系统是不完备的?

我们都知道在 Coq 中不能证明 $\neg\neg P \rightarrow P$(Double Negation Elimination,简称 DNE)或者几个等价的命题,如反证法,排中律,Pierce 律等(参见 Logic in Coq - Software Fundations Vol 1.)。与 Coq 类似的,排中律独立的形式系统称为直觉主义的。那么应当如何证明某个形式系统中无法证明一条结论?

简单考虑自然演绎系统去掉 RAA 组成的形式系统,并尝试证明在其中不能证明 Double Negation Eliminatation。

若只从语法的角度切入这个问题,可以想象的证明方法只有枚举一切的证明树,其难度可想而知。因此我们必须将语义和语法结合起来,于是不难想象这样一条证明路线:

  • 为形式系统构造一个新语义(因为布尔代数保证了逻辑就是二值的,排中律必然成立)。
  • 证明该形式系统在此语义下是一致的。
  • 发现 DNE 在此语义下并不成立。

直觉主义逻辑最知名的语义是如下的 Kripke’s Model:

定义 4.1. 一个 Kripkle’s Model 包含如下资料:偏序集 $W$,映射 $V : W\rightarrow 2^{\mathbf{PROP}}$ 满足若 $u, v\in W, u\leq v$ 则 $V(u)\subseteq V(v)$,配上一个 形如 $(W, V, w), w\in W$ 的三元组 与 命题 之间的二元关系 $\Vdash$。其中:

  • $(W, V, w)\Vdash p$ 若 $p\in V(w)$,其中 $p$ 为原子命题。
  • $(W, V, w)\Vdash \bot$ 总是不成立。
  • $(W, V, w)\Vdash p\wedge q$ 若 $(W, V, w)\Vdash p$ 且 $(W, V, w)\Vdash q$。
  • $(W, V, w)\Vdash p\rightarrow q$ 若任给 $v\geq w$,都有一旦 $(W, V, v)\Vdash p$ 则 $(W, V, v)\Vdash q$。

在同构意义下 $W, V$ 显得不太重要,下文我们可能将 $W, V$ 省略不写,将 $(W, V, w)\Vdash \phi$ 简单地记录为 $w\Vdash \phi$。

为了与原来的语法和语义区分,若一个命题 $\phi$ 能在去掉 RAA 的系统中被证明,称 $\vdash_i \phi$。若对于任意的 $W, V, w$ 都有 $(W, V, w)\Vdash \phi$,则称 $\vDash_i\phi$。

定理 4.2. 若 $\vdash_i \phi$ 则 $\vDash_i\phi$,即自然演绎系统去掉 RAA 在 Kripke’s Model 下是一致的。

虽然 Kripke’s Model 比布尔代数稍微抽象一些,但是本定理的证明仍然同布尔代数语义的版本一样简单,所以这里省略不写。至此我们已经可以尝试证明系统不能推出 DNE:

定理 4.3.

$$
\not\vdash_i ((P\rightarrow \bot)\rightarrow \bot)\rightarrow P
$$

并且

$$
\not\vdash_i (((P\rightarrow\bot)\rightarrow\bot)\rightarrow P) \rightarrow\bot
$$

证明. 反之假设 $\vdash_i ((P\rightarrow\bot)\rightarrow\bot)\rightarrow P$。完备性定理指出此时有

$$
\vDash_i ((P\rightarrow\bot)\rightarrow\bot)\rightarrow P
$$

然而我们令 $W = \{\varnothing, {P}\}, V = \mathrm{Id}_W$,可以从左到右地验证下表:

$w\Vdash$ $P$ $P\rightarrow\bot$ $(P\rightarrow \bot)\rightarrow \bot$ $((P\rightarrow\bot)\rightarrow\bot)\rightarrow P$ $\mathrm{DEM}\rightarrow\bot$
$\varnothing$ NO NO YES NO NO
$\{P\}$ YES NO YES YES NO

注意第二行给出 $(W, V, \varnothing)\not\Vdash ((P\rightarrow\bot)\rightarrow\bot)\rightarrow P$,矛盾。上表同样表明 DNE 不能被证伪。明所欲证。

Remark. 我们做的事情看起来很奇怪。用一句批话来说,我们用反证法证明了自然演绎系统去掉反证法之后不能证明反证法。但我们做的事情事实上没有任何问题。

首先,论证一个形式系统的性质必须采用更高级的语言。否则你将无法区分下面两种情况:

  • 形式系统是正确的。
  • 形式系统能够证明错误的命题,其中包括“自身是正确的”这一条命题。

其次读者不妨区分这两组概念:

  • 定理 $p$ 能被证明 / 能被证伪。(i.e. $\vdash p$ 和 $\vdash p\rightarrow\bot$)在直觉主义逻辑中这两者并不是总有一者成立。
  • 定理 $p$ 能被证明 / 不能被证明。(i.e. $\vdash p$ 和 $\not\vdash p$)。在人类对 $\vdash$ 的定义下这两者必有一者成立。