【專訪】Lean 創造者 de Moura:AI 找到核心漏洞偽造數學證明,也打敗了 Rust
正式數學證明這件事,長期以來是少數人的專業工具,跑在學術圈的角落。但現在有一件事正在讓它走出角落:AI 開始能寫出讓機器驗證的數學證明了,而且寫得愈來愈好。Leonardo de Moura 是 Lean 的創造者——Lean 是一套讓數學家和工程師把定理與程式正確性寫成機器可驗證格式的語言,目前是全球形式化數學社群的核心工具,也是 AI 公司訓練數學推理模型的主要平台。他同時擔任 AWS 首席科學家,並主持 Lean FRO 這個非營利組織。這場訪談裡,他談的不是願景,是剛發生的事。
每天精選 6 則要聞、一則產業名人訪談,五分鐘跟上。
這場對談有幾個值得注意的地方:第一,AI 已經能利用 Lean 核心的漏洞偽造數學證明,而且很可能是 AI 自己找到漏洞的;第二,AI 把一個被認為不可能的任務做到了——用 Lean 重寫壓縮程式並打敗 Rust 的效能;第三,de Moura 對 AI 的判斷是兩面的,它在填補已知空缺時幾乎無敵,但要它發明新技巧就力不從心;第四,Mathlib 這個數學形式化函式庫要覆蓋所有主流數學,估計要長到一億行;第五,他對 Lean 未來的優先順序說得很清楚——效能,軟體驗證平台,以及縮小需要人工信任的程式碼範圍。合起來看,這是一張 AI 與形式化驗證正在交會的地圖,交會點比外界想的更早,也比外界想的更混亂。
◎AI 找到核心漏洞,偽造了 Collatz 猜想的反例
Collatz 猜想是數學界一個簡單到小學生都能懂,但幾十年沒人能證明的問題。幾週前有人送出一份 Lean 證明,聲稱推翻了它,而且宣稱同時通過了 Lean 官方核心與外部驗證器 nanoda 的檢查。這本來應該是不可能的事。調查後發現:這份證明利用了官方核心的一個漏洞,以及 nanoda 在修補另一個漏洞之前的舊版本的另一個漏洞——兩個完全不同的漏洞,分別擊破。de Moura 說,他們強烈相信這是 AI 建構的,因為漏洞裡有一堆製造雜湊碰撞的奇怪項目,對人類沒有意義,但對繞過 nanoda 的驗證卻剛好有用。這件事的意涵很直接:AI 有足夠的耐心和能力去找系統最深處的弱點,而人類沒有。de Moura 的回應是討論幾個方向,包括讓多個用不同語言實作的獨立核心互相制衡,以及加速 Mario Carneiro 正在進行的 Lean4Lean 計畫——這是一個試圖用 Lean 本身證明 Lean 核心正確性的專案。
◎AI 把 Lean 的 zlib 實作打敗了 Rust,這件事本來不應該發生

Kim Morrison 用 Claude 做了一件事:把 C 語言寫的 zlib 壓縮程式翻譯成 Lean,讓它通過原版的測試組,再證明「任何資料壓縮後解壓縮都能還原」這個性質,然後讓 AI 繼續最佳化效能——最後的結果是 Lean 版本的執行速度超過了 Rust。這不應該發生,因為 Lean 在設計上是為了操作語法樹和表達式樹最佳化的,處理陣列一向是弱項,de Moura 自己說他原本認為這永遠不可能有競爭力。這個結果的意義不只是一個效能數字:它說明 AI 在有明確可驗證目標的情況下,願意嘗試人類工程師不會去嘗試的路徑,而且它必須一路維持正確性才能繼續走。de Moura 的解讀是,這打開了一條路——未來可以讓 AI 直接用 x86 組合語言寫最佳化程式,同時證明性質不被破壞。
◎AI 的天花板:填空無敵,發明新招就不行
de Moura 對 AI 能力的判斷沒有客套。他說 AI 在兩種任務上幾乎打不過人類:一是給定一個命題,用現有的數學工具組合出證明;二是對已有程式碼做微觀最佳化。但要它想出一個全新的技巧,它就掉下來了。他的解釋是:AI 在訓練時讀遍了所有文獻,對文獻裡出現過的解法有強烈偏向,如果問題可以用既有技巧的組合解決,它會做得漂亮;但如果需要一個文獻裡沒有的新招,它就沒有著力點。他用一個比喻說:AI 更像是讀完所有麵包屑再走下一步的繼承者,而不是自己在世界裡摸索,從失敗中累積直覺的行動者。他認為這個差距不是不能跨越,但目前確實存在,而且他看不到行為在改變——換更好的模型,驚人的事和蠢事同時都在增加。
◎Mathlib 要到一億行才夠用,而 AI 讓這個問題提前到來
Mathlib 是 Lean 社群維護的數學形式化函式庫,目前有 240 萬行,而且從 2025 年到現在已經成長了 44%。社群裡有人估計,要能形式化任意研究等級的數學論文,這個函式庫需要長到一億行。de Moura 用軟體開發做比喻:如果你要寫一個應用程式,但一半的依賴套件都不存在,你就得先花幾年把基礎建設蓋起來,才能開始做你真正想做的事。Mathlib 現在對很多數學領域來說就是這個狀態。問題是 AI 現在能加速寫進 Mathlib 的速度,但 Lean 的編譯效能未必跟得上。他說這是接下來的核心工程挑戰:怎麼讓一個一億行的函式庫還能正常運作,而且可能需要 AI 來協助維護效能本身。
◎縮小需要信任的程式碼範圍,是 Lean 接下來的主軸
Lean 的設計哲學是把需要信任的部分縮到最小。如果你只想驗證定理,你只需要信任核心,核心比整個系統小得多。但如果你用 Lean 寫程式,證明性質,再產生可執行檔,你還需要信任編譯器,而編譯器大得多。de Moura 說,接下來的目標是把編譯器本身也驗證正確——不是因為他們會惡意植入問題,而是因為每個人都會犯錯。這個方向的終點理論上可以一路往下問:編譯器正確了,硬體呢?他說,讓 Intel 和 AMD 公布處理器的正式規格是這條路上一個合理的下一步。這不是遙遠的願景,而是他們現在已經在做的事的延伸。整體方向就是一句話:你需要親自信任的東西,愈少愈好。
de Moura 在 2013 年開始做 Lean 的時候,以為它會是少數安全關鍵系統工程師用的工具,證明由人手寫。他沒想到 Terence Tao 會用它,沒想到 AI 會用它找漏洞,也沒想到 AI 會用它打敗 Rust。他說他可能是世界上最幸運的人。這句話聽起來謙虛,但背後有一個判斷:他把 Lean 設計成互動式的,AI 可以引導它;如果當初做成黑盒子,今天的局面就不會是這樣。運氣,有時候是提前做了正確的選擇。
開場直接說明 Collatz 猜想的反例事件:有人提交了一份 Lean 證明,聲稱通過官方核心與 nanoda 的驗證,他們強烈認為這是 AI 利用兩個不同漏洞建構的攻擊。
詳細說明 Collatz 事件的時間序列:nanoda 的漏洞被回報與修補,幾天後偽造證明出現;他修了官方核心的漏洞後,發現裡面有專門用來繞過 nanoda 舊版本的奇怪項目。介紹 comparator 工具與後續改善方向。
說明 Kim Morrison 用 Claude 把 zlib 從 C 翻譯成 Lean,通過測試組,證明壓縮還原性質,再最佳化到效能超越 Rust 的完整過程;他強調這在年初時他認為完全不可能。
提出他對 AI 能力邊界的判斷:在 nut-sniping 類任務(給定命題,組合現有工具證明)和微觀最佳化上 AI 幾乎無敵;但要發明新技巧就明顯力不從心,因為 AI 對訓練資料裡出現過的解法有強烈偏向。
說明 Mathlib 4 目前有 240 萬行,已超過 Mathlib 3 的 110 萬行;社群估計要覆蓋所有主流數學需要一億行;討論 Mathlib 未來可能拆分成多個有各自維護團隊的子函式庫。
討論 AlphaProof 混合架構與純 LLM 方法的比較:混合方法每步便宜但步數多,LLM 每步貴但更快到達;他認為兩種方法在不同領域各有適用場景,目前成本比較還沒有定論。GPT 5.6 與 Claude Fable 被提及為目前在數學證明上表現突出的模型。
說明 Lean 接下來的三個優先方向:讓 Lean 產生的程式碼效能接近 Rust,把 Lean 做成完整的軟體驗證平台,以及驗證編譯器本身以縮小需要信任的程式碼範圍。
看完今天的,讓明天的自己送上門
每天精選 6 則要聞、一則產業名人訪談,五分鐘跟上。
已出刊 128 期 ・ 隨時可退訂

