Lean数学证明验证工具

一个通过MCP协议将Lean 4编译器暴露为验证工具的数学定理验证服务,用于验证Lean 4和Mathlib编写的数学证明。

  • by KrystianYCSilva
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 KrystianYCSilva/lean-mcp

使用说明

精益mcp

MCP服务器和客户端 精益4+Mathlib 形式定理验证。

将Lean 4编译器作为MCP工具公开(verify_lean_theorem)通过stdio传输,允许任何兼容MCP的AI客户端(OpenCode、Claude Desktop、Cursor等)验证数学证明。

先决条件

  • 精益4 通过安装 埃兰
  • A. 精益4项目 具有Mathlib依赖项(具有 lake build 已完成)
  • Python 3.10+

安装

pip install lean-mcp

或者从源代码安装:

git clone https://github.com/KrystianYCSilva/lean-mcp.git
cd lean-mcp
pip install -e .

快速开始

服务器

运行MCP服务器(stdio传输):

LEAN_PROJECT_PATH=/path/to/your/lean4/project lean-mcp-server

客户端(程序化)

import asyncio
from lean_mcp.client import LeanMCPClient

async def main():
    async with LeanMCPClient() as client:
        await client.connect(lean_project_path="/path/to/lean4/project")

        result = await client.verify(
            "theorem modus_ponens (P Q : Prop) (hp : P) (hpq : P -> Q) : Q := hpq hp"
        )
        print(result)  # [QED] Compilacao bem-sucedida. Nenhum erro. Prova completa.

asyncio.run(main())

客户端配置(克劳德桌面、OpenCode等)

添加到MCP客户端配置中:

{
  "mcpServers": {
    "lean-mcp": {
      "command": "lean-mcp-server",
      "env": {
        "LEAN_PROJECT_PATH": "/absolute/path/to/lean4/project"
      }
    }
  }
}

工具: verify_lean_theorem

参数 类型 必填 说明
lean_code string yes 精简4代码进行编译。如果不 import 存在, import Mathlib 自动添加。
timeout int no 编译超时(秒)(默认值:120)。

返回值

前缀 含义
[QED] 证明编译成功(返回代码0,无输出)。
[FEEDBACK DO COMPILADOR] 编译错误——包括用于调试的编译器输出。
[ERRO_SISTEMA] 基础设施故障(超时, lake 未找到等)。

建筑

MCP Client (any)
    |
    | stdio (JSON-RPC)
    v
lean_mcp/server.py      Tool: verify_lean_theorem
    |
    | subprocess (lake env lean)
    v
Lean 4 + Mathlib         Formal verifier

环境变量

变量 必填 描述
LEAN_PROJECT_PATH yes 精益4项目目录的绝对路径,其中包含 lakefile.toml.

许可证

麻省理工学院