對角線引理

對角線引理（diagonal lemma），又稱為不動點定理（fixed point theorem）。在數理邏輯中，對角線引理表明了自然數的形式理論中自指句子的存在——尤其是那些強到足以表示所有可計算函數的形式理論。 由對角線引理確立其存在的句子，將可用於證明一些邏輯的基礎限制，例如：哥德爾不完備定理或塔斯基不可定義定理。 記自然數系為 N {\displaystyle \mathbb {N} } 。 T {\displaystyle T} 是一套帶有皮亞諾公理的一階邏輯理論。一个可計算函數 f : N → N {\displaystyle f:\mathbb {N} \rightarrow \mathbb {N} } 可以在 T {\displaystyle T} 表達，若於 T {\displaystyle T} 中有合式公式 A f ( x , y ) {\displaystyle {\mathcal {A}}_{f}(x,y)} 使得： ⊢ T ( ∀ y ) [ ( ∘ f ( n ) = y ) ⇔ A f ( ∘ n , y ) ] {\displaystyle \vdash _{T}\,(\forall y)[(^{\circ }f(n)=y)\Leftrightarrow {\mathcal {A}}_{f}(^{\circ }n,\,y)]} 此處的 ∘ n {\displaystyle ^{\circ }n} 是指對應於自然數 n {\displaystyle n} 的數碼，也就是皮亞諾公理裡預先假定的第一數碼 0 T {\displaystyle 0_{T}} 的第 n {\displaystyle n} 個後繼 { ∘ 1 := S ( 0 T ) ∘ ( n + 1 ) := S ( ∘ n ) {\displaystyle {\begin{cases}^{\circ }1:=S(0_{T})\\^{\circ }(n+1):=S(^{\circ }n)\\\end{cases}}} 換句話說數碼是自然數的一種推廣，會依據第一數碼（常數符號）和後繼（函數符號）的語意解釋不同而有不同的實質意義。 對角線引理需要將 T {\displaystyle T} 內的每條合式公式 A {\displaystyle {\mathcal {A}}} ，以有限運算步驟可以實現的方法，一對一的對應到一個自然數 # ( A ) {\displaystyle \#({\mathcal {A}})} （簡寫為 # A {\displaystyle \#_{\mathcal {A}}} ），這樣的 # A {\displaystyle \#_{\mathcal {A}}} 就被稱為 A {\displaystyle {\mathcal {A}}} 的哥德爾數（注意哥德爾數的指定方法不唯一）。如此一來， A {\displaystyle {\mathcal {A}}} 也可以用數碼 ∘ # A {\displaystyle ^{\circ }\#_{\mathcal {A}}} 來表示。 若 T {\displaystyle T} 為一套帶有皮亞諾公理的一階邏輯理論，且所有可計算函數於 T {\displaystyle T} 能夠表達；而 T {\displaystyle T} 內的合式公式 F ( y ) {\displaystyle {\mathcal {F}}(y)} 中的變數 y {\displaystyle y} 是完全自由的。則有一條合式公式 C {\displaystyle {\mathcal {C}}} 使得 ⊢ T C ⇔ F ( ∘ # C ) {\displaystyle \vdash _{T}\,{\mathcal {C}}\Leftrightarrow {\mathcal {F}}({}^{\circ }\#_{\mathcal {C}})} 以下使用元語言敘述證明過程。讀者可以自己轉成以一階邏輯語言表達的正式證明。 對於 T {\displaystyle T} 中有一完全自由變數 x {\displaystyle x} 的合式公式 A ( x ) {\displaystyle {\mathcal {A}}(x)} ，我們定義函數 f : N → N {\displaystyle f:\mathbb {N} \to \mathbb {N} } 為： f ( # A ( x ) ) = # [ A ( ∘ # A ( x ) ) ] {\displaystyle f(\#_{{\mathcal {A}}(x)})=\#[{\mathcal {A}}(^{\circ }\#_{{\mathcal {A}}(x)})]} 其他狀況下取 f ( n ) = 0 {\displaystyle f(n)=0} 。顯然函數 f {\displaystyle f} 是可計算的，故根據假設，存在合式公式 A f ( x , y ) {\displaystyle {\mathcal {A}}_{f}(x,\,y)} 使得 ⊢ T ( ∀ y ) { A f ( ∘ # A ( x ) , y ) ⇔ [ y = ∘ f ( # A ( x ) ) ] } {\displaystyle \vdash _{T}\,(\forall y)\{{\mathcal {A}}_{f}(^{\circ }\#_{{\mathcal {A}}(x)},\,y)\Leftrightarrow [y=^{\circ }f(\#_{{\mathcal {A}}(x)})]\}} ( 1 ) {\displaystyle (1)} 然後對具有自由變數 y {\displaystyle y} 的合式公式 F ( y ) {\displaystyle {\mathcal {F}}(y)} ，定義 B ( x ) {\displaystyle {\mathcal {B}}(x)} 為： B ( x ) := ( ∀ y ) [ A f ( x , y ) ⇒ F ( y ) ] {\displaystyle {\mathcal {B}}(x):=(\forall y)[{\mathcal {A}}_{f}(x,\,y)\Rightarrow {\mathcal {F}}(y)]} 注意到一階邏輯的公理模式（參見量词公理） ( ∀ y ) D ( y ) ⇒ D ( S ) {\displaystyle (\forall y){\mathcal {D}}(y)\Rightarrow {\mathcal {D}}(S)} ( A 4 ) {\displaystyle (A4)} D ( S ) {\displaystyle {\mathcal {D}}(S)} 是簡記 D ( y ) {\displaystyle {\mathcal {D}}(y)} 內所有自由的 y {\displaystyle y} 被取代成項 S {\displaystyle S} 所得到的新合式公式（而並非代表 D ( y ) {\displaystyle {\mathcal {D}}(y)} 只有一個組成變數）；而(A4)要成立，必須額外要求：若 s i {\displaystyle s_{i}} 是組成 S {\displaystyle S} 的其中一個變數，則 D ( y ) {\displaystyle {\mathcal {D}}(y)} 內自由的 y {\displaystyle y} 都不被 s i {\displaystyle s_{i}} 的量詞約束。（簡稱為項 S {\displaystyle S} 對變數 y {\displaystyle y} 於合式公式 D ( y ) {\displaystyle {\mathcal {D}}(y)} 是自由的） (A4)配合(1)使用MP律有 ⊢ T [ A f ( ∘ # A ( x ) , y ) ] ⇔ [ y = ∘ f ( # A ( x ) ) ] {\displaystyle \vdash _{T}\,[{\mathcal {A}}_{f}(^{\circ }\#_{{\mathcal {A}}(x)},\,y)]\Leftrightarrow [y=^{\circ }f(\#_{{\mathcal {A}}(x)})]} 所以從 B ( x ) {\displaystyle {\mathcal {B}}(x)} 的定義有 ⊢ T B ( ∘ # A ( x ) ) ⇔ ( ∀ y ) { [ y = ∘ f ( # A ( x ) ) ] ⇒ F ( y ) } {\displaystyle \vdash _{T}\,{\mathcal {B}}(^{\circ }\#_{{\mathcal {A}}(x)})\Leftrightarrow (\forall y)\{[y=^{\circ }f(\#_{{\mathcal {A}}(x)})]\Rightarrow {\mathcal {F}}(y)\}} ( 2 ) {\displaystyle (2)} 注意到從演绎定理會有 D 1 ⇒ ( D 2 ⇒ D 3 ) , D 2 ⊢ T D 1 ⇒ D 3 {\displaystyle {\mathcal {D}}_{1}\Rightarrow ({\mathcal {D}}_{2}\Rightarrow {\mathcal {D}}_{3}),\,{\mathcal {D}}_{2}\vdash _{T}\,{\mathcal {D}}_{1}\Rightarrow {\mathcal {D}}_{3}} ( D ) {\displaystyle (D)} D 1 ⇒ D 2 , D 2 ⇒ D 3 ⊢ T D 1 ⇒ D 3 {\displaystyle {\mathcal {D}}_{1}\Rightarrow {\mathcal {D}}_{2},\,{\mathcal {D}}_{2}\Rightarrow {\mathcal {D}}_{3}\vdash _{T}\,{\mathcal {D}}_{1}\Rightarrow {\mathcal {D}}_{3}} ( D ′ ) {\displaystyle (D^{\prime })} 對定理(2)雙箭頭的後半部與公理模式(A4)使用MP律，然後套用(D')會有 ⊢ T B ( ∘ # A ( x ) ) ⇒ { [ ∘ f ( # A ( x ) ) = ∘ f ( # A ( x ) ) ] ⇒ F [ ∘ f ( # A ( x ) ) ] } {\displaystyle \vdash _{T}\,{\mathcal {B}}(^{\circ }\#_{{\mathcal {A}}(x)})\Rightarrow \{[^{\circ }f(\#_{{\mathcal {A}}(x)})=^{\circ }f(\#_{{\mathcal {A}}(x)})]\Rightarrow {\mathcal {F}}[^{\circ }f(\#_{{\mathcal {A}}(x)})]\}} ( 3 ) {\displaystyle (3)} 而從等號的性質（奠基於皮亞諾公理），對所有的項 S {\displaystyle S} 有 ⊢ T S = S {\displaystyle \vdash _{T}S=S} 故(3)配合(D)會有 ⊢ T B ( ∘ # A ( x ) ) ⇒ F [ ∘ f ( # A ( x ) ) ] {\displaystyle \vdash _{T}\,{\mathcal {B}}(^{\circ }\#_{{\mathcal {A}}(x)})\Rightarrow {\mathcal {F}}[^{\circ }f(\#_{{\mathcal {A}}(x)})]} ( R − r i g h t ) {\displaystyle (R-right)} 然後對等式和它的公理（同樣奠基於皮亞諾公理）施用兩次普遍化，然後與(A4)施用MP律兩次會有： 若項 S {\displaystyle S} 和 U {\displaystyle U} 都對變數 y {\displaystyle y} 於 F ( y ) {\displaystyle {\mathcal {F}}(y)} 自由，則 ⊢ T ( S = U ) ⇒ [ F ( S ) ⇒ F ( U ) ] {\displaystyle \vdash _{T}\,(S=U)\Rightarrow [{\mathcal {F}}(S)\Rightarrow {\mathcal {F}}(U)]} ( E ) {\displaystyle (E)} 所以從(D)和演绎定理有 ⊢ T F [ ∘ f ( # A ( x ) ) ] ⇒ { [ ∘ f ( # A ( x ) ) = y ] ⇒ F ( y ) } {\displaystyle \vdash _{T}\,{\mathcal {F}}[^{\circ }f(\#_{{\mathcal {A}}(x)})]\Rightarrow \{[^{\circ }f(\#_{{\mathcal {A}}(x)})=y]\Rightarrow {\mathcal {F}}(y)\}} ( 4 ) {\displaystyle (4)} 然後注意到另條量詞的公理模式（若 y {\displaystyle y} 於合式公式 D {\displaystyle {\mathcal {D}}} 中完全不自由或不曾出現） ( ∀ y ) ( D ⇒ E ) ⇒ [ D ⇒ ( ∀ y ) E ] {\displaystyle (\forall y)({\mathcal {D}}\Rightarrow {\mathcal {E}})\Rightarrow [{\mathcal {D}}\Rightarrow (\forall y){\mathcal {E}}]} ( A 5 ) {\displaystyle (A5)} 然後以普遍化於定理(4)外面補上 ∀ y {\displaystyle \forall y} ，接著與(A5)一起套用MP律會有 ⊢ T F [ ∘ f ( # A ( x ) ) ] ⇒ ( ∀ y ) { [ ∘ f ( # A ( x ) ) = y ] ⇒ F ( y ) } {\displaystyle \vdash _{T}\,{\mathcal {F}}[^{\circ }f(\#_{{\mathcal {A}}(x)})]\Rightarrow (\forall y)\{[^{\circ }f(\#_{{\mathcal {A}}(x)})=y]\Rightarrow {\mathcal {F}}(y)\}} 所以上面的定理和定理(2)配合(D')有 ⊢ T F [ ∘ f ( # A ( x ) ) ] ⇒ B ( ∘ # A ( x ) ) {\displaystyle \vdash _{T}\,{\mathcal {F}}[^{\circ }f(\#_{{\mathcal {A}}(x)})]\Rightarrow {\mathcal {B}}(^{\circ }\#_{{\mathcal {A}}(x)})} ( R − l e f t ) {\displaystyle (R-left)} 總結(R-right)和(R-left)，然後帶入函數 f {\displaystyle f} 的值有 ⊢ T B ( ∘ # A ( x ) ) ⇔ F { ∘ # [ A ( ∘ # A ( x ) ) ] } {\displaystyle \vdash _{T}\,{\mathcal {B}}(^{\circ }\#_{{\mathcal {A}}(x)})\Leftrightarrow {\mathcal {F}}\{^{\circ }\#[{\mathcal {A}}(^{\circ }\#_{{\mathcal {A}}(x)})]\}} ( 5 ) {\displaystyle (5)} 注意 B ( x ) {\displaystyle {\mathcal {B}}(x)} 內變數 x {\displaystyle x} 是完全自由的，故可以把前面推導中所有的 A {\displaystyle {\mathcal {A}}} 換成 B {\displaystyle {\mathcal {B}}} ，然後定義 C := B ( ∘ # B ( x ) ) {\displaystyle {\mathcal {C}}:={\mathcal {B}}(^{\circ }\#_{{\mathcal {B}}(x)})} 那我們可以從定理(5)得到 ⊢ T C ⇔ F ( ∘ # C ) {\displaystyle \vdash _{T}\,{\mathcal {C}}\Leftrightarrow {\mathcal {F}}(^{\circ }\#_{\mathcal {C}})} 至此引理完成證明。 ◻ {\displaystyle \Box } 對角線引理跟可計算性理論中的Kleene's recursion theorem有密切的聯繫，證明方法也相似。 這個定理之所以被冠以「對角線」，是因為它與康托爾的對角論證法的形式很相近。「對角線引理」或「不動點」的詞彙並未出現在哥德爾1931年所發表的劃時代的論文中，也沒有出現在塔斯基1936年的論文中。卡爾納普是第一個人證明出：只要理論T滿足某些條件，那麼對於T中的任何式子ψ，都存在式子φ使得φ ↔ ψ(#(φ))在T中是可證的。由於在1934年尚未有可計算函數的概念，卡爾納普是以別的用詞去陳述該結論。Elliott Mendelson 認為是卡爾納普首先指出哥德爾的論證中隱含地運用了對角線引理，而哥德爾則是在1937年注意到卡爾納普的工作。 如果把自然數單純視為計算符號數量的記號，那這邊"函數"的意義單純代表的是這種記號的一對一對應。並非一定要理解成以公理化集合論的有序對為基礎定義的函數。 See Boolos and Jeffrey (2002, sec. 15) and Mendelson (1997, Prop. 3.37 and Cor. 3.44 ). Hinman 2005, p. 316 Smullyan (1991, 1994) are standard specialized references. The lemma is Prop. 3.34 in Mendelson (1997), and is covered in many texts on basic mathematical logic, such as Boolos and Jeffrey (1989, sec. 15) and Hinman (2005). See Gödel's Collected Works, Vol. 1, p. 363, fn 23.