LLM2SMT: Building an SMT Solver with Zero Human-Written Code

该论文展示了一个大语言模型编码代理在零人工代码参与下,成功构建了一个具备预处理、同余闭包算法及反例证明生成能力的完整 DPLL(T) 风格 SMT 求解器,且其在 SMT-LIB 基准测试中表现具有竞争力。

Mikoláš Janota, Mirek Olšák

发布于 Tue, 10 Ma
📖 1 分钟阅读☕ 轻松阅读

Each language version is independently generated for its own context, not a direct translation.

这篇论文讲述了一个非常有趣且大胆的实验:完全不用人类写一行代码,只靠人工智能(LLM)自己“从零开始”编写了一个能解决复杂逻辑难题的数学软件(SMT 求解器)。

为了让你轻松理解,我们可以把这个过程想象成**“雇佣了一位超级天才但有点迷糊的学徒,让他独自开一家逻辑推理餐厅”**。

1. 核心任务:让 AI 当“主厨”

  • 背景:通常,我们写软件是程序员(人类)写代码。但这次,研究人员(主厨长)只给了学徒(AI)一张菜单几本食谱(关于逻辑算法的论文描述),然后说:“去,给我做出一道能解决所有逻辑谜题的招牌菜(SMT 求解器)。”
  • 目标:这道菜必须能处理“未解释函数”(QF_UF)这种特定的逻辑难题。简单来说,就是判断一堆像 f(x)=yf(x) = yxzx \neq z 这样的条件是否矛盾。
  • 结果:学徒真的做出来了!而且这道菜在专业比赛(SMT-LIB 基准测试)中,表现竟然能和那些由人类顶尖专家开发了几十年的老牌餐厅(如 Z3、cvc5)打得有来有回。

2. 开发过程:从“乱炖”到“米其林”

虽然学徒很聪明,但他一开始并不是完美的。这个过程充满了**“试错”“指导”**:

  • 初出茅庐的混乱
    学徒刚开始时,虽然知道要做什么,但做出来的东西漏洞百出。比如,他完全忘了处理“逻辑连接词”(像“并且”、“或者”),就像厨师忘了放盐,或者把“苹果”和“香蕉”混在一起煮。

    • 比喻:就像你让 AI 写个计算器,它可能只懂加法,忘了减法。
  • 人类的角色:不是写代码,而是“当教练”
    研究人员没有动手写代码,而是通过**提示(Prompting)**来指导:

    • “嘿,你忘了处理‘异或’(XOR)逻辑,把它改成通用的。”
    • “别自己发明轮子了,去用现成的‘引擎’(CaDiCaL 求解器)。”
    • “别跑太久了,给个时间限制,不然程序会死机。”
    • 比喻:就像教练在场边喊:“传球!别带球撞墙!用那个战术!”而不是亲自下场踢球。
  • 自我纠错与“试吃”
    这是最精彩的部分。研究人员让 AI 自己生成成千上万个随机的“逻辑难题”(就像让 AI 自己出题考自己),然后拿自己的答案去和“标准答案”(参考求解器)对比。

    • 如果 AI 做错了,它会收到反馈,然后自己分析代码、自己修 Bug
    • 比喻:就像学徒自己尝菜,发现太咸了,就自己调整配方,直到味道完美。

3. 遇到的挑战:那些“隐形”的坑

即使有教练指导,AI 还是会犯一些让人哭笑不得的错误:

  • 逻辑陷阱:在数学里,“真”和“假”既是命题(判断对错),又是数据(像数字一样)。AI 一开始经常把这两者搞混,导致逻辑崩塌。
  • 证明的难题
    对于“无解”的题目,AI 不仅要给出答案,还要写出一份**“数学证明”**(用 Lean 语言),告诉人类“为什么这是错的”。
    • 比喻:这就像不仅要做出一道菜,还要写出详细的化学分子式证明这道菜为什么好吃。AI 一开始写出的证明要么太啰嗦(把整个厨房都写进去了),要么逻辑跳跃太大,人类看不懂。经过多次指导,它才学会了如何写出简洁、符合规范的证明。

4. 最终成绩:能打,但还需打磨

  • 性能:这个由 AI 独立编写的求解器,解决了 7468 个测试题,而人类顶尖的 Z3 求解器解决了 7500 个。虽然还有一点点差距,但考虑到这是 AI“从零开始”写的,这已经非常惊人了。
  • 意外发现:有时候,AI 写的“优化功能”(理论传播)反而让程序变慢了。这说明 AI 虽然能执行指令,但有时候对“什么时候该做什么”缺乏直觉,需要人类来调整策略。

5. 这篇论文告诉我们什么?

  1. AI 真的能写“会思考”的代码:以前大家觉得 AI 只能写简单的脚本,现在证明它也能构建复杂的逻辑推理系统。
  2. 人类不能当甩手掌柜:虽然代码是 AI 写的,但**“脚手架”**(测试工具、资源限制、具体的错误案例)必须人类来搭。没有这些,AI 就像在迷雾中开车,容易翻车。
  3. 智能是“锯齿状”的:AI 可能能解决极其复杂的算法问题,却会在“把 xx 等于 xx 简化为真”这种简单问题上卡壳。这种能力的不稳定性是开发可靠工具的最大挑战。

总结一句话
这项研究就像让 AI 当了一次**“从零开始的建筑大师”。它虽然偶尔会砌歪墙、忘装窗户,但在人类的“监理”和“工具包”辅助下,它最终盖出了一座坚固、甚至能媲美人类大师作品的逻辑大厦。这标志着 AI 在自动推理**领域迈出了历史性的一步。