翻译-Introduction À La Logique-教材01
1.1 简介 Introduction
在(代数、分析、几何等)数学课上 我们推演各种数学对象(整数,实数,矩阵,数列,连续函数,曲线等)的性质。 为了能证明这些性质,我们应先确保所研究的数学对象是良定义的(整数是什么?实数是什么?等等)。
而在一阶逻辑 Logique du Premier Ordre ——尤其是在推演理论 注:也称作证明论 里, 我们研究的数学对象则是逻辑公式 Formule 及其对应的推演 Démonstration。正因如此, 我们有必要对这些数学对象给出精确的定义。项和公式共同构成了语言的语法,其极度简洁,允许我们 表达无歧义不迂回的内容。
项 Termes:即数学性质中提到的数学对象。
在代数中项可以是群(或环、域、线性空间等)中的元素。 有时我们也需要操纵这些元素构成的集合(如子群、线性子空间等)。 描述这些数学对象的项被称作二阶项 Termes du Second Ordre。 在第 6 章之前我们暂时先不考虑这些东西。
在分析中项可以是实数或(函数空间中的)函数。
公式 Formules:描述了待研究数学对象所具有的性质。
在代数中公式可以用来描述两个元素的运算满足交换律, 或者是线性子空间的维数等于 $3$,等等。
在分析中公式可以用来描述函数的连续性,数列的收敛性,等等。
集合论中公式可以用来描述两个集合的包含关系, 或者是某个元素属于某个集合,等等。
推演 Démonstrations:允许我们确定一个逻辑公式为真 Vraie。 “真”这个词本身的精确定义也需要被定义(见第 2 章)。更准确地说, 推演是一种基于假设的推导,允许我们“从真得出真”;在此过程中 结论的真实性这一问题被转移到了假设上,假设的真实性不依赖于逻辑, 而是取决于我们对所讨论事物的认知。
正如域是数的形式化,推演是我们在数学中常进行的推理的形式化。
注意:本章仅讨论一阶逻辑中公式和推演的语法 Syntaxe —— 意味着不会出现“真 Vrai”和“假 Faux”这样的词。 真值(称作语义 Sémantique)则会在下一章中详细介绍。 当然,想读懂一个公式或理解一个推演,我们还需要为其赋予某种“意义”; 但这种意义并不属于我们的研究范围。一台计算机(可能完全不理解自己在做什么) 可以毫无障碍地操作关于群、线性空间等数学对象的定理的推演, 并且无需在头脑中保留任何用来支撑直觉的实例。当然, 我们会在本章的例子中引入这样的直觉, 但请记住:这么做的目的仅仅是为了帮助理解。
本章我们还会推导出一些与项、公式和推演有关的重要结论, 这意味着我们会写出一些描述这些数学对象的公式(称作元公式 Méta-Formules) 并进行相应的元推演 Méta-Démonstrations。
另外注意:可别把 项、公式、推演所在的层次和 元公式、元推演所在的层次给弄混了。
为了方便读者区分这两个层次,我们将使用下表中的对应关系 来指派“对象”层次和“元”层次中相关概念的词汇。
| 层级 | 相关词汇 |
|---|---|
| 对象 | 公式 Formule,推演 Démonstration 或推导 Dérivation |
| 元 | 性质 Propriété,证明 Preuve |
在大部分情况下我们也会保留对象层级的记号。比如, 我们不会在元层面上用 $\forall$ 表示“对任意…”。
1.2 公式 les Formules
1.2.1 语言 le Langage
对于不同的数学领域我们会使用不同的语言,这些语言 因其所使用的符号而彼此区分(见 1.2.例子.2) 。 下面的定义阐述了一个简单事实:只需给出一串符号列表 便可描述一门语言。
一门(一阶逻辑)语言 Langage 是符号构成的集合(不一定非得是有限集合)。符号可划分为三类:
- 常量符号 Symboles de Constante;
- 函数符号 Symboles de Fonction。 每个符号都关联一个称作元数 Arité 的正整数, 其代表函数可接收的实参个数: 假如一个函数符号的元数为 $1$(或者 $2$,$3$,$\ldots$,$n$), 那么该函数便可称作是一元的 Unaire(或者是二元的 Binaire,$\ldots$,$n$-元的 $n$-aire);
- 关系符号 Les Symboles de Relation。 同样地,每个关系都关联一个非负整数(即其元数),用于表示接收的实参个数。 然后关系也有一元的 Unaire,二元的 Binaire,$\ldots$,$n$ 元的 $n$-aire。
我们有时也用词汇表 Vocabulaire 或者是签名 Signature 来指代语言。
术语谓词 Prédicat 也可以用来表示关系。我们有时也会用 谓词演算 Calcul des Prédicats 来指代一阶逻辑 Logique du Premier Ordre。
- 语言 $\setLan_1$ 用于描述群理论 Théorie des Groupes,包含以下符号:
- 常量符号:$e$(表示群的幺元)
- 函数符号:$∗$(二元,用于表示群运算),${\_}^{-1}$(一元,用于表示逆元)
- 关系符号:$=$
- 语言 $\setLan_2$ 用于描述有序域理论 Théorie des Corps Ordonnés,包含以下符号:
- 常量符号:$0$,$1$
- 函数符号:$+$,$\times$,$−$,${\_}^{-1}$。实际上我们用了两个 $-$ 符号,它们被混淆了: 其中一个是一元的,另一个是二元的(注意到在计算器上这两个操作是分开的)
- 关系符号:$=$,$\leq$
- 语言 $\setLan_3$ 用于描述实线性空间理论 Théorie des Espaces Vectoriels sur $\mathbb{R}$,包含以下符号:
- 常量符号:$0$
- 函数符号:$+$,$(f_\lambda)_{\lambda\in \mathbb{R}}$。这里符号集合是无限集合, $f_\lambda$ 对应于数乘 $\lambda$。由此可以看出 加法是一个内部运算,而 数乘则是一个外部运算
- 关系符号:$=$
- 语言 $\setLan_4$ 用于描述集合论 Théorie des Ensembles,包含以下符号:
- 常量符号:$\varnothing$
- 函数符号:$\cap$,$\cup$,${\_}^{c}$(用于表示补集)
- 关系符号:$=$,$\in$,$\subset$
- 语言 $\setLan_5$ 用于描述实分析理论 Théorie de l’Analyse Réelle,包含以下符号:
- 常量符号:$0$,$1$,$\ldots$,$e$,$\pi$,$\ldots$
- 函数符号:$+$,$\times$,$\lvert {\_}\rvert$,$\sin$,$\ln$,$\ldots$
- 关系符号:$=$,$\leq$,$\ldots$
1.2.2 项 les Termes
接下来我们会提供一个无限集合 $\setVar$, 其包含了所有变量符号 Symboles des Variables。 变量可以是 $x$,$y$,$z$,$\ldots$(也可以带脚标:$x_1$,$\ldots$)。
项 Termes(默认为一阶的 du Premier Ordre) 代表与语言中的对象。准确来说是:
若 $\setLan$ 是一门语言,则:
语言 $\setLan$ 里的所有项构成的集合 $\setTrm$ 是满足以下条件的最小集合:
若要形式化地定义,还可以这样写:规定 $\setTrm = \bigcup_{k \in \mathbb{N}} \setTrm_k$,其中
- $\setTrm_0 = \{t \mid t \text{ 是变量或常量符号}\}$,且
- $\setTrm_{k+1} = \setTrm_k \cup \{f(t_1, \ldots, t_n) \mid t_i \in \setTrm_k \text{ 且 } f \text{ 是 } n \text{ 元函数符号} \}\qquad \text{对任意 } k\in \mathbb{N}$
我们称项 $t$ 的高度 Hauteur 为 满足 $t \in \setTrm_k$ 的最小的 $k$。
上述定义意味着变量和常量都是项。此外 如果 $f$ 是元数为 $n$ 的函数符号 并且 $t_1$,$\ldots$,$t_n$ 都是项, 那么 $f(t_1,\ldots,t_n)$ 也构成一个项。
该定义不过是提供了一个书写规范, 可以按照如下方式理解: 如果 $f$ 是一个符号, 那么我们就可以写出 $f(t_1,\ldots,t_n)$; 选择这种写法显然不是随意的, 因为它的意义(见2.2.定义.3) 将会是一个函数对其实参的应用结果。
未来会经常给出类似的定义。我们 会以如下方式对这类定义进行描述:
集合 $\setTrm$ 包含所有项, 按照如下语法 Grammaire 定义:$\qquad\setTrm = \setVar \mid \mathcal{S}_C \mid \mathcal{S}_F(\setTrm,\ldots,\setTrm)$
其中
- $\setVar$ 是语言中所有变量符号构成的集合,
- $\mathcal{S}_C$ 是语言中所有常量符号构成的集合,
- $\mathcal{S}_F$ 是语言中所有函数符号构成的集合。
该表达式可以如下方式理解: 集合 $\setTrm$ 中的元素
- 要么属于集合 $\setVar$,
- 要么属于集合 $\mathcal{S}_C$,
- 不然就是一个 $n$ 元函数符号 $f \in \mathcal{S}_F$ 应用在 $n$ 个实参上后得到的表达式。
1.2.2.注意.01: 此写法隐含了 $f$ 的元数是正确的这一事实;另外 记法 $\mathcal{S}_F(\setTrm,\ldots,\setTrm)$ 并不意味着函数的所有实参都是相同的, 只是指出了这些实参都是 $\setTrm$ 中的元素而已。
此记法也可以推广至其他数学对象的定义上,比如 在线性空间中,由子集 $A$ 生成的线性子空间 $F$ 就可以通过如下语法定义:
$\qquad F = A \mid F + F \mid f_{\lambda}(F)\qquad\text{对任意 }\lambda \in \mathbb{R}$
对于二元函数,中缀表示法 Notation Infixée(如 $x + y$ 或 $A \cap B$) 往往比前缀表示法 Notation Préfixée(如 $+(x,y)$ 或 $\cap(A,B)$)更能让人接受; 但代价是需要引入括号来提高可读性。
下方内容提到的语言皆在 1.2.例子.2 中有定义。
- 语言 $\setLan_1$(群理论)中:
$x \ast y^{-1}$ 和
$x^{-1} \ast (y \ast x^{-1})^{-1}$ 是项。
$e^{-1} \ast e$ 是闭项。 - 语言 $\setLan_2$(有序域理论)中:
$(x - (1 + (x^{-1})^{-1})) \times (0 + y^{-1})$ 是项,
$(1 \times (0 + 1)^{-1}) + ((1 \times 0) + 0)$ 是闭项。 - 语言 $\setLan_3$(实线性空间)中:
$f_{\sin(1)}(f_{-2}(x + y) + f_{1/2}(y + f_{\ln(7)}(x)))$ 是项,
$f_{\pi}(0 + f_{\sqrt{2}}(0))$ 是闭项;相反,
$f_x(x)$ 并不是语言 $\setLan_3$ 中的项。 - 语言 $\setLan_4$(集合论)中:
$(x \cup y)^{c}$ 和
$(x^{c} \cap (\varnothing \cup y))^{c}$ 是项,
$\varnothing \cap (\varnothing^{c} \cup \varnothing)^{c}$ 是闭项。 - 语言 $\setLan_5$(实分析理论)中:
$\sin(\ln(x) \times \cos(\lvert y + e \rvert))$ 是项,
$\ln(\lvert \cos(e) - \sin(e) \rvert)$ 是闭项。
前面提到过,本章中我们不寻求为项赋予意义,因此如 $0^{-1}$ 和 $\ln(0)$ 这样的东西都可算是项, 它们分别对应语言 $\setLan_2$ 和 $\setLan_5$。
通常也会将项视作一棵树,当中
- 每个叶子都被一个变量或常量所标记,
- 每个节点都被一个函数符号所标记。
例如 项 $(B \cup C) \cap A^{c}$ 和 项 $(x + 2) \cdot \sin(y + \ln(x))$ 可分别被表示为如下两树:
$\qquad\small\begin{xy}/r1cm/:/d1cm/:: ( 0, 0)*!!L(0){\cap}="F0"; (-1,+1)*!!L(0){\cup}="F10"**@{-}, (+1,+1)*!!L(0){\_^{^c}}="F11"**@{-}, "F10";p+/r.5cm/:p+/d1cm/:: (-1,+1)*!!L(0){B}="F100"**@{-}, (+1,+1)*!!L(0){C}="F101"**@{-}; "F11";p+/d1cm/:: ( 0,+1)*!!L(0){A}="F110"**@{-} \end{xy}\qquad \small\begin{xy}/r1cm/:/d1cm/:: ( 0, 0)*!!L(0){\cdot\vphantom{fg}}="F0"; (-1,+1)*!!L(0){+}="F10"**@{-}, (+1,+1)*!!L(0){\sin}="F11"**@{-}; "F10";p+/r.5cm/:p+/d1cm/:: (-1,+1)*!!L(0){x}="F100"**@{-}, (+1,+1)*!!L(0){2}="F101"**@{-}; "F11";p+/d1cm/:: ( 0,+1)*!!L(0){+}="F110"**@{-};p+/d1cm/:: (-1,+1)*!!L(0){y}="F1100"**@{-}, (+1,+1)*!!L(0){\ln}="F1101"**@{-};p+/d1cm/:: ( 0,+1)*!!L(0){x}="F11010"**@{-} \end{xy}$接下来我们会不停地对项的结构使用递归 Récurrence 来定义概念(或证明结论)。
要证明项满足某个性质 $P$,需要
- 证明 $P$ 对所有变量和常量都成立,并且
- 证明 $P(f(t_1,\ldots,t_n))$ 成立
可由 $P(t_1)$,$\ldots$,$P(t_n)$ 作为前提推出。
这相当于是对项的高度进行归纳证明。
要定义某个以项作为实参的函数 $\Phi$,需要
- 规定 $\Phi$ 应用在变量和常量后的结果,并且
- 规定 $\Phi(f(t_1,\ldots,t_n))$
使用 $\Phi(t_1)$,$\ldots$,$\Phi(t_n)$ 描述的方式
下面的定义就是一个典型的例子
在证明 $P$ 对所有项都成立的时候, 对项的高度进行归纳有时未必行得通;因此还可以考虑
- 证明 $P$ 对所有尺寸等于 $0$ 的项都成立,并且
- 证明 $P$ 对所有尺寸等于 $n$ 的项都成立
可由 $P$ 对所有尺寸小于 $n$ 的项都成立推出。
这便是对项的尺寸进行归纳证明。
1.2.3 公式 les Formules
逻辑公式由原子公式 Atomiques 通过 连结词 Connecteurs 和 量词 Quantificateurs 构造形成。我们会使用下列连结词和量词:
- 一元连结词:$\lnot$,读作非 Non。
- 二元连结词:
- $\land$,读作且 Et。想想 $x \in A \cap B$,其含义为 $x \in A$ 且 $x \in B$。
- $\lor$,读作或 Ou。想想 $x \in A \cup B$,其含义为 $x \in A$ 或 $x \in B$。
- $\to$,读作蕴含 Implique 或箭头 Flèche。
- 量词:
上述连结词记法是标准记法,使用它们是为了避免 公式(本书所研究的对象层面)与 日常语言(元语言层面) 之间产生混淆。
你或许会发现某些逻辑书籍采用下述记法:
- $\to$ 会被记作 $\supset$。结论可看作是假设的子集。
- $\forall$ 会被记作 $\bigwedge$。它是且的推广。
- $\exists$ 会被记作 $\bigvee$。它是或的推广。
逻辑连结词的选择是相对随意的,我们可以选择其他连结词。比如可以添加 $\leftrightarrow$(表示逻辑等价)或者是 $\uparrow$(Sheffer 竖线 Sheffer Stroke,在电路中尤其常用),等等。
假如 $\setLan$ 是一门语言,那么:
原子公式 Atomiques 是形如 $R(t_1, \ldots, t_n)$ 的逻辑公式,其中 $R$ 是语言 $\setLan$ 中的一个 $n$ 元关系符号,而 $t_1$,$\ldots$,$t_n$ 是语言 $\setLan$ 中的项。 我们用 $\setAtm$ 来表示所有原子公式构成的集合。 假如用 $\mathcal{S}_R$ 来表示所有关系符号构成的集合, 那么便可规定:
$\qquad\setAtm = \mathcal{S}_R(\setTrm,\ldots,\setTrm)$
集合 $\setFml$ 由所有公式 Formules(默认为一阶逻辑)构成, 通过下述语法定义(其中 $x$ 遍历所有变量):
$\qquad\setFml = \setAtm \mid\setFml \lor \setFml \mid\setFml \land \setFml \mid\setFml \to \setFml \mid\lnot\setFml \mid\exists x~\setFml \mid\forall x~\setFml$
上述定义说明公式集合是满足下述条件的最小集合:
- 如果 $F$ 是原子公式,
那么 $F$ 属于该集合; - 如果 $F_1$ 和 $F_2$ 属于该集合,
那么 $F_1\land F_2$,$F_1\lor F_2$,$F_1 \to F_2$ 属于该集合; - 如果 $F$ 属于该集合且 $x$ 是变量,
那么 $\lnot F$,$\exists x~F$,$\forall x~F$ 属于该集合。
- 如果 $F$ 是原子公式,
对于二元关系, 中缀表示法(如 $x = y$ 和 $x \le y$)相较于 前缀表示法(如 $=(x, y)$ 和 $\leq(x, y)$)更为常用。
需要注意区分项和公式: $\sin(x)$ 是项,$x = 3$ 是公式,但 $\sin(x) \land (x = 3)$ 什么都不是; 因为我们不能在项和公式之间使用连结词。
- 语言 $\setLan_1$(群理论)中:
$\forall x~\exists y~((x \ast y = e) \land (\lnot(y \ast x = e)))$ 和
$\forall x~((x = e) \lor \exists y~((\lnot(y = e)) \land (y \ast x = e)))$ 是公式。 - 语言 $\setLan_2$(有序域理论)中:
$\forall x~\forall y~(x \times y = 0 \to ((x = 0) \lor (y = 0)))$ 和
$\exists x~((\lnot(x = 0)) \land (x \times 0 = 1))$ 是公式。 - 语言 $\setLan_3$(实线性空间)中:
$\forall x~\forall y~(f_2(x + y) = f_2(x) + f_2(x))$ 和
$\forall x~\forall y~(f_2(x + y) = 0 \to ((x = 0) \land (y = 0)))$ 是公式。 - 语言 $\setLan_4$(集合论)中:
$\forall x~\forall y~((x \cup y)^{c} = (x^{c} \cap y^{c}))$ 和
$\forall x~\forall y~(x \cap y = \varnothing \to (x = \varnothing \land y = \varnothing))$ 是公式。 - 语言 $\setLan_5$(实分析理论)中:
$\forall x~(x > 0 \to \exists y~((y > 0) \land (x = y \times y)))$ 和
$\exists x~(\sin(x) = 0 \land \cos(x) = 0)$ 是公式。
从直觉主义 Intuitivement 的角度来看,上面提到的公式中有些为真,有些为假。
我们使用圆括号($($,$)$)、方括号($[$,$]$)、花括号($\{$,$\}$) 来提高可读性或消除歧义。没有括号的话,公式 $\lnot A \land B$ 是模棱两可的:它 既可以被解读为 $(\lnot A) \land B$, 也可以被解读为 $\lnot(A \land B)$。 为了简化记号,我们会使用下列优先级规则:
- 语言中的关系符号
- $\lnot$,$\forall$,$\exists$
- $\land$,$\lor$
- $\to$
如此 $\forall x~A \land B \to \lnot C \lor D$ 便表示 公式 $((\forall x~A) \land B) \to ((\lnot C) \lor D)$。
可以证明:如果是使用前缀表示法(如 $\lor F_1 F_2$), 那么括号便不再是必需的——即每个公式都只有唯一的解读方式。 对于项来说也是如此。 之所以不考虑使用前缀表示法是因为 在实际应用中前缀表示法更难阅读。
我们也会采用下述简写方式:
$\forall x_1, \ldots, x_n~A$ 代表 $\forall x_1~\ldots~\forall x_n~A$。
$\forall x > 0~A$ 代表 $\forall x~(x > 0 \to A)$,
$\exists x > 0~A$ 代表 $\exists x~(x > 0 \land A)$。
我们会使用这种记法来表示其他二元关系符号的中缀形式, 比如 $\forall x \in y~F[x,y]$。注意: 在 $\forall$ 的情况下是一个蕴含,而 在 $\exists$ 的情况下是一个合取。$A \land B \land C$ 代表 $A \land (B \land C)$。我们也可以将括号位置换成 $(A \land B) \land C$——因为后面会知道这两个公式其实是等价的。 我们在后续内容中会
- 使用记号 $\bigwedge_{1 \le i \le n} A_i$ 表示公式 $A_1 \land \ldots \land A_n$,并
- 使用记号 $\bigvee_{1 \le i \le n} A_i$ 表示公式 $A_1 \lor \cdots \lor A_n$。
$A_1 \to A_2 \to \ldots \to A_n \to A$ 代表
$A_1 \to (A_2 \to (\ldots (A_n \to A)\ldots))$。$A \leftrightarrow B$ 代表 $(A \to B) \land (B \to A)$。
$t \ne u$ 代表 $\lnot(t = u)$。
和项一样,公式也可以被视作一棵树:其中
- 每个节点都被一个连结词或量词所标记,并且
- 每个叶子都被一个原子公式所标记。
比如公式 $(a \ge 0 \land R(a)) \to \forall x~(x \ge a \to \lnot R(x))$ 就可被表示为下图所示的树:
$\qquad\small\begin{xy} ( 0, 0)*!!L(0){\rightarrow}="F0";/r+1cm/:/d+1cm/:: (-1, 1)*!!L(0){\land}="F00"**@{-}, (+1, 1)*!!L(0){\forall x}="F01"**@{-}; "F00";p+/d+1cm/:: (-1, 1)*!!L(0){a\geq 0}="F000"**@{-}, (+1, 1)*!!L(0){R(a)}="F001"**@{-}; "F01";p+/d+1cm/:: ( 0, 1)*!!L(0){\rightarrow}="F010"**@{-};p+/d+1cm/:: (-1, 1)*!!L(0){x\geq a}="F0100"**@{-}, (+1, 1)*!!L(0){\lnot}="F0101"**@{-};p+/d+1cm/:: ( 0, 1)*!!L(0){R(x)}="F01010"**@{-} \end{xy}$
- 公式 $H(e) \land \forall x, y~\{H(x) \land H(y) \rightarrow H(x \cdot y^{-1})\} \land \forall x, y~\{H(y) \rightarrow H(x \cdot y \cdot x^{-1})\}$
表示 $H$(准确说应是所有满足性质 $H$ 的元素构成的集合)是我们考虑的群的 一个正规子群。 - 公式 $\forall x_0~\forall \varepsilon > 0~\exists \alpha > 0~\forall x~(\lvert x - x_0\rvert < \alpha \rightarrow \lvert f(x) - f(x_0)\rvert < \varepsilon)$
是
公式 $\forall x_0~\forall \varepsilon~\{\varepsilon > 0 \rightarrow \exists \alpha~[\alpha > 0 \land \forall x~(\lvert x - x_0\rvert < \alpha \rightarrow \lvert f(x) - f(x_0)\rvert < \varepsilon)]\}$
的缩写,表示函数 $f$ 具有连续性。
- 公式 $F$ 的子公式 Sous-Formule
是 $F$ 的“组成部分”,
可利用这些公式将 $F$ 构造出来。我们通过下述方式
形式化定义公式 $F$ 的子公式集合 $\mathrm{SF}(F)$:
- 如果 $F$ 是原子公式,
那么 $\mathrm{SF}(F) = \{F\}$。 - 如果 $F = F_1 \oplus F_2$ 且 $\oplus \in \{\lor, \land, \rightarrow\}$,
那么 $\mathrm{SF}(F) = \{F\} \cup \mathrm{SF}(F_1) \cup \mathrm{SF}(F_2)$。 - 如果 $F = \lnot F_1$
或者 $F = Q x~F_1$ 且 $Q \in \{\forall, \exists\}$,
那么 $\mathrm{SF}(F) = \{F\} \cup \mathrm{SF}(F_1)$。
- 如果 $F$ 是原子公式,
- 公式 $F$ 只使用了语言 $\setLan$ 中的有限个符号。 这些符号构成的集合称作公式的语言 Langage de la Formule, 记作 $\setLan(F)$。
公式
- $\varepsilon > 0$、
- $\forall x~\{\lvert x - x_0\rvert < \alpha \rightarrow \lvert f(x) - f(x_0)\rvert < \varepsilon\}$ 以及
- $\lvert x - x_0\rvert < \alpha$
都是1.2.例子.9 中提到的第二个公式的子公式。 该公式的语言由
- 常量 $0$、
- 一元函数符号 $f$ 和 $\lvert\_\rvert$ 以及
- 二元关系符号 $>$ 和 $<$
构成。
如果公式 $F$ 被视作是一棵树,
那么公式 $F$ 的子公式便是对应的子树,其根部为 $F$ 公式树的节点。
和项一样,我们将对公式的尺寸使用递归定义概念(或证明结论)。
- 为了定义某个以公式作为实参的函数 $\Phi$,需要
- 规定 $\Phi$ 应用在原子公式后的结果,并且
- 规定 $\Phi(\lnot F_1)$、$\Phi(Qx~F_1)$ 和 $\Phi(F_1 \oplus F_2)$
使用 $\Phi(F_1)$ 和 $\Phi(F_2)$ 描述的方式。
- 为了证明 $P$ 对所有公式都成立,需要
- 证明 $P$ 对所有原子公式都成立,并且
- 证明 $P(\lnot F_1)$、$P(Qx~F_1)$ 和 $P(F_1 \oplus F_2)$
可由 $P(F_1)$ 和 $P(F_2)$ 作为前提推出。
- 为了证明 $P$ 对所有公式都成立,需要
- 证明 $P$ 对所有尺寸等于 $0$ 的公式都成立,并且
- 证明 $P$ 对所有尺寸等于 $n$ 的公式成立
可由 $P$ 对所有尺寸小于 $n$ 的公式都成立推出。
最后一点便是对公式的尺寸进行递归定义(或归纳证明)的具体描述。
1.2.4 自由变量和约束变量 Variables Libres et variables Liées
引入量词 $\forall$ 和 $\exists$ 后 会带来两个与变量命名相关的问题。
例如,通常我们会认为 公式 $\forall x~(x \cdot z = z \cdot x)$ 和 公式 $\forall y~(y \cdot z = z \cdot y)$ 相同并认为 公式 $\forall x~(x \cdot y = y \cdot x)$ 和 公式 $\forall x~(x \cdot z = z \cdot x)$ 不同,因为 前者表达了对象 $y$ 的某个性质,而 后者表达了对象 $z$ 的某个性质。 这意味着我们认为两个公式在对某些变量(称作 约束变量 Variables Liées 或 哑变量 Variables Muettes) 进行重命名操作后是等价的, 因此我们实际上是在一个商集中工作。 这在数学中非常常见, 但要形式化定义该等价关系并不像想象中那么简单。 公式 $\forall x~(x \cdot z = z \cdot x)$ 和 公式 $\forall z~(z \cdot z = z \cdot z)$ 并不相同: 我们不能直接把 $x$ 替换为 $z$!
我们经常需要在另一个项或公式中将某个变量 替换(或代换 Substituer)为某个项。例如, 如果已经定义 $Z[z] : \forall x~(x \cdot z = z \cdot x)$ 并且想要写出 $Z[2x]$, 那么我们就需要重命名约束变量 $x$ 并写下 $\forall y~(y \cdot 2x = 2x \cdot y)$。
为了不让本章的阅读变得过于乏味,我们 不会形式化这两个概念(重命名和代换), 而是只给出非正式定义 并依托读者对这些概念的直觉理解—— 因为我们在数学中经常会操作这些概念。
假设 $F$ 是一个公式,
那么 $F$ 的所有自由变量 Variables Libres 构成的集合 $\setVarLib(F)$
可通过对 $\tau(F)$ 使用递归进行定义:
- 如果 $F = R(t_1, \ldots, t_n)$ 是原子公式,
那么 $\setVarLib(F)$ 是出现在各个 $t_i$ 中的变量所构成的集合。 - 如果 $F = F_1 \oplus F_2$ 且 $\oplus \in \{\lor, \land, \to\}$,
那么 $\setVarLib(F) = \setVarLib(F_1) \cup \setVarLib(F_2)$。 - 如果 $F = \lnot F_1$,
那么 $\setVarLib(F) = \setVarLib(F_1)$。 - 如果 $F = Q x~F_1$ 且 $Q \in \{\forall, \exists\}$,
那么 $\setVarLib(F) = \setVarLib(F_1) - \{x\}$。
- 如果 $F : \forall x~(x \cdot y = y \cdot x)$,
那么 $\setVarLib(F) = \{y\}$。 - 如果 $G : {\forall x~\exists y~(x \cdot z = z \cdot y)} \land {x = z \cdot z}$,
那么 $\setVarLib(G) = \{x, z\}$。 - 如果 $H : \forall x~(y = 0)$,
那么 $\setVarLib(H) = \{y\}$。
我们也可以用下述方式定义这些概念:
- 公式 $F$ 中变量 $x$ 的一个 出现 Occurence 是 该变量在公式 $F$ 中的一个位置。不要将其与变量本身这个对象混淆。
- 公式 $F$ 中变量 $x$ 的一个出现是 约束的 Liées(或 哑的 Muette) 当且仅当在通向该出现所处叶子的分支中 存在 $\forall x$ 或 $\exists x$, 否则该出现便是 自由的 Libre。
- 变量 $x$ 在公式 $F$ 中是自由的当且仅当其至少有一次自由出现。 哑变量或约束变量是指出现在公式中但非自由的变量。下述陈述留作习题: 变量 $x$ 在公式 $F$ 中是自由的当且仅当 $x \in \setVarLib(F)$。
- 在刚才的例子中会注意到:一个变量 可能同时拥有自由出现和约束出现。
- 一个变量在公式 $F$ 中可能是约束的, 但在 $F$ 的某个子公式中却可能是自由的。 例如 $y$ 在 $x \cdot y = y \cdot x$ 中是自由的, 但在 $\forall y~(x \cdot y = y \cdot x)$ 中是约束的。
- 量词须位于被绑定变量的出现的前方,并且还得位于该出现所处的公式树分支上, 而不只是简单地将其置于出现的前面(对于公式的线性形式而言)。 例如在公式 $(\forall x~x^{2} > 0) \land x > 3$ 中, $x$ 的第二个出现是自由的(因为该 $\forall$ 仅绑定第一个 $x$)。
$\forall y~(x\cdot y = y\cdot x)$ 和 $\forall z~(x\cdot z = z\cdot x)$ 是 $\alpha$-等价的,但
$\forall y~(x\cdot y = y\cdot x)$ 和 $\forall y~(z\cdot y = y\cdot z)$ 则不是。
我们不能直接将公式 $\forall y~(x\cdot y = y\cdot x)$ 中的 $y$ 重命名为 $x$ 以得到公式 $\forall x~(x\cdot x = x\cdot x)$,因为变量 $x$ 会被 捕获 Capturée。 上述定义是非正式且不完整的,因为我们不能在没有预防措施的情况下 直接重命名变量的约束出现:我们必须避免捕获变量的自由出现。 正式的定义请见练习 5.9 。
对于那些辅助证明的软件来说, 变量的重命名会带来一些棘手的问题。 对于变量,我们并没有为其命名, 而是采用了一种称为 de Bruijn 指数 Indices de De Bruijn 的编码方式:变量 $x$ 的一个出现会被替换为一个整数, 其表示(从该出现出发到公式根部的分支上) 在遇到与之对应的量词前需要跨过的量词个数。 不幸的是,尽管这种表示法对于计算机来说非常方便, 但对于人类来说公式会变得几乎无法阅读。
从今往后我们将在 $\alpha$-等价的意义下工作, 即将任何两个彼此 $\alpha$-等价的公式都视为等同的。 为了避免变量捕获的问题, 我们将避免写出 同时包含某个变量的自由出现和约束出现的公式。 这在数学中很常见:例如,出于谨慎考虑, 我们不会在同一公式中写下 $\sin(t)$ 和 $\int_{0}^{1} \cos(t)~dt$。
为了更精确地表示公式可能拥有的自由变量, 我们使用记号 $F[x_1, \ldots, x_n]$: 这表示 $F$ 的自由变量位于 $x_{1}$,$\ldots$,$x_{n}$ 之中——即 如果 $y$ 是 $F$ 的自由变量, 那么 $y$ 便是某个 $x_i$; 但是并非所有 $x_n$ 都必须在 $F$ 中有自由出现。
- 闭 Close 公式是不含自由变量的公式。 1.2.例子.7 中的所有公式都是闭的。
- 假如公式 $F$ 有自由变量 $x_1$,$\ldots$,$x_n$。 那么公式 $F$ 的(全称)闭包 Clôture 是闭公式 $\forall x_1, \ldots, x_n~F$。 这里存在形式上的滥用:我们默认变量的顺序是固定的; 但这无关紧要,选择另一种顺序会得到一个不同但依然等价的公式。
前面定义的记号都是针对一阶逻辑公式的; 但是某些(数学中常用的)公式并非一阶逻辑公式,比如:
- 我们无法用一阶逻辑公式来表达“所有理想都是主理想”。 因为这需要同时量化一阶对象(环的元素)和二阶对象(环的子集)。
- 所有以“对所有整数 $n$”,“对所有 $x_1$,$\ldots$,$x_n~\ldots$” 开头的公式 (比如描述向量空间的某个子集是线性无关的公式)同样也不是一阶逻辑公式, 因为公式中 $\forall$ 数量不能随着某个变量而变化;而这里它由 $n$ 的值所决定。 此外我们还需要对两种不同类型的对象进行量化:整数和向量空间的元素。
为了能够对多种类型的对象进行量化,我们需要引入 高阶逻辑 Logique d’Ordre Supérieur 或 多类型逻辑 Logique Multi-Sortes(见第 6 章)。 尽管如此,逻辑推理和推演理论中的主要困难基本都集中在一阶逻辑层面。
1.2.5 代换 Substitutions
公式 $F[x]$ 代表了对象 $x$ 的某个性质。 我们希望能够在 $F$ 中将变量 $x$ 替换为项 $t$(也称为将 $t$ 代换到 $x$ 中), 这个操作记作 $F[x := t]$(或者更简单地记作 $F[t]$——如果上下文足够清晰的话)。 这会导致两个困难:
- 很明显只有 $x$ 的自由出现才可以被替换。 假如 $F[x]$ 为公式 $(\forall x~ x^{2} > 0) \land (x < 1)$。 那么 $F$ 的含义是“所有元素的平方均为正数,并且对象 $x$ 小于 $1$”。 如果 $t = \sin(y)$, 那么 $F[t]$ 的含义是“所有对象的平方均为正数,并且 $\sin(y)$ 小于 $1$”。 将 $F[t]$ 写作公式 $(\forall x~\sin^{2}(y) > 0) \land \sin(y) < 1$”并不符合我们的预期; 而将其写作 $(\forall\sin(y)~\sin^{2}(y) > 0) \land \sin(y) < 1$ 就更糟了! ( $\forall$ 后面只能有变量。)
- 这里同样存在捕获问题。 一个学生清楚地知道: 如果函数 $f$ 被定义为 $f(x) = \int_{0}^{1} e^{(x+y)^{2}}~dy$, 那么 $f(y^{2})$ 并不是 $\int_{0}^{1} e^{(y^{2}+y)^{2}}~dy$, 而应该是 $\int_{0}^{1} e^{(y^{2}+z)^{2}}~dz$。 为了避免变量 $y$(在结果中当然应为自由变量)被积分符号所捕获, 有必要对变量名进行更改。 下面的例子与刚才的问题完全相同: 如果 $F[x]$ 为 $\forall y~(y \cdot x = x \cdot y)$, 那么 $F[y^{-1}]$ 并不是 $\forall y~(y \cdot y^{-1} = y^{-1} \cdot y)$, 而应该是 $\forall z~(z \cdot y^{-1} = y^{-1} \cdot z)$。
假如 $F$ 是一个公式,$x$ 是一个变量,$t$ 是一个项。 那么 $F[x := t]$ 是通过将 $F$ 中所有 $x$ 的自由出现替换为 $t$ 得到的公式, 不过在此之前需对所有在 $t$ 里有自由出现的 $F$ 的约束变量进行重命名。
- 重命名的目的是为了避免变量捕获。显然, 唯一可能发生的捕获就是上述定义中所描述的那些。 如果没有捕获,当然就不需要进行重命名。
- 要想避免捕获 只需对表达式 $F[x := t]$ 应用第 21 页的约定即可。 因此我们会对 $F$ 中的约束变量进行重命名 以确保没有任何变量同时拥有自由出现和约束出现。
- 我们也可以定义 将 $t_1$,$\ldots$,$t_n$ 分别同时替换 为 $x_1$,$\ldots$,$x_n$ 的操作。 我们将其记作是 $F[x_1 := t_1, \ldots, x_n := t_n]$ 或更简单地记作 $F[t_1, \ldots, t_n]$ —— 如果没有歧义的话。
- 注意:
公式 $F[x_1 := t_1, x_2 := t_2]$ 和
公式 $F[x_1 := t_1][x_2 := t_2]$ 通常并不等价 (见1.6.引理.5):
前者是同时代换, 后者则对应于两个连续的代换。
1.2.6 命题演算 Calcul Propositionnel
如果语言中的关系符号都是零元关系符号(甚至连 $=$ 符号都没有), 那么量词便变得无用(因为公式中不可能包含变量)。 于是我们便得到了命题演算 Calcul Propositionnel, 其定义如下:
集合 $\setCal_P$ 由所有命题演算 Calcul Propositionnel 的公式构成, 通过下述语法定义(其中 $V_P$ 是所有零元关系符号的集合):
$\qquad \setCal_P = \setVar_P \mid \bot \mid \lnot \setCal_P \mid \setCal_P \lor \setCal_P \mid \setCal_P \land \setCal_P \mid \setCal_P \to \setCal_P$下面的公式均为命题演算中的公式,
它们以 $X$、$Y$、$Z$ 为命题变量。
$(X \to Y \lor Z) \land \{(X \to \bot) \lor (X \to \lnot Z)\}$
$(X \land \lnot Y \to Z)\lor \{(\bot \to Z)\lor (Y\to Z)\}$
1.3 使用自然推演描述推演 les Démonstrations en Déduction Naturelle
1.3.1 简介 Introduction
数学教材(尤其是本书)中的推演是由数学符号和包含“关键词”的短语组成的,例如:
- 因此 donc,
- 由于 parce que,
- 如果 si,
- 当且仅当 si et seulement si,
- 必有 il est nécessaire que,
- 只需 il suffit de,
- 任取一 $x$ 满足 prenons un $x$ tel que,
- 假设 supposons que,
- 取如下反例 chercons une contrdiction,
等等;这些短语被假定会被所有人以相同的方式理解,但并非总是如此。 例如我们稍后会看到“取某个 $x$ 满足”这一表达 可能有两种截然不同的含义, 而一旦弄错可能会造成非常严重的问题。
在书籍或课程中,推演的目的是说服读者相信该命题的真实性。 根据读者的水平,推演会有不同的详细程度: 在硕士课程中被认为显而易见的东西 在学士课程中可能并非如此;就好比在 在初中课程里一个计算过程可能会被详细解释,而 在高中课程里其则会被心算完成且无需被解释。
在作业中, 批改者知道学生所要求的结果是真实的,并且他知道(正确的)推演。 学生则必须说服批改者自己明白如何(正确地)推演所要求的结果。 因此学生需要提供的推演的详细程度取决于批改者的信任程度: 在一份优秀的答卷中,一句“由归纳证明显然”通常是可被接受的;而 如果一份答卷里前面已出现过一个所谓的“显然”,但它明显是……错误的, 那么这种说法就绝对不会被接受。
为了能够适当地处理细节程度的问题,我们需要知道什么是完整的推演。 这一形式化工作是在本世纪初完成的。这里给出了 自然推演 Dédution Naturelle 中推演的概念。 我们将在本章末尾和第 5 章中看到其他形式化方法。
几个可能令人惊讶的事实
规则的个数是有限的: 每个连结词(包括相等)都有两条规则, 然后再加上三条通用规则。 下面的事实似乎并太明显: 有限个数的规则足以推演所有为真的命题, 不过我们将在第 2 章中 证明该结论(其本质是完备性定理)并 澄清其含义。这个证明并不简单。
这些规则在所有数学领域中都是共用的:代数、分析、几何等。 也就是说我们已经成功地将推理中的所有通用部分都提取出来。 稍后会看到推演是由一系列有序对 $(\Hypo, A)$ 组成的,其中 $\Hypo$ 是一个集合,由一群公式(假设)构成;而 $A$ 是一个公式(结论)。 在研究数论、几何或实分析时,除了规则之外, 我们还会使用一些被称为公理 Axiomes 的假设。 它们表达了我们所操作对象的特殊属性。例如 在 $\mathbb{N}$ 中每个元素都有一个后继, 在 $\mathbb{R}$ 中两个元素之间总有另一个元素。 在第 3 章中我们将研究一些理论 Théories 的例子。
1.3.2 相继式 les Séquents
我们在推演公式的时候会用到一个假设集, 这个集合可能会在推演过程中发生变化: 当我们说“假设 $F$ 并推演出 $G$”时, $F$ 就是一个新的假设,我们可以用它来推演出 $G$。 为了形式化这一点,我们引入了相继式的概念。
注意我们并没有要求 $\Hypo$ 里的公式和 $F$ 都必须是闭的 closes。 例如后面会看到:为了推演闭公式 $\forall x~F[x]$, 我们需要推演出公式 $F[x]$ —— 如果 $x$ 在假设中都不是自由的话。
假如 $\Hypo = \{A_1, \ldots, A_n\}$, 那么我们可以用 $A_1, \ldots, A_n \vdash F$ 来代替 $\Hypo \vdash F$。 符号 $\vdash$ 读作“推断出 thèse”或“推演出 démontre”。我们 用 $\vdash F$ 来表示假设集为空的相继式,并 用 $\Hypo_1, \ldots, \Hypo_n \vdash F$ 来表示 假设集为 $\bigcup_{1 \leq i \leq n} \Hypo_i$ 的相继式。
另外需要注意的是相继式 $\Hypo, A \vdash B$ 中 公式 $A$ 可能已经在 $\Hypo$ 中; 因为此时的语境为 $\Hypo \cup \{A\}$。
1.3.3 推演规则 les Règles de Démonstration
推演规则是构建推演的积木块。 一个形式化的推演是一群有限(且正确!)的规则的组合, 这个组合不是线性的(不是一个序列),而是树状的。 我们需要频繁创建分支:例如要推演出 $A \land B$, 我们需要完成两件事(推演出 $A$ 以及推演出 $B$)。
下面是一套规则选取方案: 我们本可以介绍其他(替代或附加)规则, 它们亦能引申出相同的证明记号; 但是被选取的这些规则是“自然的”, 它们对应于我们在数学中通常所做的推理。 除了下面的规则之外,我们在实际应用中还会使用其他许多规则; 但这些规则都可以从前面的规则中推导出来, 因此将其称作是派生规则 Règles Dérivées。 我们将在第 1.3.8 节中看到一些例子。
传统上我们将树的 根(相继式结论)写在下方并将 叶子写在上方:大自然正是如此! 不过我们也经常从根向叶子构建树: 由于在纸张上也有从上到下书写的传统, 因此将根写在上方、叶子写在下方也并非不合理。 必须做出选择!于是决定采用逻辑教材中最常见的做法。
a) 规则如何解读 Comment Lire les Règles ?
一条规则由下述部分组成:
- 一个集合,包含一系列前提 Prémisses: 每个前提都是一个相继式。 前提的个数可以为零个、一个或多个, 它们的排列顺序并不重要;
- 一个相继式,代表结论 Conclusion;
- 一条水平线,用于分隔前提(上方)和结论(下方)。 水平线的的右侧会标注规则的名称。
例如:
$\qquad\begin{prooftree} \AXC{\({\overbracket[.5pt]{\Hprev{\Hypo}}^\mathclap{\text{一群假设 hypothese}} \vdash A\to B}\)} \AXC{\(\overbracket[.5pt]{\Hprev{\Hypo} \vdash A}^\mathclap{\text{前提 premise}}\)} \RightLabel{\(\rightarrow_{\rm e}\)} \BIC{\(\underbracket[.5pt]{\Hnext{\Hypo} \vdash B}_\mathclap{\text{相继式结论 sequent conclusion}}\)} \end{prooftree}$
这条规则拥有 两个前提($\Hypo \vdash A \to B$ 和 $\Hypo \vdash A$)和 一个结论($\Hypo \vdash B$)。
每条规则有两种理解方式:
自下而上 de Bas en Haut : 如果我们想要推演出结论, 那么只需通过使用该规则来推演出前提即可。 这便是我们在寻找推演时所采用的解读方式。 这对应于分析 Analyse。
自上而下 de Haut en Bas : 如果前提均已被推演出, 那么结论则可被推演出。 这是我们在撰写推演时所采用的解读方式。 这对应于概括 Synthèse;
每条规则后都有一段非形式化文字 用来说明该规则的直观含义, 并在必要时给出一些补充说明。这些文字 有时会以自上而下的方式解读规则, 有时则以自下而上的方式解读规则; 这是因为有些规则 在某一个方向上会比 在另一个方向上更容易理解。
每个逻辑连结词符号都有与之对应的两条规则:
由于等号具有特殊的地位, 因此我们也为其引入了两条规则。 在第 3 章中我们将看到 另一种利用该符号特殊地位的方法。
除了上述规则之外,还有三条通用规则:
头两条规则(公理和弱化)不对应于任何连结词: 第一条规则是唯一一条没有前提的规则, 因此它对应于其所处推演片段中的某个末端(树的叶子); 第二条规则意味着在推演片段中某些假设可能并未被使用。
第三条规则(谬误消去(古典逻辑)) 常常与涉及 $\lnot$ 的规则一起出现。 然而它具有特殊的地位:它是唯一一条对应于归谬论的推演规则。 其作用在第 4 章中将会得到更好的体现, 在那里我们将研究一种不使用该规则的推演模型。
b) 规则 les Règles
公理 Axiome
$\qquad\begin{prooftree} \AXC{}\RL{\(\axm\)} \UIC{\(\Hnext{\Hypo}, A\vdash A\)} \end{prooftree}$
如果相继式的结论是假设之一, 那么该相继式当然是可被推演的。
弱化 Affaiblissement
$\qquad \begin{prooftree} \AXC{\(\Hprev{\Hypo} \vdash A\)}\RL{\(\aff\)} \UIC{\(\Hnext{\Hypo},B\vdash A\)} \end{prooftree}$
自上而下: 如果能够利用 $\Hypo$ 推演出 $A$, 那么也能利用 $\Hypo \cup \{B\}$ 推演出 $A$。
自下而上: 一部分假设可能是冗余的。
箭头引入 Introduction de l’Implication
$\qquad \begin{prooftree} \AXC{\(\Hprev{\Hypo},A\vdash B\)}\RL{\(\intrTo\)} \UIC{\(\Hnext{\Hypo}\vdash A\to B\)} \end{prooftree}$
自下而上: 要想推演出 $A \to B$, 只需假设 $A$ (即将 $A$ 加入进假设)并推演出 $B$ 即可。
箭头消去 Élimination de l’Implication
这条规则在很久以前就以肯定前件 Modus Ponens 著称。
$\qquad \begin{prooftree} \AXC{\(\Hprev{\Hypo}\vdash A\to B\)} \AXC{\(\Hprev{\Hypo}\vdash A\)} \RL{\(\elimTo\)} \BIC{\(\Hnext{\Hypo} \vdash B\)} \end{prooftree}$
自下而上: 如果 $A \to B$ 已被推演出, 那么为了推演出 $B$ 只需推演出 $A$ 即可。
合取引入 Introduction de la Conjonction
$\qquad \begin{prooftree} \AXC{\(\Hprev{\Hypo}\vdash A\)} \AXC{\(\Hprev{\Hypo}\vdash B\)} \RL{\(\intrCon\)} \BIC{\(\Hnext{\Hypo} \vdash A\land B\)} \end{prooftree}$
自下而上: 要想推演出 $A \land B$, 只需分别推演出 $A$ 和 $B$ 即可。
合取消去 Élimination de la Conjonction
$\qquad \begin{prooftree} \AXC{\(\Hprev{\Hypo}\vdash A\land B\)}\RL{\(\elimConL\)} \UIC{\(\Hnext{\Hypo}\vdash A\)} \end{prooftree} \qquad \begin{prooftree} \AXC{\(\Hprev{\Hypo}\vdash A\land B\)}\RL{\(\elimConR\)} \UIC{\(\Hnext{\Hypo}\vdash B\)} \end{prooftree} $
自上而下: 依据 $A \land B$, 我们可以推演出 $A$(左消去)和 $B$(右消去)。
析取引入 Introduction de la Disjonction
$\qquad \begin{prooftree} \AXC{\(\Hprev{\Hypo} \vdash A\)}\RL{\(\intrDisL\)} \UIC{\(\Hnext{\Hypo} \vdash A\lor B\)} \end{prooftree} \qquad \begin{prooftree} \AXC{\(\Hprev{\Hypo} \vdash B\)}\RL{\(\intrDisR\)} \UIC{\(\Hnext{\Hypo} \vdash A\lor B\)} \end{prooftree}$
自下而上: 要想推演出 $A \lor B$, 只需推演出 $A$ 或者是推演出 $B$。 该规则可能令人感到困惑, 因为结论比前提更弱。 下面的例子应该能帮助理解该规则。
设想我们拥有一个如下形式的定理 $\forall x~\{(x < 4) \lor (x = 4) \to A\}$, 并且我们需要将该定理应用于 $x = \pi$ 上以证明某个结果。 首先需要形式地验证 $\pi$ 小于或等于 $4$。 易知 $\pi$ (严格)小于 4, 但唯有 $\pi$ 小于或等于 4 才能允许我们在当前情形下应用该定理。 正是规则 $\intrDisL$ 使得这一点成为可能。
设想我们需要证明一个如下形式的性质:“对任意整数 $n$,$u_n \leq 4$”, 并且为了证明它,我们需要区分 $n$ 为偶数和 $n$ 为奇数的情况(比如研究如递归数列)。 假如现在 $u_{2p} = 4$ 可以得出, $u_{2p+1} < 4$ 可通过对 $p$ 进行归纳得出,但 $u_{2p+1} \leq 4$ 无法通过归纳得出! 那么这时该规则便是必须的。
析取消去 Élimination de la Disjonction
$\qquad \begin{prooftree} \AXC{\(\Hprev{\Hypo} \vdash A\lor B\)} \AXC{\(\Hprev{\Hypo},A \vdash C\)} \AXC{\(\Hprev{\Hypo},B \vdash C\)}\RL{\(\elimDis\)} \TIC{\(\Hnext{\Hypo} \vdash C\)} \end{prooftree}$
自下而上: 如果想推演出 $C$, 并且 $A \lor B$ 已被推演出, 那么只需分别在假设 $A$ 和假设 $B$ 的条件下推演出 $C$ 即可。
这便是分类讨论。比方说, 如果我们需要证明一个关于整数 $n$ 的性质,那么 我们可以按照 $n$ 为偶数和 $n$ 为奇数的情况进行区分。 我们也可按照 $n$ 为素数和 $n$ 为合数的情况进行区分。
否定引入 Introduction de la Négation
$\qquad \begin{prooftree} \AXC{\(\Hprev{\Hypo},A \vdash \bot\)}\RL{\(\intrNeg\)} \UIC{\(\Hnext{\Hypo} \vdash \lnot A\)} \end{prooftree}$
自下而上: 要想推演出 $\lnot A$, 只需假设 $A$ 并推演出谬误 $\bot$ 即可。 也请阅读一下 $\clssBot$ 规则后的评论。
否定消去 Élimination de la Négation
$\qquad \begin{prooftree} \AXC{\(\Hprev{\Hypo}\vdash \lnot A\)} \AXC{\(\Hprev{\Hypo}\vdash A\)}\RL{\(\elimNeg\)} \BIC{\(\Hnext{\Hypo} \vdash \bot\)} \end{prooftree}$
自上而下: 如果我们已经推演出 $\lnot A$ 和 $A$, 那么我们便可推演出谬误 $\bot$。 也请阅读一下 $\clssBot$ 规则后的评论。
谬误消去(古典逻辑) Absurdité Classique
$\qquad \begin{prooftree} \AXC{\(\Hprev{\Hypo},\lnot A\vdash \bot\)}\RL{\(\clssBot\)} \UIC{\(\Hnext{\Hypo}\vdash A\)} \end{prooftree}$
自下而上: 要想推演出 $A$, 只需假设 $\lnot A$ 并推演出谬误 $\bot$ 即可。
$\elimNeg$ 和 $\intrNeg$ 两条规则使得 $\bot$ 这一符号变得有意义。 它表示“通用的”假,独立于我们所使用的语言。 当我们在推演中声称“获得了一个矛盾”时, 意味着我们已经证明了某个“显然为假”的东西:比如 一个公式以及其否定(见规则 $\elimNeg$)、 $0 = 1$ 或 任何与所使用语言相关的其他公式。 后面我们将看到(见第 4.3.3 节的引理.4.3.3)$\lnot A$ 等价于 $A \to \bot$; 因此完全可以不使用连结词 $\lnot$ 并删除与之对应的两条规则。
规则 $\clssBot$ 对应于归谬论。 我们将在引理.4.3.3中看到(见第 4.3.3 节)该规则意味着 $\lnot\lnot A$ 等价于 $A$,即: “‘$A$ 为假’这句话是错的当且仅当 $A$ 就为真”。 该规则并非显而易见: 它对于某些结果的证明是必须的,也就是说 有些结果无法在不依赖归谬论的情况下被证明。
另外注意到:与其他规则不同, 该规则可以在任何时候被使用: 我们始终可以声称“为了证明 $A$,我假设 $\lnot A$ 并寻找矛盾”。 但这会使搜寻证明(变得稍微)更加困难。
全称引入 Introduction du Quantificateur Universel
$\qquad \begin{prooftree} \AXC{\(\Hprev{\Hypo} \vdash A\)} \AXC{\(x\) 在 \(\Hprev{\Hypo}\) 的元素中无自由出现} \RL{\(\intrAll\)} \BIC{\(\Hnext{\Hypo} \vdash \forall x ~A\)} \end{prooftree}$
自下而上: 要想推演出 $\forall x~A$, 只需推演出 $A$——条件是 $x$ 在假设中不能有自由出现。
要想证明 $\forall x~A$ 就 需要证明 $A$ 对于任意对象 $x$ 都成立。条件 “$x$ 在 $\Hypo$ 的元素中无自由出现”是对 “$x$ 是任意的”的形式化描述。这一附加条件意味着 我们对 $x$ 没有任何假设, 因为 $x$ 不能出现在假设中。
该条件是至关重要的, 忘记检验该条件常导致错误。
如果该条件未被满足, 那么 $x$ 可能并非任意的。 需要记住公式在约束变量的重命名操作下是等价的,因此 公式 $\forall y~A[x := y]$ 与 公式 $\forall x~A$ 是相同的。 此时只需将 $A$ 中的 $x$ 重命名为另一个满足该条件的字母 $y$, 并证明 $A[x := y]$ 即可。
全称消去 Élimination du Quantificateur Universel
$\qquad \begin{prooftree} \AXC{\(\Hprev{\Hypo} \vdash \forall x ~A\)}\RL{\(\elimAll\)} \UIC{\(\Hnext{\Hypo} \vdash A[x:=t]\)} \end{prooftree}$
自上而下: 利用 $\forall x~A$ 我们可以推导出 $A[x := t]$,$t$ 为任意项。 也可以这样说:如果已经证明了 $A$ 对于任意 $x$ 都成立, 那么我们就可以使用 $A$ 来处理任意对象 $t$。 前面已经提到过,项表示我们所处理的对象, 在进行替换时(如有必要)需重命名 $A$ 中的约束变量以避免捕获 $t$ 中的变量。 该条件同样适用于下一条规则。
存在引入 Introduction du quantificateur existentiel
$\qquad \begin{prooftree} \AXC{\(\Hprev{\Hypo} \vdash A[x:=t]\)}\RL{\(\intrExt\)} \UIC{\(\Hnext{\Hypo} \vdash \exists x~A\)} \end{prooftree}$
自上而下: 要想推演出 $\exists x~A$, 只需找到一个对象(即一个项)$t$, 并推演出 $A[x := t]$ 即可。
存在消去 Élimination du Quantificateur Existentiel
$\qquad \begin{prooftree} \AXC{\(\Hprev{\Hypo} \vdash \exists x~A\)} \AXC{\(\Hprev{\Hypo},A \vdash C\)} \AXC{\(x\) 在 \(\Hprev{\Hypo}\) 的元素和 \(C\) 中均无自由出现}\RL{\(\elimExt\)} \TIC{\(\Hnext{\Hypo} \vdash C\)} \end{prooftree}$自上而下: 当我们拥有一个形如 $\exists x~A$ 的假设时, 我们可通过“取”一个满足 $A$ 的 $x$ 来使用该假设。 形式地说,“取”意味着为其赋予一个名字。
$x$ 的约束条件是对如下事实的形式化描述: 假设所断言存在的对象 没有任何理由是推演过程中引入的对象之一。 该条件至关重要,忘记检验该条件常导致错误。 与规则 $\intrAll$ 的情况类似, 如果该条件未被满足, 那么只需将公式 $\exists x~A$ 中的 $x$ 重命名即可,即给 $x$ 赋予一个新名字。
$\intrAll$ 和 $\elimExt$ 是唯二允许引入新对象的规则。
$\intrAll$ 和 $\elimExt$ 里对变量的约束条件 也可以写成是“在位于规则结论中的相继式里 $x$ 没有自由出现”。
另一个常见的错误是发明下述规则:
$\qquad\begin{prooftree} \AXC{\(\Hprev{\Hypo} \vdash \exists x~A\)}\RL{\(\elimExt\)} \UIC{\(\Hnext{\Hypo} \vdash A\)} \end{prooftree}$
后面会看到相关的例子。
我们也可以将 $\elimExt$ 表述为如下形式:
$\qquad \begin{prooftree} \AXC{\(\Hprev{\Hypo}\vdash \exists x~A\)}\RL{\(\elimExt\)} \UIC{\(\Hnext{\Hypo}\vdash A[x:=f(y_1,\ldots,y_n)]\)} \end{prooftree}$
当中 $f$ 为一个“新”的函数符号, $y_1$,$\ldots$,$y_n$ 为 $A$ 中的自由变量。 注意到该规则不再涉及任何辅助公式 $C$, 如此便需要说明引入这些新名字的意义,并且 这还会带来其他一些麻烦(见第 2.7 节)。
等号引入 Introduction de l’Égalité
$\qquad\begin{prooftree} \AXC{}\RL{\(\intrEql\)} \UIC{\(\Hnext{\Hypo} \vdash t=t\)} \end{prooftree}$
我们始终可以推演出 $t = t$, 此规则意味着等号具有自反性。
等号消去 Élimination de l’Égalité
$\qquad \begin{prooftree} \AXC{\(\Hprev{\Hypo} \vdash A[x:=\EQprev{t}]\)} \AXC{\(\Hprev{\Hypo} \vdash t = u\)} \RL{\(\elimEql\)} \BIC{\(\Hnext{\Hypo} \vdash A[x:=\EQnext{u}]\)} \end{prooftree}$
自上而下: 如果我们已经推演出 $A[x := t]$ 和 $t = u$, 那么我们便可推演出 $A[x := u]$。
这条规则意味着任何两个相等的对象都拥有相同的性质。 不过注意,公式 $t = u$ 和 $u = t$ 在形式上并不相同: 只有在证明了等号的对称性(见1.3.例子.9)之后 我们才能以这种方式来解读该规则。
c) 规则如何使用 Comment Utiliser une Règles ?
每条规则都代表一个模式 Schéma: 我们将其中的字母替换为公式、项、假设集、变量。 当然,这种替换必须保持一致性:例如, 同一个字母的两次出现必须被实例化为同一个公式。
下面是规则 $\elimTo$ 的一个应用案例:
$\qquad \begin{prooftree} \AXC{\(\vdash f(x)=f(y) \to x=y\)} \AXC{\(\vdash f(x)=f(y)\)} \RL{\(\elimTo\)} \BIC{\(\vdash x=y\)} \end{prooftree}$
其中
- $\Hypo$ 被替换为了空集,
- $A$ 被替换为了 $f(x)=f(y)$,
- $B$ 被替换为了 $x=y$。
该规则断言: 如果我们已经证明了两条前提 $\vdash f(x)=f(y) \to x=y$ 和 $\vdash f(x)=f(y)$, 那么我们便证明了结论 $\vdash x=y$。
d) 推演如何撰写 Comment Écrire une Démonstration Formelle ?
一个例子比一段文字更有说服力。 下面示范如何推演出公式 $\lnot A \leftrightarrow (A \to \bot)$。 为了节省空间,我们为多次出现的假设集赋予了名称:
- $\Hypo = \lnot A, A$
- $\Hypo' = A \to \bot, A$。
上述记法称作是树状表示法 Notation Arborescente。 在该推演中,其中一个分支应用了下述规则:
- $\axm$ 用于证明 $\Hypo \vdash \lnot A$ 和 $\Hypo \vdash A$
- $\elimNeg$ 用于推导出 $\Hypo \vdash \bot$
- $\intrTo$ 用于推导出 $\lnot A \vdash A \to \bot$
- $\intrTo$ 用于推导出 $\vdash \lnot A \to (A \to \bot)$
另一个分支则应用了下述规则:
- $\axm$ 用于证明 $\Hypo' \vdash A \to \bot$ 和 $\Hypo' \vdash A$
- $\elimTo$ 用于推导出 $\Hypo' \vdash \bot$
- $\intrNeg$ 用于推导出 $A \to \bot \vdash \lnot A$
- $\intrTo$ 用于推导出 $\vdash (A \to \bot) \to \lnot A$
最后我们应用规则 $\intrCon$ 来证明结论(提示: $B \leftrightarrow C$ 是 $ (B \to C) \land (C \to B)$ 的缩写)。
这个小结论意味着连结词 $\lnot$ 可以利用 $\to$ 和 $\bot$ 来“编码”。
e) 推演如何搜寻 Comment Trouver une Démonstration ?
当我们要求学生推演出一个结果(例如在考试中)时, 他将会面临两大困难:寻找推演和撰写推演。
刚刚我们已经看到什么才算是完整的证明。 至于找到合适的细节程度这一环节 通常不会带来太大困难,并且随着经验的积累 这会变得越来越容易。
那么该如何找到一个推演呢?在第 3 章(涉及到不完备性定理)中我们将会看到 通用的方法并不存在。想象力、直觉和经验始终都有发挥的场景。 然而对于大学一、二年级课程中大多数常见的习题来说, 这一部分所占的比重相对较小; 如果学生已经充分地剖析了问题, 那么他往往就能够“看出”解法。
接下来我们会介绍一些启发思路。 在这里只介绍我们是如何找到上面所示的推演的:
首先需要证明逻辑等价。这是一个 $\land$ 命题的缩写。 根据规则 $\intrCon$,我们需要证明两件事: $\vdash \lnot A \to (A \to \bot)$ 和 $\vdash (A \to \bot) \to \lnot A$。
- 为了证明 $\vdash \lnot A \to (A \to \bot)$,我们应用规则 $\intrTo$。
- 现在需要证明 $\lnot A \vdash A \to \bot$。为了证明它,我们再次应用规则 $\intrTo$。
- 现在需要证明 $\Hypo \vdash \bot$。
此时我们无法再应用任何引入规则。唯一能够推进的规则是 $\elimNeg$。
- 现在需要证明 $\Hypo \vdash \lnot A$ 和 $\Hypo \vdash A$。 这两个相继式均可通过规则 $\axm$ 得出。
- 现在需要证明 $\Hypo \vdash \bot$。
此时我们无法再应用任何引入规则。唯一能够推进的规则是 $\elimNeg$。
- 现在需要证明 $\lnot A \vdash A \to \bot$。为了证明它,我们再次应用规则 $\intrTo$。
- 为了证明 $\vdash (A \to \bot) \to \lnot A$,我们应用规则 $\intrTo$。
- 现在需要证明 $A \to \bot \vdash \lnot A$。为了证明它,我们应用规则 $\intrNeg$。
- 现在需要证明 $\Hypo' \vdash \bot$。
此时我们无法再应用任何引入规则。 唯一能够推进的规则是 $\elimTo$。
- 现在需要证明 $\Hypo' \vdash A \to \bot$ 和 $\Hypo' \vdash A$。 这两个相继式均可通过规则 $\axm$ 得出。
- 现在需要证明 $\Hypo' \vdash \bot$。
此时我们无法再应用任何引入规则。 唯一能够推进的规则是 $\elimTo$。
- 现在需要证明 $A \to \bot \vdash \lnot A$。为了证明它,我们应用规则 $\intrNeg$。
- 为了证明 $\vdash \lnot A \to (A \to \bot)$,我们应用规则 $\intrTo$。
注意到:上述推演的两种阅读方式(撰写和搜寻)之间唯一的区别在于,
- 对于前者我们是从上到下阅读树状结构,而
- 对于后者我们是从下到上阅读树状结构。
f) 一些启发思路 Quelques Heuristiques
重复下述步骤通常是一个不错的思路:
- 如果能够套用引入规则,就套用它。
- 否则对假设(或定理)套用消去规则。
需要注意有些规则是可逆的,即 如果前提可被推演出, 那么结论也可被推演出—— 也就是说套用该规则可能“没有损失”, 但并非所有规则都是如此;例如, $\intrCon$ 是可逆的,但 $\intrAll$ 就不是。 因此在使用不可逆规则时, 我们需要提醒自己可能走上了错误的路, 如果最终无法得到结果, 那么就需要回头重新选择方向。
另外注意:
- 要想应用规则 $\intrExt$ 和 $\elimAll$, 必须提供一个显示的项 $t$。 这是一个常见的错误来源: 人们声称应用了该规则但却未提供项 $t$。
- 规则 $\intrAll$ 和 $\elimExt$ 中不会有任何项出现。 但是需要注意变量的名称。
某些辅助证明软件会通过如下方式来帮助用户。
- 对于规则 $\intrAll$ 和 $\elimExt$, 软件会自动进行必要的重命名。
- 对于规则 $\intrExt$ 和 $\elimAll$,
软件会引入符号“
?”来询问用户该规则应使用哪个项。 通常建议立即给出该答案,尽管有时在实际操作中并不会这样做。 考虑下述情况:在我们将描述函数满足连续性的假设套用到 某个在后面才会提供的 $\varepsilon$ 上时, 我们需要非常谨慎地确保 这个 $\varepsilon$ 不应依赖于 在套用规则 $\elimAll$ 时尚未被引入的对象。 所有辅助证明软件都会自动执行这样的检查。
最后需要指出的是:上述策略对应于推演树的自下而上构造。 尽管如此,在搜寻推演的过程中 我们经常需要混合使用两种方式: 既需要自下而上,又需要自上而下。 例如我们可能需要从已知事实(即树的叶子,无论是作为假设还是定理)出发 以得到一个结果并最终得出结论。
g) 命题逻辑的规则 les Règles de Démonstration du Calcul Propositionnel
命题演算是一阶逻辑的一个特殊情况。 推理规则是相同的。 下面的性质似乎是显而易见的: 假设 $\Hypo$ 中的元素和 $A$ 为 $\setCal_P$ 中的公式。 相继式 $\Hypo \vdash A$ 可被推演出当且仅当 它可在不使用规则 $\intrAll$、$\elimAll$、$\intrExt$、$\elimExt$、$\intrEql$、$\elimEql$ 的情况下被推演出。 然而对应的证明可不简单, 需要用到第 5 章才会介绍的切割消去定理。
在尝试证明 $\setCal_P$ 中的公式时, 我们只需避免使用这些规则即可!
1.3.4 推演示例 Exemples de Démonstration
下面的例子会突出展示各条规则的作用。 这里我们采用树状表示法来撰写推演。 下一个小节我们将放弃这种过于冗长的记法。
为了简化树状结构,我们为某些假设集赋予了名称。 它们的定义会在推演中首次引入该名称的地方给出(以自下而上方式阅读)。
$\vdash (A \land B \to C) \leftrightarrow (A \to B \to C)$
为了使推导更简洁,我们将规则 $\intrTo$ 的三次应用合并为一次(用 $\intrTo \times 3$ 来表示)。 该简写对应于一个“显而易见”的推导步骤,没必要将其详细地写出。
由于书写空间有限,当中的两个蕴含将会分开推导。 要想获得完整的推导过程,还需要在这两部分推导之间加一个 $\intrCon$。
$\qquad \hspace{-10pt}\begin{prooftree} \AXC{}\RL{\(\axm\)} \UIC{\(\Hnext{\Hprev{\Hypo}}\vdash A\wedge B\to C\)} \AXC{}\RL{\(\axm\)} \UIC{\(\Hnext{\Hprev{\Hypo}}\vdash A\)} \AXC{}\RL{\(\axm\)} \UIC{\(\Hnext{\Hprev{\Hypo}}\vdash B\)}\RL{\(\intrCon\)} \BIC{\(\Hnext{\Hprev{\Hypo}}\vdash A\wedge B\)}\RL{\(\elimTo\)} \BIC{\(\Hnext{\Hypo = \Hprev{A \wedge B\to C , A},B}\vdash C\)}\RL{\(\intrTo\)} \UIC{\(\Hnext{\Hprev{A\wedge B\to C},A}\vdash B\to C\)}\RL{\(\intrTo\)} \UIC{\(\Hnext{A\wedge B\to C}\vdash A\to (B\to C)\)}\RL{\(\intrTo\)} \UIC{\(\vdash(A\wedge B\to C)\to (A\to (B\to C))\)} \end{prooftree}$ $\qquad \begin{prooftree} \AXC{}\RL{\(\axm\)} \UIC{\(\Hnext{\Hprev{\Delta}} \vdash A\to (B\to C)\)} \AXC{}\RL{\(\axm\)} \UIC{\(\Hnext{\Hprev{\Delta}} \vdash A\wedge B\)}\RL{\(\elimConL\)} \UIC{\(\Hnext{\Hprev{\Delta}} \vdash A\)}\RL{\(\elimTo\)} \BIC{\(\Hnext{\Hprev{\Delta}} \vdash B\to C\)} \AXC{}\RL{\(\axm\)} \UIC{\(\Hnext{\Hprev{\Delta}} \vdash A\wedge B\)}\RL{\(\elimConR\)} \UIC{\(\Hnext{\Hprev{\Delta}} \vdash B\)}\RL{\(\elimTo\)} \BIC{\(\Hnext{\Delta=\Hprev{A\to (B\to C)}, A\wedge B}\vdash C\)}\RL{\(\intrTo\)} \UIC{\(\Hnext{A\to (B\to C)}\vdash (A\wedge B\to C)\)}\RL{\(\intrTo\)} \UIC{\(\vdash (A\to (B\to C))\to (A\wedge B\to C)\)} \end{prooftree}$这个小结论意味着: 不论是将单个公式 $A \land B$ 作为假设, 还是将两个公式 $A$ 和 $B$ 一起作为假设, 效果都是一样的。
$\vdash (C\to A) \lor (C\to B)\to (C\to A\lor B)$
$\qquad\begin{prooftree} \AXC{\(\begin{prooftree} \AXC{}\RL{\(\axm\)} \UIC{\(\Hnext{\Hprev{\Hypo}} \vdash (C\to A)\vee (C\to B)\)} \end{prooftree}\)\hspace{-40pt}} \AXC{\(\begin{prooftree} \AXC{}\RL{\(\axm\)} \UIC{\(\Hnext{\Hprev{\Hypo'}} \vdash C\to A\)} \AXC{}\RL{\(\axm\)} \UIC{\(\Hnext{\Hprev{\Hypo'}} \vdash C\)}\RL{\(\elimTo\)} \BIC{\(\Hnext{\Hprev{\Hypo'}} \vdash A\)}\RL{\(\intrDisL\)} \UIC{\(\Hnext{\Hypo'=\Hprev{\Hypo}, C\to A}\vdash A\vee B\)} \end{prooftree}\)\hspace{-70pt}} \AXC{\(\begin{prooftree} \AXC{}\RL{\(\axm\)} \UIC{\(\Hnext{\Hprev{\Hypo''}} \vdash C\to B\)} \AXC{}\RL{\(\axm\)} \UIC{\(\Hnext{\Hprev{\Hypo''}} \vdash C\)}\RL{\(\elimTo\)} \BIC{\(\Hnext{\Hprev{\Hypo''}}\vdash B\)}\RL{\(\intrDisR\)} \UIC{\(\Hnext{\Hypo''=\Hprev{\Hypo}, C\to B}\vdash A\vee B\)} \RL{\(\elimDis\)} \end{prooftree}\)\hspace{-70pt}} \TIC{\(\Hnext{\Hypo = \Hprev{(C\to A)\vee (C\to B)}, C}\vdash A\vee B\)} \RL{\(\intrTo\)} \UIC{\(\Hnext{(C\to A)\vee (C\to B)}\vdash C\to (A\vee B)\)} \RL{\(\intrTo\)} \UIC{\(\vdash ((C\to A)\vee (C\to B)) \to (C\to A\vee B)\)} \end{prooftree}$$\vdash (\forall x~A\lor \forall x~B) \to \forall x~(A\lor B)$
$\qquad \begin{prooftree} \AXC{}\RL{\(\axm\)} \UIC{\(\Hnext{\Hprev{F}}\vdash F\)} % -------------- \AXC{}\RL{\(\axm\)} \UIC{\(\Hnext{\Hprev{\Hypo}} \vdash \forall x ~A\)}\RL{\(\elimAll\)} \UIC{\(\Hnext{\Hprev{\Hypo}} \vdash A\)}\RL{\(\intrDisL\)} \UIC{\(\Hnext{\Hprev{\Hypo}} \vdash A\vee B\)}\RL{\(\intrAll\)} \UIC{\(\Hnext{\Hypo = \Hprev{F}, \forall x~A}\vdash \forall x~(A\vee B)\)} % -------------- \AXC{}\RL{\(\axm\)} \UIC{\(\Hnext{\Hprev{\Hypo'}} \vdash \forall x ~B\)}\RL{\(\elimAll\)} \UIC{\(\Hnext{\Hprev{\Hypo'}} \vdash B\)}\RL{\(\intrDisR\)} \UIC{\(\Hnext{\Hprev{\Hypo'}} \vdash A\vee B\)}\RL{\(\intrAll\)} \UIC{\(\Hnext{\Hypo' = \Hprev{F}, \forall x~B}\vdash \forall x~(A\vee B)\)}\RL{\(\elimDis\)} % -------------- \TIC{\(\Hnext{F=\forall x~A\vee \forall x~B}\vdash \forall x~(A\vee B)\)}\RL{\(\intrTo\)} \UIC{\(\vdash (\forall x~A\vee \forall x~B)\to \forall x~(A\vee B)\)} \end{prooftree}$- 在这里使用 $\intrAll$ 是合法的,因为变量 $x$ 在 $\forall x~A \lor \forall x~B$、 $\forall x~A$、$\forall x~B$ 中均无自由出现。
- 在使用 $\elimAll$ 时,我们暗中将变量 $x$ 替换为了项 $x$。 显然 $A[x := x]$ 就是 $A$ 本身。 今后我们会经常使用这种平凡的替换。
$\vdash \exists x~(A\wedge B) \to (\exists x~A \wedge \exists x~B)$
$\qquad \begin{prooftree} \AXC{}\RL{\(\axm\)} \UIC{\(\Hnext{\Hprev{F}}\vdash F\)} % -------------- \AXC{}\RL{\(\axm\)} \UIC{\(\Hnext{\Hprev{F, A\wedge B}}\vdash A\wedge B\)}\RL{\(\elimConL\)} \UIC{\(\Hnext{\Hprev{F, A\wedge B}}\vdash A\)}\RL{\(\intrExt\)} \UIC{\(\Hnext{\Hprev{F, A\wedge B}}\vdash \exists x~A\)} % -------------- \AXC{}\RL{\(\axm\)} \UIC{\(\Hnext{\Hprev{F, A\wedge B}}\vdash A\wedge B\)}\RL{\(\elimConR\)} \UIC{\(\Hnext{\Hprev{F, A\wedge B}}\vdash B\)}\RL{\(\intrExt\)} \UIC{\(\Hnext{\Hprev{F, A\wedge B}}\vdash \exists x~ B\)} % -------------- \RL{\(\intrCon\)} \BIC{\(\Hnext{\Hprev{F}, A\wedge B}\vdash \exists x~A\wedge \exists x~B\)} % ------------- \RL{\(\elimExt\)} \BIC{\(\Hnext{F=\exists x~(A\wedge B)}\vdash \exists x~A\wedge \exists x~B\)} % ------------ \RL{\(\intrTo\)} \UIC{\(\vdash \exists x~(A\wedge B)\to (\exists x~A\wedge \exists x~B)\)} \end{prooftree}$- 在这里使用 $\elimExt$ 是合法的,因为变量 $x$ 在 $\exists x~(A \land B)$ 和 $\exists x~A \land \exists x~B$ 中均无自由出现。
- 在使用 $\intrExt$ 时,我们暗中将变量 $x$ 替换为了项 $x$。
$\vdash \neg (A\wedge B)\to (\neg A\vee \neg B)$
$\qquad \begin{prooftree} \AXC{}\RL{\(\axm\)} \UIC{\(\Hnext{\Hprev{\Hypo}}\vdash \neg (\neg A\vee \neg B)\)} % -------------- \AXC{\hspace{-60pt}$\begin{prooftree} \AXC{}\RL{\(\axm\)} \UIC{\(\Hnext{\Hprev{\Hypo,A}}\vdash \neg (\neg A\vee \neg B)\)} % -------------- \AXC{\hspace{-60pt}$\begin{prooftree} \AXC{}\RL{\(\axm\)} \UIC{\(\Hnext{\Hprev{\Hypo,A,B}}\vdash \neg (A\wedge B)\)} % -------------- \AXC{}\RL{\(\axm\)} \UIC{\(\Hnext{\Hprev{\Hypo,A,B}}\vdash A\)} % -------------- \AXC{}\RL{\(\axm\)} \UIC{\(\Hnext{\Hprev{\Hypo,A,B}}\vdash B\)} % -------------- \RL{\(\intrCon\)} \BIC{\(\Hnext{\Hprev{\Hypo,A,B}}\vdash A\wedge B\)} % -------------- \RL{\(\elimNeg\)} \BIC{\(\Hnext{\Hprev{\Hypo,A},B}\vdash \bot\)} % ------------- \RL{\(\intrNeg\)} \UIC{\(\Hnext{\Hypo,A}\vdash \neg B\)} \RL{\(\intrDisR\)} \UIC{\(\Hnext{\Hprev{\Hypo,A}}\vdash (\neg A\vee \neg B)\)} \end{prooftree}$\hspace{-10pt}} \RL{\(\elimNeg\)} \BIC{\(\Hnext{\Hprev{\Hypo},A}\vdash \bot\)} % ------------- \RL{\(\intrNeg\)} \UIC{\(\Hnext{\Hprev{\Hypo}}\vdash \neg A\)} \RL{\(\intrDisL\)} \UIC{\(\Hnext{\Hprev{\Hypo}} \vdash (\neg A\vee \neg B)\)} \end{prooftree}$\hspace{-10pt}} % ------------ \RL{\(\elimNeg\)} \BIC{\(\Hnext{\Hypo=\Hprev{\neg (A\wedge B)},\neg (\neg A\vee \neg B)}\vdash \bot\)} \RL{\(\clssBot\)} \UIC{\(\Hprev{\neg (A\wedge B)}\vdash (\neg A\vee \neg B)\)} \RL{\(\intrTo\)} \UIC{\(\vdash \neg (A\wedge B)\to (\neg A\vee \neg B)\)} \end{prooftree}$此例子推演出了等号的对称性:
$\qquad \begin{prooftree} \AXC{}\RL{\(\intrEql\)} \UIC{\(\Hnext{\Hprev{x_1=x_2}}\vdash \EQprev{x_1}=x_1\)} \AXC{}\RL{\(\axm\)} \UIC{\(\Hnext{\Hprev{x_1=x_2}}\vdash x_1=x_2\)} \RL{\(\elimEql\)} \BIC{\(\Hnext{x_1=x_2}\vdash \EQnext{x_2}=x_1\)} \RL{\(\intrTo\)} \UIC{\(\vdash x_1=x_2 \to x_2=x_1\)} \RL{\(\intrAll\)} \UIC{\(\vdash \forall x_2~ \{x_1=x_2\to x_2=x_1\} \)} \RL{\(\intrAll\)} \UIC{\(\vdash \forall x_1,x_2~\{x_1=x_2\to x_2=x_1\}\)} \end{prooftree}$规则 $\elimEql$ 的套用方式如下: $t = x_1$,$u = x_2$,公式 $A[\EQprev{x}]:\EQprev{x}=x_1$ 。
最后一个例子推演出了等号的传递性(我们用 $F$ 来表示公式 $x_1 = x_2 \land x_2 = x_3$):
$\qquad \begin{prooftree} \AXC{}\RL{\(\axm\)} \UIC{\(\Hnext{\Hprev{F}}\vdash x_1=x_2\wedge x_2=x_3\)} \RL{\(\elimConL\)} \UIC{\(\Hnext{\Hprev{F}}\vdash \EQprev{x_1}=x_2\)} \AXC{}\RL{\(\axm\)} \UIC{\(\Hnext{\Hprev{F}}\vdash x_1=x_2 \wedge x_2=x_3\)} \RL{\(\elimConR\)} \UIC{\(\Hnext{\Hprev{F}}\vdash x_2=x_3\)} \RL{\(\elimEql\)} \BIC{\(\Hnext{F=(x_1=x_2\wedge x_2=x_3)}\vdash \EQnext{x_1}=x_3\)} % ------------------- \RL{\(\intrTo\)} \UIC{\(\vdash (x_1=x_2 \wedge x_2=x_3) \to x_1=x_3\)} \RL{\(\intrAll\)} \UIC{\(\vdash \forall x_3 \{ x_1=x_2\wedge x_2=x_3\to x_1=x_3\}\)} \RL{\(\intrAll\)} \UIC{\(\vdash \forall x_2,x_3 \{ x_1=x_2\wedge x_2=x_3\to x_1=x_3\}\)} \RL{\(\intrAll\)} \UIC{\(\vdash \forall x_1,x_2,x_3 \{ x_1=x_2\wedge x_2=x_3\to x_1=x_3\}\)} \end{prooftree}$规则 $\elimEql$ 的套用方式如下: $t = x_2$,$u = x_3$,公式 $A[\EQprev{x}]: x_1 = \EQprev{x}$ 。
1.3.5 推演错误示例 Quelques Démonstrations Fausses
接下来我们将展示一些常见的失误, 它们可能会在推演(明显?)错误的公式时犯下。 这些失误源于对规则的错误应用或对规则的发明。 规则的错误使用将用 $\errr$ 来标记。
$\qquad \begin{prooftree} \AXC{}\RL{\(\axm\)} \UIC{\(\Hnext{A\vee B}\vdash A\vee B\)}\RL{\(\errr\)} \UIC{\(\Hprev{A\vee B}\vdash A\)} % ------------ \AXC{}\RL{\(\axm\)} \UIC{\(\Hnext{A\vee B}\vdash A\vee B\)}\RL{\(\errr\)} \UIC{\(\Hprev{A\vee B}\vdash B\)} % ------------ \RL{\(\intrCon\)} \BIC{\(\Hnext{A\vee B}\vdash A\wedge B\)} \RL{\(\intrTo\)} \UIC{\(\vdash A\vee B \to A\wedge B\)} \end{prooftree}$
没有 $\vdash A\lor B \to A \land B$ 这样的结论。 错误来自于使用了“臆想”的规则: 如果 $\Hypo \vdash A \lor B$ 那么 $\Hypo \vdash A$。
$\qquad \begin{prooftree} \AXC{}\RL{\(\axm\)} \UIC{\(\Hnext{\exists x ~A}\vdash \exists x~A \)} \AXC{}\RL{\(\axm\)} \UIC{\(\Hnext{\exists x~A,A}\vdash A\)} \RL{\(\errr\)} \BIC{\(\Hprev{\exists x~A}\vdash A\)} \RL{\(\intrAll\)} \UIC{\(\Hnext{\exists x~A}\vdash \forall x~A\)} \RL{\(\intrTo\)} \UIC{\(\vdash \exists x~A\to \forall x~A\)} \end{prooftree}$
没有 $\vdash \exists x~ A \to \forall x~ A$ 这样的结论。 错误来自于在使用规则 $\elimExt$ 时未遵守条件 “变量 $x$ 在公式 $A$ 中不能有自由出现”。
下面是该公式的另一种错误推演:
$\qquad \begin{prooftree} \AXC{}\RL{\(\axm\)} \UIC{\(\Hnext{\exists x~A}\vdash \exists x~A\)} \RL{\(\errr\)} \UIC{\(\Hprev{\exists x~A}\vdash A\)} \RL{\(\intrAll\)} \UIC{\(\Hnext{\exists x~A}\vdash \forall x~A\)} \RL{\(\intrTo\)} \UIC{\(\vdash \exists x~A\to \forall x~A\)} \end{prooftree}$
在这里规则 $\elimExt$ 被错误使用。
没有 $\vdash \exists x~A \land \exists x~B \to \exists x~(A \land B)$ 这样的结论。 满足 $A$ 的对象可能与满足 $B$ 的对象不同。例如, 存在一个偶数, 存在一个奇数, 但是一个既是偶数又是奇数的整数并不存在。
错误同样来自于对规则 $\elimExt$ 的使用。 应当重命名变量 $x$。
没有 $\vdash \forall x~(A \lor B) \to \forall x~A \lor \forall x~B$ 这样的结论。 比如说,一个整数要么是偶数不然就是奇数, 但并非所有整数都是偶数, 也并非所有整数都是奇数。
错误来自于在使用规则 $\intrAll$ 时未遵守条件 “变量 $x$ 在假设中不得有自由出现”。
1.3.6 无相继式的自然推演 Déduction Naturelle Sans Séquents
本小节中我们将介绍一种等价的自然推演系统, 它不使用相继式。在使用相继式的推演系统中, 每使用一个推演规则时都需要复制一遍假设集。 而在下面要介绍的系统中假设集只需要写一遍, 我们只对结论应用规则。 一个以 $A_1$,$\ldots$,$A_n$ 为假设得出的关于 $A$ 的推演 可表示为如下形式:
$\qquad\begin{prooftree} \AXC{\(A_1\ldots A_n\)}\noLine \UIC{\(\ph{A_1}\mathclap{\vdots}\ph{A_n}\)} \UIC{\(A\)} \end{prooftree}$
一个推演是一个有限树,当中每个节点都被一个公式所标记。 推演树的构造始于每个叶子,然后向下生长直至根部为止。
最基本的步骤即“公理”规则——即在假设 $A$ 下推导出公式 $A$。可简记为 $A$。 更为复杂的推演则是通过应用逻辑规则来构造的。
规则 $\intrTo$
$\qquad\begin{prooftree} \AXC{\([A]\)}\noLine \UIC{\(\vdots\)}\noLine \UIC{\(B\)} \RL{\(\intrTo\)} \UIC{\(A\to B\)} \end{prooftree}$
说明:基于
- 以 $A$ 为假设得出的关于 $B$ 的推演,以及
我们可以推出一个
- 关于 $A\to B$ 的推演。
第二个推演的假设集等于第一个推演的假设集去掉 $A$, 此时可以说我们“卸载 Déchargé”掉了 $A$。 形式地说就是:所有 $A$ 的出现都被替换为了 $[A]$。
如此假设集便可以分为两类:
一个以 $\Hypo$ 为假设的关于 $A$ 的推演形如一棵树, 其结论是 $A$ ,而其主要假设全部都在 $\Hypo$ 中。
规则 $\elimTo$
$\qquad \begin{prooftree} \AXC{\(\vdots\)}\noLine \UIC{\(A\to B\)} \AXC{\(\vdots\)}\noLine \UIC{\(A\)} \RL{\(\elimTo\)} \BIC{\(B\)} \end{prooftree}$
说明:基于
- 关于 $A\to B$ 的推演以及
- 关于 $A$ 的推演,
我们可以推出一个
- 关于 $B$ 的推演。
第三个推演的假设集是前两者的假设集的并集。
下面列出剩下的规则。
a) 规则 les Règles
公理 Axiome
$\qquad \begin{prooftree} \AXC{\(A\)} \RL{\(\axm\)} \UIC{\(A\)} \end{prooftree}$
弱化 Affaiblissement
$\qquad \begin{prooftree} \AXC{\(\vdots\)}\noLine \UIC{\(A\)} \AXC{\(B\)} \RL{\(\aff\)} \BIC{\(A\)} \end{prooftree}$
箭头引入 Introduction de l’Implication
$\qquad \begin{prooftree} \AXC{\([A]\)} \noLine \UIC{\(\vdots\)}\noLine \UIC{\(B\)} \RL{\(\intrTo\)} \UIC{\(A\to B\)} \end{prooftree}$
箭头消去 Élimination de l’Implication
$\qquad \begin{prooftree} \AXC{\(\vdots\)}\noLine \UIC{\(A\to B\)} \AXC{\(\vdots\)}\noLine \UIC{\(A\)}\RL{\(\elimTo\)} \BIC{\(B\)} \end{prooftree}$
合取引入 Introduction de la Conjonction
$\qquad \begin{prooftree} \AXC{\(\vdots\)}\noLine \UIC{\(A\)} \AXC{\(\vdots\)}\noLine \UIC{\(B\)}\RL{\(\intrCon\)} \BIC{\(A\wedge B\)} \end{prooftree}$
合取消去 Élimination de la Conjonction
$\qquad \begin{prooftree} \AXC{\(\vdots\)}\noLine \UIC{\(A\wedge B\)}\RL{\(\elimConL\)} \UIC{\(A\)} \end{prooftree} \qquad\begin{prooftree} \AXC{\(\vdots\)}\noLine \UIC{\(A\wedge B\)}\RL{\(\elimConR\)} \UIC{\(B\)} \end{prooftree}$
析取引入 Introduction de la Disjonction
$\qquad\begin{prooftree} \AXC{\(\vdots\)}\noLine \UIC{\(A\)}\RL{\(\intrDisL\)} \UIC{\(A\vee B\)} \end{prooftree} \qquad\begin{prooftree} \AXC{\(\vdots\)}\noLine \UIC{\(B\)}\RL{\(\intrDisR\)} \UIC{\(A\vee B\)} \end{prooftree}$
析取消去 Élimination de la Disjonction
$\qquad\begin{prooftree} \AXC{\(\vdots\)}\noLine \UIC{\(A\vee B\)} \AXC{\([A]\)}\noLine \UIC{\(\vdots\)}\noLine \UIC{\(C\)} \AXC{\([B]\)}\noLine \UIC{\(\vdots\)}\noLine \UIC{\(C\)}\RL{\(\elimDis\)} \TIC{\(C\)} \end{prooftree}$
否定引入 Introduction de la Négation
$\qquad\begin{prooftree} \AXC{\([A]\)}\noLine \UIC{\(\vdots\)}\noLine \UIC{\(\bot\)}\RL{\(\intrNeg\)} \UIC{\(\neg A\)} \end{prooftree}$
否定消去 Élimination de la Négation
$\qquad\begin{prooftree} \AXC{\(\vdots\)}\noLine \UIC{\(\neg A\)} \AXC{\(\vdots\)}\noLine \UIC{\(A\)} \RL{\(\elimNeg\)} \BIC{\(\bot\)} \end{prooftree}$
谬误消去(古典逻辑) Absurdité Classique
$\qquad\begin{prooftree} \AXC{\([\neg A]\)}\noLine \UIC{\(\vdots\)}\noLine \UIC{\(\bot\)}\RL{\(\clssBot\)} \UIC{\(A\)} \end{prooftree}$
全称引入 Introduction du Quantificateur Universel
$\qquad\begin{prooftree} \AXC{\(\vdots\)}\noLine \UIC{\(A\)}\RL{\(\intrAll\)} \UIC{\(\forall x~A\)} \end{prooftree}$
$x$ 在下述推演的假设集中不能有自由出现:
- 关于 $A$ 的推演
全称消去 Élimination du Quantificateur Universel
$\qquad\begin{prooftree} \AXC{\(\vdots\)}\noLine \UIC{\(\forall x~A\)}\RL{\(\elimAll\)} \UIC{\(A[x:=t]\)} \end{prooftree}$
存在引入 Introduction du Quantificateur Existentiel
$\qquad\begin{prooftree} \AXC{\(\vdots\)}\noLine \UIC{\(A[x:=t]\)}\RL{\(\intrExt\)} \UIC{\(\exists x ~A\)} \end{prooftree}$
存在消去 Élimination du Quantificateur Existentiel
$\qquad\begin{prooftree} \AXC{\(\vdots\)}\noLine \UIC{\(\exists x~A\)} \AXC{\([A]\)}\noLine \UIC{\(\vdots\)}\noLine \UIC{\(C\)}\RL{\(\elimExt\)} \BIC{\(C\)} \end{prooftree}$
$x$ 在下述推演的假设集中不能有自由出现:
- 关于 $\exists x$ 的推演
- 关于 $A$ 的推演
- 以 $A$ 为假设的关于 $C$ 的推演
等号引入 Introduction de l’Égalité
$\qquad\begin{prooftree} \AXC{\([t=t]\)}\RL{\(\intrEql\)} \UIC{\(t=t\)} \end{prooftree}$
$t = t$ 会被卸载,因为证明它无需任何假设。
等号消去 Élimination de l’Égalité
$\qquad\begin{prooftree} \AXC{\(\vdots\)}\noLine \UIC{\(A[x:=\EQprev{t}]\)} \AXC{\(\vdots\)}\noLine \UIC{\(t=u\)}\RL{\(\elimEql\)} \BIC{\(A[x:=\EQnext{u}]\)} \end{prooftree}$
b) 推演示例 Exemples de Démonstrations
$\vdash \neg (A\vee B) \leftrightarrow (\neg A\wedge \neg B)$
证明:
从左往右:
$\qquad\begin{prooftree} %\AXC{\hspace{-40pt}\(\begin{prooftree} \AXC{\([\neg(A\vee B)]\)} \AXC{\([A]\)}\RL{\(\intrDisL\)} \UIC{\(A\vee B\)}\RL{\(\elimNeg\)} \BIC{\(\bot\)}\RL{\(\intrNeg\)} \UIC{\(\neg A\)} %\end{prooftree}\)} %\AXC{\(\begin{prooftree} \AXC{\([\neg(A\vee B)]\)} \AXC{\([B]\)}\RL{\(\intrDisR\)} \UIC{\(A\vee B\)}\RL{\(\elimNeg\)} \BIC{\(\bot\)}\RL{\(\intrNeg\)} \UIC{\(\neg B\)} %\end{prooftree}\)} \RL{\(\intrCon\)} \BIC{\(\neg A\wedge \neg B\)}\RL{\(\intrTo\)} \UIC{\(\neg (A\vee B)\to (\neg A\wedge \neg B)\)} \end{prooftree}$从右往左:
$\qquad\hspace{-50pt}\begin{prooftree} \AXC{\([A\vee B]\)} %\AXC{\(\begin{prooftree} \AXC{\([\neg A\wedge \neg B]\)}\RL{\(\elimConL\)} \UIC{\(\neg A\)} \AXC{\([A]\)}\RL{\(\elimNeg\)} \BIC{\(\bot\)} %\end{prooftree}\)} %\AXC{\(\begin{prooftree} \AXC{\([\neg A\wedge \neg B]\)}\RL{\(\elimConR\)} \UIC{\(\neg B\)} \AXC{\([B]\)}\RL{\(\elimNeg\)} \BIC{\(\bot\)} %\end{prooftree}\)\hspace{-50pt}} \RL{\(\elimDis\)} \TIC{\(\bot\)}\RL{\(\intrNeg\)} \UIC{\(\neg (A\vee B)\)}\RL{\(\intrTo\)} \UIC{\((\neg A\wedge \neg B)\to \neg(A\vee B)\)} \end{prooftree}$
从左往右:
$\qquad\begin{aligned}[t]\ph{\ttt{(01) }} &\vdash (\neg A\land\neg B) \to \neg(A\lor B) &&\intrTo\\ &\Hnext{(\neg A\land\neg B)}\vdash \neg(A\lor B) &&\intrNeg\\ &\Hnext{\Hprev{(\neg A\land\neg B)} , A\lor B} \vdash \bot &&\elimDis\\ &\indent\ttt{01:= } \Hprev{\Hnext{(\neg A\land\neg B)} , A\lor B} \vdash A\lor B &&\axm\\ &\indent\ttt{02:= } \Hprev{(\neg A\land\neg B) , A\lor B} , A\vdash \bot &&\\ &\indent\ttt{03:= } \Hprev{(\neg A\land\neg B) , A\lor B} , B\vdash \bot &&\\\ttt{(02) } &\indent \Hnext{(\neg A\land\neg B) , A\lor B , A}\vdash \bot &&\elimNeg~\ttt{(04)}~\ttt{(05)}\\\ttt{(04) } &\indent\indent \Hprev{\Hnext{(\neg A\land\neg B) , A\lor B} , A}\vdash A &&\axm\\\ttt{(05) } &\indent\indent \Hprev{\Hnext{(\neg A\land\neg B) , A\lor B , A}}\vdash \neg A &&\elimConL\\ &\indent\indent \Hprev{(\neg A\land\neg B) , \Hnext{A\lor B , A}}\vdash \neg A\land\neg B &&\axm\\\ttt{(03) } &\indent \Hnext{(\neg A\land\neg B) , A\lor B , B}\vdash \bot &&\elimNeg~\ttt{(06)}~\ttt{(07)}\\\ttt{(06) } &\indent\indent \Hprev{\Hnext{(\neg A\land\neg B) , A\lor B} , B}\vdash B &&\axm\\\ttt{(07) } &\indent\indent \Hprev{\Hnext{(\neg A\land\neg B) , A\lor B , B}}\vdash \neg B &&\elimConL\\ &\indent\indent \Hprev{(\neg A\land\neg B) , \Hnext{A\lor B , B}}\vdash \neg A\land\neg B &&\axm \end{aligned}$从右往左:
$\qquad\begin{aligned}[t]\ttt{(01) } &\vdash \neg(A\lor B) \to (\neg A\land \neg B) &&\intrTo\\ &\Hnext{\neg(A\lor B)}\vdash \neg A\land \neg B &&\intrCon\\ &\indent\ttt{01:= } \Hprev{\neg(A\lor B)}\vdash \neg A &&\\ &\indent\ttt{02:= } \Hprev{\neg(A\lor B)}\vdash \neg B &&\\\ttt{(01) } &\indent \Hnext{\neg(A\lor B)}\vdash \neg A &&\intrNeg\\ &\indent \Hnext{\Hprev{\neg(A\lor B)} , A} \vdash \bot &&\elimNeg~\ttt{(03)}~\ttt(04)\\\ttt{(03) } &\indent\indent \Hprev{\neg(A\lor B) , \Hnext{A}} \vdash \neg(A\lor B) &&\axm\\\ttt{(04) } &\indent\indent \Hnext{\Hprev{\neg(A\lor B) , A}} \vdash A\lor B &&\intrDisL\\ &\indent\indent \Hprev{\Hnext{\neg(A\lor B)} , A} \vdash A &&\axm\\\ttt{(02) } &\indent \Hnext{\neg(A\lor B)}\vdash \neg B &&\intrNeg\\ &\indent \Hnext{\Hprev{\neg(A\lor B)} , B} \vdash \bot &&\elimNeg~\ttt{(05)}~\ttt(06)\\\ttt{(05) } &\indent\indent \Hprev{\neg(A\lor B) , \Hnext{B}} \vdash \neg(A\lor B) &&\axm\\\ttt{(06) } &\indent\indent \Hnext{\Hprev{\neg(A\lor B) , B}} \vdash A\lor B &&\intrDisR\\ &\indent\indent \Hprev{\Hnext{\neg(A\lor B)} , B} \vdash A &&\axm\\ \end{aligned}$
$\vdash \neg\exists x~A\leftrightarrow \forall x~\neg A$
证明:
从左往右:
$\begin{prooftree} \AXC{\([\neg \exists x~A]\)} \AXC{\(\begin{prooftree} \AXC{\([A]\)}\RL{\(\intrExt\)} \UIC{\(\exists x~A\)} \end{prooftree}\)}\RL{\(\elimNeg\)} \BIC{\(\bot\)}\RL{\(\intrNeg\)} \UIC{\(\neg A\)}\RL{\(\intrAll\)} \UIC{\(\forall x~\neg A\)}\RL{\(\intrTo\)} \UIC{\(\neg \exists x~A\to \forall x~\neg A\)} \end{prooftree}$
从右往左:
$\begin{prooftree} \AXC{\([\exists x~A]\)} \AXC{\(\begin{prooftree} \AXC{\([\forall x~\neg A]\)}\RL{\(\elimAll\)} \UIC{\(\neg A\)} \AXC{\([A]\)}\RL{\(\elimNeg\)} \BIC{\(\bot\)} \end{prooftree}\)\hspace{-50pt}}\RL{\(\elimExt\)} \BIC{\(\bot\)}\RL{\(\intrNeg\)} \UIC{\(\neg\exists x~A\)}\RL{\(\intrTo\)} \UIC{\(\forall x~\neg A\to \neg\exists x~A\)} \end{prooftree}$
从左往右:
$\qquad\begin{aligned}[t]\ph{\ttt{(01) }} &\neg\exists x~A \to \forall x~\neg A &&\intrTo\\ &\Hnext{\neg\exists x~A} \vdash \forall x~\neg A &&\intrAll\\ &\Hnext{\Hprev{\neg\exists x~A}} \vdash \neg A &&\intrNeg\\ &\Hnext{\Hprev{\neg\exists x~A} , A} \vdash \bot &&\elimNeg~\ttt{(01)}~\ttt{(02)}\\\ttt{(01) } &\indent \Hprev{\neg\exists x~A , \Hnext{A}} \vdash \neg\exists x~ A &&\axm\\\ttt{(02) } &\indent \Hnext{\Hprev{\neg\exists x~A , A}} \vdash \exists x~ A &&\intrExt\\ &\indent \Hprev{\Hnext{\neg\exists x~A} , A} \vdash A &&\axm \end{aligned}$从右往左:
$\qquad\begin{aligned}[t]\ph{\ttt{(01) }} &\forall x~\neg A \to \neg \exists x~A &&\intrTo\\ &\Hnext{\forall x~\neg A} \vdash \neg \exists x~A &&\intrNeg\\ &\Hnext{\Hprev{\forall x~\neg A} , \exists x~A} \vdash \bot &&\elimExt~\ttt{(01)}~\ttt{(02)}\\\ttt{(01) } &\indent \Hprev{\Hnext{\forall x~\neg A }, \exists x~A} \vdash \exists x~A &&\axm\\\ttt{(02) } &\indent \Hnext{\Hprev{\forall x~\neg A , \exists x~A} , A} \vdash \bot &&\elimNeg~\ttt{(03)}~\ttt{(04)}\\\ttt{(03) } &\indent\indent \Hprev{\Hnext{\forall x~\neg A , \exists x~A} , A} \vdash A &&\axm\\\ttt{(04) } &\indent\indent \Hprev{\Hnext{\forall x~\neg A , \exists x~A , A}} \vdash \neg A &&\elimAll\\ &\indent\indent \Hprev{\forall x~\neg A , \Hnext{\exists x~A , A}} \vdash \forall x~\neg A &&\axm \end{aligned}$
$\vdash A\vee \neg A$
证明:
$\begin{prooftree} \AXC{\([A]\)}\RL{\(\intrDisL\)} \UIC{\(A\vee \neg A\)} \AXC{\([\neg (A\vee \neg A)]\)}\RL{\(\elimNeg\)} \BIC{\(\bot\)}\RL{\(\intrNeg\)} \UIC{\(\neg A\)}\RL{\(\intrDisR\)} \UIC{\(A\vee \neg A\)} \AXC{\([\neg (A\vee \neg A)]\)}\RL{\(\elimNeg\)} \UIC{\(\bot\)} \BIC{\(\bot\)}\RL{\(\clssBot\)} \UIC{\(A\vee \neg A\)} \end{prooftree}$
相较于使用相继式的版本, 上述推演会更简洁一些。
1.3.7 推演的另一种表示方式 une Autre Présentation des Démonstrations
推演超过几行树状表示法就会变得难以使用。 因此我们倾向于采用一种 线性表示法 Notation Linéaire:
我们 在每行的左侧写下要证明的相继式, 在每行的右侧写下要应用的规则名称。此外 我们还会颠倒推演的顺序: 相继式结论会被写在最上方,即推演的开头。 这样在我们寻找推演时会更自然一些。
有三种情况。
a) 规则只有一个前提 La règle a une seule prémisse
我们直接在下一行继续前提的推演。例如
$\qquad \begin{aligned}[t] \ph{\ttt{(00) }} &\Hnext{\Hypo} \vdash A\to B &&\intrTo \\ &\Hprev{\Hypo} , A\vdash B &&\ldots \end{aligned}$
b) 规则至少有两个前提 La règle a au moins deux prémisses
我们为每个前提提供一个编号,并在这些前提的推演开始之前引用对应的编号;另外 我们使用缩进来突显出推演的树状结构。例如
$\qquad \begin{aligned}[t] &\Hnext{\Hypo} \vdash B &&\elimTo \ttt{(01) (02)}\\\ttt{(01) } &\indent \Hprev{\Hypo} , A\vdash B &&\ldots \\ &\indent \ldots &&\ldots \\\ttt{(02) } &\indent \Hprev{\Hypo} \vdash A &&\ldots \\ &\indent \ldots &&\ldots \end{aligned}$
第二个(或者之后的)前提对应的推演 可能会离被调用的位置太远。
此时我们可以先列出所有前提后再分别证明它们。 下面是同一个例子:
$\qquad \begin{aligned}[t] &\Hnext{\Hypo} \vdash B &&\elimTo \\ &\indent \ttt{01:= } \Hprev{\Hypo} \vdash A\to B \\ &\indent \ttt{02:= } \Hprev{\Hypo} \vdash A \\\ttt{(01) } &\indent \Hypo , A\vdash B &&\ldots \\ &\indent \ldots &&\ldots \\\ttt{(02) } &\indent \Hypo \vdash A &&\ldots \\ &\indent \ldots &&\ldots \end{aligned}$
c) 规则没有前提 La règle n’a pas de prémisse
此部分推演就算是结束了。 于是可以转向推演另一条规则的前提——如果还有的话。 否则推演就结束了。
为了简化记号,我们经常会给在推演中多次出现的 上下文(见下例第 3 行)、公式或项赋予名称。 此时我们会使用表达式:“$\Hypo := \dots$”或“$F := \dots$” 。
下面的例子即1.3.例子.8。 我们强烈建议读者比较这两种表示法!
$\qquad \begin{aligned}[t]\ph{\ttt{(00) }} &\vdash \lnot (A\land B) \to (\lnot A\lor \lnot B) &&\intrTo \\ &\Hnext{\lnot (A\land B)} \vdash \lnot A\lor \lnot B &&\clssBot \\ &\Hnext{\Hypo:= \Hprev{\lnot (A\land B)},\lnot(\lnot A\lor \lnot B)} \vdash \bot &&\elimNeg \\ &\indent\ttt{01:= } \Hprev{\Hypo}\vdash \lnot (\lnot A\lor \lnot B) \\ &\indent\ttt{02:= } \Hprev{\Hypo}\vdash \lnot A\lor \lnot B \\\ttt{(01) } &\indent \Hnext{\Hypo}\vdash \lnot(\lnot A\lor \lnot B) &&\axm \\\ttt{(02) } &\indent \Hnext{\Hypo}\vdash \lnot A\lor \lnot B &&\intrDisL \\ &\indent \Hnext{\Hprev{\Hypo}}\vdash \lnot A &&\intrNeg \\ &\indent \Hnext{\Hprev{\Hypo},A}\vdash \bot &&\elimNeg \\ &\indent\indent\ttt{03:= } \Hprev{\Hypo,A}\vdash\lnot(\lnot A\lor \lnot B) \\ &\indent\indent\ttt{04:= } \Hprev{\Hypo,A}\vdash\lnot A\lor \lnot B \\\ttt{(03) } &\indent\indent \Hnext{\Hypo,A}\vdash \lnot (\lnot A\lor \lnot B) &&\axm \\\ttt{(04) } &\indent\indent \Hnext{\Hypo,A}\vdash \lnot A\lor \lnot B &&\intrDisR \\ &\indent\indent \Hnext{\Hypo,A}\vdash \lnot B &&\intrNeg \\ &\indent\indent \Hnext{\Hprev{\Hypo,A},B} \vdash \bot &&\elimNeg~\ttt{(05)}~\ttt{(06)}\\\ttt{(05) } &\indent\indent\indent \Hnext{\Hprev{\Hypo,A,B}}\vdash \lnot (A\land B) && \axm \\\ttt{(06) } &\indent\indent\indent \Hnext{\Hprev{\Hypo,A,B}}\vdash A\land B && \intrCon~\ttt{(07)}~\ttt{(08)}\\\ttt{(07) } &\indent\indent\indent\indent \Hnext{\Hprev{\Hypo,A,B}}\vdash A && \axm \\\ttt{(08) } &\indent\indent\indent\indent \Hnext{\Hprev{\Hypo,A,B}}\vdash B && \axm \end{aligned}$1.3.8 派生规则 Règles Dérivées
在下一章我们将专注于对推演进行推理。 选择一个最小的规则集在这方面会是一个重要的优势, 但这也会使得推演变得更加冗长。 因此有必要引入一些工具来简化推演。 本小节我们将使用基本规则来证明一些 派生规则 Règles Dérivées, 如此我们后面就可以直接使用这些规则(无需重新证明它们)来简化推演。 当然读者也可以根据需求创建自己的工具。 另外读者也可能注意到:课上(如代数课)见过的定理 其实也是某种工具,它们允许读者推演出代数习题中的公式!
a) 切规则 Règle de Coupure
下面的规则对应于 引理 Lemme 的概念: 我们通过添加一个假设来证明一个公式, 然后再回头证明该假设。 我们将在第 5 章中回顾该规则。
下述规则是可被推演的:
$\qquad\begin{prooftree} \AXC{\(\Hprev{\Hypo},A\vdash B\)} \AXC{\(\Hprev{\Hypo}\vdash A\)}\RL{\(\Coupure\)} \BIC{\(\Hnext{\Hypo}\vdash B\)} \end{prooftree}$
证明:
$\qquad\begin{aligned}[t] &\Hnext{\Hypo}\vdash B &&\elimTo \\ &\indent\ttt{01:= } \Hprev{\Hypo}\vdash A\to B \\ &\indent\ttt{02:= } \Hprev{\Hypo}\vdash A \\\ttt{(01) } &\indent \Hnext{\Hypo}\vdash A\to B &&\intrTo \\ &\indent \Hprev{\Hypo},A\vdash B &&\text{待推演规则的左侧前提}\\\ttt{(02) } &\indent \Hypo\vdash A &&\text{待推演规则的右侧前提} \end{aligned}$b) 左规则 Règles Gauche
1.3.命题.19 至 1.3.命题.23 介绍了 左规则 Règles Gauche。 这些规则允许我们在相继式的左侧引入连结词。
下述规则是可被推演的:
$\qquad\begin{prooftree} \AXC{\(\Hprev{\Hypo},A,B\vdash C\)}\RL{\(\ConL\)} \UIC{\(\Hnext{\Hypo},A\wedge B\vdash C\)} \end{prooftree}$
证明:
$\qquad \begin{aligned}[t] &\Hnext{\Hypo,A\wedge B}\vdash C &&\Coupure \\ &\indent\ttt{01:= } \Hprev{\Hypo,A\wedge B}\vdash A \\ &\indent\ttt{02:= } \Hprev{\Hypo,A\wedge B},A\vdash C \\\ttt{(01) } &\indent \Hnext{\Hypo,A\wedge B}\vdash A &&\elimConL\\ &\indent \Hprev{\Hnext{\Hypo,A\wedge B}}\vdash A\wedge B &&\axm \\\ttt{(02) } &\indent \Hnext{\Hypo,A\wedge B,A}\vdash C &&\Coupure \\ &\indent\indent \ttt{03:= }\Hprev{\Hypo,A\wedge B,A}\vdash B \\ &\indent\indent \ttt{04:= }\Hprev{\Hypo,A\wedge B,A},B\vdash C \\\ttt{(03) } &\indent\indent \Hnext{\Hypo,A\wedge B,A}\vdash B &&\elimConR\\ &\indent\indent \Hprev{\Hnext{\Hypo,A\wedge B,A}}\vdash A\wedge B&&\axm \\\ttt{(04) } &\indent\indent \Hnext{\Hypo},A\wedge B,A,B\vdash C &&\aff \\ &\indent\indent \Hprev{\Hypo},A,B\vdash C &&\text{待推演规则的前提} \end{aligned}$下述规则是可被推演的:
$\qquad\begin{prooftree} \AXC{\(\Hprev{\Hypo},A\vdash C\)} \AXC{\(\Hprev{\Hypo},B\vdash C\)}\RL{\(\DisL\)} \BIC{\(\Hnext{\Hypo},A\vee B\vdash C\)} \end{prooftree}$
证明:
$\qquad \begin{aligned}[t] &\Hnext{\Hypo,A\vee B}\vdash C &&\elimDis \\ &\indent\ttt{01:= } \Hprev{\Hypo,A\vee B}\vdash A\vee B && \\ &\indent\ttt{02:= } \Hprev{\Hypo,A\vee B},A\vdash C && \\ &\indent\ttt{03:= } \Hprev{\Hypo,A\vee B},B\vdash C && \\\ttt{(01) } &\indent \Hnext{\Hypo,A\vee B}\vdash A\vee B &&\axm \\\ttt{(02) } &\indent \Hnext{\Hypo},A\vee B,\Hnext{A}\vdash C &&\aff \\ &\indent \Hprev{\Hypo,A}\vdash C &&\text{待推演规则的左侧前提}\\\ttt{(03) } &\indent \Hnext{\Hypo},A\vee B,\Hnext{B}\vdash C &&\aff \\ &\indent \Hprev{\Hypo,B}\vdash C &&\text{待推演规则的右侧前提} \end{aligned}$下述规则是可被推演的:
$\qquad\begin{prooftree} \AXC{\(\Hprev{\Hypo},A,B\vdash C\)}\RL{\(\ToL\)} \UIC{\(\Hnext{\Hypo},A,A\to B\vdash C\)} \end{prooftree}$证明:
$\qquad\begin{aligned}[t] &\Hnext{\Hypo,A,A\to B}\vdash C &&\Coupure \\ &\indent\ttt{01:= } \Hprev{\Hypo,A,A\to B},B\vdash C \\ &\indent\ttt{02:= } \Hprev{\Hypo,A,A\to B}\vdash B \\\ttt{(01) } &\indent \Hnext{\Hypo,A},A\to B,\Hnext{B}\vdash C &&\aff \\ &\indent \Hprev{\Hypo,A,B}\vdash C &&\text{待推演规则的前提}\\\ttt{(02) } &\indent \Hnext{\Hypo,A,A\to B}\vdash B &&\elimTo \\ &\indent\indent\ttt{03:= } \Hprev{\Hypo,A,A\to B}\vdash A\to B \\ &\indent\indent\ttt{04:= } \Hprev{\Hypo,A,A\to B}\vdash A \\\ttt{(03) } &\indent\indent \Hnext{\Hypo,A,A\to B}\vdash A\to B &&\axm \\\ttt{(04) } &\indent\indent \Hnext{\Hypo,A,A\to B}\vdash A &&\axm \end{aligned}$
下述规则是可被推演的:
$\qquad\begin{prooftree} \AXC{}\RL{\(\NegL\)} \UIC{\(\Hnext{\Hypo},A,\neg A\vdash \bot\)} \end{prooftree}$
证明:
$\qquad\begin{aligned}[t] &\Hnext{\Hypo,A,\neg A}\vdash \bot &&\elimNeg \\ &\indent\ttt{01:= } \Hprev{\Hypo,A,\neg A}\vdash \neg A \\ &\indent\ttt{02:= } \Hprev{\Hypo,A,\neg A}\vdash A \\\ttt{(01) } &\indent \Hnext{\Hypo,A,\neg A}\vdash \neg A &&\axm \\\ttt{(02) } &\indent \Hnext{\Hypo,A,\neg A}\vdash A &&\axm \end{aligned}$
下述规则是可被推演的:
$\qquad \begin{prooftree} \AXC{\(\Hprev{\Hypo},\forall x~A,A[x:=t]\vdash C\)}\RL{\(\AllL\)} \UIC{\(\Hnext{\Hypo},\forall x~A\vdash C\)} \end{prooftree}$
证明:
$\qquad\begin{aligned}[t] &\Hnext{\Hypo,\forall x~A}\vdash C &&\Coupure \\ &\indent\ttt{01:= } \Hprev{\Hypo,\forall x~A},A[x:=t]\vdash C \\ &\indent\ttt{02:= } \Hprev{\Hypo,\forall x~A}\vdash A[x:=t] \\\ttt{(01) } &\indent \Hypo,\forall x~A,A[x:=t]\vdash C &&\text{待推演规则的前提}\\\ttt{(02) } &\indent \Hnext{\Hypo,\forall x~A}\vdash A[x:=t] &&\elimAll \\ &\indent \Hnext{\Hypo,\forall x~A}\vdash \forall x~A &&\axm \end{aligned}$下述规则是可被推演的:
$\qquad\begin{prooftree} \AXC{\(\Hprev{\Hypo},A\vdash C\)} \AXC{\(x\) 在 \(\Hprev{\Hypo}\) 的元素和 \(C\) 中均无自由出现} \RL{\(\ExtL\)} \BIC{\(\Hnext{\Hypo},\exists x~A\vdash C\)} \end{prooftree}$
证明:
$\qquad\begin{aligned}[t] &\Hnext{\Hypo,\exists x~A}\vdash C &&\elimExt \\ &\indent\ttt{01:= } \Hprev{\Hypo,\exists x~A}\vdash \exists x~A \\ &\indent\ttt{02:= } \Hprev{\Hypo,\exists x~A},A\vdash C \\\ttt{(01) } &\indent \Hnext{\Hypo,\exists x~A}\vdash \exists x~A &&\axm \\\ttt{(02) } &\indent \Hnext{\Hypo},\exists x~A,\Hnext{A}\vdash C &&\aff \\ &\indent \Hprev{\Hypo,A}\vdash C &&\text{待推演规则的前提} \end{aligned}$c) 否定相关的规则 Règles Liées à la Négation
1.3.命题.25 至 1.3.命题.28 提供了 归谬法的另一种形式。在第 4 章我们将比较 下述规则与 谬误消去(古典逻辑) 的作用。
下述规则(称作谬误消去(直觉主义)Absurdité Intuitionniste)是可被推演的:
$\qquad\begin{prooftree} \AXC{\(\Hprev{\Hypo}\vdash\bot\)}\RL{\(\BotIntu\)} \UIC{\(\Hnext{\Hypo}\vdash A\)} \end{prooftree}$
证明:
$\qquad\begin{aligned}[t] \ph{\ttt{(00) }} &\Hnext{\Hypo}\vdash A &&\clssBot \\ &\Hprev{\Hnext{\Hypo}},\neg A\vdash \bot &&\aff \\ &\Hprev{\Hypo}\vdash \bot &&\text{待推演规则的前提} \end{aligned}$
下述规则(称作皮尔士定律 Loi de Peirce)是可被推演的:
$\qquad\begin{prooftree} \AXC{\(\Hprev{\Hypo},\neg A\vdash A\)}\RL{\(\LPeirce\)} \UIC{\(\Hnext{\Hypo}\vdash A\)} \end{prooftree}$
证明:
$\qquad \begin{aligned}[t] &\Hprev{\Hypo}\vdash A &&\clssBot \\ &\Hnext{\Hprev{\Hypo},\neg A}\vdash \bot &&\elimNeg \\ &\indent\ttt{01:= } \Hprev{\Hypo,\neg A}\vdash \neg A \\ &\indent\ttt{02:= } \Hprev{\Hypo,\neg A}\vdash A \\\ttt{(01) } &\indent \Hnext{\Hypo,\neg A}\vdash \neg A &&\axm \\\ttt{(02) } &\indent \Hypo,\neg A\vdash A &&\text{待推演规则的前提} \end{aligned}$
下述规则(称作排中律 Loi du Tiers Exclu)是可被推演的:
$\qquad\begin{prooftree} \AXC{\(\Hprev{\Hypo},A\vdash B\)} \AXC{\(\Hprev{\Hypo},\neg A\vdash B\)} \RL{\(\TierExc\)} \BIC{\(\Hnext{\Hypo}\vdash B\)} \end{prooftree}$
证明:
$\qquad\begin{aligned}[t] &\Hnext{\Hypo}\vdash B && \elimDis \\ &\indent\ttt{01:= } \Hprev{\Hypo}\vdash A\vee \neg A \\ &\indent\ttt{02:= } \Hprev{\Hypo},A\vdash B \\ &\indent\ttt{03:= } \Hprev{\Hypo},\neg A\vdash B \\\ttt{(01) } &\indent \Hnext{\Hypo}\vdash A\vee \neg A &&\LPeirce \\ &\indent \Hnext{\Hprev{\Hypo},\neg (A\vee \neg A)}\vdash A\vee \neg A &&\intrDisR \\ &\indent \Hnext{\Hprev{\Hypo,\neg (A\vee \neg A)}}\vdash \neg A &&\intrNeg \\ &\indent \Hnext{\Hprev{\Hypo,\neg (A\vee \neg A)},A}\vdash \bot &&\elimNeg \\ &\indent\indent\ttt{ i:= } \Hprev{\Hypo,\neg (A\vee \neg A),A}\vdash \neg (A\vee \neg A) \\ &\indent\indent\ttt{ii:= } \Hprev{\Hypo,\neg (A\vee \neg A),A}\vdash A\vee \neg A \\\ttt{( i) } &\indent\indent \Hnext{\Hypo,\neg (A\vee \neg A),A}\vdash \neg (A\vee \neg A) &&\axm \\\ttt{(ii) } &\indent\indent \Hnext{\Hypo,\neg (A\vee \neg A),A}\vdash A\vee \neg A &&\intrDisL\\ &\indent\indent \Hnext{\Hprev{\Hypo,\neg (A\vee \neg A),A}}\vdash A &&\axm \\\ttt{(02) } &\indent \Hypo,A\vdash B &&\text{待推演规则的左侧前提}\\\ttt{(03) } &\indent \Hypo,\neg A\vdash B &&\text{待推演规则的右侧前提} \end{aligned}$下述规则(称作换质换位律 Loi de Contraposition)是可被推演的:
$\qquad \begin{prooftree} \AXC{\(\Hprev{\Hypo}\vdash\neg B\to \neg A\)}\RL{\(\ContPos\)} \UIC{\(\Hnext{\Hypo}\vdash A\to B\)} \end{prooftree}$
证明:
$\qquad\begin{aligned}[t] &\Hnext{\Hypo}\vdash A\to B &&\intrTo \\ &\Hnext{\Hprev{\Hypo},A}\vdash B &&\clssBot \\ &\Hnext{\Hprev{\Hypo,A},\neg B}\vdash \bot &&\elimNeg \\ &\indent\ttt{01:= } \Hprev{\Hypo,A,\neg B}\vdash A \\ &\indent\ttt{02:= } \Hprev{\Hypo,A,\neg B}\vdash \neg A \\\ttt{(01) } &\indent \Hnext{\Hypo,A,\neg B}\vdash A &&\axm \\\ttt{(02) } &\indent \Hnext{\Hypo,A,\neg B}\vdash \neg A &&\elimTo \\ &\indent\indent\ttt{03:= } \Hprev{\Hypo,A,\neg B}\vdash \neg B \\ &\indent\indent\ttt{04:= } \Hprev{\Hypo,A,\neg B}\vdash \neg B\to \neg A \\\ttt{(03) } &\indent\indent \Hnext{\Hypo,A,\neg B}\vdash \neg B &&\axm \\\ttt{(04) } &\indent\indent \Hnext{\Hypo},A,\neg B\vdash \neg B\to \neg A &&\aff \\ &\indent\indent \Hprev{\Hypo}\vdash \neg B\to\neg A &&\text{待推演规则的前提} \end{aligned}$c) 等号相关的规则 Règles Liées à l’Égalité
下述规则是可被推演的:
$\qquad \begin{prooftree} \AXC{\(\Hprev{\Hypo},u=v\vdash A[x:=\EQprev{u}]\)}\RL{\(\EqlLA\)} \UIC{\(\Hnext{\Hypo},u=v\vdash A[x:=\EQnext{v}]\)} \end{prooftree}$
证明:
$\qquad\begin{aligned}[t] \ph{\ttt{(00) }} &\Hnext{\Hypo, u = v}\vdash A[x:=\EQnext{v}] &&\elimEql\\ &\indent \Hprev{\Hypo, u = v}\vdash A[x:=\EQprev{u}] &&\text{待推演规则的前提} \\ &\indent \Hprev{\Hnext{\Hypo}, u = v}\vdash u = v &&\axm \end{aligned}$下述规则是可被推演的:
$\qquad\begin{prooftree} \AXC{$\Hprev{\Hypo},u=v, A[x:=u]\vdash B$}\RL{$\EqlLB$} \UIC{$\Hnext{\Hypo},u=v, A[x:=v]\vdash B$} \end{prooftree}$证明:
$\qquad\begin{aligned}[t] &\Hnext{\Hypo, u=v, A[x:=v]}\vdash B &&\Coupure \\ &\indent \ttt{01:=}\Hprev{\Hypo, u=v, A[x:=v]}, A[x:=u]\vdash B \\ &\indent \ttt{02:=}\Hprev{\Hypo, u=v, A[x:=v]} \vdash A[x:=u] \\\ttt{(01) } &\indent \Hnext{\Hypo, u=v}, A[x:=v], \Hnext{A[x:=u]}\vdash B &&\aff\\ &\indent \Hprev{\Hypo, u=v, A[x:=u]} \vdash B &&\text{待推演规则的前提}\\\ttt{(02) } &\indent \Hnext{\Hypo, u=v, A[x:=v]}\vdash A[x:=\EQnext{u}] &&\EqlLA \\ &\indent \Hprev{\Hnext{\Hypo, u=v}, A[x:=v]}\vdash A[x:=\EQprev{v}] &&\axm \end{aligned}$下述规则是可被推演的:
$\qquad \begin{prooftree} \AXC{}\RL{$\EqlC$} \UIC{$\Hnext{\Hypo},u=v\vdash t[x:=u]=t[x:=v]$} \end{prooftree}$
证明:
$\qquad\begin{aligned}[t]\ph{\ttt{(00) }} & \Hnext{\Hypo},u=v\vdash t[x:=u]=t[x:=\EQnext{v}] && \EqlLA \\ & \Hnext{\Hprev{\Hypo},u=v}\vdash t[x:=u]=t[x:=\EQprev{u}] && \intrEql \end{aligned}$d) 德摩根律 Lois de Morgan
下述规则是可被推演的:
$\qquad \begin{prooftree} \AXC{\(\Hprev{\Hypo},\neg A\vee\neg B\vdash C\)} \RL{\(\morgCon\)} \UIC{\(\Hnext{\Hypo},\neg (A\wedge B)\vdash C\)} \end{prooftree}$
证明:用到了 1.3.例子.8 中的结论。
$\qquad \begin{aligned}[t] \ph{\ttt{(01) }} &\Hnext{\Hypo, \neg(A \land B)}\vdash C &&\Coupure\\ &\indent\ttt{01:=} \Hprev{\Hypo, \neg(A\land B)}, \neg A\lor\neg B \vdash C \\ &\indent\ttt{02:=} \Hprev{\Hypo, \neg(A\land B)}\vdash \neg A\lor\neg B\\\ttt{(01) } &\indent \Hnext{\Hypo}, \neg(A\land B), \Hnext{\neg A\lor\neg B} \vdash C &&\aff\\ &\indent \Hprev{\Hypo, \neg A\lor\neg B} \vdash C &&\text{待推演规则的前提}\\\ttt{(02) } &\indent \Hnext{\Hypo, \neg(A\land B)}\vdash \neg A\lor\neg B &&\elimTo\\\ttt{(03) } &\indent\indent \Hprev{\Hnext{\Hypo}, \neg(A\land B)}\vdash \neg(A\land B) &&\axm\\\ttt{(04) } &\indent\indent \Hprev{\Hypo, \neg(A\land B)}\vdash \neg(A\land B) \to \neg A\lor\neg B &&\aff\\ &\indent\indent \vdash \neg(A\land B) \to \neg A\lor\neg B &&\href{#1-3-例子-8}{\text{1.3.例子.8}} \end{aligned}$下述规则是可被推演的:
$\qquad\begin{prooftree} \AXC{\(\Hprev{\Hypo},\neg A,\neg B\vdash C\)} \RL{\(\morgDis\)} \UIC{\(\Hnext{\Hypo},\neg (A\vee B)\vdash C\)} \end{prooftree}$
证明:
$\qquad\begin{aligned}[t] &\Hnext{\Hypo,\neg(A\vee B)}\vdash C &&\clssBot\\ &\Hnext{\Hprev{\Hypo,\neg(A\vee B)},\neg C}\vdash \bot &&\elimNeg\\ &\indent\ttt{01:= } \Hprev{\Hypo,\neg(A\vee B),\neg C}\vdash \neg (A\vee B) \\ &\indent\ttt{02:= } \Hprev{\Hypo,\neg(A\vee B),\neg C}\vdash A\vee B \\\ttt{(01) } &\indent \Hnext{\Hypo,\neg(A\vee B),\neg C}\vdash \neg (A\vee B) &&\axm \\\ttt{(02) } &\indent \Hnext{\Hypo,\neg(A\vee B),\neg C}\vdash A\vee B &&\intrDisL\\ &\indent \Hprev{\Hnext{\Hypo,\neg(A\vee B),\neg C}}\vdash A &&\clssBot \\ &\indent \Hnext{\Hprev{\Hypo,\neg(A\vee B),\neg C},\neg A}\vdash \bot &&\elimNeg \\ &\indent\indent\ttt{03:= } \Hprev{\Hypo,\neg(A\vee B),\neg C,\neg A}\vdash\neg(A\vee B) \\ &\indent\indent\ttt{04:= } \Hprev{\Hypo,\neg(A\vee B),\neg C,\neg A}\vdash A\vee B \\\ttt{(03) } &\indent\indent \Hnext{\Hypo,\neg(A\vee B),\neg C,\neg A}\vdash\neg(A\vee B) &&\axm \\\ttt{(04) } &\indent\indent \Hnext{\Hypo,\neg(A\vee B),\neg C,\neg A}\vdash A\vee B &&\intrDisL\\ &\indent\indent \Hprev{\Hnext{\Hypo,\neg(A\vee B),\neg C,\neg A}}\vdash B &&\clssBot \\ &\indent\indent \Hnext{\Hprev{\Hypo,\neg(A\vee B),\neg C,\neg A},\neg B}\vdash\bot &&\elimNeg \\ &\indent\indent\indent\ttt{05:= } \Hprev{\Hypo,\neg(A\vee B),\neg C,\neg A,\neg B}\vdash \neg C \\ &\indent\indent\indent\ttt{06:= } \Hprev{\Hypo,\neg(A\vee B),\neg C,\neg A,\neg B}\vdash C \\\ttt{(05) } &\indent\indent\indent \Hnext{\Hypo,\neg(A\vee B),\neg C,\neg A,\neg B}\vdash \neg C &&\axm \\\ttt{(06) } &\indent\indent\indent \Hnext{\Hypo},\neg(A\vee B),\neg C,\Hnext{\neg A,\neg B}\vdash C &&\aff\times2\\ &\indent\indent\indent \Hprev{\Hypo,\neg A,\neg B}\vdash C &&\text{待证规则的前提} \end{aligned}$下述规则是可被推演的:
$\qquad \begin{prooftree} \AXC{\(\Hprev{\Hypo},A,\neg B\vdash C\)} \RL{\(\morgTo\)} \UIC{\(\Hnext{\Hypo},\neg (A\to B)\vdash C\)} \end{prooftree}$
证明:
$\qquad\begin{aligned}[t]\ph{\ttt{(01) }} &\Hnext{\Hypo, \neg(A\to B)}\vdash C &&\Coupure\\ &\indent \ttt{01:= } \Hprev{\Hypo, \neg(A\to B)}, A\land\neg B\vdash C &&\\ &\indent \ttt{02:= } \Hprev{\Hypo, \neg(A\to B)} \vdash A\land\neg B &&\\\ttt{(01) } &\indent \Hnext{\Hypo, \neg(A\to B)}, A\land\neg B\vdash C &&\ConL\\ &\indent \Hprev{\Hnext{\Hypo}, \neg(A\to B)}, \Hnext{A, \neg B}\vdash C &&\aff\\ &\indent \Hprev{\Hypo, A, \neg B}\vdash C &&\text{待推演规则的前提}\\\ttt{(02) } &\indent \Hnext{\Hypo, \neg(A\to B)} \vdash A\land\neg B &&\intrCon\\ &\indent\indent\ttt{03:= } \Hprev{\Hypo, \neg(A\to B)} \vdash A &&\\ &\indent\indent\ttt{04:= } \Hprev{\Hypo, \neg(A\to B)} \vdash \neg B &&\\\ttt{(03) } &\indent\indent \Hnext{\Hypo, \neg(A\to B)} \vdash A &&\clssBot\\ &\indent\indent \Hnext{\Hprev{\Hypo, \neg(A\to B)}, \neg A}\vdash \bot &&\elimNeg~\ttt{(05)}~\ttt{(06)}\\\ttt{(05) } &\indent\indent\indent \Hprev{\Hnext{\Hypo}, \neg(A\to B), \Hnext{\neg A}}\vdash \neg(A\to B) &&\axm\\\ttt{(06) } &\indent\indent\indent \Hnext{\Hprev{\Hypo, \neg(A\to B), \neg A}}\vdash A\to B &&\intrTo\\ &\indent\indent\indent \Hnext{\Hprev{\Hypo, \neg(A\to B), \neg A}, A}\vdash B &&\clssBot\\ &\indent\indent\indent \Hprev{\Hnext{\Hypo, \neg(A\to B)}, \neg A, A}, \Hnext{\neg B}\vdash \bot &&\NegL\\\ttt{(04) } &\indent\indent \Hnext{\Hypo, \neg(A\to B)}\vdash \neg B &&\intrNeg\\ &\indent\indent \Hnext{\Hprev{\Hypo, \neg(A\to B)}, B}\vdash \bot &&\elimNeg~\ttt{(07)}~\ttt(08)\\\ttt{(07) } &\indent\indent\indent \Hprev{\Hnext{\Hypo}, \neg(A\to B), \Hnext{B}}\vdash \neg(A\to B) &&\axm\\\ttt{(08) } &\indent\indent\indent \Hnext{\Hprev{\Hypo, \neg(A\to B), B}}\vdash A\to B &&\intrTo\\ &\indent\indent\indent \Hprev{\Hnext{\Hypo, \neg(A\to B)}, B}, \Hnext{A}\vdash B &&\axm \end{aligned}$下述规则是可被推演的:
$\qquad\begin{prooftree} \AXC{\(\Hprev{\Hypo},\exists x~\neg A\vdash C\)} \RL{\(\morgAll\)} \UIC{\(\Hnext{\Hypo},\neg (\forall x~A)\vdash C\)} \end{prooftree}$
证明:
$\qquad\begin{aligned}[t]\ph{\ttt{(01) }} &\Hnext{\Hypo , \neg(\forall x~A)} \vdash C &&\Coupure\\ &\indent\ttt{01:= } \Hprev{\Hypo, \neg(\forall x~A)} , \exists x~\neg A \vdash C &&\\ &\indent\ttt{02:= } \Hprev{\Hypo, \neg(\forall x~A)} \vdash \exists x~\neg A &&\\\ttt{(01) } &\indent \Hnext{\Hypo}, \neg(\forall x~A) , \Hnext{\exists x~\neg A} \vdash C &&\aff\\ &\indent \Hprev{\Hypo , \exists x~\neg A} \vdash C &&\text{待推演规则的前提}\\\ttt{(02) } &\indent \Hnext{\Hypo, \neg(\forall x~A)} \vdash \exists x~\neg A &&\clssBot\\ &\indent \Hnext{\Hprev{\Hypo, \neg(\forall x~A)}, \neg(\exists x~\neg A)}\vdash \bot &&\elimNeg~\ttt{(03)}~\ttt{(04)}\\\ttt{(03) } &\indent\indent \Hprev{\Hnext{\Hypo}, \neg(\forall x~A), \Hnext{\neg(\exists x~\neg A)}}\vdash \neg(\forall x~A) &&\axm\\\ttt{(04) } &\indent\indent \Hprev{\Hnext{\Hypo, \neg(\forall x~A), \neg(\exists x~\neg A)}}\vdash \forall x~A &&\intrAll\\ &\indent\indent \Hnext{\Hprev{\Hypo, \neg(\forall x~A), \neg(\exists x~\neg A)}} \vdash A &&\clssBot~\ttt{(05)}~\ttt{(06)}\\\ttt{(05) } &\indent\indent\indent \Hprev{\Hnext{\Hypo, \neg(\forall x~A)}, \neg(\exists x~\neg A)}, \Hnext{\neg A} \vdash \neg(\exists x~\neg A) &&\axm\\\ttt{(06) } &\indent\indent\indent \Hnext{\Hprev{\Hypo, \neg(\forall x~A), \neg(\exists x~\neg A)}, \neg A} \vdash \exists x~\neg A &&\intrExt\\ &\indent\indent\indent \Hprev{\Hnext{\Hypo, \neg(\forall x~A), \neg(\exists x~\neg A)}, \neg A} \vdash \neg A &&\axm\\ \end{aligned}$下述规则是可被推演的:
$\qquad \begin{prooftree} \AXC{\(\Hprev{\Hypo},\forall x~\neg A\vdash C\)} \RL{\(\morgExt\)} \UIC{\(\Hnext{\Hypo},\neg (\exists x~A)\vdash C\)} \end{prooftree}$
证明:这里用到了1.3.例子.15b 中的结论。
$\qquad\begin{aligned}[t]\ph{\ttt{(01) }} &\Hnext{\Hypo, \neg(\exists x~A)}\vdash C &&\Coupure\\ &\indent\ttt{01:= } \Hprev{\Hypo, \neg(\exists x~A)}, \forall x~\neg A \vdash C \\ &\indent\ttt{02:= } \Hprev{\Hypo, \neg(\exists x~A)} \vdash \forall x~\neg A \\\ttt{(01) } &\indent \Hnext{\Hypo}, \neg(\exists x~A), \Hnext{\forall x~\neg A} \vdash C &&\aff\\ &\indent \Hprev{\Hypo, \forall x~\neg A}\vdash C &&\text{待推演规则的前提}\\\ttt{(02) } &\indent \Hnext{\Hypo, \neg(\exists x~A)} \vdash \forall x~\neg A &&\elimTo~\ttt{(03)}~\ttt{(04)}\\\ttt{(03) } &\indent\indent \Hprev{\Hypo, \neg(\exists x~A)} \vdash \neg(\exists x~A) &&\axm\\\ttt{(04) } &\indent\indent \Hprev{\Hypo, \neg(\exists x~A)} \vdash \neg(\exists x~A) \to \forall x~\neg A &&\aff\\ &\indent\indent \vdash \neg(\exists x~A) \to \forall x~\neg A &&\href{#1-3-例子-15b}{\text{1.3.例子.15b}} \end{aligned}$1.3.9 线性记法的简化 Simplification de la Notation Linéaire
前面介绍的线性记法在呈现平常数学中的例子时依然显得过于繁琐。 下面的约定会进一步简化记法。
a) 省略弱化规则 Affaiblissements implicites
我们以后就不再标注弱化规则了,只需保留有用的假设。 考虑下述推演:
$\qquad\begin{aligned}[t]\ph{\ttt(01) } &\Hnext{A,B,C}\vdash D\wedge E &&\intrCon \\ &\indent\ttt{01:= } \Hprev{A,B,C}\vdash D \\ &\indent\ttt{02:= } \Hprev{A,B,C}\vdash E \\\ttt{(01) } &\indent \Hnext{A,B},C\vdash D &&\aff \\ &\indent \Hprev{A,B}\vdash D &&\ldots \\ &\indent \ldots \\\ttt{(02) } &\indent \Hnext{A},B,\Hnext{C}\vdash E &&\aff \\ &\indent \Hprev{A,C}\vdash E &&\ldots \\ &\indent \ldots \end{aligned}$
将被写作
$\qquad\begin{aligned}[t]\ph{\ttt{(01) }} &A,B,C\vdash D\wedge E &&\intrCon\Omis{,\aff\times 2} \\ &\indent\ttt{01:= } A,B\vdash D \\ &\indent\ttt{02:= } A,B\vdash E \\\ttt{(01) } &\indent A,B\vdash D &&\ldots \\ &\indent \ldots \\\ttt{(02) } &\indent A,C\vdash E &&\ldots \\ &\indent \ldots \end{aligned}$
b) 连续应用规则 Succession de règles
我们经常会直观地连续使用一系列相关的规则(它们属于同一个推理“模块”)。 它们会被合并为一个规则。这里有两个例子:
下述推演
$\qquad\begin{aligned}[t]\ph{\ttt{(01) }} &\Hnext{\forall x(A[x]\to B[x]), A[t]}\vdash C &&\AllL\\ &\Hprev{\forall x(A[x]\to B[x])}, \Hnext{A[t]\to B[t], \Hprev{A[t]}} \vdash C &&\aff\\ &\Hprev{A[t]\to B[t], A[t]}\vdash C &&\ToL\\ &A[t], \Hnext{B[t]}\vdash C &&\aff\\ &\Hprev{B[t]}\vdash C &&\ldots \end{aligned}$省略弱化规则后
$\qquad\begin{aligned}[t]\ph{\ttt{(01) }} &\forall x~(A[x]\to B[x]),A[t]\vdash C &&\AllL,\Omis\aff \\ &A[t]\to B[t],A[t]\vdash C &&\ToL,\Omis\aff \\ &B[t]\vdash C &&\ldots \end{aligned}$
将被写作
$\qquad \begin{aligned}[t]\ph{\ttt{(01) }} &H:=\forall x~(A[x]\to B[x]) \\ &H,A[t]\vdash C &&\AllL[t],\ToL \text{ 以获得 } H,\Omis\aff \\ &B[t]\vdash C &&\ldots \end{aligned}$
在规则 $\AllL$ 的使用中,我们指明了被应用的公式以及所替换的项。 如果显然,则该说明可被省略; 若不明显,尤其是在合并一系列规则时, 则请尽可能给出说明。 对于规则 $\elimAll$ 和 $\intrExt$ 我们也采用相同的记法。
下述推演
$\qquad \begin{aligned}[t] &A\vee(B\vee C) \vdash D &&\DisL~\ttt{(01)}~\ttt{(02)} \\\ttt{(01) } &\indent A\vdash D &&\ldots \\\ttt{(02) } &\indent B\vee C\vdash D &&\DisL~\ttt{(03)}~\ttt{(04)}\\\ttt{(03) } &\indent\indent B\vdash D &&\ldots \\\ttt{(04) } &\indent\indent C\vdash D &&\ldots \end{aligned}$
将被写作
$\qquad \begin{aligned}[t] &A\vee(B\vee C)\vdash D &&\DisL \times 2~\ttt{(01)}~\ttt{(02)}~\ttt{(03)} \\\ttt{(01) } &\indent A\vdash D &&\ldots \\\ttt{(02) } &\indent B\vdash D &&\ldots \\\ttt{(03) } &\indent C\vdash D &&\ldots \end{aligned}$
c) 省略子推演 Omission de sous-démonstrations
有时推演的某一部分并不会引起我们的兴趣。比如 当我们更愿意把注意力放在推演的某一个部分,或者是 当我们认为某一部分推演是显而易见的,又或者是 某个推演与前面写过的推演十分相似。 此时我们只需给出一些提示来完成整个证明即可。
索引
- 一阶逻辑 Logique du Premier Ordre: 又称谓词演算 Calcul des Prédicats(见 §01-01)
- 元公式 Méta-Formules(见 §01-01)
- 元推演 Méta-Démonstrations(见 §01-01)
- 语言 Langage: 又称词汇表 Vocabulaire 或者 签名 Signature(见 §01-02-01)
- 常量符号 Symboles de Constante(见 §01-02-01)
- 函数符号 Symboles de Fonction(见 §01-02-01)
- 元数 Arité(见 §01-02-01)
- 关系符号 Les Symboles de Relation(见 §01-02-01)
- 词汇表 Vocabulaire(见 §01-02-01)
- 签名 Signature(见 §01-02-01)
- 谓词 Prédicat(见 §01-02-01)
- 谓词演算 Calcul des Prédicats(见 §01-02-01)
- 底 Bottom(见 §01-02-01)
- 谬误 Absurd(见 §01-02-01)
- 变量符号 Symboles des Variables(见 §01-02-02)
- 项 Termes(见 §01-02-02)
- 应用 Application(见 §01-02-02)
- 闭项 Terme Clos(见 §01-02-02)
- 中缀表示法 Notation Infixée(见 §01-02-02)
- 前缀表示法 Notation Préfixée(见 §01-02-02)
- 项的尺寸 Taille(见 §01-02-02)
- 项的长度 Longueur(见 §01-02-02)
- 连结词 Connecteurs(见 §01-02-03)
- 量词 Quantificateurs(见 §01-02-03)
- 存在量词 Quantificateur Existentiel(见 §01-02-03)
- 全称量词 Quantificateur Universel(见 §01-02-03)
- 原子公式 Atomiques(见 §01-02-03)
- 公式 Formules(见 §01-02-03)
- 子公式 Sous-Formule(见 §01-02-03)
- 公式的语言 Langage de la Formule(见 §01-02-03)
- 公式的尺寸 Taille: 又称公式的长度 Longueur d’une Formule(见 §01-02-03)
- 公式的长度 Longueur(见 §01-02-03)
- 公式的主要运算符 Opérateur Principal: 又称公式的主要连结词 Connecteur Principal(见 §01-02-03)
- 公式的主要连结词 Connecteur Principal(见 §01-02-03)
- 约束变量 Variables Liées(见 §01-02-04)
- 哑变量 Variables Muettes(见 §01-02-04)
- 代换 Substituer(见 §01-02-04)
- 自由变量 Variables Libres(见 §01-02-04)
- 变量的出现 Occurence de Variable(见 §01-02-04)
- 变量的约束出现 Occurence Liée: 又称变量的哑出现 Occurence Muette(见 §01-02-04)
- 变量的哑出现 Occurence Muette(见 §01-02-04)
- 变量的自由出现 Occurence Libre(见 §01-02-04)
- $\alpha$ 等价 $\alpha$-Équivalentes(见 §01-02-04)
- 变量的捕获 Capturée(见 §01-02-04)
- de Bruijn 指数 Indices de De Bruijn(见 §01-02-04)
- 闭公式 Formule Close(见 §01-02-04)
- 闭包 Clôture(见 §01-02-04)
- 高阶逻辑 Logique d’Ordre Supérieur(见 §01-02-04)
- 多类型逻辑 Logique Multi-Sortes(见 §01-02-04)
- 命题演算 Calcul Propositionnel(见 §01-02-06)
- 命题变量 Variable Propositionnelles(见 §01-02-06)
- 自然推演 Dédution Naturelle(见 §01-03-01)
- 公理 Axiomes(见 §01-03-01)
- 相继式 Séquent(见 §01-03-02)
- 假设 Hypothèses(见 §01-03-02)
- 语境 Contexte(见 §01-03-02)
- 可被推演的相继式 Séquent Démontrable: 又称可被推导的相继式 Séquent Dérivable(见 §01-03-02)
- 可被推导的相继式 Séquent Dérivable(见 §01-03-02)
- 可被推演的公式 Formule Démontrable(见 §01-03-02)
- 派生规则 Règles Dérivées(见 §01-03-03)
- 前提 Prémisses(见 §01-03-03)
- 结论 Conclusion(见 §01-03-03)
- 规则的自下而上诠释 Lecture de Bas en Haut(见 §01-03-03)
- 规则的自上而下诠释 Lecture de Haut en Bas(见 §01-03-03)
- 引入规则 Règles d’Introduction(见 §01-03-03)
- 消去规则 Règles d’Élimination(见 §01-03-03)
- 肯定前件 Modus Ponens(见 §01-03-03)
- 模式 Schéma(见 §01-03-03)
- 推演的树状表示法 Notation Arborescente(见 §01-03-03)
- 卸载 Déchargé(见 §01-03-06)
- 主要假设 Hypothèses Principales(见 §01-03-06)
- 辅助假设 Hypothèses Auxiliaires(见 §01-03-06)
- 推演的线性表示法 Notation Linéaire(见 §01-03-07)
- 引理 Lemme(见 §01-03-08)
- 左规则 Règles Gauche(见 §01-03-08)
- 谬误消去(直觉主义) Absurdité Intuitionniste(见 §01-03-08)
- 皮尔士定律(见 §01-03-08)
- 排中律 Loi du Tiers Exclu(见 §01-03-08)
- 换质换位律 Loi de Contraposition(见 §01-03-08)
- 1.2.定义.1: 语言,常量符号,函数符号,关系符号(见 §01-02-01)
- 1.2.定义.3: 项(自下而上和自上而下定义),闭项,项的高度(见 §01-02-02)
- 1.2.定义.5: 项的尺寸(见 §01-02-02)
- 1.2.定义.6: 原子公式(语法定义),公式(语法定义)(见 §01-02-03)
- 1.2.定义.10: 子公式,公式的语言(见 §01-02-03)
- 1.2.定义.12: 公式的尺寸(又称长度)(见 §01-02-03)
- 1.2.定义.13: 公式的主要运算符(又称主要连结词)(见 §01-02-03)
- 1.2.定义.14: 公式的自由变量(见 §01-02-04)
- 1.2.定义.16: $\alpha$-等价(见 §01-02-04)
- 1.2.定义.19: 闭公式,闭包(见 §01-02-04)
- 1.2.定义.20: 代换(见 §01-02-05)
- 1.2.定义.21: 命题演算的公式集(见 §01-02-06)
- 1.3.定义.1: 相继式,语境,结论(见 §01-03-02)
- 1.3.定义.3: 可被推演的相继式,可被推演的公式(见 §01-03-02)
- 1.2.例子.2: 语言 $\setLan_1$,$\setLan_2$,$\setLan_3$,$\setLan_4$,$\setLan_5$(见 §01-02-01)
- 1.2.例子.4: 语言 $\setLan_1$,$\setLan_2$,$\setLan_3$,$\setLan_4$,$\setLan_5$ 中的项(见 §01-02-02)
- 1.2.例子.7: 语言 $\setLan_1$,$\setLan_2$,$\setLan_3$,$\setLan_4$,$\setLan_5$ 中的公式(见 §01-02-03)
- 1.2.例子.9: 语言 $\setLan_1$,$\setLan_5$ 中的公式(见 §01-02-03)
- 1.2.例子.11: 语言 $\setLan_5$ 中公式的子公式以及公式语言(见 §01-02-03)
- 1.2.例子.15: 语言 $\setLan_2$ 或 $\setLan_5$ 中公式的自由变量(见 §01-02-04)
- 1.2.例子.17: $\alpha$-等价(见 §01-02-04)
- 1.2.例子.22: 命题演算中的公式(见 §01-02-06)
- 1.3.例子.4: $\vdash (A \land B \to C) \leftrightarrow (A \to B \to C)$(见 §01-03-04)
- 1.3.例子.5: $\vdash (C\to A) \lor (C\to B)\to (C\to A\lor B)$(见 §01-03-04)
- 1.3.例子.6: $\vdash (\forall x~A\lor \forall x~B) \to \forall x~(A\lor B)$(见 §01-03-04)
- 1.3.例子.7: $\vdash \exists x~(A\wedge B) \to (\exists x~A \wedge \exists x~B)$(见 §01-03-04)
- 1.3.例子.8: $\vdash \neg (A\wedge B)\to (\neg A\vee \neg B)$(见 §01-03-04)
- 1.3.例子.9: 等号的对称性(见 §01-03-04)
- 1.3.例子.10: 等号的传递性(见 §01-03-04)
- 1.3.例子.11: 错误使用臆想规则推演出 $\vdash A\vee B \to A\wedge B$(见 §01-03-05)
- 1.3.例子.12: 错误使用存在消去推演出 $\vdash \exists x~A \to \forall x~A$(见 §01-03-05)
- 1.3.例子.13: 错误使用存在消去推演出 $\vdash \exists x~A \land \exists x~B \to \exists x~(A \land B)$(见 §01-03-05)
- 1.3.例子.14: 错误使用全称引入推演出 $\vdash \forall x~(A \lor B) \to \forall x~A \lor \forall x~B$(见 §01-03-05)
- 1.3.例子.15: 德摩根律 $\vdash \neg (A\vee B) \leftrightarrow (\neg A\wedge \neg B)$(见 §01-03-06)
- 1.3.例子.15b: 德摩根律 $\vdash \neg\exists x~A \leftrightarrow \forall x~\neg A$(见 §01-03-06)
- 1.3.例子.15c: 排中律 $\vdash A\vee \neg A$(见 §01-03-06)
- 1.3.例子.17: 1.3.例子.8 的线性表示法(见 §01-03-07)
- 1.3.命题.18: 切规则是可被推演的(见 §01-03-08)
- 1.3.命题.19: 合取左规则是可被推演的(见 §01-03-08)
- 1.3.命题.20: 析取左规则是可被推演的(见 §01-03-08)
- 1.3.命题.21: 箭头左规则是可被推演的(见 §01-03-08)
- 1.3.命题.22: 箭头左规则是可被推演的(见 §01-03-08)
- 1.3.命题.23: 否定左规则是可被推演的(见 §01-03-08)
- 1.3.命题.24: 存在左规则是可被推演的(见 §01-03-08)
- 1.3.命题.25: 谬误消去(直觉主义)是可被推演的(见 §01-03-08)
- 1.3.命题.26: 皮尔士定律是可被推演的(见 §01-03-08)
- 1.3.命题.27: 排中律是可被推演的(见 §01-03-08)
- 1.3.命题.28: 换质换位律是可被推演的(见 §01-03-08)
- 1.3.命题.29: 等号左规则是可被推演的(见 §01-03-08)
- 1.3.命题.29b: 等号左规则的推论1是可被推演的(见 §01-03-08)
- 1.3.命题.29c: 等号左规则的推论2是可被推演的(见 §01-03-08)
- 1.3.命题.30: 德摩根律(合取)是可被推演的(见 §01-03-08)
- 1.3.命题.30b: 德摩根率(析取)是可被推演的(见 §01-03-08)
- 1.3.命题.30c: 德摩根率(箭头)是可被推演的(见 §01-03-08)
- 1.3.命题.30d: 德摩根率(全称)是可被推演的(见 §01-03-08)
- 1.3.命题.30e: 德摩根率(存在)是可被推演的(见 §01-03-08)
- 1.2.1.注意.01: 常量符号,函数符号,关系符号(见 §01-02-01)
- 1.2.2.注意.01: 项(语法定义),函数的前缀中缀表示法(见 §01-02-02)
- 1.2.2.注意.02: 项的树状表示,项的函数的递归定义,项的性质的归纳证明(高度)(见 §01-02-02)
- 1.2.2.注意.03: 项的性质的归纳证明(尺寸)(见 §01-02-02)
- 1.2.3.注意.01: 公式(自上而下定义),二元关系的前缀中缀表示法(见 §01-02-03)
- 1.2.3.注意.02: 直觉主义视角下的1.2.例子.7(见 §01-02-03)
- 1.2.3.注意.03: 公式的树状表示(见 §01-02-03)
- 1.2.3.注意.04: 子公式在公式树状表示中的含义(见 §01-02-03)
- 1.2.3.注意.05: 公式函数的递归定义,公式性质的归纳证明(高度和尺寸)(见 §01-02-03)
- 1.2.4.注意.01: 变量的自由出现和约束出现(见 §01-02-04)
- 1.2.4.注意.02: $\alpha$-等价在人类和计算机的视角中(见 §01-02-04)
- 1.2.4.注意.03: 一阶逻辑的局限性,高阶逻辑(见 §01-02-04)
- 1.2.5.注意.01: 代换,重命名,连续代换(见 §01-02-05)
- 1.2.6.注意.01: 命题变量(见 §01-02-06)
- 1.3.2.注意.01: 相继式中语境和结论的闭性(见 §01-03-02)
- 1.3.2.注意.02: 可被推演的相继式和公式(见 §01-03-02)
- 1.3.3.注意.01: 关于全称引入和存在消去(见 §01-03-03)
- 1.3.3.注意.02: $\lnot$ 的另一种写法(见 §01-03-03)
- 1.3.4.注意.01: 1.3.例子.4(见 §01-03-04)
- 1.3.4.注意.02: 1.3.例子.6 里的全称引入、全称消去以及暗藏的等号消去(见 §01-03-04)
- 1.3.4.注意.03: 1.3.例子.7 里的存在消去、存在引入以及暗藏的等号消去(见 §01-03-04)
- 1.3.4.注意.04: 1.3.例子.8 其实是在证明德摩根律的一个方向(见 §01-03-04)
- 1.3.9.注意.01: 简化的线性记法中关于项的替换的补充说明(见 §01-03-09)
- 1.2.4.约定.01: 变量的自由出现和约束出现不可重名(见 §01-02-04)
- 1.3.6.译注.01: 1-3-例子-15 的线性表示法(见 §01-03-06)
- 1.3.6.译注.02: 1-3-例子-15b 的线性表示法(见 §01-03-06)
杂项
定义:ID 使用 defn:<编号>,Callouts 使用 [!info]
命题:ID 使用 prop:<编号>,Callouts 使用 [!info]
记号:ID 使用 note:<编号>,Callouts 使用 [!info]
例子:ID 使用 xmpl:<编号>,Callouts 使用 [!example]
注意:ID 使用 tips:S<章节>-<序号>,Callouts 使用 [!tip]
约定:ID 使用 conv:S<章节>-<序号>,Callouts 使用 [!tip]
译注:ID 使用 mark:<...>,Callouts 使用 [!note]
微信