三亩地 三亩地SAN MU DI · CODE DIARY
ARTICLE DETAIL

日记详情

真实记录编程学习的某一天,欢迎挑你感兴趣的翻一翻。

如何在15分钟内完成第一个机器验证的数学证明:mathlib4从零到一快速上手指南

如何在15分钟内完成第一个机器验证的数学证明:mathlib4从零到一快速上手指南

如何在15分钟内完成第一个机器验证的数学证明:mathlib4从零到一快速上手指南

【免费下载链接】mathlib4The math library of Lean 4项目地址: https://gitcode.com/GitHub_Trending/ma/mathlib4

你是否曾在草稿纸上演算一整晚,却因为某一步推理"跳得太远"被老师当场抓包?又或者,你写代码时希望"函数的行为是对的"这件事能像数学定理一样被严格证实,而不是靠测试碰运气?这正是mathlib4——Lean 4 定理证明器的官方数学库——存在的意义:它把每一条定理的每一个推理步骤都交给计算机逐行核验,让"证明正确"不再依赖某个人,而是依赖一台不会打盹的机器。

🎯 3步主线目标:拿到一张"机器认证"的证明

这篇文章不打算给你讲一堆理论,而是带你在 15 分钟内完成一个可交付的小成果:

  1. 装好 Lean 4 与 mathlib4 环境(约 5 分钟)
  2. 跑通第一个被机器验证的数学证明(约 3 分钟)
  3. 体验自动化证明与现成定理库的威力(约 5 分钟)

走完这三步,你就拥有一个能随时验证数学命题的"私人裁判"了。

🚀 第1步 先跑起来:5分钟搭好你的证明工作台

安装 elan:给 Lean 请一位"版本管家"

elan 就像是 Lean 的版本管家:你不需要手动纠结装哪个版本,它会帮你自动下载、切换合适的工具链。一条命令就能请它进门:

curl https://elan.lean-lang.org/elan-init.sh -sSf | sh

装完后重新打开终端,敲lean --version,看到版本号就说明管家已经就位,可以开始干活了。

给 VS Code 装上"翻译官"

打开 VS Code → 扩展市场 → 搜索leanprover.lean4→ 点击安装。装好后,每次打开.lean文件,编辑器都会实时显示每行证明的状态:黄色表示正在检查,绿色打勾表示通过,红色波浪线表示这里被机器"驳回"了。绿勾就是你最好的朋友,看到它,恭喜你,这条证明是真的。

获取 mathlib4 源码并加速加载

把数学宝库搬回本地,顺便拉取预编译缓存:

git clone https://gitcode.com/GitHub_Trending/ma/mathlib4.git cd mathlib4 lake exe cache get

通俗解释一下:第一行把整个 mathlib4 源码下载到你的电脑;最后一行是拉取别人编译好的定理库缓存,免得你从零编译数万条定理等到怀疑人生。

🔍 第2步 再玩明白:亲手写一个被验证的证明

现在创建一个新文件test.lean,写上这段"经典入门三行":

import Mathlib example : 2 + 2 = 4 := by norm_num

逐行拆解给你看:import Mathlib表示把整个数学库请进来;example : 2 + 2 = 4声明了你想要证明的命题;norm_num则是一个会自动计算数值的策略,相当于让机器自己心算一遍。保存文件,看到绿色对勾了吗?这就是你的第一个形式化证明,机器已经替你确认:没毛病。

再试一个稍微有"推理感"的例子,感受自动证明的省力之处:

import Mathlib example (x y : ℕ) (h : x ≤ y) : x + 1 ≤ y + 1 := by omega

omega是专门处理线性算术的自动证明器。像"两边同时加 1,不等式仍然成立"这种"一看就对但手写归纳很啰嗦"的命题,交给它一句话就能搞定,你只管思考大方向,琐碎推理交给机器。

💡 第3步 用到极致:让数学库替你打工的效率心法

学会写证明只是开始,真正爽的是把整个库当成"可搜索的数学大脑"来用:

  • 随时问库要定理:用#check add_comm之类的命令,输入后按 Ctrl 点击,就能跳转查看这个定理的定义和证明,学习高手是怎么写的。
  • 调用现成策略军团:除了norm_numomega,还有ring(自动展开多项式运算)、linarith(线性不等式)、aesop(通用自动证明)。比如:
example (a b : ℂ) : (a + b) ^ 2 = a ^ 2 + 2 * a * b + b ^ 2 := by ring

一行ring直接拿下完全平方展开,换你手写至少四五行。

  • 全量构建与自检:跑lake build可以构建整个数学库,跑lake test会执行全套测试用例——这是检验你本地环境是否完好的金标准。
  • 精读"参考答案":仓库里的Archive/目录收藏了大量现成的精彩证明,是新手最好的"参考答案集"。

🛠️ 避坑清单:新手最常见的 6 个"卡壳"现场

症状可能原因解药
终端找不到lean命令elan 未生效重开终端,或执行source ~/.profile刷新环境变量
lake build龟速或超时还没拉缓存lake exe cache get,再重新构建
import Mathlib直接报错在错误目录打开了文件确认 VS Code 是在仓库根目录打开的
证明标红但看不出哪里错错误信息藏在面板里看底部 "Lean Infoview" 面板,光标悬停在红波浪线上
插件装了一直没反应扩展未加载按 Ctrl+Shift+P,输入 "Reload Window" 重载窗口
版本混乱、行为异常工具链被切换过elan toolchain list查看并切换回项目要求的版本

记住一条心法:红色报错不是失败,而是机器在告诉你"这一步推理有漏洞"——这正是它最有价值的时刻。

📚 延伸学习:从"会跑通"到"会证明"的成长路线

  • 文档与规范docs/目录下藏着官方文档与写作风格指南,写证明前先读两页,能少走很多弯路。
  • 入门示例Archive/Examples/里有大量短小精悍的初等证明,适合作为睡前读物逐行研读。
  • 奥赛题解Archive/Imo/汇集了历年国际数学奥林匹克题目的形式化解法,从年份最早、篇幅最短的开始啃。
  • 反例博物馆Counterexamples/收集了许多"看起来成立、实际上失效"的命题,看一遍能极大提升你的数学直觉。

推荐的成长路径是:先读别人的证明 → 复述改写 → 独立证明一道小题 → 尝试为库贡献新定理。每一步都别急,形式化数学是场马拉松。

✨ 行动号召:现在,轮到你了

回看开头那个被老师抓包的场景——有了 mathlib4,你以后再也不用担心推理"跳步",因为每一步都有机器帮你把关。接下来你可以这样继续:

  1. 每天用#check探索 5 个库中现成的定理,看看它们叫什么、怎么证;
  2. 挑一道你熟知的代数恒等式,试试用ring一键拿下;
  3. Archive/Examples/里挑最短的一篇证明,逐行批注它的思路;
  4. 把平时作业或工作中用到的小定理试着形式化,完成一次"亲手认证";
  5. 遇到卡壳就去社区提问,或尝试提交你的第一个 PR。

小贴士:形式化证明的路上,被机器"打回"是常态而不是失败——每一次红色报错,都是机器在帮你把思维里的漏洞悄悄补上。慢慢来,数学从来不怕慢,怕的是从不开始。

【免费下载链接】mathlib4The math library of Lean 4项目地址: https://gitcode.com/GitHub_Trending/ma/mathlib4

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

← 返回列表