哥德爾不完備定理是一個相當有趣的邏輯學發現,要了解他的意涵,要先考慮哥德爾的編碼
哥德爾數(Gödel number)是一種編碼方式,在一個算術系統裡面,當我們把每個字符都排成一個有限的列,我們可以幫每個字符都指定一個自然數。具體來說,我們可能會寫下
- 是 ,其後設意義為「否定」
- 是 ,其後設意義為「或」
- 是 ,其後設意義為「且」
當有符號 ,其對應的哥德爾數為 。我們並不是真的關心具體的每個符號,我們做這件事的理由是為了表示哥德爾編碼。所以這裡要開始定義哥德爾編碼,首先先看一個簡單的例子:當有系統的公式符號排列 ,我們說公式的哥德爾編碼為 。
因此用函數 指示一個公式的每個位置 符號的 Gödel number,則哥德爾編碼確切的定義是
,也就是將質數以每個符號對應的哥德爾數為指數,將它們全部乘起來。這個辦法只是為了迫使每個公式有對應的編碼存在。我們用 記號表示公式 的哥德爾數。
函數給出第 個出現符號的在表中的位置。
在承認前述的系統 下,可以開始描述。
Definition. substitution [math-0004]
Definition. substitution [math-0004]
表示將公式 中哥德爾數為 之符號換成 的哥德爾數再求此替換後公式的哥德爾編碼。
例如
Theorem. Gödel incompleteness [math-0003]
Theorem. Gödel incompleteness [math-0003]
- 存在形式上不能證明卻是真確、可寫下的公式
- 用系統證明自身的一致性會導致不可決定的公式也被證明
Proof
首先,用 表示有哥德爾數為 的公式在系統 中得到證明,而 是其演示
哥德爾有一段很長的論證(證明這是原始遞歸函數),來說明這是可以被 表示的,這裡跳過了這部分論證。且這也是為什麼要求系統 是具備算術能的,因為表示編碼需要自然數算術。
定義 ,但 是未知量,隨意給一個還沒被使用來編碼的數字即可,比如 。於是我們重寫成 。
現在構造 ,求其哥德爾編碼 可以發現正是 所表示的編碼,因為
因此用 替換 中的 ,會得到
可以發現 的後設含義正是「有哥德爾編碼為 的公式沒有系統 中的證明」,然而
- 假設 可以在 中證明為真,就告訴我們 對應的公式不存在任何演示可以於 中證明,但那就是我們剛證明的公式 。
- 假設 可以在 中證明為否,就導出 對應的公式在 中有演示,但那就是我們剛證否的公式 。
綜合可知這意思就是 可證,若且唯若 可證否,是故承認 就是承認 不一致;反之,若 一致則 形式上就不可決定。
巧妙的是,並不難看出 的 meta 陳述是真確的,因為確實不存在任何整數作為編碼滿足這個性質。換句話說,存在形式上不能證明卻是真確、可寫下的公式,這就是第一不完備定理。接著根據第一不完備定理知道了 的真確性,卻在 中形式上不可決定,所以 不能證明一個真確的算術公式,因此 必定是不完備的,這就是第二不完備定理。
因此在 The Blind Spot: Lectures on Logic 中可以看到其陳述更加關注核心:對一個足夠編碼自己又一致的系統
- 存在一個真確的公式 不可決定
- 系統證明自己具有一致性會連帶證明這個不可決定的公式,所以系統無法證明自己的一致性
換句話說,要關心的並不是具體如何構造上面陳述的編碼,而是這類系統編碼系統自身的普遍性問題。