翻译-Introduction À La Logique-教材01

目录

$$ %{\rm \LaTeX}\text{ Definitions are here. } \newcommand{\hl}[2][yellow]{\bbox[#1]{\vph{fg()}#2}} % 高亮 \newcommand{\cl}[1][Green]{\color{#1}} \def\setLan{\mathcal{L}} % 词汇表 \def\setVar{\mathcal{V}} % 变量集 \def\setTrm{\mathcal{T}} % 项集 \def\setFml{\mathcal{F}} % 公式集 \def\setAtm{\mathcal{Atom}} % 原子公式 \def\setCal{\mathcal{C}} % 演算 \let\ph=\phantom \let\hph=\hphantom \let\vph=\vphantom \let\ttt=\texttt \def\setVarLib{{\rm VL}} % 自由变量集 % \def\Hypo{{\rm\Gamma}} \def\pillar#1{\vph{(fg)}\smash{#1}} % 推理规则 \def\axm{\pillar{\rm ax}} \def\aff{\pillar{\rm aff}} \def\intrTo{\pillar{\to_{\rm i}}} \def\elimTo{\pillar{\to_{\rm e}}} \def\intrCon{\pillar{\land_{\rm i}}} \def\elimConL{\pillar{\land_{\rm e}^{\rm g}}} \def\elimConR{\pillar{\land_{\rm e}^{\rm d}}} \def\intrDisL{\pillar{\lor_{\rm i}^{\rm g}}} \def\intrDisR{\pillar{\lor_{\rm i}^{\rm d}}} \def\elimDis{\pillar{\lor_{\rm e}}} \def\intrNeg{\pillar{\lnot_{\rm i}}} \def\elimNeg{\pillar{\lnot_{\rm e}}} \def\clssBot{\pillar{\bot_{\rm c}}} \def\intrAll{\pillar{\forall_{\rm i}}} \def\elimAll{\pillar{\forall_{\rm e}}} \def\intrExt{\pillar{\exists_{\rm i}}} \def\elimExt{\pillar{\exists_{\rm e}}} \def\intrEql{\pillar{=_{\rm i}}} \def\elimEql{\pillar{=_{\rm e}}} % 派生规则 \def\Coupure{\pillar{\textrm{coup}}} \def\ConL{\pillar{\land_{\rm g}}} \def\DisL{\pillar{\lor_{\rm g}}} \def\ToL{\pillar{\to_{\rm g}}} \def\NegL{\pillar{\lnot_{\rm g}}} \def\AllL{\pillar{\forall_{\rm g}}} \def\ExtL{\pillar{\exists_{\rm g}}} \def\BotIntu{\pillar{\bot_{\rm i}}} \def\LPeirce{\pillar{\textrm{l.p.}}} \def\TierExc{\pillar{\textrm{t.e.}}} \def\ContPos{\pillar{\textrm{c.c.}}} \def\EqlLA{\pillar{=_{\rm g}}} \def\EqlLB{\pillar{='_{\rm g}}} \def\EqlC{\pillar{=_{\rm c}}} \def\morgCon{\pillar{\land_{\rm m}}} \def\morgDis{\pillar{\lor_{\rm m}}} \def\morgTo{\pillar{\to_{\rm m}}} \def\morgAll{\pillar{\forall_{\rm m}}} \def\morgExt{\pillar{\exists_{\rm m}}} % 错误规则 \def\errr{\pillar{\rm !!!}} % 文字高亮 \def\Hprev#1{{\cl[ForestGreen]{#1}}} \def\Hnext#1{{\hl[LightBlue]{#1}}} \def\EQprev#1{{\cl[YellowOrange]{#1}}} \def\EQnext#1{{\hl[pink]{#1}}} \def\Omis#1{{\color{Gray}#1}} % \def\indent{\ph{\ttt{00}}} % 缩进 % \def\inj#1{\textrm{Inj}[#1]} % 单射 \def\surj#1{\textrm{Surj}[#1]}% 满射 \def\bij#1{\textrm{Bij}[#1]} % 双射 \def\inv#1{\textrm{Inv}[#1]} % 对合 % \def\deduct#1{\mathcal{#1}} % 推导 \def\trou#1{\langle #1\rangle} % 带洞公式 % \def\setAxm{\mathcal{A}} % 公理集 \def\setRgl{\mathcal{R}} % 规则集 \def\hilbTo{R_\to} % 希尔伯特规则 : 箭头 \def\hilbAll{R_\forall} % 希尔伯特规则 : 全称量词 \def\hilbExt{R_\exists} % 希尔伯特规则 : 存在量词 $$

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) 。 下面的定义阐述了一个简单事实:只需给出一串符号列表 便可描述一门语言。

1.2.定义.1:语言,常量符号,函数符号,关系符号

一门(一阶逻辑)语言 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

1.2.1.注意.01:常量符号,函数符号,关系符号
  1. 常量符号也可以看作是接收 $0$ 个实参的函数。
  2. 除非另有说明,否则我们默认每门语言都包含 一个二元关系符号 $=$ 和 一个零元关系符号 $\bot$(读作底 Bottom 或者谬误 Absurd),后者代表永假。 在描述一门语言的时候,我们通常会省略对它们的提及。
  3. 符号 $\bot$ 往往是多余的。事实上,我们可以在不使用它的情况下写出一个永假的公式。 它的作用在于以一种规范的方式表示假,因此可以用来编写通用的推演规则。
  4. 函数和关系的作用截然不同。正如我们稍后会看到的, 函数符号和常量符号被用来构造项(即语言中的对象), 而关系符号则被用来构造公式(即这些对象的性质)。
1.2.例子.2:语言 $\setLan_1$,$\setLan_2$,$\setLan_3$,$\setLan_4$,$\setLan_5$
  1. 语言 $\setLan_1$ 用于描述群理论 Théorie des Groupes,包含以下符号:
    • 常量符号:$e$(表示群的幺元)
    • 函数符号:$∗$(二元,用于表示群运算),${\_}^{-1}$(一元,用于表示逆元)
    • 关系符号:$=$
  2. 语言 $\setLan_2$ 用于描述有序域理论 Théorie des Corps Ordonnés,包含以下符号:
    • 常量符号:$0$,$1$
    • 函数符号:$+$,$\times$,$−$,${\_}^{-1}$。实际上我们用了两个 $-$ 符号,它们被混淆了: 其中一个是一元的,另一个是二元的(注意到在计算器上这两个操作是分开的)
    • 关系符号:$=$,$\leq$
  3. 语言 $\setLan_3$ 用于描述实线性空间理论 Théorie des Espaces Vectoriels sur $\mathbb{R}$,包含以下符号:
    • 常量符号:$0$
    • 函数符号:$+$,$(f_\lambda)_{\lambda\in \mathbb{R}}$。这里符号集合是无限集合, $f_\lambda$ 对应于数乘 $\lambda$。由此可以看出 加法是一个内部运算,而 数乘则是一个外部运算
    • 关系符号:$=$
  4. 语言 $\setLan_4$ 用于描述集合论 Théorie des Ensembles,包含以下符号:
    • 常量符号:$\varnothing$
    • 函数符号:$\cap$,$\cup$,${\_}^{c}$(用于表示补集)
    • 关系符号:$=$,$\in$,$\subset$
  5. 语言 $\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) 代表与语言中的对象。准确来说是:

1.2.定义.3:项(自下而上和自上而下定义),闭项,项的高度

若 $\setLan$ 是一门语言,则:

  1. 语言 $\setLan$ 里的所有项构成的集合 $\setTrm$ 是满足以下条件的最小集合:

    • 包含所有常量和变量符号,并且
    • 包含所有函数符号 应用 Application 于项后所得的结果。
  2. 闭项 Terme Clos 是不包含变量的项。

  3. 若要形式化地定义,还可以这样写:规定 $\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}$
  4. 我们称项 $t$ 的高度 Hauteur 为 满足 $t \in \setTrm_k$ 的最小的 $k$。

1.2.2.注意.01:项(语法定义),函数的前缀中缀表示法
  1. 上述定义意味着变量和常量都是项。此外 如果 $f$ 是元数为 $n$ 的函数符号 并且 $t_1$,$\ldots$,$t_n$ 都是项, 那么 $f(t_1,\ldots,t_n)$ 也构成一个项。

  2. 该定义不过是提供了一个书写规范, 可以按照如下方式理解: 如果 $f$ 是一个符号, 那么我们就可以写出 $f(t_1,\ldots,t_n)$; 选择这种写法显然不是随意的, 因为它的意义(见2.2.定义.3) 将会是一个函数对其实参的应用结果。

  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$ 中的元素而已。

  4. 此记法也可以推广至其他数学对象的定义上,比如 在线性空间中,由子集 $A$ 生成的线性子空间 $F$ 就可以通过如下语法定义:

    $\qquad F = A \mid F + F \mid f_{\lambda}(F)\qquad\text{对任意 }\lambda \in \mathbb{R}$

  5. 对于二元函数,中缀表示法 Notation Infixée(如 $x + y$ 或 $A \cap B$) 往往比前缀表示法 Notation Préfixée(如 $+(x,y)$ 或 $\cap(A,B)$)更能让人接受; 但代价是需要引入括号来提高可读性。

1.2.例子.4:语言 $\setLan_1$,$\setLan_2$,$\setLan_3$,$\setLan_4$,$\setLan_5$ 中的项

下方内容提到的语言皆在 1.2.例子.2 中有定义。

  1. 语言 $\setLan_1$(群理论)中:
    $x \ast y^{-1}$ 和
    $x^{-1} \ast (y \ast x^{-1})^{-1}$ 是项。
    $e^{-1} \ast e$ 是闭项。
  2. 语言 $\setLan_2$(有序域理论)中:
    $(x - (1 + (x^{-1})^{-1})) \times (0 + y^{-1})$ 是项,
    $(1 \times (0 + 1)^{-1}) + ((1 \times 0) + 0)$ 是闭项。
  3. 语言 $\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$ 中的项。
  4. 语言 $\setLan_4$(集合论)中:
    $(x \cup y)^{c}$ 和
    $(x^{c} \cap (\varnothing \cup y))^{c}$ 是项,
    $\varnothing \cap (\varnothing^{c} \cup \varnothing)^{c}$ 是闭项。
  5. 语言 $\setLan_5$(实分析理论)中:
    $\sin(\ln(x) \times \cos(\lvert y + e \rvert))$ 是项,
    $\ln(\lvert \cos(e) - \sin(e) \rvert)$ 是闭项。
1.2.2.注意.02:项的树状表示,项的函数的递归定义,项的性质的归纳证明(高度)
  1. 前面提到过,本章中我们不寻求为项赋予意义,因此如 $0^{-1}$ 和 $\ln(0)$ 这样的东西都可算是项, 它们分别对应语言 $\setLan_2$ 和 $\setLan_5$。

  2. 通常也会将项视作一棵树,当中

    • 每个叶子都被一个变量或常量所标记,
    • 每个节点都被一个函数符号所标记。

    例如 项 $(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}$
  3. 接下来我们会不停地对项的结构使用递归 Récurrence 来定义概念(或证明结论)。

    1. 要证明项满足某个性质 $P$,需要

      • 证明 $P$ 对所有变量和常量都成立,并且
      • 证明 $P(f(t_1,\ldots,t_n))$ 成立
        可由 $P(t_1)$,$\ldots$,$P(t_n)$ 作为前提推出。

      这相当于是对项的高度进行归纳证明。

    2. 要定义某个以项作为实参的函数 $\Phi$,需要

      • 规定 $\Phi$ 应用在变量和常量后的结果,并且
      • 规定 $\Phi(f(t_1,\ldots,t_n))$
        使用 $\Phi(t_1)$,$\ldots$,$\Phi(t_n)$ 描述的方式

      下面的定义就是一个典型的例子

1.2.定义.5:项的尺寸

项 $t$ 的尺寸 Taille (也称作长度 Longueur,记作 $\tau(t)$) 是项 $t$ 中函数符号的出现次数。形式定义如下:

  • $\tau(x) = \tau(c) = 0$ 当且仅当 $x$ 是变量且 $c$ 为常量;否则
  • $\tau(f(t_1, \ldots, t_n)) = 1 + \sum_{1 \leq i \leq n} \tau(t_i)$。
1.2.2.注意.03

在证明 $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
  • 量词
    • $\exists$,读作会存在 Il Existe
    • $\forall$,读作对所有 Pour Tout

上述连结词记法是标准记法,使用它们是为了避免 公式(本书所研究的对象层面)与 日常语言(元语言层面) 之间产生混淆。

你或许会发现某些逻辑书籍采用下述记法:

  • $\to$ 会被记作 $\supset$。结论可看作是假设的子集。
  • $\forall$ 会被记作 $\bigwedge$。它是的推广。
  • $\exists$ 会被记作 $\bigvee$。它是的推广。

逻辑连结词的选择是相对随意的,我们可以选择其他连结词。比如可以添加 $\leftrightarrow$(表示逻辑等价)或者是 $\uparrow$(Sheffer 竖线 Sheffer Stroke,在电路中尤其常用),等等。

1.2.定义.6:原子公式(语法定义),公式(语法定义)

假如 $\setLan$ 是一门语言,那么:

  1. 原子公式 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)$

  2. 集合 $\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$
1.2.3.注意.01:公式(自上而下定义),二元关系的前缀中缀表示法
  1. 上述定义说明公式集合是满足下述条件的最小集合:

    • 如果 $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$ 属于该集合。
  2. 对于二元关系, 中缀表示法(如 $x = y$ 和 $x \le y$)相较于 前缀表示法(如 $=(x, y)$ 和 $\leq(x, y)$)更为常用。

  3. 需要注意区分项和公式: $\sin(x)$ 是项,$x = 3$ 是公式,但 $\sin(x) \land (x = 3)$ 什么都不是; 因为我们不能在项和公式之间使用连结词。

1.2.例子.7:语言 $\setLan_1$,$\setLan_2$,$\setLan_3$,$\setLan_4$,$\setLan_5$ 中的公式
  1. 语言 $\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)))$ 是公式。
  2. 语言 $\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))$ 是公式。
  3. 语言 $\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)))$ 是公式。
  4. 语言 $\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))$ 是公式。
  5. 语言 $\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)$ 是公式。
1.2.3.注意.02:直觉主义视角下的1.2.例子.7

直觉主义 Intuitivement 的角度来看,上面提到的公式中有些为真,有些为假。

1.2.记号.8:连结词优先级
  1. 我们使用圆括号($($,$)$)、方括号($[$,$]$)、花括号($\{$,$\}$) 来提高可读性或消除歧义。没有括号的话,公式 $\lnot A \land B$ 是模棱两可的:它 既可以被解读为 $(\lnot A) \land B$, 也可以被解读为 $\lnot(A \land B)$。 为了简化记号,我们会使用下列优先级规则:

    1. 语言中的关系符号
    2. $\lnot$,$\forall$,$\exists$
    3. $\land$,$\lor$
    4. $\to$

    如此 $\forall x~A \land B \to \lnot C \lor D$ 便表示 公式 $((\forall x~A) \land B) \to ((\lnot C) \lor D)$。

  2. 可以证明:如果是使用前缀表示法(如 $\lor F_1 F_2$), 那么括号便不再是必需的——即每个公式都只有唯一的解读方式。 对于项来说也是如此。 之所以不考虑使用前缀表示法是因为 在实际应用中前缀表示法更难阅读。

  3. 我们也会采用下述简写方式:

    • $\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)$。

1.2.3.注意.03:公式的树状表示

和项一样,公式也可以被视作一棵树:其中

  • 每个节点都被一个连结词或量词所标记,并且
  • 每个叶子都被一个原子公式所标记。

比如公式 $(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}$

1.2.例子.9:语言 $\setLan_1$,$\setLan_5$ 中的公式
  1. 公式 $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$ 的元素构成的集合)是我们考虑的群的 一个正规子群。
  2. 公式 $\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$ 具有连续性。
1.2.定义.10:子公式,公式的语言
  1. 公式 $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)$。
  2. 公式 $F$ 只使用了语言 $\setLan$ 中的有限个符号。 这些符号构成的集合称作公式的语言 Langage de la Formule, 记作 $\setLan(F)$。
1.2.例子.11:语言 $\setLan_5$ 中公式的子公式以及公式语言

公式

  • $\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$ 以及
  • 二元关系符号 $>$ 和 $<$

构成。

1.2.3.注意.04:子公式在公式树状表示中的含义

如果公式 $F$ 被视作是一棵树,
那么公式 $F$ 的子公式便是对应的子树,其根部为 $F$ 公式树的节点。

和项一样,我们将对公式的尺寸使用递归定义概念(或证明结论)。

1.2.定义.12:公式的尺寸(又称长度)

公式 $F$ 的尺寸 Taille (也称作长度 Longueur,记作 $\tau(F)$)
是公式 $F$ 中连结词和量词的出现次数。形式化定义如下:

  • $\tau(F) = 0$,如果 $F$ 是原子公式的话;
  • $\tau(F_1 \oplus F_2) = 1 + \tau(F_1) + \tau(F_2)$, 其中 $\oplus \in \{\lor, \land, \to\}$;
  • $\tau(\lnot F_1) = \tau(Qx~F_1) = 1 + \tau(F_1)$, 其中 $Q \in \{\forall, \exists\}$。
1.2.3.注意.05:公式函数的递归定义,公式性质的归纳证明(高度和尺寸)
  1. 为了定义某个以公式作为实参的函数 $\Phi$,需要
    • 规定 $\Phi$ 应用在原子公式后的结果,并且
    • 规定 $\Phi(\lnot F_1)$、$\Phi(Qx~F_1)$ 和 $\Phi(F_1 \oplus F_2)$
      使用 $\Phi(F_1)$ 和 $\Phi(F_2)$ 描述的方式。
  2. 为了证明 $P$ 对所有公式都成立,需要
    • 证明 $P$ 对所有原子公式都成立,并且
    • 证明 $P(\lnot F_1)$、$P(Qx~F_1)$ 和 $P(F_1 \oplus F_2)$
      可由 $P(F_1)$ 和 $P(F_2)$ 作为前提推出。
  3. 为了证明 $P$ 对所有公式都成立,需要
    • 证明 $P$ 对所有尺寸等于 $0$ 的公式都成立,并且
    • 证明 $P$ 对所有尺寸等于 $n$ 的公式成立
      可由 $P$ 对所有尺寸小于 $n$ 的公式都成立推出。

最后一点便是对公式的尺寸进行递归定义(或归纳证明)的具体描述。

1.2.定义.13:公式的主要运算符(又称主要连结词)

公式 $A$ 的主要运算符 Opérateur Principal (又称主要连结词 Connecteur Principal)的定义如下:

  • 如果 $A$ 是原子公式,
    那么它没有主要运算符。
  • 如果 $A = \lnot B$,
    那么 $\lnot$ 是 $A$ 的主要运算符。
  • 如果 $A = B \oplus C$ 且 $\oplus \in \{\land, \lor, \to\}$,
    那么 $\oplus$ 是 $A$ 的主要运算符。
  • 如果 $A = Q x~B$ 且 $Q \in \{\forall, \exists\}$,
    那么 $Q$ 是 $A$ 的主要运算符。

1.2.4 自由变量和约束变量 Variables Libres et variables Liées

引入量词 $\forall$ 和 $\exists$ 后 会带来两个与变量命名相关的问题。

  1. 例如,通常我们会认为 公式 $\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$!

  2. 我们经常需要在另一个项或公式中将某个变量 替换(或代换 Substituer)为某个项。例如, 如果已经定义 $Z[z] : \forall x~(x \cdot z = z \cdot x)$ 并且想要写出 $Z[2x]$, 那么我们就需要重命名约束变量 $x$ 并写下 $\forall y~(y \cdot 2x = 2x \cdot y)$。

为了不让本章的阅读变得过于乏味,我们 不会形式化这两个概念(重命名和代换), 而是只给出非正式定义 并依托读者对这些概念的直觉理解—— 因为我们在数学中经常会操作这些概念。

1.2.定义.14:公式的自由变量

假设 $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\}$。
1.2.例子.15:语言 $\setLan_2$ 或 $\setLan_5$ 中公式的自由变量
  1. 如果 $F : \forall x~(x \cdot y = y \cdot x)$,
    那么 $\setVarLib(F) = \{y\}$。
  2. 如果 $G : {\forall x~\exists y~(x \cdot z = z \cdot y)} \land {x = z \cdot z}$,
    那么 $\setVarLib(G) = \{x, z\}$。
  3. 如果 $H : \forall x~(y = 0)$,
    那么 $\setVarLib(H) = \{y\}$。

我们也可以用下述方式定义这些概念:

  1. 公式 $F$ 中变量 $x$ 的一个 出现 Occurence 是 该变量在公式 $F$ 中的一个位置。不要将其与变量本身这个对象混淆。
  2. 公式 $F$ 中变量 $x$ 的一个出现是 约束的 Liées(或 哑的 Muette) 当且仅当在通向该出现所处叶子的分支中 存在 $\forall x$ 或 $\exists x$, 否则该出现便是 自由的 Libre
  3. 变量 $x$ 在公式 $F$ 中是自由的当且仅当其至少有一次自由出现。 哑变量或约束变量是指出现在公式中但非自由的变量。下述陈述留作习题: 变量 $x$ 在公式 $F$ 中是自由的当且仅当 $x \in \setVarLib(F)$。
1.2.4.注意.01:变量的自由出现和约束出现
  1. 在刚才的例子中会注意到:一个变量 可能同时拥有自由出现和约束出现。
  2. 一个变量在公式 $F$ 中可能是约束的, 但在 $F$ 的某个子公式中却可能是自由的。 例如 $y$ 在 $x \cdot y = y \cdot x$ 中是自由的, 但在 $\forall y~(x \cdot y = y \cdot x)$ 中是约束的。
  3. 量词须位于被绑定变量的出现的前方,并且还得位于该出现所处的公式树分支上, 而不只是简单地将其置于出现的前面(对于公式的线性形式而言)。 例如在公式 $(\forall x~x^{2} > 0) \land x > 3$ 中, $x$ 的第二个出现是自由的(因为该 $\forall$ 仅绑定第一个 $x$)。
1.2.定义.16:$\alpha$-等价

我们称公式 $F$ 和 $G$ 为 $\alpha$-等价的 $\alpha$-Équivalentes
当且仅当它们(在语法上)的差异仅在于约束变量的命名方式不同。

1.2.例子.17:$\alpha$-等价

$\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)$ 则不是。

1.2.4.注意.02:$\alpha$-等价在人类和计算机的视角中

我们不能直接将公式 $\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$ 的一个出现会被替换为一个整数, 其表示(从该出现出发到公式根部的分支上) 在遇到与之对应的量词前需要跨过的量词个数。 不幸的是,尽管这种表示法对于计算机来说非常方便, 但对于人类来说公式会变得几乎无法阅读。

1.2.4.约定.01:变量的自由出现和约束出现不可重名

从今往后我们将在 $\alpha$-等价的意义下工作, 即将任何两个彼此 $\alpha$-等价的公式都视为等同的。 为了避免变量捕获的问题, 我们将避免写出 同时包含某个变量的自由出现和约束出现的公式。 这在数学中很常见:例如,出于谨慎考虑, 我们不会在同一公式中写下 $\sin(t)$ 和 $\int_{0}^{1} \cos(t)~dt$。

1.2.记号.18:带自由变量的公式记法

为了更精确地表示公式可能拥有的自由变量, 我们使用记号 $F[x_1, \ldots, x_n]$: 这表示 $F$ 的自由变量位于 $x_{1}$,$\ldots$,$x_{n}$ 之中——即 如果 $y$ 是 $F$ 的自由变量, 那么 $y$ 便是某个 $x_i$; 但是并非所有 $x_n$ 都必须在 $F$ 中有自由出现。

1.2.定义.19:闭公式,闭包
  1. 闭 Close 公式是不含自由变量的公式。 1.2.例子.7 中的所有公式都是闭的。
  2. 假如公式 $F$ 有自由变量 $x_1$,$\ldots$,$x_n$。 那么公式 $F$ 的(全称)闭包 Clôture 是闭公式 $\forall x_1, \ldots, x_n~F$。 这里存在形式上的滥用:我们默认变量的顺序是固定的; 但这无关紧要,选择另一种顺序会得到一个不同但依然等价的公式。
1.2.4.注意.03:一阶逻辑的局限性,高阶逻辑

前面定义的记号都是针对一阶逻辑公式的; 但是某些(数学中常用的)公式并非一阶逻辑公式,比如:

  • 我们无法用一阶逻辑公式来表达“所有理想都是主理想”。 因为这需要同时量化一阶对象(环的元素)和二阶对象(环的子集)。
  • 所有以“对所有整数 $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]$——如果上下文足够清晰的话)。 这会导致两个困难:

  1. 很明显只有 $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$ 后面只能有变量。)
  2. 这里同样存在捕获问题。 一个学生清楚地知道: 如果函数 $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)$。
1.2.定义.20:代换

假如 $F$ 是一个公式,$x$ 是一个变量,$t$ 是一个项。 那么 $F[x := t]$ 是通过将 $F$ 中所有 $x$ 的自由出现替换为 $t$ 得到的公式, 不过在此之前需对所有在 $t$ 里有自由出现的 $F$ 的约束变量进行重命名。

1.2.5.注意.01:代换,重命名,连续代换
  1. 重命名的目的是为了避免变量捕获。显然, 唯一可能发生的捕获就是上述定义中所描述的那些。 如果没有捕获,当然就不需要进行重命名。
  2. 要想避免捕获 只需对表达式 $F[x := t]$ 应用第 21 页的约定即可。 因此我们会对 $F$ 中的约束变量进行重命名 以确保没有任何变量同时拥有自由出现和约束出现。
  3. 我们也可以定义 将 $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]$ —— 如果没有歧义的话。
  4. 注意:
    公式 $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, 其定义如下:

1.2.定义.21:命题演算的公式集

集合 $\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$
1.2.6.注意.01:命题变量

前面提到这些记号意味着公式是通过使用变量和 $\bot$, 并利用 $\lnot, \lor, \land$ 等构造出来的。 零元关系符号通常被称作 命题变量 Variable Propositionnelles。 这并不是一个很好的命名方式, 因为“变量”一词常被用来表示一个对象, 而在这里它表示的却是一个公式。 不过我们还是会采用这种非常经典的术语。

1.2.例子.22:命题演算中的公式

下面的公式均为命题演算中的公式,
它们以 $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$。 为了形式化这一点,我们引入了相继式的概念。

1.3.定义.1:相继式,语境,结论

一个相继式 Séquent 是一个有序对(记作 $\Hypo \vdash F$),其中:

  • $\Hypo$ 是一个有限集合,包含一系列公式。 $\Hypo$ 代表了可以使用的假设 Hypothèses。 该集合也称为相继式的 语境 Contexte
  • $F$ 是一个公式,代表我们想要推演出的公式。 我们称该公式为相继式的 结论 Conclusion
1.3.2.注意.01:相继式中语境和结论不必是闭的

注意我们并没有要求 $\Hypo$ 里的公式和 $F$ 都必须是闭的 closes。 例如后面会看到:为了推演闭公式 $\forall x~F[x]$, 我们需要推演出公式 $F[x]$ —— 如果 $x$ 在假设中都不是自由的话。

1.3.记号.2:语境

假如 $\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:可被推演的相继式,可被推演的公式

一个相继式 $\Hypo \vdash F$ 是 可被推演的 Démontrable(或 可被推导的 Dérivable
当且仅当它可以通过有限次应用 下一节所描述的规则来获得。

一个公式 $F$ 是 可被推演的 Démontrable 当且仅当相继式 $\vdash F$ 是可被推演的。

1.3.2.注意.02:可被推演的相继式和公式
  1. “$\Hypo \vdash F$ 是可被推演的”意味着
    存在一个推演满足结论为 $F$ 且假设集为 $\Hypo$。
  2. “$\Hypo \nvdash F$”意味着
    “$\Hypo \vdash F$ 是不可被推演的”。
  3. 某些推演系统并不使用假设/结论的形式。
    我们将在第 1.7 节中介绍其中一种系统

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 ?

  1. 一条规则由下述部分组成:

    • 一个集合,包含一系列前提 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$)。

  2. 每条规则有两种理解方式:

    • 自下而上 de Bas en Haut : 如果我们想要推演出结论, 那么只需通过使用该规则来推演出前提即可。 这便是我们在寻找推演时所采用的解读方式。 这对应于分析 Analyse

    • 自上而下 de Haut en Bas : 如果前提均已被推演出, 那么结论则可被推演出。 这是我们在撰写推演时所采用的解读方式。 这对应于概括 Synthèse

    每条规则后都有一段非形式化文字 用来说明该规则的直观含义, 并在必要时给出一些补充说明。这些文字 有时会以自上而下的方式解读规则, 有时则以自下而上的方式解读规则; 这是因为有些规则 在某一个方向上会比 在另一个方向上更容易理解。

  3. 每个逻辑连结词符号都有与之对应的两条规则:

    • 引入规则 Règles d’Introduction, 用于推演以该符号为主要运算符的公式;
    • 消去规则 Règles d’Élimination, 用于使用以该符号为主要运算符的公式。
  4. 由于等号具有特殊的地位, 因此我们也为其引入了两条规则。 在第 3 章中我们将看到 另一种利用该符号特殊地位的方法。

  5. 除了上述规则之外,还有三条通用规则:

    头两条规则(公理弱化)不对应于任何连结词: 第一条规则是唯一一条没有前提的规则, 因此它对应于其所处推演片段中的某个末端(树的叶子); 第二条规则意味着在推演片段中某些假设可能并未被使用。

    第三条规则(谬误消去(古典逻辑)) 常常与涉及 $\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$ 赋予一个新名字。

1.3.3.注意.01:关于全称引入和存在消去

$\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$。
$\qquad\begin{prooftree} \AXC{}\RL{\(\axm\)} \UIC{\(\Hprev{{\Hnext{\Hypo}}} \vdash \lnot A\)} \AXC{}\RL{\(\axm\)} \UIC{\(\Hprev{{\Hnext{\Hypo}}} \vdash A\)} \RL{\(\elimNeg\)} \BIC{\(\Hnext{\Hprev{\lnot A},A}\vdash \bot\)} \RL{\(\intrTo\)} \UIC{\(\Hnext{\lnot A} \vdash A \to \bot\)} \RL{\(\intrTo\)} \UIC{\(\vdash \lnot A \to (A\to \bot)\)} % ------------ \AXC{}\RL{\(\axm\)} \UIC{\(\Hnext{\Hprev{\Hypo'}\vdash A\to \bot}\)} \AXC{}\RL{\(\axm\)} \UIC{\(\Hnext{\Hprev{\Hypo'}\vdash A}\)} \RL{\(\elimTo\)} \BIC{\(\Hnext{\Hprev{A\to \bot}, A}\vdash \bot\)} \RL{\(\intrNeg\)} \UIC{\(\Hnext{A\to \bot} \vdash \lnot A\)} \RL{\(\intrTo\)} \UIC{\(\vdash (A\to \bot)\to \lnot A\)} \RL{\(\intrCon\)} \BIC{\(\vdash \lnot A \leftrightarrow (A\to \bot)\)} \end{prooftree}$

上述记法称作是树状表示法 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)$ 的缩写)。

1.3.3.注意.02:$\lnot$ 的另一种写法

这个小结论意味着连结词 $\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$ 得出。
    • 为了证明 $\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$ 得出。

注意到:上述推演的两种阅读方式(撰写和搜寻)之间唯一的区别在于,

  • 对于前者我们是从上到下阅读树状结构,而
  • 对于后者我们是从下到上阅读树状结构。

f) 一些启发思路 Quelques Heuristiques

重复下述步骤通常是一个不错的思路:

  1. 如果能够套用引入规则,就套用它。
  2. 否则对假设(或定理)套用消去规则。

需要注意有些规则是可逆的,即 如果前提可被推演出, 那么结论也可被推演出—— 也就是说套用该规则可能“没有损失”, 但并非所有规则都是如此;例如, $\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

下面的例子会突出展示各条规则的作用。 这里我们采用树状表示法来撰写推演。 下一个小节我们将放弃这种过于冗长的记法。

为了简化树状结构,我们为某些假设集赋予了名称。 它们的定义会在推演中首次引入该名称的地方给出(以自下而上方式阅读)。

1.3.例子.4:$\vdash (A \land B \to C) \leftrightarrow (A \to B \to C)$

$\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}$
1.3.4.注意.011.3.例子.4 点评

这个小结论意味着: 不论是将单个公式 $A \land B$ 作为假设, 还是将两个公式 $A$ 和 $B$ 一起作为假设, 效果都是一样的。

1.3.例子.5:$\vdash (C\to A) \lor (C\to B)\to (C\to A\lor 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}$
1.3.例子.6:$\vdash (\forall x~A\lor \forall x~B) \to \forall x~(A\lor B)$

$\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}$
1.3.4.注意.021.3.例子.6 里的全称引入全称消去以及暗藏的等号消去
  1. 在这里使用 $\intrAll$ 是合法的,因为变量 $x$ 在 $\forall x~A \lor \forall x~B$、 $\forall x~A$、$\forall x~B$ 中均无自由出现。
  2. 在使用 $\elimAll$ 时,我们暗中将变量 $x$ 替换为了项 $x$。 显然 $A[x := x]$ 就是 $A$ 本身。 今后我们会经常使用这种平凡的替换。
1.3.例子.7:$\vdash \exists x~(A\wedge B) \to (\exists x~A \wedge \exists x~B)$

$\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}$
1.3.4.注意.031.3.例子.7 里的存在消去存在引入以及暗藏的等号消去
  1. 在这里使用 $\elimExt$ 是合法的,因为变量 $x$ 在 $\exists x~(A \land B)$ 和 $\exists x~A \land \exists x~B$ 中均无自由出现。
  2. 在使用 $\intrExt$ 时,我们暗中将变量 $x$ 替换为了项 $x$。
1.3.例子.8:$\vdash \neg (A\wedge B)\to (\neg A\vee \neg B)$

$\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}$
1.3.4.注意.041.3.例子.8 其实是在证明德摩根律的一个方向

1.3.例子.41.3.例子.7 中的推演 不过是对日常推理的一种形式化表达。 最后一个推演看起来并不符合直觉, 因为我们从未对诸如德摩根律这样“早已被视为真的”结果进行推演。

1.3.例子.9:等号的对称性

此例子推演出了等号的对称性:

$\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$ 。

1.3.例子.10:等号的传递性

最后一个例子推演出了等号的传递性(我们用 $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$ 来标记。

1.3.例子.11:错误使用臆想规则推演出 $\vdash A\vee B \to A\wedge B$

$\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$。

1.3.例子.12:错误使用存在消去推演出 $\vdash \exists x~A \to \forall x~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$ 被错误使用。

1.3.例子.13:错误使用存在消去推演出 $\vdash \exists x~A \land \exists x~B \to \exists x~(A \land B)$
$\qquad \begin{prooftree} \AXC{}\RL{\(\axm\)} \UIC{\(\Hnext{\Hprev{F}}\vdash \exists x~A\wedge \exists x~B\)} \RL{\(\elimConL\)} \UIC{\(\Hnext{F}\vdash \exists x~A\)} % ---------------- \AXC{}\RL{\(\axm\)} \UIC{\(\Hnext{F},A\vdash A\)} % --------------- \RL{\(\errr\)} \BIC{\(\Hprev{F}\vdash A\)} % --------------- \AXC{}\RL{\(\axm\)} \UIC{\(\Hnext{\Hprev{F}}\vdash \exists x~A\wedge \exists x~B\)} \RL{\(\elimExt\)} \UIC{\(\Hnext{F}\vdash \exists x~B\)} % --------------- \AXC{}\RL{\(\axm\)} \UIC{\(\Hnext{F},B\vdash B\)} % -------------- \RL{\(\errr\)} \BIC{\(\Hprev{F}\vdash B\)} % -------------- \RL{\(\intrCon\)} \BIC{\(\Hnext{\Hprev{F=\exists x~A\wedge \exists x~B}}\vdash A\wedge B\)} \RL{\(\intrExt\)} \UIC{\(\Hnext{\exists x~A\wedge \exists x~B}\vdash \exists x~(A\wedge B)\)} \RL{\(\intrTo\)} \UIC{\(\vdash\exists x~A\wedge \exists x~B\to \exists x~(A\wedge B)\)} \end{prooftree}$

没有 $\vdash \exists x~A \land \exists x~B \to \exists x~(A \land B)$ 这样的结论。 满足 $A$ 的对象可能与满足 $B$ 的对象不同。例如, 存在一个偶数, 存在一个奇数, 但是一个既是偶数又是奇数的整数并不存在。

错误同样来自于对规则 $\elimExt$ 的使用。 应当重命名变量 $x$。

1.3.例子.14:错误使用全称引入推演出 $\vdash \forall x~(A \lor B) \to \forall x~A \lor \forall x~B$
$\qquad \begin{prooftree} \AXC{}\RL{\(\axm\)} \UIC{\(\Hnext{\Hprev{F}}\vdash \forall x~(A\vee B)\)} \RL{\(\elimAll\)} \UIC{\(\Hnext{\Hprev{F}}\vdash A\vee B\)} % ------------ \AXC{}\RL{\(\axm\)} \UIC{\(\Hnext{A}\vdash A\)} \RL{\(\errr\)} \UIC{\(\Hprev{A}\vdash \forall x~A\)} \RL{\(\aff\)} \UIC{\(\Hprev{F,\Hnext{A}}\vdash \forall x~A\)} \RL{\(\intrDisL\)} \UIC{\(\Hnext{\Hprev{F},A}\vdash \forall x~A\vee \forall x~B\)} % ------------ \AXC{}\RL{\(\axm\)} \UIC{\(\Hnext{B}\vdash B\)} \RL{\(\errr\)} \UIC{\(\Hprev{B}\vdash \forall x~B\)} \RL{\(\aff\)} \UIC{\(\Hprev{F,\Hnext{B}}\vdash \forall x~B\)} \RL{\(\intrDisR\)} \UIC{\(\Hnext{\Hprev{F},B}\vdash \forall x~A\vee \forall x~B\)} % ------------- \RL{\(\elimDis\)} \TIC{\(\Hnext{F=\forall x~(A\vee B)}\vdash \forall x~ A\vee \forall x~B\)} \RL{\(\intrTo\)} \UIC{\(\vdash \forall x~(A\vee B)\to \forall x~A\vee \forall x~B\)} \end{prooftree}$

没有 $\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]$。

    如此假设集便可以分为两类:

    • 主要假设 Hypothèses Principales: 会一直被保留到推演结束。
    • 辅助假设 Hypothèses Auxiliaires: 只用于构造子推演,随后会被卸载掉。

    一个以 $\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

1.3.例子.15:德摩根律 $\vdash \neg (A\vee B) \leftrightarrow (\neg A\wedge \neg B)$

$\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}$
1.3.6.译注.011-3-例子-15 的线性表示法
  • 从左往右:

    $\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}$
1.3.例子.15b:德摩根律 $\vdash \neg\exists x~A \leftrightarrow \forall x~\neg A$

$\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}$

1.3.6.译注.021-3-例子-15b 的线性表示法
  • 从左往右:

    $\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}$
1.3.例子.15c:排中律 $\vdash A\vee \neg A$

$\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

1.3.记号.16: 推演的线性表示法

我们 在每行的左侧写下要证明的相继式, 在每行的右侧写下要应用的规则名称。此外 我们还会颠倒推演的顺序: 相继式结论会被写在最上方,即推演的开头。 这样在我们寻找推演时会更自然一些。

有三种情况。

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.例子.171.3.例子.8 的线性表示法

下面的例子即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 章中回顾该规则。

1.3.命题.18: 切规则是可被推演的

下述规则是可被推演的:

$\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.命题.191.3.命题.23 介绍了 左规则 Règles Gauche。 这些规则允许我们在相继式的左侧引入连结词。

1.3.命题.19: 合取左规则是可被推演的

下述规则是可被推演的:

$\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}$
1.3.命题.20: 析取左规则是可被推演的

下述规则是可被推演的:

$\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}$
1.3.命题.21: 箭头左规则是可被推演的

下述规则是可被推演的:

$\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}$

1.3.命题.22: 否定左规则是可被推演的

下述规则是可被推演的:

$\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}$

1.3.命题.23: 全称左规则是可被推演的

下述规则是可被推演的:

$\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}$
1.3.命题.24: 存在左规则是可被推演的

下述规则是可被推演的:

$\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.命题.251.3.命题.28 提供了 归谬法的另一种形式。在第 4 章我们将比较 下述规则谬误消去(古典逻辑) 的作用。

1.3.命题.25: 谬误消去(直觉主义)是可被推演的

下述规则(称作谬误消去(直觉主义)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}$

1.3.命题.26: 皮尔士定律是可被推演的

下述规则(称作皮尔士定律 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}$

1.3.命题.27: 排中律是可被推演的

下述规则(称作排中律 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}$
1.3.命题.28: 换质换位律是可被推演的

下述规则(称作换质换位律 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é

1.3.命题.29:等号左规则是可被推演的

下述规则是可被推演的:

$\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}$
1.3.命题.29b:等号左规则的推论1是可被推演的

下述规则是可被推演的:

$\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}$
1.3.命题.29c:等号左规则的推论2是可被推演的

下述规则是可被推演的:

$\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

1.3.命题.30:德摩根率(合取)是可被推演的

下述规则是可被推演的:

$\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}$
1.3.命题.30b:德摩根率(析取)是可被推演的

下述规则是可被推演的:

$\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}$
1.3.命题.30c:德摩根率(箭头)是可被推演的

下述规则是可被推演的:

$\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}$
1.3.命题.30d:德摩根率(全称)是可被推演的

下述规则是可被推演的:

$\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}$
1.3.命题.30e:德摩根率(存在)是可被推演的

下述规则是可被推演的:

$\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}$
1.3.9.注意.01:简化的线性记法中关于项的替换的补充说明

在规则 $\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

有时推演的某一部分并不会引起我们的兴趣。比如 当我们更愿意把注意力放在推演的某一个部分,或者是 当我们认为某一部分推演是显而易见的,又或者是 某个推演与前面写过的推演十分相似。 此时我们只需给出一些提示来完成整个证明即可。

索引

杂项

定义: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]

给我买杯饮料!
微信微信

目录