学习资源与练习路线

从游戏到 Mathlib,再回到 Hansen

Lean 社区的学习页开宗明义:无论背景,证明助手都难,不能指望一个下午精通;资源很多,但只学 Lean 4,不要再学 Lean 3 (Lean prover community 2025年b)。本页把这些资源排成一条适合已会写计量证明的教师的路径,并说明本栏目以后如何追加实作笔记。

1 四条并行的官方入口

按「先上手、再补基础」而不是「先读完逻辑再写第一行」:

资源 适合什么 链接
Natural Number Game(NNG,自然数游戏) 零安装,用策略证自然数性质 adam.math.hhu.de;源码 NNG4
Mathematics in Lean(MIL) 用 Mathlib(Lean 的数学库)、偏策略、有习题文件 HTML (Avigad 和 Massot 2025年)
Theorem Proving in Lean 4(TPIL) 依赖类型论、项风格、内核与公理 TPIL4 (Avigad 等 2025年)
The Mechanics of Proof 比 MIL 更缓,本科证明课口吻 Macbeth

社区比喻:MIL 是「先按开始键」;TPIL 是「先读完说明书」(Avigad 和 Massot 2025年)。计量教师建议 NNG → MIL 前几章 → 需要时查 TPIL,不要先把 TPIL 当教材从头到尾抄。

补充:

2 建议的十二周节奏

可按学期实验课压缩或拉长。目标不是成为 Mathlib 贡献者,而是:能独立读懂一条普通最小二乘(OLS, Ordinary Least Squares)代数形式化,并能写出带 sorry 的 Hansen 陈述骨架。

第 1–2 周:游戏。
打完 NNG 的加法、乘法、不等式若干世界。体会 rw、induction、have。不要同时装 Mathlib。

第 3–5 周:MIL 基础与逻辑。
安装 Lean 4 与 Visual Studio Code(VS Code)/ Cursor 扩展;按官方说明下载 Mathematics in Lean 仓库,复制 MIL 文件夹再做题,以便日后 git pull (Avigad 和 Massot 2025年)。完成计算、代数结构、逻辑量词、集合与函数。

第 6–7 周:线性代数章。
MIL 第 10 章(向量空间、子空间、矩阵)是第 3 章 Hansen 的预科。同步重读本仓库 block-matrix/ 与 part01-reg/chpt03-*.qmd,尝试把一条板书恒等式写成 calc。

第 8–9 周:测度与积分浏览。
MIL 第 13 章 + Mathlib 文档里 condExp 页。不求证完,求能 #check 出条件期望的类型。对照 计量路径。

第 10 周:读别人的对照表。
打开 lean-hansen-econometrics 的 inventory/ch3-inventory.md(或 ch2),只读陈述差异,不求本地构建通过。用 如何解读 的清单做笔记。

第 11–12 周:自己的第一条骨架。
在独立目录 lake new ... math,写一条 Frisch–Waugh–Lovell(FWL)或投影幂等的 theorem ... := by sorry,补到能 lake build。把假设与 Hansen 编号写入本仓库 inventory(定理清单;Lean 目标列填声明名)。仍不把 .lake 提交到 hansenpeer。

每周保留一次 Zulip 提问或旁听。https://leanprover.zulipchat.com/

3 安装清单(学习工程,不是本站)

  1. 按 https://lean-lang.org/install/ 安装 elan(Lean 工具链管理器)与 Lean 4 扩展。
  2. 用 VS Code 的 ∀ 菜单打开 / 下载 Mathematics in Lean,或命令行 git clone 后 lake exe cache get (Lean prover community 2025年a)。
  3. 自建练习项目:lake +v4.24.0 new my_project math,再 lake update 与 lake exe cache get。版本号以当时文档为准。
  4. Windows 若 cache get 失败,先看社区项目页的杀毒软件说明。

本 Quarto 站点构建不依赖上述步骤。关掉 Lean 扩展也可以渲染本栏目。

5 本栏目以后如何生长

后续实作笔记建议仍放 block-lean/,文件名继续编号,例如:

  • lean-09-nng-notes.qmd:NNG 与课堂归纳法对照
  • lean-10-mil-linalg.qmd:MIL 矩阵习题与第 3 章记号
  • lean-11-fwl-skeleton.qmd:FWL 的 L1 ↔︎ 拟 Lean 签名(仍可不含可构建工程)

L3 源码若出现,使用第三仓库或本仓库平行目录,独立 lakefile.toml,站点只链过去。规则与方法页 明确不做 一致。

6 阅读本栏目的检查表

读完八篇后,应能不看笔记回答:

  1. L1、L2、L3 各证明什么、不证明什么?
  2. 为什么 lake build 绿了仍可能没证明 Hansen 原句?
  3. sorryAx 与 Classical.choice 对外说法有何不同?
  4. 为什么 OLS 必须先规定奇异时的值?
  5. 第一条值得做的 Hansen L3 大概是哪条链?

若这五问清楚,技术细节可以边做边查 TPIL 与 Mathlib 文档。形式化是工程,不是一次读完的理论课。

参考文献

Avigad, Jeremy, 和 Patrick Massot. 2025年. Mathematics in Lean. https://leanprover-community.github.io/mathematics_in_lean/.
Avigad, Jeremy, Leonardo de Moura, Soonho Kong, 和 Sebastian Ullrich. 2025年. Theorem Proving in Lean 4. https://leanprover.github.io/theorem_proving_in_lean4/.
Carneiro, Mario. 2019年. 《The Type Theory of Lean》. Master's thesis, Carnegie Mellon University. https://github.com/digama0/lean-type-theory/releases.
Lean prover community. 2025年a. Lean Projects. https://leanprover-community.github.io/install/project.html.
Lean prover community. 2025年b. Learning Lean 4. https://leanprover-community.github.io/learn.html.