簡介
哥德爾定理是數理邏輯中的一個定理,1931年奧地利邏輯、數學家克爾特·哥德爾(Kurt Godel)發現並證明的,這個定理徹底粉碎了希爾伯特的形式主義理想。為理解這個定理及其意義,需要相當的數理邏輯和集合論知識。要把這些預備知識都在這裡整理出來,工作太繁重了,這也就是我一直沒敢動手寫這篇東西的原因之一。這裡仍然也不打算詳細介紹這些東西,只是在必要的時候給些簡單的說明,要想更深刻地理解,有興趣的朋友可以自學相關課程。哥德爾定理其實是兩個定理,其中哥德爾第一不完備性定理是最重要、也是誤解最多的,從這一定理的版本眾多就可以看出。如:
“如果一個形式理論T足以容納數論並且無矛盾,則T必定是不完備的。”
“任何一個相容的數學形式化理論中,只要它強到足以在其中定義自然數的概念,就可以在其中構造在體系中既不能證明也不能否證的命題。”
“任何一個足夠強的一致公設系統,必定是不完備的”
第二不完備性定理是第一定理的一個推論:“任何相容的形式體系不能用於證明它本身的相容性”
如果沒有相關的知識基礎,要理解這個定理真的是比較難。至於證明就更不容易看懂了。我偷點懶,跳過這些直接介紹其意義吧。
哥德爾定理是一階邏輯的定理,在形式邏輯中,數學命題及其證明都是用一種符號語言描述的,在這裡我們可以機械地檢查每個證明的合法性,於是便可以從一組公理開始無可辯駁地證明一條定理。上世紀初,以希爾伯特為代表的形式主義派,希望能通過形式邏輯的方法,構造一個有關數論(自然數)的有限的公理集合,推出所有數論原理(完備性),且無矛盾(相容性),並以此出發構造整個形式主義的數學體系。而哥德爾第一不完備定理,粉碎了這一構想。這兩個定理實際上表明,這樣的公理系統要么不完備,要么有矛盾。數論的相容性為根茨(G.Gentaen,1909-1945)在1936年使用蘊涵著非演繹邏輯的超限歸納法所證明。
因而,該定理揭示在多數情況下,例如在數論或者實分析中,永遠不能找出公理的完整集合。你可以在公理體系不斷加入新的公理,甚至構成無窮的公理集合,但是這樣的公理列表不再是遞歸的,不存在機械的判斷方法判斷加入的公理是否是該公理系統的一條公理。這對於計算機科學意義重大,在計算機語言中,一階邏輯的定理是遞歸可枚舉的,然而哥德爾第一不完備定理表明,無法編制這樣的程式,通過遞歸的定理證明,可在有限時間內判斷命題真假。彭羅斯的《皇帝新腦》中用停機問題描述了這一點,他甚至認為由此可知電腦永遠不能超越人腦,甚至不可能達到人腦的水平。當然這點還不是定論,存在很大爭議。
想說的簡明一些,看來還是不行。還是結合對常見誤解的分析,儘量來澄清模糊認識吧。
常見誤解一:“所有的公理系統都是不完備的”。這是最常見的,甚至有人用這點來否定邏輯學,這是錯誤的。拿歐氏幾何來說,就可以被公理化為一個完整的系統。
常見誤解二:“所有包含到自然數的公理系統都是不完備的”。這個錯誤從上面的有些哥德爾定理的描述中都能看得出來。該定理僅假設公理系統能“定義”自然數。很多包含自然數的系統,例如“實數”和“複數”都有完備的公理化系統。
常見誤解三:“因為不完備,我們永遠無法證明一個公理系統無矛盾”。不,我們可以用其他方法證明,如上面提過的超限歸納法。其實該定理只表明我們不能從系統的內部證明相容性,不排除我們可以通過其他系統給出證明。例如,數論中的皮亞諾公理不能單獨在數論範圍內證明,但可在集合論中證明。
二
哥德爾定理主要還是在數學領域中套用的,至於在實際中的運用,很多都是基於錯誤的理解在盲目套用,論壇中的某些傳教貼子中就多次出現。要想避免錯誤,還是應該真正的弄懂這個定理的意思,但矛盾的是,這的確需要相當的數學知識為基礎,才可能,對於很多人來說,實在太難了。所以在文中我指出一些錯誤理解,進行了簡單的分析,大家如果加以注意,就可以避免很多錯誤。下面我介紹一些實際運用的例子,只是我個人認為比較正確的套用,也許對幫助大家理解這個定理有幫助,
既然是數學定理,最直接的套用領域還是在數學裡,尤其是數論。很多數論中的命題的證明,都需要用到哥德爾定理。這我就不多介紹了。這個定理表明,有些關於自然數的命題,本身可能是真命題,但是不能僅從自然數公理系統內證明或證否,需要其他的手段或者方法,如集合論等,才可以證明。曾經有人猜測,“哥德巴赫猜想”可能就是這樣的一個命題。因此即便對於極為抽象和形式化的數學,數學家的直覺——也就是大量實踐經驗的積累——比純形式的數學邏輯推理更基本,更可靠。但並不能就此說邏輯就毫無用處了,後者可以用來驗證前者是否正確,也可以推導出一些新正確的命題,只是不能代表全部。而如前文所說,即便不能在形式系統內證明,還可以通過其他方法,或從其他系統中證明。另外,再次強調,“該定理僅假設公理系統能‘定義’自然數”,是一階的邏輯定理,不要任意擴大。這裡經常發生錯誤理解,還是建議有興趣的朋友多了解掌握有關的基礎知識。
該定理的另一個主要套用領域,是數學的一個套用分枝——計算機和人工智慧。現在把我文中提過的停機問題簡單介紹一下。計算機到現在有了極大的發展,但是基本原理還是馮·諾依曼提出來的,只是速度和效率大大提高了。從根本上說,計算機的程式,就是一種基於2進制數字運算的命題演算系統。其中給出的公理是有限的,規則是可計算,而判定出命題的真偽時,輸出結果,停機並轉向下一個命題的處理。這就符合了哥德爾第一不完備定理的條件。可如該定理所說,這樣的系統必然是不完備的,也就是說至少有一個命題不能通過這樣的“程式”被判明真偽,系統在處理這樣的命題時,就無法“停機”,用俗話說就是被“卡”住了,永遠不能繞過。無論你怎樣擴充公理集,只要是有限的,這個現象就始終存在。而無限的公理集對於計算機來說,就意味著無限大的存儲空間,這顯然是不可能的。因此,有些數學家,如我提過的彭羅斯就認為,這表明了計算機是有致命缺陷的,而人類的“直覺”不受該定理的限制,所以計算機永遠不可能具有人腦的能力,人工智慧期望中的真正具有智慧的“電腦”,只不過是如“皇帝的新衣”那樣的“皇帝的新腦”。關於這個問題的詳細情況,可閱讀彭羅斯的《皇帝新腦》。
為什麼人腦與電腦有這樣的根本差別呢,彭羅斯認為可能是量子力學不確定性和複雜非線形系統的混沌作用共同造成的。但也有的數學家並不這樣認為,他們指出,人腦就基本意義和工作原理來說,與人工智慧原理的“圖靈機”無根本差別,電腦也存在上述兩種作用,這就說明人腦也要受到哥德爾定理的限制。兩者間的差別,可用包含非確定性的計算系統說明,就是所謂的“模糊”處理。人腦正是這樣的包含了非確定性的自然形成的神經網路系統,它之所以看上去具有電腦不具備的“直覺”,正是這種系統的“模糊”處理能力和效率極高的表現。而傳統的圖靈機則是確定性的串列處理系統,雖然也可以模擬這樣的“模糊”處理,但是效率太低下了。而正在研究中的量子計算機和計算機神經網路系統才真正有希望解決這樣的問題,達到人腦的能力。
對於電腦是“真腦”還是“皇帝的新腦”,還存在很大的爭議,有很多的問題需要解決,很多都是現在世界上的頂尖科學家研究的尖端課題。我沒有能力判斷孰對孰錯,但是我個人認為“人類思維也受哥德爾定理的限制”這點很有意思,很可能是正確的。各方面研究都表明,人腦在“運算”時,的確與電腦的基本原理是一樣的,只不過電腦是用電子元件的“開、閉”和電信號的傳遞體現,人腦則表現為神經原的“衝動、抑制”和化學信號(當然也包括電信號)的傳遞。這與哥德爾定理的條件沒有本質上的差別。而認識過程中的“思維是客觀實在的近似反映,語言是思維的近似表達”這點,正是受哥德爾定理限制的結果。就拿語言(指形式上的)來說,完全可以轉化為有限公理和一定規則下的符號邏輯系統,也就是一種符合定理條件的形式公理系統。該定理恰恰說明,這樣的系統中不完備,存在不能用該系統證實的命題,對於這個系統來說,就是語言對思維的表達不完全,也就是我們常說的“只可意會,不可言傳”。這也與我們經常感覺到的“辭不達意”是相吻合的,任何形式上的語言都不能完全準確的表達我們的思想。還有另一個事實也說明這點,就是翻譯。文對文的形式語言翻譯雖然不難,可是如實地表達原來語言中的準確蘊義就非常難了,甚至可以說是不可能的事情。如果能證明人類的思維也可以轉化為這樣的形式公理系統,那人腦也一定受哥德爾定理的限制。