跳转至

Automated Formal Proofs of Combinatorial Identities via Wilf–Zeilberger Guidance and LLMs

会议: ICML 2026
arXiv: 2605.04472
代码: 暂未公开
领域: LLM 推理 / 自动定理证明 / 神经-符号
关键词: Lean 4, 组合恒等式, Wilf-Zeilberger, 神经符号, DAPO

一句话总结

WZ-LLM 把经典的 Wilf–Zeilberger 符号证明流程编译成 Lean 4 中可执行的证明骨架(递推 + 边界条件 + 侧条件),交给专门用 SFT + expert-iteration + DAPO 训练出的 WZ-Prover 逐项 discharge,在 100 个经典组合恒等式上把 pass@32 从 Goedel-Prover-V2 的 9% 提升到 34%。

研究背景与动机

领域现状:基于 LLM 的自动定理证明(ATP)在 Lean / Isabelle 等交互式证明助手上已经能达到比赛级表现(DeepSeek-Prover-V2、Kimina、Goedel-Prover-V2 等),但组合学被普遍认为是 ATP 最难的领域之一,其中"组合恒等式"是一类基础且无处不在的命题。

现有痛点:1) 证明组合恒等式需要长程规划——没有全局路线图时 LLM 会陷入无限制搜索,组合爆炸;2) Lean 中组合学的训练数据极稀缺;3) 纯符号方法(WZ、creative telescoping)在 CAS 里效率很高,但输出无法直接翻译进证明助手——需要重新构造 telescoping 论证、边界条件、归一化步骤、各种非零侧条件,"形式化成本"反而压过原始证明成本;4) 现有 whole-proof LLM 缺乏中间 verifier 信号,逐 tactic 模型又分支爆炸。

核心矛盾:长程证明需要明确规划,而 LLM 缺规划;符号方法天生有规划,但产物不可形式化。两条路线各擅其长却又彼此不通。

本文目标:把 WZ 的"规划能力"和 LLM 的"形式化能力"焊接起来,让一类原本符号方法搞不定 + LLM 也搞不定的恒等式被两路同时覆盖。

切入角度:作者注意到 WZ 方法本身就提供了一个天然的"sketch"——构造 WZ 对 \(G(n,k)=R(n,k)F(n,k)\) 后,恒等式自动分解为「递推引理 + 边界条件 + 侧条件 + 归一化 + case-split」一组可机器验证的 sub-goal。这恰好是 Lean 4 喜欢的结构,把它当成 LLM 的中间脚手架既减少搜索空间又给出 verifier 信号。

核心 idea:用 「WZ 符号分解(外部 CAS 出 sketch)+ 专门训练的 WZ-Prover(discharge sketch 子目标 + 兜底 WZ-不覆盖恒等式)」 的双路径神经-符号系统替代纯 LLM 或纯符号方法。

方法详解

整体框架

WZ-LLM 想解决的是「一类组合恒等式,纯符号方法和纯 LLM 各自都搞不定」的难题,办法是把两者焊在一起跑两条路径。给定一条 Lean 4 形式化的恒等式,Symbolic Decomposition 先做归一化、再调 SageMath 的 WZ 算法尝试合成证书:成功的话就把整道题拆成 \(\mathcal{T}=\mathcal{T}_{\text{rec}}\cup\mathcal{T}_{\text{bd}}\cup\mathcal{T}_{\text{side}}\cup\mathcal{T}_{\text{norm}}\cup\mathcal{T}_{\text{case}}\)(递推/边界/侧条件/归一化/case-split)一组结构化 Lean 子目标,失败的话整题进入"直接证明池"。两类任务都交给 WZ-Prover——一个从 Goedel-Prover-V2 起步、经三阶段训练的专用 8B Lean 4 prover——逐个 discharge。最后由 Lean kernel 一锤定音:只有内核接受,整条证明才算成功。

%%{init: {'flowchart': {'rankSpacing': 24, 'nodeSpacing': 28, 'padding': 6, 'wrappingWidth': 400, 'subGraphTitleMargin': {'top': 8, 'bottom': 16}}}}%%
flowchart TD
    A["Lean 4 组合恒等式"] --> B{"WZ 方法<br/>是否适用"}
    subgraph SD["符号分解器(关键设计 1)"]
        direction TB
        N["归一化<br/>统一求和范围 / 化简超几何项"]
        S["WZ sketch 构造<br/>SageMath 合成证书 R(n,k)"]
        C["侧条件推断<br/>非零引理 + 边界 + case-split"]
        N --> S --> C
    end
    B -->|适用| SD
    SD --> P["共享任务池<br/>递推 / 边界 / 侧条件 / 归一化 / case"]
    B -->|不适用| U["WZ-uncovered<br/>直接证明目标"]
    U --> P
    subgraph TR["WZ-Prover 训练(离线)"]
        direction TB
        T1["冷启动 SFT<br/>307 seed + 1200 sub-goal"]
        T2["专家在环 bootstrapping<br/>kernel 过滤增广(关键设计 2)"]
        T3["DAPO + 难度平滑<br/>(关键设计 3)"]
        T1 --> T2 --> T3
    end
    TR --> WP["WZ-Prover (8B)"]
    P --> WP
    WP --> K{"Lean kernel<br/>验证"}
    K -->|接受| OK["整条证明成功"]

关键设计

1. WZ 符号分解器:把符号证书翻译成 LLM 能逐项闭环的 Lean 义务

Lean 形式化组合恒等式最卡的地方不是主干的 telescoping,而是边界、侧条件这些隐含义务——CAS 给的"证书"数学上对,却没法机械塞进证明助手。分解器干三件事把这些义务全部 explicit 化。先是归一化:把 Icc/Ico 统一转成 Finset.range、shift 索引从 0 起、抹平阶乘/二项/幂的语法变体,遇到 parity 这种 piecewise 谓词就结构化 case-split,让后续 tactic 有干净的语法面。再是 sketch 构造:用 SageMath 的 F.WZ_certificate(n,k) 合成有理函数 \(R(n,k)\),使 \(G(n,k)=R(n,k)F(n,k)\) 满足 WZ 方程 \(F(n+1,k)-F(n,k)=G(n,k+1)-G(n,k)\),原恒等式于是被归约成「递推 lemma + 边界 obligation」。最后是侧条件推断:用符号化简提前找出会让 field_simp 等 tactic 卡死的零分母、负阶乘参数,自动生成 ∀n,k, A(n,k)≠0 这类 non-vanishing lemma 和边界子目标。把这些原本藏在证书里的小目标全部拆成可被 LLM 单独 discharge 的形式,正是让 sketch 从"数学正确"变成"机器可执行"的关键。

2. 专家在环 bootstrapping:靠 kernel 过滤实现"免费"的高保真数据增广

组合学的 Lean 训练数据极稀缺,纯靠人工标注无法 scale,可 LLM 自生成又会带 hallucination。这里用 kernel 当过滤器把两难化解:第一阶段拿 307 道手工形式化恒等式(带完整 Lean 证明)+ 它们经 sketch 拆出的 1200 个 sub-goal 做 cold-start SFT;第二阶段对 1020 道无标注候选恒等式跑 WZ-LLM 两路尝试,只有通过 Lean kernel 严格验证的证明才进训练池——Round 1 收到 5139 个 lemma 证明 + 32 道整题,Round 2 再得 532 + 79,共增 5671 lemma + 111 整题,去重后形成约 5418 样本的扩展 SFT 语料。因为有 kernel 这道硬关卡,噪声样本被天然滤掉,相当于训练分布始终不会被模型自身的错误污染,可以一轮轮接近能力天花板。

3. DAPO with Difficulty-Smoothing:把算力集中在"非琐碎但有救"的题上

在二值且稀疏的 kernel 奖励下,naive RL 极易在易题上过拟合、在难题上崩塌,所以 SFT 之后这步专门提升硬题和长链 lemma 的鲁棒性。先做难度平滑:SFT 语料里 sketch lemma 多数短而重复、整题长而稀少,于是用 rollout 估计每题在当前策略下的 pass-rate,把极易(去重)和近零通过率(梯度全是噪声)两端都裁掉,留下中-难分布平滑的 RL 集。再做 DAPO 优化,奖励为

\[R(\pi;G)=R_{\text{out}}(\pi;G)+\lambda_{\text{len}}R_{\text{len}}(\pi)\]

其中 \(R_{\text{out}}\in\{+1,-1\}\) 直接取 Lean kernel 的验证信号,\(R_{\text{len}}\) 是接近 token 预算时的渐进惩罚,避免长证明被硬截断而吃到虚假负奖励;DAPO 自带的动态采样还能缓解 entropy collapse。两者合起来让 RL 不在易题上多挤几分,而是把预算花在长尾难题上。

损失函数 / 训练策略

三阶段串起来:(i) SFT on 307 seed + 1200 lemmas;(ii) expert-iteration 扩到 ~5418 验证样本;(iii) DAPO RL with rule-based outcome reward + soft overlong punishment。整套训练 16 GPU-days、推理评测 9 GPU-days,全程在 4× L40s-48GB 上完成,模型规模仅 8B。

实验关键数据

主实验

LCI-Test(100 道经典组合恒等式,Lean 4 形式化)pass@32 端到端证明成功率:

方法 模型 LCI-Test pass@32
DeepSeek-V3 685B 1/100
Gemini-3.1-Pro-Preview 16/100
Kimina-Prover-Distill 7B 6/100
DeepSeek-Prover-V2 7B 6/100
Goedel-Prover-V2 (baseline) 8B 9/100
WZ-Sketch + Goedel-Prover-V2 8B 9/100
WZ-Prover(only direct) 8B 12/100
WZ-Sketch + WZ-Prover 8B 29/100
WZ-LLM(两路合并) 8B 34/100

跨数据集泛化:CombiBench 上 12→16/100,PutnamBench-Comb 上 0→3/36,均高于 baselines。

消融实验

训练阶段 pass@1 pass@8 pass@32
SFT (seed only) 1/100 3/100 9/100
+ expert-iteration 3/100 6/100 10/100
+ DAPO refinement 4/100 6/100 12/100

Lemma 级诊断(sketch 拆出的 1178 个子目标):

模型 #Proved / 1178 Acc 端到端 #Solved / 46
Goedel-Prover-V2 564 47.88% 0
WZ-Prover 864 73.34% 29

关键发现

  • Sketch alone 不够:在没有专门训练的 Goedel-V2 上叠 sketch 反而无收益(9→9);因为整道题需要把所有 sketch lemma 全部 discharge,47.88% 的 lemma acc 直接导致 0 整题闭环。提到 73.34% 才解锁 29 题,说明"专 prover + 专 sketch"必须同时具备。
  • Direct + sketch 互补:5 道 WZ 不适用的硬题被 WZ-Prover 直接证下来(symbolic-only 永远做不到),29 道 WZ-适用的题被 sketch 路径接力完成,二者合并到 34 题。
  • DAPO 的收益集中在 pass@32:pass@1 仅 +1,pass@32 +2,说明 RL 主要让"长尾难题"在更大采样预算下被捕到,而非在易题上多挤几分。

亮点与洞察

  • 把经典符号方法当成"可执行 sketch generator"是非常清爽的复合方式:既绕开了 LLM 长程规划弱、又绕开了 CAS 输出不能直接进证明助手的痼疾,把双方的非交集变成可加和。
  • "verifier-filtered bootstrapping"在 Lean 这种 kernel-checked 环境里几乎是无脑能用的数据增广:训练池由原模型自己生、verifier 当过滤器,理论上能持续 scale 直到接近能力天花板。
  • DAPO + 难度平滑的组合给出了 sparse binary reward 场景下一个可复用的菜谱:先用 rollout 把题库按当前策略难度分桶,再裁掉两端噪声,再 RL;不依赖人工分级。

局限与展望

  • 8B 模型 + 16 GPU-days 训练对学界友好,但 LCI-Test 上还有 66 题没解决,说明长程组合证明的能力天花板仍远未触及,特别是 PutnamBench-Comb 上只解了 3/36。
  • 整套流水线对 Lean 4 mathlib 的 API 演化敏感,sketch 部分高度耦合到当前 Finset/Nat.factorial 接口;若 mathlib 重构需要重新对齐 normalization 规则。
  • WZ 方法只覆盖超几何/holonomic 类恒等式,对真正"非超几何"组合恒等式(如 q-级数、对合论证)需要寻找新的符号 sketch 引擎。

相关工作与启发

  • vs Goedel-Prover-V2 / DeepSeek-Prover-V2 等 whole-proof LLM:它们靠端到端生成,没有显式规划机制;WZ-LLM 通过外部 CAS 提供 sketch,把"长程规划"外包给已经成熟几十年的符号算法。
  • vs InternLM-2.5-StepProver / MA-LoT 这类 tactic-level + search:它们靠 BFS/MCTS 在 tactic 空间里搜,分支爆炸;WZ-LLM 不在 tactic 维度做搜索,而是在更高层的 sketch 维度做规划,再用 whole-proof prover 处理每个子目标。
  • vs Harrison 在 HOL Light 上证 hypergeometric sums:思路同源(CAS 出证书 + 形式化),但 Harrison 全手工嵌入;WZ-LLM 把"形式化"这一最耗人力的步骤交给 LLM-Prover,是这一思路的现代化升级。

评分

  • 新颖性: ⭐⭐⭐⭐ "把符号方法 sketch 编译成 LLM 可证明的 Lean 子目标"这个 framing 在 ATP 圈很清新
  • 实验充分度: ⭐⭐⭐⭐ 三个 benchmark、组件 + 训练阶段双重消融、lemma 级诊断都做到位
  • 写作质量: ⭐⭐⭐⭐ 神经符号架构与训练流水线讲得清晰,WZ 数学背景前置完整
  • 价值: ⭐⭐⭐⭐ 给 Lean 数学形式化提供一条"符号引导 + LLM discharge"的可复用 recipe,可类推到其它有 CAS 的领域(积分、求和、ODE 等)