← 最新论文
🤖 AI

AxDafny: Agentic Verified Code Generation in Dafny

该论文介绍了 AxDafny,这是一个用于智能体代码生成的验证器引导框架,它通过迭代地完善实现与证明,证明了与最先进的基准模型相比,在新建的 LCB-Pro-Dafny 基准测试和现有的 DafnyBench 上,其在验证成功率方面取得了显著提升。

原作者: Benjamin Breen, Austin Letson, Borja Requena Pozo, Leopoldo Sarra

发布于 2026-07-01
📖 1 分钟阅读☕ 轻松阅读

原作者: Benjamin Breen, Austin Letson, Borja Requena Pozo, Leopoldo Sarra

原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明

想象一下,你正在雇佣一位非常有才华但略显鲁莽的建筑师来盖房子。你给了他们一份蓝图(规则),并说:“给我盖一栋有厨房、卧室和屋顶的房子。”

在计算机编程的世界里,大多数 AI 模型就像那位建筑师:它们盖出的房子看起来没错,但当你试图住进去时,屋顶可能会漏水,或者厨房可能少了一扇门。它们依赖于“试驾”(test drives)——即检查房子在几种特定场景下是否可行——来判断它是否足够好。

AxDafny 是一个改变游戏规则的新系统。它不仅仅是盖好之后再祈祷一切顺利,而是通过一个“超级督察员”(称为形式化验证器)在盖房子的过程中,同步检查背后的数学逻辑。

以下是该论文如何通过简单的概念进行解释的:

1. 挑战:用数学证明来盖房子

研究人员想要观察 AI 是否能编写出不仅是“能运行”,而且是经过数学证明正确的代码。他们使用了一种名为 Dafny 的特殊语言。

把 Dafny 想象成一种语言,在其中你不能只说“我造了一扇门”。你必须证明:“这扇门正好 3 英尺宽,只有转动把手时才会开启,并且永远不会从铰链上掉下来。”

  • 问题在于: 写代码很难。写代码并同时写出证明其正确性的数学证明,则更难。大多数 AI 会卡在“写证明”这一步。

2. 解决方案:AxDafny(“修复”循环)

团队创建了 AxDafny,它就像是一个协同工作的两人小组:

  • 建造者(AI): 尝试编写代码和证明。
  • 督察员(验证器): 立即检查工作成果。

如果建造者犯了错,督察员不会只说“错误”,它会精确地指出漏水的屋顶或缺失的门,并说:“你忘了证明门是如何固定在上面的。”
建造者随后修复那个特定的部分,然后再次尝试。他们通过这种循环(建造 → 检查 → 修复 → 建造)不断进行,直到督察员给出完美的“通过(Pass)”。

3. 新测试:“LCB-Pro-Dafny”

为了测试这个系统是否真的有效,研究人员创建了一个名为 LCB-Pro-Dafny 的新测试。

  • 想象一下,从编程竞赛中取出 250 个极其困难的谜题(类似于编程界的数学奥林匹克竞赛)。
  • 他们将这些谜题翻译成了严谨的“Dafny”语言。
  • 现在,AI 不仅要解开谜题,还要证明其解法的正确性。

4. 结果:谁赢了?

研究人员将他们的系统(AxDafny)与一个标准的、功能强大的 AI(GPT-5.5)进行了对比,后者只是尝试写一次代码而没有“修复循环”。

  • 在“证明”测试中(DafnyBench):

    • 标准 AI 仅完成了约 54% 的证明。
    • 使用了“修复循环”的 AxDafny 完成了 92.7%
    • 类比: 这就像标准 AI 在靠猜来回答问题,而 AxDafny 则是一个不断检查自己的作业直到拿到 A+ 的学生。
  • 在“竞赛”测试中(LCB-Pro-Dafny):

    • 标准 AI 仅正确解决了 11.6% 的难题。
    • AxDafny 解决了 56.4%
    • 类比: AxDafny 在解决实际问题方面表现得更好,但它在“困难”级别仍然感到吃力,这表明即使有了超级督察员,有些谜题依然极其艰深。

5. 缺陷:“正确”不等于“快速”

这是论文中一个令人惊讶的发现。
有时,AxDafny 盖出的房子在数学上是完美的(督察员说“通过!”),但当人们试图住进去时,房子却太慢了,或者消耗了太多电力。

  • 原因何在? 督察员只检查房子是否安全正确。它并不检查房子是否高效
  • AI 有时会构建一个“慢速”方案,因为这种方案容易被证明是正确的,而不是构建一个“快速”方案(因为快速方案往往难以证明)。
  • 当他们在真实计算机上测试这些代码时,许多“完美”的方案都失败了,因为它们运行时间过长(超出时间限制)或消耗了过多内存。

总结

AxDafny 是一个通过使用“检查并修复”循环,教导 AI 编写经过数学证明正确之代码的系统。

  • 它的效果极佳: 能确保代码完全符合预期(没有 Bug)。
  • 这是一个巨大的进步: 相比于经常靠猜测的标准 AI,它有了质的飞跃。
  • 局限性: 仅仅代码被“证明正确”并不意味着它“足够快”以应对现实世界的竞赛。AI 需要学习如何兼顾正确性与效率。

论文结论认为,这种方法是提高代码可靠性的强大手段,但我们仍需教会 AI 不仅要关注正确性,还要关注速度。

您所在领域的论文太多了?

获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。

试用 Digest →