跳到主要内容

7 篇博文 含有标签「formal-verification」

查看所有标签

AI 研究狂飙的时代,为什么形式化会变得更重要

· 阅读需 10 分钟

这几年 AI 研究的节奏明显变了:模型能力、工具链、论文、开源项目、benchmark 和应用场景都在高速迭代。很多过去需要专家慢慢写、慢慢查的东西,现在可以由模型在几分钟内生成一个看起来很像样的版本:代码、实验计划、定理证明草稿、综述、数据分析、系统设计,甚至新的 conjecture。

这当然是巨大的生产力提升。但它也带来一个更尖锐的问题:当生成速度远远超过人工验证速度时,我们到底靠什么维持可信度?

形式化的重要性,正是在这个背景下突然变得现实起来。

OpenAI Astra 真的解决了十道数学难题吗?逐项审计论文、Lean 证书与争议

· 阅读需 29 分钟

2025 年 10 月,OpenAI 曾闹过一次很难看的数学误报:公司高管把 GPT-5 找到十道 Erdős 问题的既有文献解答,说成了“解决十道此前未解的问题”。数学家 Thomas Bloom 当时称这是 “a dramatic misrepresentation”,相关帖子随后被删除。

不到一年后,OpenAI 又带着“十道开放问题”回来了。

这一次,材料完全不同:一份 249 页技术文稿、一份 62 页思路说明、十个大型 Lean 文件、十二组 Comparator challenge,以及 OpenAI 对正确性的公开责任声明。产生论证的模型叫 Astra,是 OpenAI 尚未发布的下一代内部模型。

如果这些结果经受住外部审查,这会是 AI 数学从“偶尔参与一篇论文”跨向“同一个通用系统批量产生研究级新数学”的重要节点。

但新闻标题“新模型解决十道著名数学题”仍然漏掉了几乎所有关键限定。

Tau Ceti:人类写 roadmap,AI 真的能维护一座数学库吗?

· 阅读需 16 分钟

2026 年 6 月,Tau Ceti 还是一个新仓库。到 7 月 31 日的固定快照,它已经有 932 个 Lean 源文件、171,565 行代码和 1,336 个已合并 PR。在最忙的一天,100 个 PR 进入 main

如果只看这些数字,Tau Ceti 很容易被概括成“AI 正在复制 Mathlib”。但我把它的五个组织仓库、Worker、review archive 和依赖更新链条全部拉到本地后,发现真正值得研究的并不是 AI 写 Lean 有多快,而是它怎样重组了一座数学库的生产关系:

人类写 roadmap 和 rubric,AI 写代码、修代码、审代码;Lean kernel 与 trusted CI 负责机械裁决;每一次 review 都成为公开数据。

这不是一个更大的 theorem-proving benchmark,而是一套正在运行的 formal-library operating system。

我们真的被 Lean 锁定了吗?Mathlib、soundness 与证明可移植性

· 阅读需 20 分钟

2026 年 7 月 30 日,Timothy Chow 在 MathOverflow 发了一个标题很直接的问题:Are we stuck with Lean?

截至本文抓取页面时,这个刚出现一天的问题已有 39 票、超过 1.6 万次浏览、6 个回答。它紧跟在 Lean 的 Collatz-themed soundness 事件之后:一份 AI 参与生成的 artifact 同时穿过了当时的 Lean kernel 与旧版 nanoda。于是一个工程事故很快被推到更大的问题上:

Are there any prospects for any organization to seriously support an alternative to Lean?

如果只按标题回答,讨论很容易变成两种口号:Lean 已经赢了,接受现实;或者 Lean 有过 soundness bug,应该换成 Metamath。六个回答和几十条评论真正说明的是:“被 Lean 锁定”不是一个 yes/no 问题,因为这里至少有六种不同的锁。

先给结论

短期内,数学形式化确实在 Mathlib、工具链和共同体层面形成了很高的 switching cost;但这不等于 Lean 的 kernel、逻辑基础或今天的实现会永远不可替代。比“全部迁移”更现实的目标,是降低不可逆性:让重要证明能被独立 checker 复核、能跨系统重建,让替代生态得到长期工程投入。

关于来源

MathOverflow 讨论仍在变化。本文中的票数、浏览量和回答数是 2026 年 7 月 31 日的快照;观点均按作者归属,不代表 MathOverflow、Lean 社区或本文的共同结论。

一份‘反证 Collatz 猜想’的 Lean 代码,为什么同时通过了两个 checker

· 阅读需 17 分钟

2026 年 7 月 28 日,Lean Zulip 的 lean4 stream 出现了一个很难忽略的 topic:Counterexample to the Lean Conjecture (Soundness Bug)

帖子里的三个事实放在一起,几乎像一道故意设计的判断题:

  1. 一个不到 500 行的 Lean 仓库声称“反证”了 Collatz 猜想。
  2. 它没有 sorry#print axioms 没暴露隐藏公理,当时的 comparator.live 和旧版 nanoda 都接受了它。
  3. 它没有解决 Collatz。它真正构造出来的是一个利用 kernel soundness bug 的无公理 False

这不是“形式化验证忽然失效”的故事,也不是一个模型真的完成了世纪数学突破。它更具体,也更值得研究:一份 proof artifact 把 Lean 官方 kernel 的漏检旧版 nanoda 的另一处漏检 拼在一起,恰好穿过了两套原本彼此独立的检查。

Comparator 到底在检查什么:从 Challenge/Solution 到 external kernel

· 阅读需 12 分钟

一份不可信的 Lean 项目能够 lake build,不等于它证明了你以为的 theorem。

它可能重新定义了 statement 里的 identifier,用 macro 或 notation 改变表面语法的含义,用不同 typeclass instance 让同一个类型别名展开成另一项,也可能在 build 阶段运行 meta code、写文件,最后再把 sorry warning 藏起来。Lean 很灵活,这种灵活性对正常开发是能力,对 adversarial proof 则是攻击面。

Comparator 的工作,是在一个 reviewer 控制的 theorem statement 与 untrusted proof project 之间建立边界。它不只问“这份代码能否编译”,而是问:它是否证明了 trusted Challenge 中那个精确的 statement,只用了允许的 axioms,并且能被指定的 kernel 接受?

nanoda:为什么 Lean 还需要另一个 kernel

· 阅读需 14 分钟

Lean 已经有 kernel,为什么还要再写一个?

答案不是“官方 kernel 不可信,所以换成 nanoda”。nanoda 也有过 soundness bug,而且本系列的主事件正是旧版 nanoda 接受了一个它本应拒绝的 artifact。它的价值来自另一件事:用另一种语言、另一套代码和另一条 proof replay 路径,减少 official Lean kernel 成为唯一故障点。

nanoda 是一个 Rust 编写的 Lean 4 external type checker。

它读取 lean4export 产生的 proof environment,重新检查 declarations、theorem bodies、inductive types、recursors、projections、axioms 和 definitional equality。它不运行 tactic,也不需要相信原项目的 elaborator 输出过程;它关心的是最终导出的 kernel-level 对象能否在自己的实现中成立。