2026-08-28·作者 Sijie Wang#idea#math

lean4

Lean 4——计算、类型与证明焊接在一起之处

上级:logic

Lean 4 是一个依赖类型的函数式语言,同时也是一个交互式定理证明器——这整条分支汇聚而成的实作综合体。

基础

归纳构造演算(Calculus of Inductive Constructions,CIC):依赖类型论 + 归纳类型(定义 ℕ、列表、树,以及命题本身) + 一个宇宙层级(Prop 表示证明无关的命题;Type u 表示数据)。这套基础足够丰富,一个类型可以就是任何一条数学陈述。

证明即项;检验即类型检验

由柯里–霍华德对应可知,P 的一个证明就是一个类型为 P 的项。一个小小的可信内核对该项做类型检验——这就是德布鲁因判据(de Bruijn criterion):你只需信任一个微小的检验器,而不必信任整个系统。在实践中,证明检验就是类型检验。

战术(tactic)——人与机器之间的桥梁

你很少手写证明项。你运行的是战术(intro、apply、simp、ring、omega……),它们在幕后构造出证明项。Lean 4 是自举的:它的战术/元编程语言本身就是 Lean,用户在证明器内部扩展证明器。这在人类式的推理与底层经归约的项之间架起了一座桥。

mathlib——大规模的形式化数学

一个由社区构建的庞大库——分析、代数、拓扑、数论——全部经过机器检验。它是"数学可以被完全形式化"这一论断的经验证明,也是可验证研究的基底(例如检验一个高难度证明是否存在漏洞)。

综合

Lean 既是一门真实、快速的编程语言,又是一个证明器,因此已验证的程序与其证明活在同一个对象里——程序=证明,字面意义上的。三条线索在此汇合:

你写下的证明由机器通过类型检验来验证,而且你还可以对它们做计算。

关于这一条

sijie 的一条 wiki 条目。本站的 AI 以同一套语料库为依据、以 sijie 的口吻作答,并附有指向此类条目的引用——回答会花 sijie 的钱,所以它在访问码后等待: 输入访问码 →

lean4 — Sijie Wang