top of page

Lean 证明自动化刚刚通过了一项真实的软件测试,但其证明尚未达到生产就绪状态

尽管距离生产级软件发布还相去甚远,Lean 证明自动化在 7 月 26 日跨过了一道重要门槛。安全工程师 Adam Langley 用 Lean 构建了一个可运行的 Zstandard 解压器,随后借助多款大型语言模型,为其中最复杂的逻辑生成了可由机器检查的证明。

这项实验并没有产出更快的解压器、已发布的库,或 AI 能验证任何大型应用的证据。Langley 表示,他的版本运行速度约为标准 zstd 命令的十分之一。他还将该实现描述为学习项目,并拒绝公开其代码。

变化更为有限,却也更具影响力:AI 系统为非平凡软件生成了证明,而 Lean 独立检查这些证明是否有效。这使 AI 辅助验证超越了流畅的解释和看似合理的代码,进入一种拥有异常严格验收测试的工作流。

核心竞争不再是 AI 生成代码与人类编写代码之间的较量,而是概率性生成与确定性验证之间的较量。模型可以猜测、修改并反复失败,而一个小型、可信的检查器决定什么能够进入最终程序。

对开发者而言,这种模式或许为不可靠的编码代理提供了解法。对知识工作者而言,它提出了一种更广泛的自动化模型:让 AI 产出混乱的初稿,但让验收取决于明确、可由机器检查的条件。

Zstandard 实验让证明自动化变得具体

Langley 的测试之所以重要,是因为它将 AI 生成的证明应用于普通系统软件,而不是又一个孤立的数学基准测试。

Lean 既是一门编程语言,也是一个交互式定理证明器。它的依赖类型允许程序的类型包含有关值的事实,例如数组的精确长度,或多个输出之间的关系。

这一能力改变了函数签名能够承诺的内容。普通的文件读取函数可能返回一个字节数组。Lean 函数则可以返回一个数组,并附带其长度与请求字节数一致的证明。

官方 Lean reference 说明了为何这种架构对 AI 生成的工作具有特殊价值。Lean 策略可以很复杂且高度自动化,但它们生成的每个证明项都必须经过一个相对较小的内核。

有缺陷的策略可能浪费时间,或生成无效候选项。但除非可信基础本身也存在缺陷,它无法让无效证明变为有效。最终权威仍是检查器,而不是生成器。

Langley 选择 Zstandard,是因为它提供了具有实际意义的实现挑战。Zstandard,通常称为 zstd,是一种无损压缩格式,围绕 LZ77 风格匹配以及两套熵编码系统构建。

格式规范将 Huffman 编码用于字面量数据,并将有限状态熵编码(Finite State Entropy,即 FSE)用于其他符号和 Huffman 标头。FSE 使用在符号之间传递的状态,这要求其比特流按与写入相反的顺序解码。

这套机制远比证明两个简短算术表达式相等更具挑战性。解压器必须解析紧凑的二进制结构、维护状态、拒绝无效输入,并正确重建原始字节。

Langley 的 Lean experiment 尤其关注 FSE 表的构建。该表决定压缩状态如何映射回符号,以及解码器消耗多少位。

据报道,多个 LLM 在约 20 分钟内为这段构表代码的一项重要属性生成了证明。Langley 检查了生成的证明是否通过 Lean 的类型检查器,且不包含 sorry 声明——这是 Lean 用于暂时承认未经证明陈述的机制。

这些模型确实需要修改一些实现选择。Langley 曾使用 Id.run 以更偏命令式的风格表达算法的部分内容,这使证明机制更难使用。

这一细节阻止人们对结果作出过于简单的解读。AI 并非只是检查固定代码后附上一份证书;它还帮助将实现重塑为支持证明构建的形式。

不过,这一结果仍形成了完整闭环:编写有实际意义的软件、陈述强不变式、生成证明,然后让独立内核接受或拒绝它。这个闭环才是真正的重要事件。

Lean 证明自动化正在攻克验证的成本难题

形式化验证此前已带来极高保障,但证明工作量使其始终难以进入大多数日常软件项目。

最清晰的历史案例是 seL4:一个由机器检查证明支撑的小型操作系统内核。其经过验证的属性远不止是在选定的一组输入上通过测试。

最初的验证历时四年,耗费约 20 人年,并产生了超过 20 万行 Isabelle 证明脚本。seL4 research 中描述的回顾研究说明,为何这些数字不能被视为学术上的过度投入。

验证团队必须定义正确的属性、连接不同抽象层、构建证明,并让这些证明与不断变化的代码保持一致。每项工作都需要专业知识与严谨的工程实践。

回报可能十分可观。seL4 项目称,自 2009 年完成其主要证明以来,已验证代码中没有发现功能正确性缺陷。然而,大多数软件团队无法在交付一个组件前投入数年的专家劳动。

传统证明自动化减轻了其中部分负担。策略可以解决熟悉的模式,而模理论可满足性求解器(即 SMT 求解器)则能在受支持的领域中处理逻辑条件。

这些系统也会影响程序员编写已验证代码的方式。有经验的用户会了解哪些表述是求解器能够处理的,以及哪些看似无害的结构会导致搜索空间失控膨胀。

Langley 认为,LLM 改变了这种经济方程式,因为它们是灵活的证明生成器。它们可以阅读周边定义、检查错误信息、重写局部代码、提出中间引理,并在被拒绝后尝试另一条路径。

证明无关性进一步强化了这一论点。在 Lean 中,命题存在于一个与证明无关的宇宙中,这意味着系统通常关心的是有效证明是否存在,而不是提供的是哪一个有效证明。

人类证明工程师通常重视优雅性,因为清晰的证明更容易经受后续变更。如果 LLM 能够快速重新生成经过检查的证明,那么部分维护成本的计算方式就会改变。

这并不会消除证明工程。仍然需要有人陈述正确的定理、定义可信边界,并决定每次变更后重新生成证明是否仍然负担得起。

但它确实削弱了一个主要反对理由。当开发者无法自信评估其行为时,丑陋的生成代码是危险的;当可信内核拒绝每一个无效版本时,丑陋的生成证明就没那么令人担忧。

这一新兴工作流更像编译,而非协作推理。开发者指定属性,代理搜索可接受的产物,检查器则决定构建是否成功。

这一差异对正在判断 AI 应置于何处的管理者至关重要。声称某函数安全的编码助手提供的是一种意见;返回经内核检查产物的证明生成助手,则是在已声明假设下提供证据。

这种区别也暴露了新的瓶颈。如果证明生成变得廉价,编写正确规范就会成为稀缺技能。

团队将需要能够把需求转化为精确不变式的人。“这个解析器应该是安全的”无法检查;“每次成功解析都不会超出提供的输入缓冲区”则更接近形式系统可以评估的属性。

对知识工作者而言,相应任务是在自动化开始前定义验收条件。AI 可以起草预测、核对政策或合并会议记录,但可信的自动化需要清楚说明哪些内容必须始终成立。

新对手是没有验证的生成

最有力的启示并非 LLM 变得可靠,而是不可靠的生成可以在可靠的检查闭环中变得有用。

大多数生成式 AI 产品都要求用户直接判断输出。模型撰写电子邮件、总结会议、编辑电子表格或提出代码建议。随后,人类在有限的时间和注意力下寻找细微错误。

这种模式使自动化对低风险工作颇具吸引力,却难以在安全、金融、合规、基础设施以及不可逆的运营变更中获得信任。模型的自信几乎无法提供保护,因为流畅的语言并不能证明正确性。

Lean 证明自动化将两项工作分开。LLM 在广阔的可能证明空间中探索,而证明助手则按照精确规则执行范围更窄的验证任务。

生成器可能会幻觉出定理名称、应用无效变换,或误解某个定义。只要所声称的属性与可信边界是健全的,这些失败就会成为被拒绝的候选项,而非被接受的结论。

近期研究指向围绕这种分离而构建的系统。2026 年 7 月发布的 OpenProver,将规划、工作代理和 Lean 验证结合在一个开源定理证明系统中。

其架构为专门代理分配不同职责,同时保留自动化形式检查。它也支持人工引导,承认证明搜索仍可受益于专家指导。

这与带有代码窗口的聊天机器人是不同的产品模型。有价值的输出不是模型对为何证明应当成立的解释,而是能够经受独立检查的证明对象。

即使不需要完整定理证明,类似模式也能改善普通知识工作。设想一位产品经理根据访谈、工单、指标和决策整理每周更新。

LLM 可以快速起草更新内容。然而,每项事实性陈述都应能追溯到来源,每个指标都应保留其日期和定义,未解决的矛盾也应保持可见。

个人知识系统可以帮助保留这些关联。例如,knowledge blending 可以将相关的本地材料汇入同一工作上下文,而无需用户从分散文件中重新拼凑。

这与数学证明并不相同。检查器可能由来源引用、模式验证、访问控制、算术测试或人工审批步骤构成。

但其架构原则仍然类似。生成自由应位于关卡之前;确定性规则、已记录的证据或可追责的审查决定什么能够通过。

这也改变了团队评估 AI 生产力的方式。起草阶段节省的时间只是一个指标。审查时间、修正频率、缺陷逃逸率以及支撑证据的质量同样重要。

一个起草速度快十倍、却将审查工作翻倍的代理,并没有实现任务自动化。它只是将工作转移到了一个不那么显眼的阶段。

相比之下,若一个智能体能以稍慢的速度产出首个结果,却附带完整溯源和自动验证,反而可能带来更实用的生产力提升。这些证据能降低每一位下游读者的不确定性。

Lean 让这一原则格外直观,因为其验收条件是二元的:证明要么通过检查,要么不通过。大多数办公自动化并没有如此清晰的边界,但团队可以建立更小、针对具体任务的关卡。

财务摘要可以要求每个汇总数字都与源单元格核对一致。合同对比可以要求每一处标记出的差异都链接到确切条款。研究简报可以阻止缺乏支持的引文进入最终文档。

这些关卡并不能让底层模型变得诚实或确定。它们只是让模型的弱点更容易被控制。

Zstandard 测试无法证明什么

这项实验验证了一种很有前景的机制,但并未证明 AI 能以低成本或完整地验证大型生产系统。

最明显的局限在于范围。Langley 将该解压器称为玩具项目,表示代码尚未公开,也没有将其作为其他 Lean 程序员的范例。

这使独立审阅者无法复现结果、检查精确的定理陈述,或识别未经验证的组件。根据作者的报告,我们只知道部分选定证明通过了类型检查。

我们不知道这些陈述是否覆盖了生产级解压器所需的全部性质。对不完整规范作出的完全有效证明,仍可能与该规范之外的严重缺陷并存。

这通常被称为“规范问题”。检查器可以确定代码是否满足某项形式化陈述,却无法判断人类是否选择了正确的陈述。

一个解压器或许能证明有效输入能够正确往返处理,却将内存耗尽、拒绝服务行为、资源限制或归档解析排除在定理之外。每一个被遗漏的边界都会留下失败的空间。

可信计算基同样重要。Lean 的小型内核大幅缩小了必须信任的组件范围,但现实程序还会与编译器、操作系统、外部函数、硬件和外部库交互。

Langley 曾探索通过 Lean 的 extern 机制调用经过优化的汇编代码。微小的等价性示例能够运行,但据称在尝试扩大该方法规模时,遇到了严重的内存需求问题或无法取得进展。

这一结果凸显了一项核心权衡:高级别的经验证代码能够提供强大的逻辑保证,而生产级性能往往依赖于即时证明范围之外的低层实现和工具。

Zstandard 实现本身就说明了这种差距。Langley 表示,他的 Lean 解码器运行速度约为标准命令行实现的十分之一。

对于压缩软件而言,性能并非次要问题。解压通常位于对延迟敏感的路径上,涉及存储、软件包分发、数据库或网络传输。

证明维护同样仍存在不确定性。Langley 认为,快速重新生成或许能减少为未来变更而精心设计证明的需求。

对于一个边界明确的项目,这一判断是合理的。大型代码库可能会产生数千项相互依赖的义务;一个小小的类型变更就可能扩散到多个模块,耗尽智能体的上下文或搜索预算。

仅靠研究基准不应解决这个问题。数学定理集合通常提供明确目标和受控环境。生产代码则包含不完整的规范、遗留接口、持续变化的依赖项以及未被记录的假设。

还存在人为因素风险。轻松生成证明,可能会让人们倾向于将任何绿色勾选都视为全面保障。

一条经过检查的定理,只能说明其形式化陈述明确表达的内容。除非安全、隐私、可靠性或业务正确性等性质被纳入模型,否则它无法对这些方面提供保证。

因此,团队必须以当前审查代码的严肃态度审查规范。否则,AI 只会加速产出针对不完整问题、却看似令人信服的答案。

AI 证明自动化将瓶颈转移至规范

如果模型能够胜任证明生成,知识工作的价值重心就会从构建产物转向定义主张和边界。

软件团队已经经历过这一转变的某种版本。编程智能体降低了生成函数、测试、迁移和文档的成本。

随着产出变得更便宜,决定应该构建什么变得更重要。需求、接口、约束、威胁模型和验收测试,决定了快速生成究竟能创造价值,还是仅仅制造更多需要检查的材料。

Lean 将这种转变延伸到了正确性主张之中。程序员可以把一个不变量编码到类型中,请 LLM 构建证明,再由内核验证结果。

人类最具杠杆效应的贡献往往发生在上游。必须有人识别哪项不变量重要、在不留漏洞的情况下表达它,并将其映射到真实的运行环境中。

知识工作者也会在较少形式化工具的场景中面对同样的结构。分析师需要决定哪些证据足以支撑一项市场主张。招聘人员需要界定哪些候选人标准合法且相关。

客服经理必须明确何时可以发送自动回复,以及何时案件需要升级处理。研究人员必须区分直接来源、二手摘要和缺乏支持的推断。

即使没有人用 Lean 写下它们,这些也都是规范任务。它们将模糊的期望转化为可观察的条件。

组织可以通过将决策规则与其所管理的文档一同记录来做好准备。一条写着“使用最新客户数量”的备注含义模糊;而一项指明权威仪表板、刷新时间、地区和报告期的规则则可以测试。

溯源同样变得重要。如果源材料丢失了日期、所有者、版本或与先前决策的关系,模型就无法可靠地协调团队知识。

这正是从聊天界面转向智能体系统需要更好信息架构的原因。智能体需要结构化上下文、权限、验证规则,以及对其所作变更的持久记录。

人工审查也应转向处理例外情况。如果每一条 AI 生成的陈述都需要逐行检查,这个系统仍然只是助手,而不是自动化层。

有用的关卡可以自动批准满足明确条件的常规案例。人类则专注于缺失证据、相互矛盾的来源、异常数值、安全敏感操作,以及超出已知模式的变更。

形式化证明助手提供了这一工作流最强的版本,但它们并不适用于所有任务。许多决策依赖判断、存在争议的定义或不完整的信息。

目标不是将每封电子邮件形式化,而是识别那些一旦出错就会带来真实成本的主张,并围绕它们建立相称的检查机制。

对于软件,这可能意味着证明解析器的边界安全,同时以常规方式测试用户界面。对于运营团队,这可能意味着自动核对付款总额,同时要求人工批准转账。

对于研究人员,这可能意味着验证每一条引用和引文,同时让解释保留争论空间。验证应保护最重要的边界。

Langley 的实验让这种设计策略更容易被想象。LLM 不需要成为毫无瑕疵的数学家;它需要生成一个能被更严格系统评估的产物。

与其等待模型不再犯错,这是一条更符合现实的企业 AI 路径。

三个信号将显示这种转变是否真实发生

下一阶段取决于可复现性、规模和可衡量的维护成本,而不是又一次令人印象深刻的一次性证明。

第一个信号是公开、可复现的普通经验证软件语料库。Langley 的解压器无法承担这一角色,因为其源代码和证明均不可用。

诸如 lean-zip 的项目提供了更便于审查的参考。Lean 联合创始人 Leonardo de Moura 最近将其重点介绍为一个同时实现压缩和解压的经验证压缩项目。

未来项目需要精确的定理陈述、文档化的假设、性能测量,以及针对成熟实现的测试。独立团队应能够重建每一项证明,并识别哪些模块仍在经验证边界之外。

如果多个项目在解析器、网络代码、存储格式和密码学支持等领域重复这一模式,Lean 证明自动化的论据将更有力。如果结果仍集中于小型演示,广泛适用的主张就会减弱。

第二个信号是,真实代码发生变更后,证明生成会如何表现。初始证明构建吸引眼球,但维护决定其经济性是否成立。

团队应测量重构、依赖升级、规范变更和性能优化后的重新生成时间。他们还应记录人类专家需要重构代码或创造中间引理的频率。

在稳定定理上快速成功,对一个持续演进的应用所能提供的证据有限。一个有用的系统必须能经受数月常规开发,而不会让每个拉取请求都变成难以预测的证明搜索项目。

如果证明成本保持在可控范围内,且失败能产生可操作的诊断信息,AI 生成的验证就可以进入持续集成。如果微小变更都会触发数小时晦涩的搜索,采用范围仍将有限。

第三个信号是将其整合进主流编程智能体。证明生成目前仍接近研究工作流和专业的 Lean 环境。

实际的拐点会在这样的场景到来:智能体能够提出不变量、解释其范围、生成证明、运行检查器,并准确展示哪些假设仍未经验证。

这一界面必须抵御虚假的信心。它应区分经过测试的行为与经过证明的行为,以及经验证模块与未经验证的包装器。

它还应让定理变更高度可见。智能体绝不能通过悄悄削弱用户期望保留的性质,来“修复”一个失败的证明。

对知识工作者而言,这些信号可转化为一项简单的采购测试:询问 AI 产品只是生成答案,还是能生成带有可执行验收条件的答案。

寻找源级溯源、权限检查、结构化验证、可复现转换和清晰的升级路径。缺少这些控制机制的精美回复,无论听起来多么自信,仍然只是草稿。

Lean 证明自动化并不证明 AI 现在可以独立获得信任。它表明,当主张明确且验证保持独立时,围绕 AI 的信任可以被工程化构建。

下一个项目的问题很实际:哪一项反复出现的决策带来的风险,足以证明建立真正验收关卡是合理的?从那里开始,定义哪些内容必须保持为真,并让自动化赢得每一个绿色勾选。

 
 

免费开始

一款本地优先的AI助手,具备个人知识管理功能

为了获得更好的人工智能体验,

remio 目前仅支持Windows 10+ (x64)M-Chip Mac

在你的大脑里添加一个搜索栏

Ask remio

记住一切

​无需整理

bottom of page