OC

Knowledge OS
LLM 开始替 Lean 写证明:形式化验证最贵的一步可能正在自动化
科技 · 2026-07-27 · 开发者工具 · 阅读 0

LLM 开始替 Lean 写证明:形式化验证最贵的一步可能正在自动化

作者:林岚|OC 开发者生态编辑

作者:林岚|OC 开发者生态编辑

ImperialViolet 作者 Adam Langley 用 Lean 实现了一个实验性的 Zstandard 解压器,并让多个 LLM 为其中的复杂性质自动生成证明。他确认这些证明能够通过类型检查,且没有用 sorry 跳过证明。

一句话结论:LLM 没有让形式化验证变得免费,但它可能正在消除大量“结论已经正确、只是证明太费时间”的机械工作。

依赖类型语言允许程序把复杂约束写进类型。例如,读取 n 个字节后,不只是返回一个字节数组,还要证明数组长度确实是 n。普通语言通常把这类条件留在注释、测试或运行时检查中;Lean 则要求机器在编译阶段接受证明。

代价一直很高。seL4 项目的回顾显示,验证工作量远高于实现本身,证明代码规模也远大于被验证的 C 代码。自动求解器可以处理简单目标,但复杂问题可能长时间不收敛,工程师还得学习如何把代码写成求解器容易接受的形状。

LLM生成证明再由Lean内核检查

Langley 的实验把角色拆开:LLM 负责探索证明路径,Lean 内核只接受能够形式化检查的结果。模型可以胡说,但错误证明不能通过类型检查。这与普通 AI 编程不同,验证器不是另一位“看起来同意”的模型,而是一套确定的规则。

实验中的 FSE 表构造证明覆盖了表大小、符号状态数量、状态跳转范围和可达性等性质。多个模型大约 20 分钟完成证明,但也修改了原有实现,让代码更适合证明系统。这里的自动化不是对任意旧代码按一下按钮,而是代码和证明一起迭代。

边界同样明显:这个解压器是学习项目,没有公开成生产实现,速度约比命令行 zstd 慢十倍;作者尝试把方法扩展到 AArch64 汇编等价证明时,也很快撞上内存和规模限制。

关键事实

  • 实验对象:Lean 编写的 Zstandard 解压器
  • 自动化内容:由 LLM 生成并修正形式化证明
  • 验证方式:Lean 类型检查器确认,不使用 sorry
  • 已知限制:实现较慢、规模较小、汇编验证尝试难以扩展

OC 判断

这项实验最有价值的不是“AI 会证明定理”,而是把模型输出放进一个不能靠语气蒙混过关的验证闭环。形式化方法能否普及,仍取决于证明维护成本和大型系统扩展能力。

为什么重要

  • 对开发者:关键不变量可能从注释和测试升级为机器可检查契约。
  • 对企业:密码学、解析器和系统软件会最先受益,但需要专业审查。
  • 对 AI 工具:生成速度只有和确定性验证结合,才真正降低错误风险。

参考来源

相关阅读

基于标题、摘要和正文内容自动匹配。

更多科技

评论

围绕这篇文章补充信息、提出问题或分享观察。

0
暂无评论。

发表评论