類型論與羅素悖論


Photo Credit: delete08 via Compfight cc

羅素悖論 (Russell’s Paradox) 爆破弗列格 (Gottlob Frege) 的理論後,羅素延續弗列格的計劃,試圖發展另一套將數學還原(化約)成邏輯的理論,這套理論便是類型論 (type theory) 。羅素的類型論本身十分複雜,要全盤了解還須親自挑戰他和白頭佬合著的 Principia Mathematica 。簡明扼要地解釋類型論難免也要一點集合論和邏輯背景,但假如只集中在類型論如何解決羅素悖論,門檻可就低得多。

羅素悖論至關鍵的一步是斷言有集合是這樣的:如果它包含自己,則它不包含自己;同時,如果它不包含自己,則它包含自己。用集合論的講法,即是:有集合 $X$ 是

(C). $X\in X \Leftrightarrow X\notin X$

羅素的類型論透過區分類型 (type) ,將 (C) 歸為無意義的記號,從而禁止悖論出現。問題是他怎樣區分類型,而他的區分又怎樣禁止 (C) 。

類型的劃分可視為層級的劃分,最底層的類型是所有具體的物件 (concrete particular) 。羅素的具體物件比較特殊,為方便,先假定這些物件是大家常識上認可的物件,例如拿破崙、秦始皇、鐵達尼號、帝國大廈、巴黎鐵塔等,並用 a, b, c, d, ... 等字母代表具體物件。最底層的類型是

類型 #1: a, b, c, d, ...

第二層是透過集合用第一層的物件疊上去的,方法是:在類型 #1 收集任意數目的物件形成集合。例如類型 #1 有拿破崙和秦始皇,類型 #2 便有集合只包含拿破崙、有集合只包含秦始皇、有集合只包含拿破崙和秦始皇,諸如此類。

類型 #2: {a}, {b}, {c}, {d}, ..., {a,b}, {a,c}, ..., {a,b,c}, ...

第二層和第一層完全不一樣。第一層的東西都是具體物件,沒有集合,但第二層的東西都是集合,不是具體物件。換句話說,第一層是具體物件,第二層都是具體物件的集合。第三層則是在第二層疊上去,方法差不多:在類型 #2 收集任意數目的物件形成集合。

類型 #3: {{a}}, {{b}}, {{c}}, ..., {{a},{b}}, ..., {{a},{b},{c}}, ...

第三層的物件和第二層亦不一樣,因為這層的物件不是具體物件的集合,而是具體物件的集合的集合。所以,第三層的物件拆掉最外面一對左右括號後,裡面的物件依然每個都有一對左右括號,而第二層的拆掉後裡面的物件都沒有括號。第四層由第三層疊上去,方法一樣,將任意數目的類型 #3 的物件收集起來放進集合。

類型 #4: {{{a}}}, {{{b}}}, ..., {{{a}},{{b}}}, ..., {{{a}},{{a},{b},{c}}}, ...

同樣道理,還有第五層、第六層、第七層,如此類推。除了最底的類型 #1 外,其他每層都是收集下一層的物件形成集合。這個設定有兩個後果:第一,每個集合的成員都在下一層,不會在同一層,更不會在上層;第二,沒有物件可以同時在兩層,因為任何兩層的物件都有著括號上的差異。

要封鎖羅素悖論就要禁止 (C) ,羅素類型論禁止 (C) 的原理上十分簡單:每個集合都是收集下一層的物件而形成的,「$\in$」左邊的東西必定要在「$\in$」右邊的東西的下一層,而「$X\in X$」裡面的「$X$」卻在同一層,因此「$X\in X$」根本是無意義的記號。

沒有留言:

技術提供:Blogger.