跳轉到

1899 - Hilbert《幾何學的基礎》(公理化的最後拼圖)#

案件摘要#

1899 年,David Hilbert 出版了只有 21 頁的 Grundlagen der Geometrie (《幾何學的基礎》),開篇第一句就把幾何學徹底顛覆:

\[ \text{「幾何學的公理必須被替換——公設不是『顯然為真』的直覺。」} \]

他提出:公設 5(平行公設)不是必要的——可以用更弱、更一般的公理替代:

\[ \text{「平行公設可由其他公理推出(或與之無關)」→ \text{證明它獨立於其他公理}}. \]

這是幾何學從「Euclid 五千歲」到「現代公理化」的最終一步:

\[ \text{幾何} = \text{任意滿足公理的模型(不只是「現實」)的理論}}. \]

前因 -- 為什麼會有這個案子#

  • 「平行公設」的徹底命運(1752–1889):
  • Saccheri(1733)、Lobachevsky(1829)、Bolyai(1832):證明它可以不要。
  • Gauss、Bol、Lobachevsky:三個獨立發現非歐幾何,卻都沒有公開宣告獨立性。
  • 1882–1899 的轉捩點(Hilbert 的介入):
  • 1878 年,Cantor 證明了「連續性的無窮集合在每個區間都有」—— 無窮集合的「聚集」(accumulation point)比歐幾里得的直覺複雜得多。
  • 1880s,Dedekind 的「戴德金切割」(Dedekind cuts):把實數建成從有理數的構造——
\[ \mathbb{R} = \{\text{有理數的切割}\}. \]

這讓「連續性」成為可定義的公理,而非直覺。 3. Hilbert 的問題(1899 年的前言): 「Euclid 的五公設中,有些是冗餘的。特別是,平行公設既不能從其他公設推出, 也不能被其他公設否定。」 - Hilbert 的工具(Pasch 公理、Archimedes 公理、完备性公理): - Pasch 公理(Pasch's axiom, 1882):分割公理——

\[ \text{若 } A \text{ 被平面 } \alpha \text{ 分成 } B_1,B_2,\quad P \in B_1, \text{則 } \beta \text{ 交 } \alpha \text{ 處至少有一點在 } B_1 \text{ 中。} \]

這是順序公理的核心(Hilbert 把它提升為公理)。第一次在幾何學引入順序。 - Archimedes 公理(1899):無窮性的「非Archimedean vs Archimedean」。 - Dedekind 完备性公理(1899):任何有界實數集都有最小上界——

\[ \forall S \text{ 有界}, \quad \exists \sup S \in \mathbb{R}. \]
\[ \text{「連續性」} = \text{「最小上界存在」}\quad\text{而不是直覺的「沒有跳躍」}. \]

線索與推理 -- 數學式、程式、理論#

第一條線索:Hilbert 的公理系統(五組)#

Hilbert《幾何學的基礎》用五組公理取代 Euclid 的五公設: 1. 關聯公理(Incidence):兩點決定唯一直線、任兩點有共同點等(5 條)。 2. 順序公理(Order):Pasch 公理、線段加法等(4 條)——首次引入順序。 3. 合同公理(Congruence):全等的傳遞性等(5 條)——引入運動/等距。 4. 平行公理(Hilbert's Parallel Axiom):

\[ \text{「對一給定直線 } l \text{ 與外點 } P,\ \exists \text{ 過 } P \text{ 與 } l \text{ 平行的直線」}. \]

注意:Hilbert 的版本只談「存在至少一條」,不談「唯一」! 唯一性才是歐氏的關鍵(它在後來被證明是「獨立」的)。 5. 連續公理(Continuity):Archimedes + 完备性(Completeness)——

\[ \text{「直線可以分為任意多分點」—— 「沒有最小段的段」}\quad\text{是「無窮」的某種}. \]

第二條線索:獨立性、模型、無矛盾性(Hilbert 的新目標)#

Hilbert 對公理系統提出三個(互相獨立的)要求: 1. 一致性(Consistency):公理系統不能推出矛盾。 2. 獨立性(Independence):每條公理不能由其他公理推出。 3. 完備性(Completeness):加入「非幾何」的算術公理後,能推出所有的可測量的命題。

\[ \text{公理系統的品質} = \text{一致性} + \text{独立性} + \text{完備性}. \]
  • 平行公設的獨立性:
\[ \text{平面幾何(不含平行公設)} \to \text{有三種模型:歐氏、雙曲、橢圓}}. \]

這正是 1899 年之前 Lobachevsky/Bolyai/Gauss 的成果——Hilbert 給了它「正式的地位」。

第三條線索:Hilbert 對形式化的影響(1900–1930)#

Hilbert 的《幾何學的基礎》確立了幾何學的公理化:

\[ \text{Hilbert(1899)} \xrightarrow{\text{同樣手法}} \text{Peano(1889,Natürliche Zahlen)} \xrightarrow{} \text{Bourbaki(1930s,《Elements of Mathematics》)}. \]
  • Peano(1889):把算術公理化(0、1、加法、乘法)。
  • Hilbert(1900):23 個問題(Hilbert's Problems, ICM 1900)。
  • Bourbaki(1930s):把整個數學(代數、拓樸)建成形式系統。
\[ \text{Euclid(幾何公理)} \xrightarrow{2000\text{ 年}} \text{Bourbaki(整個數學公理)}. \]

Python:Hilbert 公理系統的「模型驗證」#

import numpy as np
from itertools import combinations

# 1) 公理系統的最小模型驗證(用 Fano 平面實現「關聯公理」)
def fano_plane():
    """Fano 平面:7 個點、7 條直線,每點 3 條線,每線 3 個點
    ——這是「無特點、無序」的最小關聯模型(Projective plane of order 2)"""
    pts = set(range(7))
    lines = [
        (0,1,3), (1,2,4), (2,3,5), (3,4,6),
        (4,5,0), (5,6,1), (6,0,2)
    ]
    return pts, lines

def check_incidence_axioms(pts, lines):
    """驗證 Pasch/Desargues 關聯公理(Fano 平面滿足大多數)"""
    # (a) 兩點決定唯一一線
    ok_a = True
    for p, q in combinations(pts, 2):
        n = sum(1 for l in lines if p in l and q in l)
        if n != 1: ok_a = False
    # (b) 任三點不在同一線上(至少 3 個非共線)
    return ok_a

pts, lines = fano_plane()
print("Hilbert 關聯公理驗證(Fano 平面模型):")
print(f"  點數 = {len(pts)},線數 = {len(lines)}")
print(f"  每線 3 點:{all(len(l)==3 for l in lines)}")
print(f"  每點 3 線:{all(sum(1 for l in lines if p in l) == 3 for p in pts)}")
print(f"  兩點決定唯一一線:{check_incidence_axioms(pts, lines)}")
輸出:
Hilbert 關聯公理驗證(Fano 平面模型):
  點數 = 7,線數 = 7
  每線 3 點:True
  每點 3 線:True
  兩點決定唯一一線:True

理論與數學式:平行公設的獨立性#

Fano 平面是關聯公理的有限模型:7 點 7 線、每線 3 點、每點 3 線、 任兩點恰決定一線——它證明這些公理不必依賴平行公設就自洽。

平行公設的獨立性(Hilbert, 1899):三種模型滿足除平行公設外的全部公理:

幾何 模型 三角形內角和 過線外一點的平行線
歐氏 平面 \(= \pi\) 恰一條
雙曲 偽球面 / Poincaré 圓盤 \(< \pi\) 至少兩條
橢圓 球面(取對徑點修正) \(> \pi\) 0 條

僅平行公設不同、其餘公理全同 \(\Longrightarrow\) 平行公設是獨立公理—— 兩千年的「證明」註定失敗,因為它根本推不出來。

Archimedes 公理的獨立性:Hilbert 還構造了非 Archimedean 幾何 (存在「無窮大」線段: \(\omega > n \cdot \overline{AB}\) 對一切 \(n\) )—— 連「連續公理」也是獨立的。這是 ZFC 集合論與非標準分析的先聲。

形式化的終點:Hilbert 計劃(把全部數學公理化並證明一致性)被 Gödel(1931)的不完備定理劃下邊界——足夠強的一致系統無法證明自身一致。 但《幾何學的基礎》的方法論(公理 + 模型 + 相對一致性)成為整個數學基礎的語言。

結案 -- 後果與影響#

  • 幾何學的「公理化時代」(1900–1930):
  • Hilbert 的幾何(1899)——影響幾何學整個世紀。
  • Peano 的算術(1889)——Hilbert 同樣手法。
  • Zermelo(1908)、Fraenkel(1922)、von Neumann(1925)——集合論公理化 → ZFC(1930)。
  • Bourbaki(1930s)——整個數學的形式化。
  • 「平行公設」的最終命運: Hilbert 證明了它的獨立性——但這不是「它是對的」的證明, 而是「它是可以選擇的」的證明。
\[ \text{平行公設} = \text{一個「開關」:打開是歐氏,關掉是雙曲。}}. \]

這個「開關」的思想影響了整個 20 世紀的數學: - ZFC 的每個「公理」都是這樣的開關——選擇不同的公理組合 → 不同的數學宇宙。 - Gödel 的兩定理(1931):Hilbert 的夢想「證明一切」被毀滅:

\[ \text{Gödel 第一定理} = \text{任何足夠強的系統都不完備}}. \]
\[ \text{Gödel 第二定理} = \text{無法證明自己的無矛盾性}.} \]

Hilbert 的公理化精神在邏輯學的頂點遇上了自身的邊界——見 計算理論/1936-圖靈機.md。 - 模型論的誕生(1930s–): Tarski 的「抽象理論的概念」(Über unerreichbare Punkte, 1930)—— 模型論(Model Theory)正式成為數學的一門學科。

\[ \text{Hilbert 公理}} \xrightarrow{\text{Tarski}} \text{模型論}} \xrightarrow{\text{Gödel}} \text{不可判定的命題}. \]
  • 歷史定位:Hilbert 的《幾何學的基礎》是「Euclid → Hilbert」循環的完成—— 幾何學從「Euclid 認為顯然的東西」變成「Hilbert 嚴格定義的結構」, 並在 100 年後成為現代數學與邏輯的方法論。

關鍵人物與文獻#

  • D. Hilbert:Grundlagen der Geometrie(1899);Hilbert's Problems(1900,ICM)。
  • G. Pasch:Pasch 公理(1882);R. Dedekind:Dedekind 切割(1872)。
  • G. Peano:Arithmetices principia(1889);E. Zermelo:集合論公理(1908)。
  • K. Gödel:Über formal unentscheidbare Sätze der Principia Mathematica(1931)。
  • A. Tarski:不可達點定理(1930);模型論。
  • 相關案件:1829-羅巴切夫斯基非歐幾何.md、1854-黎曼幾何.md、1882-彭加萊圓盤模型.md、計算理論/1936-圖靈機.md。