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。
羽毛球分组比赛记分
小程序二维码

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

小夜