技术深度解析
Formal的架构是一个精心设计的流水线,旨在弥合自然语言的模糊世界与形式化逻辑的精确领域之间的鸿沟。其核心是一个构建于预训练代码专用LLM之上的检索增强生成(RAG)系统,该系统很可能通过Mathlib仓库中的Lean 4代码与证明语料进行了微调。工作流程始于开发者用自然语言规范注释其代码中的函数(使用Python、Rust或C等支持语言编写)。LLM的首要任务是*规范形式化*:将这一非正式描述转化为Lean依赖类型理论中精确的、机器可读的陈述。
这是最关键且最具挑战性的一步。LLM必须同时理解源代码的语义以及Mathlib中庞大的定理与定义库——这是一个由社区构建的、超过100万行Lean代码的形式化数学单体仓库。为提供协助,Formal维护着Mathlib定理、定义及证明策略的密集向量索引。当LLM尝试形式化诸如“此排序函数输出是其输入的一个排列”这样的属性时,它可以从Mathlib中检索关于排列、列表属性及排序算法的相关引理。
一旦提出形式化规范,系统便进入*证明状态探索*阶段。LLM不会一次性写出完整证明,而是以逐步方式与Lean 4内核交互,建议下一个合理的策略(例如`apply`、`rewrite`、`induction`)。内核提供即时反馈——即新的证明状态——LLM据此建议后续步骤。这将证明构建转化为一个引导式搜索问题,LLM充当启发式引导,在指数级庞大的可能证明步骤空间中导航。
此过程的关键是LeanDojo工具链,这是一个来自普林斯顿大学和谷歌研究人员的开源项目,为在Lean上训练LLM提供了API和数据集。Formal很可能基于或集成了LeanDojo的基础设施。此类系统的性能通过其在Lean的`mathlib4`仓库或MiniF2F数据集的基准问题上的通过率来衡量。类似研究项目的早期结果显示出了有希望但非确定性的成功。
| 基准测试集 | 人类专家通过率 | 最先进LLM(如GPT-4 + LeanDojo)通过率 | Formal目标通过率(预计) |
|---|---|---|---|
| MiniF2F(数学奥林匹克) | ~95% | 25-30% | 40-50%(需人工介入) |
| `mathlib4`中级定理 | ~98% | 15-20% | 30-40%(需人工介入) |
| 简单程序规范(如无缓冲区溢出) | 不适用 | <10%(朴素方法) | 60-70%(v1.0目标) |
数据启示: 表格揭示了一个显著但可弥合的差距。虽然仅凭LLM远未达到专家水平,但它们在形式化数学上的表现已非微不足道,足以充当强大的助手。Formal的预计目标颇具野心,但如果能成功地将LLM聚焦于更狭窄、与代码相邻的属性,而非开放式的数学问题,那么这些目标是 plausible(合理)的。
关键参与者与案例研究
AI辅助形式化验证的格局虽处于萌芽状态,但正迅速吸引学术界和产业界的关注。Formal进入了一个存在多种并行方法的领域。
学术先驱: 其知识基础由Jeremy Avigad(卡内基梅隆大学,Lean开发)、Leonardo de Moura(微软,Lean和Z3的创造者)和Heather Miller(卡内基梅隆大学,专注于实用验证)等研究人员奠定。他们在证明辅助器和形式化库方面的工作,创建了Formal所依赖的基础设施。由Kaiyu Yang和Jia Deng领导的LeanDojo项目是直接先驱,为连接LLM与Lean提供了 essential(必要)的工具包。
企业研发: 微软研究院在Lean(通过de Moura)和AI领域均有深厚投入,是该领域的 silent giant(沉默巨人)。其GitHub Copilot已尝试在生成代码的同时进行简单属性检查,这是迈向全面验证的垫脚石。亚马逊云科技拥有其Everest项目,并在内部将形式化方法用于AWS安全验证,这使其成为Formal等工具的潜在企业客户。像Galois(长期的形式化方法承包商)和Synopsys(通过其静态分析工具)这样的初创公司正密切关注,因为AI可能颠覆或增强它们现有的高保障服务模式。
竞争性技术路径: Formal以Lean为中心的路径是众多选择之一。一个竞争范式以OpenAI的内部探索和Prover等项目为代表,它们尝试在证明数据上从头训练LLM,旨在实现端到端的证明生成,而不过度依赖特定定理证明器的策略语言。另一种方法见于Meta的Infer等工具,它们使用抽象解释和符号执行技术。