1980 — Martin-Löf 依賴型別理論#
案件摘要#
瑞典邏輯學家 Per Martin-Löf 於 1979–1980 年間發表「構造型別理論」(Constructive Type Theory),將 Russell 的型別論、Curry–Howard 對應與 Brouwer 的直覺主義數學熔於一爐。型別不再只是防錯標籤,而成為「命題」本身;證明即程式。這是「命題作為型別」思想的極限形式。
前因 -- 為什麼會有這個案子#
- Russell 的惡夢:1901 年 Russell 悖論 \(\{x \mid x \notin x\} \in x \iff x \notin x\) 摧毀了樸素集合論,型別論是解藥之一,但 Russell 的 Ramified Type Theory 過於笨重。
- Brouwer 的直覺主義:數學證明必須是「建構」——要證明「存在 \(x\) 使 \(P(x)\) 」,你必須真的給出 \(x\) 。排中律 \(P \lor \neg P\) 不能自由使用。
- Curry–Howard 對應(1958/1969):Curry 發現簡單型別 λ 演算中型別與直覺命題邏輯同構:
例如蘊含消去對應函數應用:若 \(f : A \to B\) 且 \(a : A\) ,則 \(f\,a : B\) 。 - 懸案:Curry–Howard 只處理簡單型別 \(A \to B\) 。像「對所有自然數 \(n\) ,存在質數 \(p > n\) 」這種依賴於值的命題,簡單型別無法表達。
線索與推理 -- 數學式、程式、理論#
Martin-Löf 的關鍵推理:讓型別本身依賴於項。於是出現兩種新的型別構造子:
依賴積型(Dependent Product,Π 型)#
一個函數 \(f : \Pi x:A.\, B(x)\) ,其回傳型別 \(B(x)\) 隨輸入 \(x\) 而變。當 \(B\) 不依賴 \(x\) 時退化為普通函數型 \(A \to B\) 。這對應邏輯的全稱量詞 \(\forall x:A.\, B(x)\) 。
範例:Vector A n → Vector A (n+1) 型的「加入一個元素」函數——回傳型別隨輸入長度改變,靠型別系統保證不會弄錯長度。
依賴和型(Dependent Sum,Σ 型)#
一個元素 \((x, b) : \Sigma x:A.\, B(x)\) 是一對:第一分量 \(x : A\) ,第二分量 \(b : B(x)\) 。這對應邏輯的存在量詞 \(\exists x:A.\, B(x)\) ——給出 \(x\) ,並附上 \(P(x)\) 的證明 \(b\) 。這正是 Brouwer 建構主義的存在證明!
判斷 vs 命題#
Martin-Löf 區分兩個層次,這是理論的核心創新:
| 判斷(Judgement) | 意義 | 命題(Proposition) |
|---|---|---|
| \(A \ \mathsf{type}\) | \(A\) 是一個型別 | — |
| \(a : A\) | \(a\) 具有型別 \(A\) | \(A\) 為真(Curry–Howard) |
| \(a = b : A\) | \(a\) 與 \(b\) 定義相等 | — |
判斷是後設層次的宣稱,命題是理論內部的對象。「 \(a : A\) 」這個判斷成立 ⟺ 命題 \(A\) 有證明(即項 \(a\) )。判斷不能被當成項操作,這與同倫型別論中 HoTT 將「等於」變成命題的做法形成對照。
恆等型與構造#
\(x = y\) 的證明是建構出來的:唯一建構子 \(\mathsf{refl} : \mathsf{Id}_A(x, x)\) 。配合歸納定義(W-type: \(\mathsf{W}_{x:A} B(x)\) 是良基樹的型別,推廣了自然數與各種歸納資料結構),整個數學可以從零開始建構:
-- Agda 風格:自然數與加法的依賴型別定義
data Nat : Set where
zero : Nat
suc : Nat → Nat
_+_ : Nat → Nat → Nat
zero + n = n
suc m + n = suc (m + n)
-- 依賴型別函數:回傳型別依賴於值 n
Vec : Set → Nat → Set
Vec A zero = Unit
Vec A (suc n) = A × Vec A n
理論定義(判斷規則)#
Π 型的引入與消去規則(λ 演算的直接推廣):
β 化簡 $\ (\lambda x:A.\,b)\,a \;\longrightarrow\; b[a/x]$ 在此成為證明化簡:一個證明被化簡成更直接的證明。
結案 -- 後果與影響#
- 型別論成為數學基礎:Martin-Löf 型別論(MLTT)證明整個建構主義數學可以在其中形式化,是繼 ZFC 之後最重要的數學基礎候選。
- 證明助手大爆發:NuPRL(1980s)、Coq(1989)、Agda(1999/2007)、Idris(2012)、Lean(2015)全部以依賴型別為核心。Coq 基於 Calculus of Constructions,Agda 幾乎直接實作 MLTT。
- 程式即證明的工程實現:依賴型別讓「正確性由型別保證」變成現實——CompCert 用 Coq 驗證 C 編譯器,四色定理用 Coq 機械驗證。
- HoTT 與 Cube:2000 年代同倫型別論(Homotopy Type Theory)以 MLTT 為基礎;Barendregt 的 Lambda Cube 中,「加依賴型別」正是通往 λΠ 的一軸。
- 重大懸念:MLTT 的同一性型別 \(\mathsf{Id}\) 引出了不可判定的 UIP 問題,最終催生了 HoTT 的 univalence 公理——案件仍在延燒。
關鍵人物與文獻#
- Per Martin-Löf:瑞典邏輯學家,機率論(Martin-Löf randomness)與型別論雙棲大師。
- 文獻:
- Martin-Löf, P. (1980). Constructive Mathematics and Computer Programming (Philosophical Transactions of the Royal Society).
- Martin-Löf, P. (1984). Intuitionistic Type Theory (Bibliopolis, Naples) — 佛羅倫斯講義,MLTT 聖經。
- Nordström, Petersson, Smith (1990). Programming in Martin-Löf's Type Theory.
- 相關:Brouwer(直覺主義)、Heyting(直覺邏輯形式化)、Curry–Howard(Howard 1969〈The Formulae-as-Types Notion of Construction〉)。