一句话:用微调大语言模型一次性生成完整证明,并借助失败尝试与错误信息修复,提升自动形式化验证能力。
形式化验证虽理想但人力成本极高,已有工作多采用逐步预测证明步骤并搜索证明空间的方式。本文提出用经过自然语言、代码与证明数据微调的大语言模型一次性生成完整证明,并进一步训练修复模型:将先前失败的证明尝试及其错误信息作为额外上下文,对生成证明进行修复,从而增强证明能力。作者实现了原型工具 Baldur,在包含 6,336 条 Isabelle/HOL 定理及其证明的基准上评估,表明整体证明生成与基于搜索的方法同样有效且更高效,修复与额外上下文能进一步提升成功率。Baldur 还可补充最先进工具 Thor,为额外 8.7% 的定理自动生成证明,二者合计可全自动证明 65.7% 的定理,为用大语言模型自动化形式化验证开辟了新方向。
Formally verifying software is a highly desirable but labor-intensive task. Recent work has developed methods to automate formal verification using proof assistants, such as Coq and Isabelle/HOL, e.g., by training a model to predict one proof step at a time and using that model to search through the space of possible proofs. This paper introduces a new method to automate formal verification: We use large language models, trained on natural language and code and fine-tuned on proofs, to generate whole proofs at once. We then demonstrate that a model fine-tuned to repair generated proofs further increasing proving power. This paper: (1) Demonstrates that whole-proof generation using transformers is possible and is as effective but more efficient than search-based techniques. (2) Demonstrates that giving the learned model additional context, such as a prior failed proof attempt and the ensuing error message, results in proof repair that further improves automated proof generation. (3) Establishes, together with prior work, a new state of the art for fully automated proof synthesis. We reify our method in a prototype, Baldur, and evaluate it on a benchmark of 6,336 Isabelle/HOL theorems and their proofs, empirically showing the effectiveness of whole-proof generation, repair, and added context. We also show that Baldur complements the state-of-the-art tool, Thor, by automatically generating proofs for an additional 8.7% of the theorems. Together, Baldur and Thor can prove 65.7% of the theorems fully automatically. This paper paves the way for new research into using large language models for automating formal verification.