Mechanic: Sorrifier-Driven Formal Decomposition Workflow for Automated Theorem Proving
本文提出了名为 Mechanic 的新型智能体系统,通过利用 Lean 中的 sorry 占位符将未解决的子目标从已验证的证明结构中精确隔离并独立求解,从而在避免全量重生成和上下文过长退化之间取得平衡,显著提升了在 IMO 2025 和 Putnam 2025 等复杂数学竞赛基准上的自动定理证明效率。
原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明
这篇论文介绍了一个名为 Mechanic(机械师) 的新型人工智能系统,它的专长是帮人类解决高难度的数学证明题。
为了让你轻松理解,我们可以把数学证明想象成建造一座精密的摩天大楼,而Lean(一种数学编程语言)就是这座大楼的建筑图纸和施工规范。
1. 以前的做法:推倒重来 vs. 打补丁
在 Mechanic 出现之前,AI 在盖楼(写证明)时遇到两个主要问题:
- 方法 A(全量重发): 如果盖到第 10 层发现砖头放歪了,以前的 AI 会直接把整栋楼拆掉,从地基开始重新盖一遍。
- 缺点: 太浪费了!明明 1 到 9 层都盖得很好,只因为第 10 层的一个小错误就全盘否定,效率极低。
- 方法 B(原地修补): 如果第 10 层错了,AI 就在那里修修补补。
- 缺点: 随着修补次数增加,大楼的“施工日志”(上下文)变得越来越长、越来越乱。AI 的大脑(注意力)被这些杂乱的历史记录填满,反而忘了接下来该盖哪一层,导致越修越乱。
2. Mechanic 的绝招:使用“sorry"作为临时支撑
Mechanic 的核心创新在于它懂得利用 Lean 语言中的一个特殊指令:sorry。
在 Lean 中,sorry 就像是一个临时的脚手架或**“此处暂缺,先跳过”**的标记。它告诉编译器:“这部分代码我还没写完,但先别报错,让我继续往下盖。”
Mechanic 的工作流程就像一位经验丰富的老工长:
- 先画草图(非形式化证明): 工长先用大白话(自然语言)把盖楼的思路理清楚,确保逻辑通顺。
- 开始施工(形式化证明): 根据草图,用严格的建筑规范(Lean 代码)开始盖楼。
- 遇到错误怎么办?(Sorrifier 机制):
- 如果盖到某一层发现错了,Mechanic 不会拆掉整栋楼。
- 它会精准地找到那个错误的“砖块”(代码块),把它替换成一个
sorry脚手架。 - 这样,大楼的其他部分(已经盖好的正确部分)依然稳固,编译器也能通过检查。
- 拆解任务(子目标提取):
- 现在,那个
sorry脚手架变成了一个独立的、小型的修理工单(子问题)。 - Mechanic 把这个小工单单独拿出来,让 AI 专门去解决它。
- 一旦这个小工单修好了,就把它无缝安装回原来的大楼里,替换掉那个
sorry。
- 现在,那个
3. 为什么这很厉害?(比喻总结)
想象你在写一篇长文章,写错了几个字:
- 旧方法:要么把整篇文章删了重写(太累),要么在原文里反复修改,导致文章变得冗长混乱,读不下去。
- Mechanic 方法:它把写错的那一段剪下来,放在一个单独的便签上。它先不管那个便签,继续把文章写完。等文章主体完成后,它再专门盯着那个便签,把错字改好,最后把便签贴回去。
这样做的好处是:
- 不浪费: 之前写对的大部分内容都保留了下来。
- 不混乱: 每次只专注于解决一个小问题,不会让 AI 的大脑过载。
- 效率高: 在著名的数学竞赛(如 IMO 2025 和 Putnam 2025)测试中,Mechanic 比之前的系统更快、更省钱,而且生成的证明更简洁。
4. 核心组件介绍
- Reasoner(推理员): 负责画草图,想逻辑。
- Verifier(检查员): 负责挑刺,看看草图有没有逻辑漏洞,或者把剪下来的小工单(子问题)是否合理。
- Prover(施工员): 负责写具体的代码,把草图变成大楼。
- Sorrifier(机械师/手术刀): 这是 Mechanic 的“大脑”。它像手术刀一样精准,只切除有问题的部分,换上
sorry,确保大楼主体结构不变。
总结
Mechanic 就像是一个懂得“分而治之”的聪明建筑队。它不再因为一个小错误就推倒重来,也不再在混乱中修修补补,而是通过**“隔离错误、单独解决、最后组装”**的策略,极大地提高了 AI 解决复杂数学难题的效率和成功率。
您所在领域的论文太多了?
获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。