《哥德尔证明》阅读笔记——初等命题逻辑的一致性证明过程

前言

前两节主要阐述了公理系统的发展历史,一致性问题的提出,以及希尔伯特的洞见,本节将给出哥德尔证明所需的最后一次具体背景阐述,包含两个问题:一是罗素所著的《数学原理》是为何而写?二是从数学原理中截取一段,示范对初等命题逻辑系统给出希尔伯特所设想的那种一致性的绝对证明

《数学原理》的背景

就我们日常所接触的数学证明而言,几乎任何一个证明中都包含大量默认的推理规则和逻辑定理。
比如证明素数有无穷多个,其过程简述如下:

假定素数有有穷个,将最大的素数命名为 p p p
那么考虑一个自然数 y = ( 2 × 3 × 5 × 7 × ⋯ × p ) y=(2\times3\times5\times7\times \cdots\times p) y=(2×3×5×7××p)
如果 y y y是素数,那么 p p p就不是最大的素数;
如果 y y y是合数,那么它必定有素因子,且素因子不属于 { 2 , 3 , 5 , 7 , ⋯   , p } \{2,3,5,7,\cdots ,p\} {2,3,5,7,,p}中任何一个,同样 p p p仍不是最大的素数。
y y y要么是素数要么是合数。
所以 p p p不是最大的素数,不存在最大的素数。

以上推论可以说足够严谨了,但较真的话能观察到其中包含了一些默认的规则,比如为什么 y y y要么是素数要么是合数?这其实是必然原理,即 p ∨ ∼ p p\lor \sim p pp,一个陈述或其非是必然的。我们日常使用这些逻辑原理而不自知,事实上,我们这种传统的逻辑演绎是严重不完整的。

逻辑的研究在近代复苏始于布尔的《逻辑的数学分析》,他发明了布尔代数为传统逻辑原理提供了精准记法,扩展了逻辑原理的研究。之后,数学家尝试将纯数学变成形式逻辑的一部分,这一思路的集大成这就是罗素的《数学原理》,这一工作的目的是将所有数论和分析的概念用纯逻辑真理的基本命题演绎出来。虽然这个过程很复杂,三卷数学原理中花费了几百页才从逻辑真理证明出1+1=2,几乎没有人想用这样的系统做数论研究,但《数学原理》实质上将数论系统的一致性化为形式逻辑本身一致性的问题,就意义上,数论的公理都是形式逻辑的定理,它的另一个意义,是把纯数学中所有陈述用一种标准方式进行编码,明确了数学证明中推论规则。

初等命题逻辑一致性的绝对证明

初等命题逻辑系统形式化

形式化的一般步骤

首先我们要明晰一般系统是如何形式化的,这里以几条原则说明。

  • 指号目录:此系统需要建立一个指号目录,只允许用此目录中的指号构成串。可以理解为英文中的词汇表。
  • 形成规则:表示指号形成串的规则,这个按规则形成的串,可以称为公式,或者良构串,或者叫句子。后面可能混用这些名词。形成规则只是指串是否合法,和真假无关。
  • 转换规则:实际上就是推论规则,描述了公式的精细结构,从某些公式推导其他具有既定结构公式的方法。
  • 初始公式:即选择一些公式作为公理。
一般记号

这里额外补充一些书中的记法,虽然下面列出了这些符号在命题逻辑系统中的含义,但应当理解的是,在完全形式化的系统中,这些意义是抽离的,本文中所有证明不需要默认这些符号有这些含义,而是把这些符号当成完全无意义的指号

  • ∼ \sim 是非的缩写
  • ∨ \lor 是或的缩写
  • ⊃ \supset 是“如果…,那么…”的缩写,或者理解为推导出,或者叫做蕴涵。
  • ∧ \land 是与的缩写
初等命题逻辑系统的形式化
  • 指号目录的选择:包含变元和常项两种指号,变元即可以使用句子替换的记号,常项有句子连接词和标点符号。举例来说: ( p ∨ q ) ⊃ ( p ∨ q ) (p\lor q)\supset(p\lor q) (pq)(pq)就是一个句子,其中, p p p q q q是变元,它们可以用另一个句子替换掉, ∨ ∧ ∼ ⊃ ( ) \lor\land\sim\supset () ∼⊃()等都是句子连接词或符号。
  • 形成规则
    • 句子变元单独可视为一个句子(公式、良构串)。
    • 如果 S S S代表一个公式,那么 ∼ ( S ) \sim(S) (S)也是一个公式。
    • 如果 S 1 S_1 S1 S 2 S_2 S2都是公式,那么 ( S 1 ) ∧ ( S 2 ) (S_1)\land(S_2) (S1)(S2) ( S 1 ) ∨ ( S 2 ) (S_1)\lor(S_2) (S1)(S2) ( S 1 ) ⊃ ( S 2 ) (S_1)\supset(S_2) (S1)(S2)都是公式。
  • 转换规则:有两条,分别是
    • 替换规则:对于一个包含句子变元的公式,总可以将其中某个变元的每一次出现都替换为一个公式,从而得到一个新的公式。比如 p ⊃ p p\supset p pp可以将 p p p替换为 p ∨ q p\lor q pq,从而得到 ( p ∨ q ) ⊃ ( p ∨ q ) (p\lor q)\supset (p\lor q) (pq)(pq)
    • 分离规则:如果有形式上是 S 1 S_1 S1 S 1 ⊃ S 2 S_1\supset S_2 S1S2的两个公式,总可以推出公式 S 2 S_2 S2。例如有 p ∨ ∼ p p\lor\sim p pp ( p ∨ ∼ p ) ⊃ ( p ⊃ p ) (p\lor \sim p)\supset (p\supset p) (pp)(pp),那么有 p ⊃ p 。 p\supset p。 pp
  • 初始公式(公理选择):这个演算的公理如下:
    • ( p ∨ p ) ⊃ p (p\lor p)\supset p (pp)p
    • p ⊃ ( p ∨ q ) p\supset (p\lor q) p(pq)
    • ( p ∨ q ) ⊃ ( q ∨ p ) (p\lor q)\supset (q\lor p) (pq)(qp)
    • ( p ⊃ q ) ⊃ ( ( r ∨ p ) ⊃ ( r ∨ q ) ) (p\supset q)\supset ((r\lor p)\supset (r\lor q)) (pq)((rp)(rq))

系统一致性的绝对证明

以下将分步骤给出此命题逻辑系统中,一致性的绝对证明,证明步骤中在《哥德尔证明》书中没有给出的部分,大部分来自于罗素的《数学原理》。
Step1:首先,此系统中可推导出一个定理: p ⊃ ( ∼ p ⊃ q ) p\supset (\sim p\supset q) p(pq),证明过程如下。

必须先声明,《哥德尔证明》这本书有漏掉的地方,在罗素原版的《数学原理》明确给出了: p ⊃ q = def ∼ p ∨ q p\supset q\overset{\text{def}}{=}\sim p\lor q pq=defpq,此处证明需要用到这个定义。

  1. 根据公理2, p ⊃ ( p ∨ q ) p\supset (p\lor q) p(pq),根据替换规则,用 ∼ p \sim p p取代 p p p可得: ∼ p ⊃ ( ∼ p ∨ q ) \sim p\supset(\sim p\lor q) p(pq)
    根据定义,上式子可重写为: ∼ p ⊃ ( p ⊃ q ) \sim p\supset(p\supset q) p(pq)
    再次运用替换规则,用 ∼ p \sim p p取代 p p p可得: ∼ ∼ p ⊃ ( ∼ p ⊃ q ) \sim\sim p\supset(\sim p\supset q) ∼∼p(pq)
    到这一步,证明还要继续,因为这个形式系统中,抽离了现实意义,不能有“把 ∼ \sim 看做否定,双重否定抵消”的想法。
  2. 第二步需要证明一个重要的性质,传递律。即若 a ⊃ b a\supset b ab,且 b ⊃ c b\supset c bc,则 a ⊃ c a\supset c ac。由公理4出发, ( p ⊃ q ) ⊃ ( ( r ∨ p ) ⊃ ( r ∨ q ) ) (p\supset q)\supset ((r\lor p) \supset(r\lor q)) (pq)((rp)(rq)),将 p p p取代为 b b b,将 q q q取代为 c c c,则由分离规则,通过 b ⊃ c b\supset c bc ( b ⊃ c ) ⊃ ( ( r ∨ b ) ⊃ ( r ∨ c ) ) (b\supset c)\supset((r\lor b)\supset(r\lor c)) (bc)((rb)(rc))立刻得出: ( r ∨ b ) ⊃ ( r ∨ c ) (r\lor b)\supset(r\lor c) (rb)(rc),将 r r r a a a取代,得到 ( a ∨ b ) ⊃ ( a ∨ c ) (a\lor b)\supset (a\lor c) (ab)(ac),再将 a a a ∼ a \sim a a取代,得到 ( ∼ a ∨ b ) ⊃ ( ∼ a ∨ c ) (\sim a\lor b)\supset (\sim a\lor c) (ab)(ac),即 ( a ⊃ b ) ⊃ ( a ⊃ c ) (a\supset b)\supset (a\supset c) (ab)(ac),再用一次分离规则就可以得出 a ⊃ c a\supset c ac,故传递律得证。
  3. 第三步需要证明 p ⊃ p p\supset p pp。通过公理2和公理1, p ⊃ ( p ∨ p ) p\supset(p\lor p) p(pp) ( p ∨ p ) ⊃ p (p\lor p)\supset p (pp)p,再根据传递律,即可证明 p ⊃ p p\supset p pp
  4. 接下来需要证明, p ⊃ ∼ ∼ p p\supset\sim\sim p p⊃∼∼p。对公理3运用两次替换规则,可得 ( ∼ p ∨ ∼ q ) ⊃ ( ∼ q ∨ ∼ p ) (\sim p\lor\sim q)\supset(\sim q\lor\sim p) (pq)(qp),再根据定义,可将其重写为: ( p ⊃ ∼ q ) ⊃ ( q ⊃ ∼ p ) (p\supset\sim q)\supset(q\supset\sim p) (p⊃∼q)(q⊃∼p),此时再进行两次取代,将 p p p取代为 ∼ p \sim p p,将 q q q取代为 p p p,可得: ( ∼ p ⊃ ∼ p ) ⊃ ( p ⊃ ∼ ( ∼ p ) ) (\sim p\supset\sim p)\supset(p\supset\sim(\sim p)) (p⊃∼p)(p⊃∼(p)),对步骤3得出的 p ⊃ p p\supset p pp用替换规则,得到 ∼ p ⊃ ∼ p \sim p\supset \sim p p⊃∼p,再用分离规则,可得 p ⊃ ∼ ( ∼ p ) p\supset\sim(\sim p) p⊃∼(p)
  5. 综合1中的结果和4中的结果: p ⊃ ∼ ( ∼ p ) p\supset\sim(\sim p) p⊃∼(p) ∼ ∼ p ⊃ ( ∼ p ⊃ q ) \sim\sim p\supset(\sim p\supset q) ∼∼p(pq),运用传递律可得: p ⊃ ( ∼ p ⊃ q ) p\supset(\sim p\supset q) p(pq)

Step2:在此定理的前提下,如果 S S S即其形式否定 ∼ S \sim S S都可以从此命题系统中推导出来,用替换规则让 S S S代替 p p p,可得: S ⊃ ( ∼ S ⊃ q ) S\supset (\sim S\supset q) S(Sq),运用分离规则,可得: ∼ S ⊃ q \sim S\supset q Sq,再用一次分离规则,即可得到 q q q

由于 q q q可以通过替换规则带入任何公式,那么任何公式都能通过这组公理推导出来(实际上是不可能的)。这个结论的内涵是:如果 S S S ∼ S \sim S S都可以由这组公理推导出来,那么任何公式都可以推导出来(也就是我们常说的,假命题可以推出任何命题)。

当然为了严谨性,不能轻易否定,证明还要继续下去,这个公理系统允许推导出任何公式吗?如果找到一个公式,是确信无法由公理系统推导的,那么我们最初的前提: S S S ∼ S \sim S S都可由这组公理推导出来就是错误的,那么系统就是一致的。

Step3:现在的任务是证明存在一个公式无法由公理推导出来,即某个公式不是定理。完成这个任务的方式是进行元数学方面的推理。基本思路是这样的:

  • 找到公理的一致属性。
  • 确认转换规则将遗传这个属性,所以任何公理推导出的定理都具备此属性。
  • 写出一个不具备此属性的公式,那么此公式就不是定理。
重言属性

罗素这套公理系统中可以选择“重言属性”,在非形式化的常见的命题逻辑解释下,重言属性即排除没有逻辑可能性的属性,在任意可能的世界为真,比如非 p p p p p p。当然这种解释有悖我们形式化的初衷,还是用现实中的模型,用真假来解释。那么更抽象的重言属性的描述在此展开。

我们创建两个类 K 1 K_1 K1 K 2 K_2 K2,同时我们将所有公式分类,分为基本公式和非基本公式,基本公式就是用作句子变元的字母,非基本公式就是排除了基本公式外的其他。

首先我们将基本公式任意放在两个类中。

非基本公式按以下规则放入两个类中:

  • 如果 S 1 S_1 S1 S 2 S_2 S2都在 K 2 K_2 K2中,那么具有 S 1 ∨ S 2 S_1\lor S_2 S1S2的公式也放在 K 2 K_2 K2中,否则放在 K 1 K_1 K1中。
  • 如果 S 1 S_1 S1 K 1 K_1 K1中, S 2 S_2 S2 K 2 K_2 K2中,那么形式为 S 1 ⊃ S 2 S_1\supset S_2 S1S2的公式放在 K 2 K_2 K2中,否则它放在 K 1 K_1 K1中。
  • 如果 S 1 S_1 S1 S 2 S_2 S2都在 K 1 K_1 K1中,形式为 S 1 ∧ S 2 S_1\land S_2 S1S2的公式被置于 K 1 K_1 K1中,否则放在 K 2 K_2 K2中。
  • 如果 S S S K 1 K_1 K1中,那么具有 ∼ S \sim S S形式的公式放于 K 2 K_2 K2中,否则置于 K 1 K_1 K1中。

此时,可以定义重言式为一个当且仅当它属于 K 1 K_1 K1类的公式。

可以考察四条公理:

  • ( p ∨ p ) ⊃ p (p\lor p)\supset p (pp)p,如果基本公式(句子变元 p p p)被分到 K 1 K_1 K1,那么根据规则1, ( p ∨ p ) (p\lor p) (pp)也属于 K 1 K_1 K1,根据规则2, ( p ∨ p ) ⊃ p (p\lor p)\supset p (pp)p仍应放到 K 1 K_1 K1中;如果基本公式(句子变元 p p p)被分到了 K 2 K_2 K2,那么根据规则1, ( p ∨ p ) (p\lor p) (pp)属于 K 2 K_2 K2,根据规则2, ( p ∨ p ) ⊃ p (p\lor p)\supset p (pp)p仍应放到 K 1 K_1 K1中。

  • 这里以表格的形式列出第二公理的分析。

    • p p p q q q ( p ∨ q ) (p\lor q) (pq) p ⊃ ( p ∨ q ) p\supset(p\lor q) p(pq)
      K 1 K_1 K1 K 1 K_1 K1 K 1 K_1 K1 K 1 K_1 K1
      K 1 K_1 K1 K 2 K_2 K2 K 1 K_1 K1 K 1 K_1 K1
      K 2 K_2 K2 K 1 K_1 K1 K 1 K_1 K1 K 1 K_1 K1
      K 2 K_2 K2 K 2 K_2 K2 K 2 K_2 K2 K 1 K_1 K1
  • 第三公理的分析如下。

    • p p p q q q ( p ∨ q ) (p\lor q) (pq) ( q ∨ p ) (q\lor p) (qp) ( p ∨ q ) ⊃ ( q ∨ p ) (p\lor q)\supset(q\lor p) (pq)(qp)
      K 1 K_1 K1 K 1 K_1 K1 K 1 K_1 K1 K 1 K_1 K1 K 1 K_1 K1
      K 1 K_1 K1 K 2 K_2 K2 K 1 K_1 K1 K 1 K_1 K1 K 1 K_1 K1
      K 2 K_2 K2 K 1 K_1 K1 K 1 K_1 K1 K 1 K_1 K1 K 1 K_1 K1
      K 2 K_2 K2 K 2 K_2 K2 K 2 K_2 K2 K 2 K_2 K2 K 1 K_1 K1
  • 第四公理分析如下。

    • p p p q q q r r r ( p ⊃ q ) (p\supset q) (pq) ( r ∨ p ) (r\lor p) (rp) ( r ∨ q ) (r\lor q) (rq) ( r ∨ p ) ⊃ ( r ∨ q ) (r\lor p)\supset (r\lor q) (rp)(rq) ( p ⊃ q ) ⊃ ( ( r ∨ p ) ⊃ ( r ∨ q ) ) (p\supset q)\supset ((r\lor p)\supset (r\lor q)) (pq)((rp)(rq))
      K 1 K_1 K1 K 1 K_1 K1 K 1 K_1 K1 K 1 K_1 K1 K 1 K_1 K1 K 1 K_1 K1 K 1 K_1 K1 K 1 K_1 K1
      K 1 K_1 K1 K 1 K_1 K1 K 2 K_2 K2 K 1 K_1 K1 K 1 K_1 K1 K 1 K_1 K1 K 1 K_1 K1 K 1 K_1 K1
      K 1 K_1 K1 K 2 K_2 K2 K 1 K_1 K1 K 2 K_2 K2 K 1 K_1 K1 K 1 K_1 K1 K 1 K_1 K1 K 1 K_1 K1
      K 1 K_1 K1 K 2 K_2 K2 K 2 K_2 K2 K 2 K_2 K2 K 1 K_1 K1 K 2 K_2 K2 K 2 K_2 K2 K 1 K_1 K1
      K 2 K_2 K2 K 1 K_1 K1 K 1 K_1 K1 K 1 K_1 K1 K 1 K_1 K1 K 1 K_1 K1 K 1 K_1 K1 K 1 K_1 K1
      K 2 K_2 K2 K 1 K_1 K1 K 2 K_2 K2 K 1 K_1 K1 K 2 K_2 K2 K 1 K_1 K1 K 1 K_1 K1 K 1 K_1 K1
      K 2 K_2 K2 K 2 K_2 K2 K 1 K_1 K1 K 1 K_1 K1 K 1 K_1 K1 K 1 K_1 K1 K 1 K_1 K1 K 1 K_1 K1
      K 2 K_2 K2 K 2 K_2 K2 K 2 K_2 K2 K 1 K_1 K1 K 2 K_2 K2 K 2 K_2 K2 K 1 K_1 K1 K 1 K_1 K1

由此可见,四条公理都具有重言属性。接下来还需要考察重言属性在转换规则下会传递。

  • 对于替换规则:其实替换规则不改变重言属性已经隐含在 K K K的定义里了,基本公式即用作句子变元的字母,也是替换规则允许替换的项,而 K K K的分类中,基本公式允许任意分布在 K 1 K_1 K1 K 2 K_2 K2中,不改变公式的重言属性。

  • 对于分离规则: S 1 S_1 S1 S 1 ⊃ S 2 S_1\supset S_2 S1S2如果都具有重言属性,必须证明 S 2 S_2 S2具有重言属性,假定 S 2 S_2 S2不具有重言属性,即 S 2 S_2 S2属于 K 2 K_2 K2,这立即引起了矛盾,因为 S 1 S_1 S1位于 K 1 K_1 K1,意味着根据重言属性规则2, S 1 ⊃ S 2 S_1\supset S_2 S1S2也属于 K 2 K_2 K2,前面以及假定了 S 1 ⊃ S 2 S_1\supset S_2 S1S2具有重言属性,它位于 K 1 K_1 K1

Step 4:现在可以总结前面几个步骤,给出整个证明脉络了,首先我们推出了,如果此系统允许 S S S ∼ S \sim S S都作为定理,那么我们可以推出的所有公式都是定理,然后我们又推出系统所有的定理都是重言式,现在只要找出一个公式不是重言式,那么我们的前提就不成立。这样的公式大量存在,比如 p ∨ q p\lor q pq就可以不是重言式,那两个基础句子变元都可以放在 K 2 K_2 K2类中。至此,我们完成了初等命题逻辑系统一致性的绝对证明。

你可能感兴趣的:(哥德尔证明,笔记,算法,人工智能)