跳轉到

1.1 希爾伯特計畫:數學是否能完全形式化、機械化與自動判定?#

時代背景:數學的「基礎危機」#

十九世紀後半,數學經歷了一場嚴格化運動:魏爾斯特拉斯為微積分補上 \(\varepsilon\)-\(\delta\) 語言,戴德金用有理數切割定義實數,弗雷格正在建立謂詞邏輯。一切都指向一個雄心:把數學整座大廈建立在堅實地基上。

但地基本身裂了。康托爾的集合論既強大又矛盾叢生:1897 年布拉里—福爾蒂悖論(最大序數悖論)、1899 年康托爾悖論(最大基數悖論)、1901 年羅素悖論——

設 \(R = \{x \mid x \notin x\}\)。問:\(R \in R\) 嗎?兩個答案都矛盾。

弗雷格收到羅素的信時正在付印《算術基礎》第二卷,他在後記中承認:「科學大廈的基石動搖了。」這是數學史上少數「一封信擊倒一個理論」的時刻。

希爾伯特其人:數學的普魯士將軍#

大衛·希爾伯特(David Hilbert, 1862–1943)是當時世界上最有權威的數學家,執掌哥廷根大學——世界的數學之都。他的口號「Wir müssen wissen, wir werden wissen(我們必須知道,我們將會知道)」後來刻在他的墓碑上。

這句話不只是口號,它是德國學術文化的結晶:普魯士大學體制(洪堡傳統——教學與研究合一、純粹學問優先)培養出對「完備、嚴格、系統」的信仰。哥廷根在希爾伯特與克萊因手上成為磁石:閔可夫斯基、諾特、外爾、馮·諾伊曼、哥德爾都曾在此——這個制度後來被納粹摧毀,順帶把世界數學中心搬到了美國,這是後話。

計畫的三根支柱#

希爾伯特計畫(formalism,形式主義綱領)要求數學基礎滿足:

目標 內容 白話
完備性(completeness) 任何命題或可證明、或可否證 沒有「證不出也駁不倒」的命題
一致性(consistency) 無法證明 \(P\) 且 \(\neg P\) 大廈不會自爆
可判定性(decidability) 存在機械程序,對任何命題判定真假 有「萬能演算法」

關鍵的技術路線:元數學(metamathematics)——把數學本身當作對象來研究。先寫下純粹符號的公理系統(不談意義,只談字串操作),再用「初等、有限、機械」的方法證明這個系統一致。希爾伯特強調:證明一致性只能用有窮方法(finitary methods)——直觀、可檢查、像計算一樣的推理。他不信任「無窮」這個概念本身,卻想為「使用無窮」的數學蓋上安全印章。

1920 年代的樂觀#

希爾伯特與助手阿克曼、貝爾奈斯在 1920s 逐步推進:先證明了一小片系統(無量詞的部分算術)的一致性。氣氛是樂觀的。1926 年他說出名言:

「沒有人能把我們從康托爾創造的天堂裡驅逐出去。」

同一時期,數學三大門派開戰:

學派 領袖 立場
邏輯主義 羅素、弗雷格 數學可還原為邏輯
直覺主義 布勞威爾 數學是心智構造;排中律不普遍成立
形式主義 希爾伯特 數學是符號遊戲,一致性就是一切

布勞威爾的直覺主義其實預感到了真相:他早就主張「存在即被構造」——許多數學命題(尤其涉及無窮時)不允許「非此即彼」的判定。他與希爾伯特的私交因此破裂(希爾伯特把布勞威爾逐出《數學年刊》編委會——學術權力鬥爭介入基礎之爭)。歷史隨後證明:布勞威爾的直覺,比希爾伯特的樂觀更接近真相。

為什麼這一章是「程式的故事」的第一章?#

因為希爾伯特計畫的三個要求,逐字對應了計算機科學的三大問題:

  • 完備性 → 能證明一切 = 表達能力極限(哥德爾:不可達)
  • 一致性 → 程式不會自相矛盾(型別系統、形式驗證至今仍在追)
  • 可判定性 → 萬能演算法 = 圖靈的停機問題(不存在!)

希爾伯特要的東西失敗了,但為了證明它失敗,人類被迫發明了「演算法」的精確定義、通用計算模型、以及第一套程式語言的前身。這是科學史上最壯麗的「負面結果孕育整個學科」。

下一節,我們細看那個「浪漫的妄想」:判定問題。


下一節:1.2 判定問題