第一阶段:环境搭建(1-2小时)
Lean 是运行在你电脑上的软件,需要先配置好环境。
| 步骤 | 操作 | 说明 |
|---|---|---|
| 1. 安装 VS Code | 下载安装 Visual Studio Code | 最佳的 Lean 编辑器 |
| 2. 安装 Git | 下载安装 Git | 用于下载项目和管理代码 |
| 3. 安装 Lean 4 | 通过 elan 安装 | 类似 Rust 的 rustup,自动管理 Lean 版本 |
| 4. 安装 VS Code 扩展 | 在 VS Code 中搜索 "Lean 4" 并安装 | 提供语法高亮、实时反馈等功能 |
安装命令速查:
-
Windows(网络不佳时使用上交镜像):
curl -O --location https://s3.jcloud.sjtu.edu.cn/899a892efef34b1b944a19981040f55b-oss01/elan/elan/releases/download/v3.1.1/elan-x86_64-pc-windows-msvc.zip unzip -o elan-x86_64-pc-windows-msvc.zip .\elan-init.exe
-
macOS/Linux(一键安装):
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/leanprover-community/mathlib4/master/scripts/install_macos.sh)"
💡 网络提示:Mathlib 数学库约 4.5GB,首次下载较耗时。如果网络条件差,推荐先使用在线版本。
第二阶段:零基础快速入门(2-3小时)
如果你想快速上手、先体验再说,推荐以下两个在线资源------无需安装,打开浏览器即可开始:
| 资源 | 特点 | 适合人群 |
|---|---|---|
| A Glimpse of Lean | 2-3小时快速入门,无需注册 | 想立刻体验的急性子 |
| tutorials4 | 手把手练习式教程,基于大一数学 | 喜欢边学边练 |
建议路径:
-
先打开 A Glimpse of Lean 在线版(lean4web 服务器)
-
阅读
Introduction.lean文件 -
跟随完成基础练习(约2小时)
第三阶段:系统学习(1-2周)
如果你决定认真学,并愿意花时间深入,以下是核心学习材料:
| 资源 | 特点 | 推荐顺序 |
|---|---|---|
| Mathematics in Lean(数学中的 Lean) | 首选教材,中文版可用,交互式学习 | 第1本 |
| Theorem Proving in Lean 4 | 系统讲解 Lean 逻辑框架,类似"用户手册" | 第2本(备查) |
| Formalising Mathematics(帝国理工课程) | 2024年 Kevin Buzzard 授课,实战性强 | 作为补充练习 |
⚠️ 注意 :网上有些教程是基于 Lean 3 的,Lean 4 已完全不同。请确认学习资料是 Lean 4 版本。
第四阶段:进阶实战
当你掌握了基础,可以尝试参与真实的形式化项目:
| 资源 | 说明 |
|---|---|
| Mathlib | Lean 的官方数学库,正在持续扩充 |
| Blueprint 模板 | 大型形式化项目的组织框架,Fermat 大定理等项目使用此模板 |
| Zulip 聊天室 | 活跃的社区,遇到问题随时有人解答 |
知名 Lean 形式化项目(了解学习):
-
Fermat's Last Theorem(费马大定理)- Kevin Buzzard 领导
-
Polynomial Freiman-Ruzsa Conjecture - Terence Tao 参与
-
Prime Number Theorem(素数定理)
🌐 官方资源速查表
| 资源名称 | 网址 | 用途 |
|---|---|---|
| Lean 官网 | lean-lang.org | 官方首页,下载入口 |
| 安装指南 | lean-lang.org/install | 各平台安装说明 |
| Mathematics in Lean(中文) | leanprover.cn/math-in-lean-zh | 中文交互式教材 |
| Lean 社区资源汇总 | lean-lang.org/community | 教程、文档合集 |
| Zulip 中文聊天室 | leanprover.zulipchat.com | 提问、交流(中文友好) |
| Reservoir 资源平台 | reservoir.lean-lang.org | 课程、项目集合 |
📝 核心概念速览
在开始学习前,理解几个核心概念会很有帮助:
| 概念 | 解释 |
|---|---|
| Lean | 既是编程语言,也是定理证明器。你可以写代码,也可以证定理 |
| Mathlib | Lean 的官方数学库,包含了大量已形式化的数学定理 |
| Lake | Lean 的包管理器,用于创建和管理 Lean 项目 |
| Tactics(策略) | 告诉 Lean "如何证明"的命令,是写证明的核心方式 |
| Elan | Lean 的版本管理器,类似 Python 的 conda |
两种证明方式对比(来自 Mathematics in Lean):
lean
-- 直接构造证明项(复杂但紧凑)
example : ∀ m n : Nat, Even n → Even (m * n) :=
fun m n ⟨k, hk⟩ ↦ ⟨m * k, by rw [hk, mul_add]⟩
-- 使用策略(清晰、交互式、推荐新手)
example : ∀ m n : Nat, Even n → Even (m * n) := by
rintro m n ⟨k, hk⟩
use m * k
rw [hk]
ring
💡 学习建议
-
边学边写,不要只看:Lean 的学习曲线较陡,必须在 VS Code 中动手敲代码才能体会
-
善用 Zulip:遇到问题立刻去问,社区非常友好
-
从简单开始 :先完成
00FirstProofs.lean这样的入门练习 -
不要过早碰大型项目:先精通基础
-
中文资源可用 :
Mathematics in Lean有完整中文版
一句话总结:去 lean-lang.org 安装,打开 Mathematics in Lean 中文版 一边读一边练,遇到问题上 Zulip 问。