计算逻辑中的哥德尔不完备性定理的证明结构
字数 3186 2025-12-22 00:13:45

计算逻辑中的哥德尔不完备性定理的证明结构

1. 基础准备:形式系统的语法与语义

我们先从最简单的“形式算术系统”开始想象。一个典型的形式系统(比如一阶皮亚诺算术,记作 PA)包含:

  • 符号表:包括逻辑符号(如 ∀, ∃, →, ∧, ∨, ¬, =)、变量(x, y, z…)、常数(如 0)、函数符号(如 后继 S, 加 +, 乘 ×)、谓词符号以及标点。
  • :由常数、变量和函数符号按规则组合成的表达式,如 S(S(0)) 表示数字2,x + S(0) 表示 x+1。
  • 公式:用谓词符号、等号和逻辑符号连接项构成的表达式。不含自由变量的公式称为句子,如 ∀x ∃y (x = y + y ∨ x = S(y + y)) 表示“每个数或是偶数或是奇数”。
  • 公理:一组预先给定的、作为推理起点的句子,包含逻辑公理和算术公理(如 ∀x (S(x) ≠ 0)∀x∀y (S(x)=S(y) → x=y), 归纳法模式)。
  • 推理规则:如分离规则(从 A 和 A→B 推出 B)。一个句子 φ 是定理,如果存在一个有穷的公式序列,以 φ 结尾,其中每个公式或是公理,或由序列中在先的公式应用推理规则得到。记作 ⊢ φ

系统的解释(语义)是赋予这些符号以数学含义。通常的标准解释是:变量取自然数,0 对应数字0,S 对应后继函数,+ 和 × 对应加法和乘法。在这个解释下为真的句子称为真命题

2. 哥德尔编码:将关于系统的陈述算术化

证明的关键是将关于形式系统自身的元数学陈述(如“公式φ是定理”)转化为系统内部可以谈论的算术陈述。这是通过哥德尔编码实现的。

  • 编码对象:系统中每一个符号、公式、公式序列(特别是证明)都被唯一地映射到一个自然数(哥德尔数)。
  • 编码方法:例如,为每个基本符号分配一个奇素数:0→3, S→5, ∀→7, ( → 11, ) → 13, …。一个公式(符号串)a₁a₂…aₖ 的哥德尔数是 2^g(a₁) × 3^g(a₂) × … × pₖ^g(aₖ),其中 pᵢ 是第 i 个素数,g(aᵢ) 是符号 aᵢ 的编码数。一个证明(公式序列)φ₁, φ₂, …, φₙ 的哥德尔数是 2^gn(φ₁) × 3^gn(φ₂) × … × pₙ^gn(φₙ),其中 gn(φ) 是公式 φ 的哥德尔数。
  • 元性质算术化:通过编码,关于系统的元性质变成了关于这些大数的数论性质。例如,“公式序列 P 是句子 φ 的一个证明” 这个二元关系,可以表达为一个关于两个自然数(gn(P)gn(φ))的、复杂但完全确定的算术关系 Proof(m, n),其含义是“m 是某个句子 φ 的证明的哥德尔数,且 n 是 φ 的哥德尔数”。
  • 可表示性:如果形式系统足够强(包含了递归论意义上的初等算术),那么像 Proof(m, n) 这样的递归关系(即能行可判定的关系),都可以在系统内部被一个公式 Proof(m, n) 数字可表示。这意味着:如果 Proof(m, n) 在元数学上为真,则系统能证明 Proof(┌m┐, ┌n┐)(这里 ┌m┐ 是数字 m 在形式系统中的标准项,如 S(S(…(0)…)));如果为假,则系统能证明 ¬Proof(┌m┐, ┌n┐)。这表明系统能“谈论”自身的证明。

3. 对角线引理:构造自指句

这是证明的核心构造步骤。

  • 定义函数:考虑一个包含自由变量 x 的公式 A(x)。将某个数字 n 代入 x 得到的句子 A(┌n┐) 也有一个哥德尔数。定义一个与公式 A(x) 和数字 n 相关的、关于 n 的函数:diag(n) = gn(A(┌n┐)),其中 A 本身的哥德尔数恰好是 n。这个函数是递归的,因此其对应的算术关系 Diag(m, n)(表示 m = diag(n))可在系统中用一个公式 Diag(m, n) 表示。
  • 构造自指句:现在考虑一个特定的公式 B(x)∀y (Diag(x, y) → ¬∃z Proof(z, y))。这个公式的含义是:“如果 y 是公式(其哥德尔数为 x)对自身编码数 x 代入后所得句子的哥德尔数,那么不存在 z 使得 z 是 y 的证明”。设公式 B(x) 的哥德尔数为 p。
  • 应用对角线:我们构造句子 G:B(┌p┐)。计算 G 的含义:
    G = B(┌p┐) = ∀y (Diag(┌p┐, y) → ¬∃z Proof(z, y))
    由于 Diag 表示 diag 函数,而 diag(p) 恰好是 G 本身的哥德尔数,记为 g。所以,在算术解释下,G 等价于:¬∃z Proof(z, ┌g┐)
  • 得到自指含义:因此,G 这个句子在算术上断言的是:“不存在自然数 z 使得 z 是哥德尔数为 g 的句子的一个证明的哥德尔数”。而哥德尔数为 g 的句子正是 G 本身。所以,G 等价于声称“G 在系统内不可证”,即 G ⇔ ¬(⊢ G)。这就是一个严格构造出来的、语义清晰的自指句,而非语义悖论。

4. 第一不完备性定理的证明

假设我们讨论的系统是一致的(不会同时证明 φ 和 ¬φ),并且包含足够的算术。

  1. 如果 G 可证:即 ⊢ G。由于系统一致,则 G 在标准模型下为真(我们假设系统是 ω-一致的,一个比一致性稍强的条件,后由罗塞尔改进为一致性)。但 G 断言“G 不可证”,与 ⊢ G 矛盾。
  2. 如果 ¬G 可证:即 ⊢ ¬G。¬G 等价于 ∃z Proof(z, ┌g┐),即断言“存在 G 的证明”。由于系统一致,G 就真的不可证,即 ¬(⊢ G)。这意味着“存在 G 的证明”这个算术陈述是假的。但系统包含了足够的算术,如果它证明了一个假的 Σ₁ 语句(形如 ∃x P(x) 的语句,P 是递归的),就会导致不一致(这与 ω-一致性或 1-一致性有关,罗塞尔的关键改进在于构造了一个更复杂的句子,仅用一致性假设就能推出矛盾)。因此,¬G 也不可证。

结论:在满足条件的一致形式系统中,存在如 G 这样的句子,它和它的否定在系统内都不可证明。即系统是不完备的:存在一个真的算术句子(G 在标准模型下为真,因为它断言自己不可证,而事实上它确实不可证),系统既不能证明它,也不能否定它。

5. 第二不完备性定理的概要

第一定理表明,足够强的、一致的系统 S 不能证明自指的不可证句 G。哥德尔进一步意识到,“系统 S 是一致的” 这个元数学陈述,也可以被算术化,在 S 内部表示为一个句子 Con(S)。通常 Con(S) 定义为 ¬∃x Proof(x, ┌0=1┐),即“不存在 0=1 的证明”。

第二定理的证明思路是:仔细分析第一定理的证明过程,可以发现这个证明本身可以在系统 S 内部形式化。也就是说,S 能够证明一个条件句:Con(S) → G。因为 G 断言自己的不可证性,而第一定理的证明本质上建立了“如果 S 一致,则 G 不可证”这一事实,这个推理可以被 S 模拟。

现在,假设 S 能证明自身的一致性,即 ⊢ Con(S)。那么,结合 S 内可证的 Con(S) → G,应用分离规则,S 就能证明 G。但这与第一定理(G 在 S 中不可证)矛盾。因此,假设不成立。

结论:对于满足条件的一致系统 S,其一致性陈述 Con(S) 在 S 内部不可证。这意味着,系统不能用自己的工具证明自身的无矛盾性。要证明 S 的一致性,必须使用比 S 更强的元理论。

计算逻辑中的哥德尔不完备性定理的证明结构 1. 基础准备:形式系统的语法与语义 我们先从最简单的“形式算术系统”开始想象。一个典型的形式系统(比如一阶皮亚诺算术,记作 PA)包含: 符号表 :包括逻辑符号(如 ∀, ∃, →, ∧, ∨, ¬, =)、变量(x, y, z…)、常数(如 0)、函数符号(如 后继 S, 加 +, 乘 ×)、谓词符号以及标点。 项 :由常数、变量和函数符号按规则组合成的表达式,如 S(S(0)) 表示数字2, x + S(0) 表示 x+1。 公式 :用谓词符号、等号和逻辑符号连接项构成的表达式。不含自由变量的公式称为 句子 ,如 ∀x ∃y (x = y + y ∨ x = S(y + y)) 表示“每个数或是偶数或是奇数”。 公理 :一组预先给定的、作为推理起点的句子,包含逻辑公理和算术公理(如 ∀x (S(x) ≠ 0) , ∀x∀y (S(x)=S(y) → x=y) , 归纳法模式)。 推理规则 :如分离规则(从 A 和 A→B 推出 B)。一个句子 φ 是 定理 ,如果存在一个有穷的公式序列,以 φ 结尾,其中每个公式或是公理,或由序列中在先的公式应用推理规则得到。记作 ⊢ φ 。 系统的 解释 (语义)是赋予这些符号以数学含义。通常的标准解释是:变量取自然数,0 对应数字0,S 对应后继函数,+ 和 × 对应加法和乘法。在这个解释下为真的句子称为 真命题 。 2. 哥德尔编码:将关于系统的陈述算术化 证明的关键是将关于形式系统自身的元数学陈述(如“公式φ是定理”)转化为系统内部可以谈论的算术陈述。这是通过 哥德尔编码 实现的。 编码对象 :系统中每一个符号、公式、公式序列(特别是证明)都被唯一地映射到一个自然数(哥德尔数)。 编码方法 :例如,为每个基本符号分配一个奇素数: 0→3 , S→5 , ∀→7 , ( → 11, ) → 13, …。一个公式(符号串) a₁a₂…aₖ 的哥德尔数是 2^g(a₁) × 3^g(a₂) × … × pₖ^g(aₖ) ,其中 pᵢ 是第 i 个素数, g(aᵢ) 是符号 aᵢ 的编码数。一个证明(公式序列) φ₁, φ₂, …, φₙ 的哥德尔数是 2^gn(φ₁) × 3^gn(φ₂) × … × pₙ^gn(φₙ) ,其中 gn(φ) 是公式 φ 的哥德尔数。 元性质算术化 :通过编码,关于系统的元性质变成了关于这些大数的数论性质。例如,“公式序列 P 是句子 φ 的一个证明” 这个二元关系,可以表达为一个关于两个自然数( gn(P) 和 gn(φ) )的、复杂但完全确定的算术关系 Proof(m, n) ,其含义是“m 是某个句子 φ 的证明的哥德尔数,且 n 是 φ 的哥德尔数”。 可表示性 :如果形式系统足够强(包含了递归论意义上的初等算术),那么像 Proof(m, n) 这样的 递归关系 (即能行可判定的关系),都可以在系统内部被一个公式 Proof(m, n) 数字可表示 。这意味着:如果 Proof(m, n) 在元数学上为真,则系统能证明 Proof(┌m┐, ┌n┐) (这里 ┌m┐ 是数字 m 在形式系统中的标准项,如 S(S(…(0)…)));如果为假,则系统能证明 ¬Proof(┌m┐, ┌n┐) 。这表明系统能“谈论”自身的证明。 3. 对角线引理:构造自指句 这是证明的核心构造步骤。 定义函数 :考虑一个包含自由变量 x 的公式 A(x) 。将某个数字 n 代入 x 得到的句子 A(┌n┐) 也有一个哥德尔数。定义一个与公式 A(x) 和数字 n 相关的、关于 n 的函数: diag(n) = gn(A(┌n┐)) ,其中 A 本身的哥德尔数恰好是 n。这个函数是递归的,因此其对应的算术关系 Diag(m, n) (表示 m = diag(n))可在系统中用一个公式 Diag(m, n) 表示。 构造自指句 :现在考虑一个特定的公式 B(x) : ∀y (Diag(x, y) → ¬∃z Proof(z, y)) 。这个公式的含义是:“如果 y 是公式(其哥德尔数为 x)对自身编码数 x 代入后所得句子的哥德尔数,那么不存在 z 使得 z 是 y 的证明”。设公式 B(x) 的哥德尔数为 p。 应用对角线 :我们构造句子 G: B(┌p┐) 。计算 G 的含义: G = B(┌p┐) = ∀y (Diag(┌p┐, y) → ¬∃z Proof(z, y)) 。 由于 Diag 表示 diag 函数,而 diag(p) 恰好是 G 本身的哥德尔数,记为 g。所以,在算术解释下,G 等价于: ¬∃z Proof(z, ┌g┐) 。 得到自指含义 :因此,G 这个句子在算术上断言的是:“不存在自然数 z 使得 z 是哥德尔数为 g 的句子的一个证明的哥德尔数”。而哥德尔数为 g 的句子正是 G 本身。所以, G 等价于声称“G 在系统内不可证” ,即 G ⇔ ¬(⊢ G)。这就是一个严格构造出来的、语义清晰的自指句,而非语义悖论。 4. 第一不完备性定理的证明 假设我们讨论的系统是 一致 的(不会同时证明 φ 和 ¬φ),并且包含足够的算术。 如果 G 可证 :即 ⊢ G。由于系统一致,则 G 在标准模型下为真(我们假设系统是 ω-一致的,一个比一致性稍强的条件,后由罗塞尔改进为一致性)。但 G 断言“G 不可证”,与 ⊢ G 矛盾。 如果 ¬G 可证 :即 ⊢ ¬G。¬G 等价于 ∃z Proof(z, ┌g┐),即断言“存在 G 的证明”。由于系统一致,G 就真的不可证,即 ¬(⊢ G)。这意味着“存在 G 的证明”这个算术陈述是假的。但系统包含了足够的算术,如果它证明了一个假的 Σ₁ 语句(形如 ∃x P(x) 的语句,P 是递归的),就会导致不一致(这与 ω-一致性或 1-一致性有关,罗塞尔的关键改进在于构造了一个更复杂的句子,仅用一致性假设就能推出矛盾)。因此,¬G 也不可证。 结论 :在满足条件的一致形式系统中,存在如 G 这样的句子,它和它的否定在系统内都不可证明。即系统是 不完备 的:存在一个真的算术句子(G 在标准模型下为真,因为它断言自己不可证,而事实上它确实不可证),系统既不能证明它,也不能否定它。 5. 第二不完备性定理的概要 第一定理表明,足够强的、一致的系统 S 不能证明自指的不可证句 G。哥德尔进一步意识到, “系统 S 是一致的” 这个元数学陈述,也可以被算术化,在 S 内部表示为一个句子 Con(S) 。通常 Con(S) 定义为 ¬∃x Proof(x, ┌0=1┐) ,即“不存在 0=1 的证明”。 第二定理的证明思路是:仔细分析第一定理的证明过程,可以发现这个证明本身可以在系统 S 内部形式化。也就是说,S 能够证明一个条件句: Con(S) → G 。因为 G 断言自己的不可证性,而第一定理的证明本质上建立了“如果 S 一致,则 G 不可证”这一事实,这个推理可以被 S 模拟。 现在,假设 S 能证明自身的一致性,即 ⊢ Con(S)。那么,结合 S 内可证的 Con(S) → G ,应用分离规则,S 就能证明 G。但这与第一定理(G 在 S 中不可证)矛盾。因此,假设不成立。 结论 :对于满足条件的一致系统 S,其一致性陈述 Con(S) 在 S 内部不可证。这意味着,系统不能用自己的工具证明自身的无矛盾性。要证明 S 的一致性,必须使用比 S 更强的元理论。