lean4-harness-plugin:DeepSeek Harness 的 Lean 4 本地驗證插件

前言

在構建依賴 Lean 4 和 Mathlib 的智能體應用時,直接讓模型輸出代碼而不進行本地驗證,往往會導致生成的證明無法通過編譯。lean4-harness-plugin 是 DeepSeek Harness(DSH)的一個插件,它將本地的 Lean 4 驗證器與 Web Profile 中的智能體連接起來。模型生成 Lean 4 源碼後,插件會調用本地 Lean 驗證器,並將驗證結果(包括錯誤信息、行號、列號和緩存狀態)返回給模型。模型據此修改代碼並再次檢查,直至 Lean 明確通過。

核心功能

插件提供以下核心能力:

  • 完整 Lean 4 源碼驗證
  • 常駐 Lean LSP 進程複用,避免重複啓動
  • 結構化錯誤、警告、行號和列號返回
  • 精確 Mathlib 模塊的 .olean 緩存檢查
  • 缺失 Mathlib 模塊時的用戶一次授權與受控最小構建
  • tactic state 格式化
  • 工具:lean_check、lean_repl_request、lean_format_tactic_state

前置條件

安裝前需確認環境滿足以下要求:

  • 操作系統:僅支持 Windows 11
  • Node.js:>= 22.19.0
  • DeepSeek Harness:0.1.3-alpha.2
  • Lean:leanprover/lean4:v4.26.0
  • Mathlib 4:需安裝在本地路徑 D:\mathlib4,且包含匹配版本的 .olean 緩存文件

安裝與啓用

插件通過 DSH Bundle 機制加載,不需要複製到 Harness 的 packages/ 目錄。

使用 link: 語法將本地倉庫鏈接到 Web Profile:

pnpm dsh plugin --profile web add 'link:D:\\lean4-harness-plugin'

執行上述命令後,在 Web Profile 的配置中應能看到 lean4-harness-plugin 的聲明。

典型用法

新建對話,給模型數學題,並明確要求它在完成前調用 lean_check。

可以將以下測試要求交給模型:

請使用 Lean 4 和 Mathlib 證明自然數加法滿足:1 + 2 = 2 + 1。

要求:
1. 自行寫出完整 Lean 4 源碼;
2. 自行選擇最小必要的 Mathlib 子模塊,不要使用 import Mathlib;
3. 生成第一版代碼後,必須調用 lean_check;
4. 若 lean_check 返回錯誤,請依據錯誤信息修改並繼續驗證;
5. 只有 lean_check 返回 verified 或 verified_with_warnings 後,才能說明證明完成。

性能說明:第一次 lean_check 可能需要幾十秒到數分鐘,這主要用於將本地已存在的 .olean 文件讀入內存。同一 Web 服務中的後續驗證會複用常駐 Lean LSP 進程,結果裏的 reusedProcess 通常爲 true,速度會明顯提升。

注意事項

  • 插件不替模型“猜”證明是否正確,完全依賴本地 Lean 驗證器。
  • 插件依賴本地 Mathlib (D:\mathlib4),不會在安裝時下載。
  • 必須使用 link: 語法將本地倉庫鏈接到 Web Profile,而不是直接引用遠程倉庫。
  • 僅支持 Windows 11。
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜