5 分钟用 Python + Lean 4 跑通形式化数学证明:把’看起来对’变成’机器验证对’

· 小白基础技术分享

OpenAI 用 10000 个 AI 智能体 88 小时攻克 Navier-Stokes 难题,核心不是智能体规模,而是 Lean 形式化验证。Lean 是一个交互式定理证明语言,逻辑上每一步推导都必须经过机器检查——没有”差不多”、”显而易见”、”留给读者”。这篇文章用 5 分钟跑通一个最简例子,让你理解”形式化证明”为什么在 AI 时代突然变重要。

5 分钟用 Python + Lean 4 跑通形式化数学证明:把'看起来对'变成'机器验证对'封面

一、为什么 Lean 突然成为 AI 圈关键词

过去 Lean 是数学家的小众工具,2026 年开始它出现在所有 AI 公司的高调公告里:Anthropic 用 Lean 验证 Claude 给出的黎曼猜想证明;OpenAI 用 Lean 校验 Navier-Stokes 88 小时跑出的反例;谷歌 DeepMind 用 Lean 验证 AlphaProof 给出的 IMO 题目。原因是——AI 给出的证明如果人类看不懂,Lean 至少能让”逻辑链”被机器读懂。

Lean 有两个主要版本:Lean 3(已经停止维护)和 Lean 4(当前活跃版本)。下面的步骤全部基于 Lean 4。

二、5 分钟跑通第一个形式化证明

### 步骤 1:安装 Lean 4

curl https://raw.githubusercontent.com/leanprover/elan/main/elan-init.sh -sSf | sh
source $HOME/.elan/env

elan 是 Lean 的版本管理工具,类似 Rust 的 rustup。安装完成后,验证:

lean --version
# leanprover/lean4:v4.18.0

### 步骤 2:创建项目

mkdir my-formal-proof && cd my-formal-proof
lake new my-proof math
cd my-proof

`lake` 是 Lean 的构建系统,类比 Cargo。`lake new` 模板会自动生成 `lakefile.toml` 和 `MyProof.lean` 入口文件。

### 步骤 3:写第一个证明

打开 `MyProof/Basic.lean`,写入:

import Mathlib.Data.Real.Basic

theorem square_nonneg (x : ℝ) : x ^ 2 ≥ 0 := by
  exact sq_nonneg x

这段代码的意思是”对任意实数 x,x 的平方大于等于 0″。`by` 后面是策略块(tactic block),`exact sq_nonneg x` 直接调用 Mathlib 里已证明的 `sq_nonneg` 定理。Lean 会用这个一行证明把”x² ≥ 0″形式化掉。

### 步骤 4:编译验证

lake build

如果一切正常,输出会包含 `MyProof.Basic.square_nonneg : ∀ (x : ℝ), x ^ 2 ≥ 0`——这就是 Lean 给出的形式化声明,机器已经确认逻辑链没有断裂。

三、用 AI 帮你写 Lean 证明

更现代的玩法是用 LLM 直接生成 Lean 策略块。例如用 OpenAI 的 API:

import openai

prompt = """
写一个 Lean 4 证明:对任意实数 x 和 y,(x + y)^2 = x^2 + 2xy + y^2。
只输出策略块(by 后面的内容),不要其他解释。
"""

response = openai.chat.completions.create(
    model="gpt-5",
    messages=[{"role": "user", "content": prompt}],
    temperature=0
)

tactic = response.choices[0].message.content.strip()
print(f"ring\n  {tactic}")

把生成的策略粘回 Lean 文件,编译。如果 Lean 接受——你的证明就是形式化正确的;如果 Lean 报错——AI 给的证明是错的。这套”AI 生成 + Lean 校验”流水线正是 OpenAI 攻克 Navier-Stokes 的核心方法。

四、适合谁

适合对 AI 推理可解释性感兴趣的工程师。适合数学系学生用 Lean 写作业证明——错了机器立刻告诉你。适合做 AI Agent 自动代码审计的团队——把”看起来对”的安全断言变成 Lean 里可验证的不变量。

五、限制

Lean 的学习曲线陡——`Mathlib`(标准数学库)有 100 万行以上的形式化定理,新人入手第一周几乎只能复现别人写好的证明。AI 自动生成 Lean 策略的准确率还比较低(2026 年公开基准下,主流模型在 IMO 题目上约 60-70%),需要人工反复试错。

Lean 不适合”开放式论证”——只适合”逻辑可逐步形式化”的问题。像”美是不是主观的”这种问题,Lean 帮不上忙。

六、扩展资源

– [The Natural Number Game](https://www.ma.imperial.ac.uk/~buzzard/xena/natural_number_game/):Lean 官方入门游戏,零基础友好。

– [Mathematics in Lean](https://leanprover-community.github.io/mathematics_in_lean/):数学家的 Lean 实战教材。

– [Lean Theorem Proving GitHub](https://github.com/leanprover/lean4):源码和 issue 区。

– [OpenAI Lean Dojo](https://leandojo.org/):AI + Lean 研究的开源仓库。

七、为什么这是中文开发者的机会

过去 5 年,AI 研究的”基础设施”几乎被美国和欧洲公司占据——OpenAI、Anthropic、谷歌 DeepMind、Meta FAIR。但 Lean 形式化证明是一个例外:Lean 4 的核心开发由微软研究院和卡内基梅隆大学联合推进,Mathlib 社区对全球贡献者开放,且门槛比写论文低得多(不需要发表、不需要导师、只需要数学直觉 + 一点点函数式编程背景)。

对中文用户来说,参与 Lean 社区的实际收益有三层:第一,把 AI 给出的”看似正确”代码审查断言变成”机器验证正确”——这是国内大厂 SRE 团队已经在做的事。第二,把形式化证明能力写进简历——2026 年起,越来越多 AI 安全岗位要求”熟悉 Coq/Lean 至少一项”。第三,可以直接给国内大模型公司提 PR——Qwen、DeepSeek、智谱的代码生成团队都在重金招聘懂形式化验证的人。

Lean 不像 Python 那么大众,但它的”形式化”属性在 AI 时代突然变得稀缺。5 分钟装好环境、跑通第一个不等式,是你 2026 年投入回报率最高的几十分钟之一。

🔥 关注 LC 智趣厅,下周一我们拆解 Mistral 与三星的端侧模型合作细节——为什么 30 亿参数是 2027 年端侧 AI 的甜点位。


— END —
LC 智趣厅 · 科技与生活的交点
ihygg.cn

Scroll to Top
微信公众号:LC智趣厅

扫码关注微信公众号
LC智趣厅