GPT-5.6一小时解开50年数学猜想:循环双覆盖猜想的证明路径与Prompt拆解

GPT-5.6 Sol Ultra 在不到一小时内证明了循环双覆盖猜想

OpenAI 研究员 Ethan Knight 于 2026 年 7 月 11 日宣布:GPT-5.6 Sol Ultra 用不到一小时完成了一道存在约半个世纪的图论猜想证明,输出为 3 页 PDF。过程中模型自主调用 64 个子 Agent 并行处理。

Noam Brown(o1 核心贡献者)在 ICML 现场转发评论:这次和此前的 Erdős 单位距离问题不同,使用的是公开可用的 GPT-5.6 Sol Ultra,而非内部特供模型。

Ethan Knight 公告推文

循环双覆盖猜想是什么

循环双覆盖猜想(Cycle Double Cover Conjecture)可追溯到 Tutte、Itai 与 Rodeh、George Szekeres、Paul Seymour 等数学家在上世纪陆续提出,是图论中最重要的开放问题之一。

它问的是:给你一张无桥图(删除任何一条边都不会让图断开),能否找出一批首尾相接的"圈"(cycle),让每一条边恰好被这些圈覆盖两次。

关键在"恰好两次"。你为补上一条只出现过一次的边而加入一个新圈,可能让其他边从两次升到三次。修复三次的边又会波及更多边。难点在于让所有圈在整张图上同时协调,单独为每条边找圈并不够。

证明路径:给边贴标签而非硬找圈

GPT-5.6 没有直接在图里寻找一批圈,而是把问题转化为有限域上的边标号问题,再用线性代数求解。证明分四步:

第一步:把一般图归约成三次图(每个顶点恰好连着三条边)。只要三次图的情况被证明,原问题也就随之解决。

第二步:利用无处为零的 8 流定理(Nowhere-Zero 8-Flow Theorem),给每条边贴上一个非零的三位二进制标签。标签满足条件:每个顶点处相邻三条边的标签能够彼此抵消。

第三步:把每条边的一个标签扩展成两个标签。目标是让同一个标签在每个顶点附近,要么完全不出现,要么恰好出现两次。这样相同标签的边自动首尾相接组成圈,每条边恰好属于两个圈。

第四步:让局部标签在整张图上全局一致。同一条边连接两个顶点,两端给出的标签必须完全相同。GPT-5.6 把这个全局协调问题转化成一个线性方程组,再用对偶空间和奇偶性证明,这组方程一定有解。

最终,所有局部标号拼成一个统一的全局方案,相同标签的边自动组成圈,每条边恰好被两个圈覆盖。

64 个子 Agent 的并行机制

GPT-5.6 Sol Ultra 将测试时计算(test-time compute)并行大幅铺开。原本可能需要磨上一整天的证明,被 64 个子 Agent 压缩进一个小时。从 Noam Brown 分享的数据图可以看到,更多并行 Agent 带来更短延迟和更高得分。

并行 TTC 性能对比

OpenAI 公开的 700 词 Prompt

OpenAI 同时放出了约 700 词的完整 Prompt。这份 Prompt 没有规定固定解题步骤,而是明确验收标准、定义、边界条件和失败情形。四个技巧值得拆解。

技巧一:只写验收标准,不写解题步骤

很多人写复杂任务的 Prompt,第一反应是给模型安排一套流程:先分析问题、再提出方案、再逐步验证、最后总结答案。但对于真正困难、路径未知的任务,事先写下的步骤本身就可能是错的。模型沿着错误路线认真执行,最终只会得到结构完整的错误答案。

OpenAI 这份 Prompt 采取相反思路:不规定模型必须使用归纳法、流理论还是极小反例,而是反复强调最终结果必须满足什么条件。验收标准直接锁定为:每一个有限、无桥、无自环的多重图,都必须被证明存在圈双覆盖。同时明确禁止通过添加额外假设来"绕道"解决问题,不能只证明三次图,不能只证明平面图,也不能假设图一定连通。

技巧二:把定义、范围和边界情况一次说清

模型出现错误,很多时候并非不会推理,而是一开始理解的任务和你想要的不一样。

OpenAI 在正式提出问题前,先花了很大篇幅定义:什么是图、什么是桥、什么是圈、什么是圈双覆盖;平行边是否允许;两条平行边能不能组成一个圈;不连通图算不算;无边图如何处理。甚至专门强调:覆盖中的圈不必是诱导圈,也不必彼此边不相交,唯一要求是每条边总共恰好出现两次。

Prompt 还多次在不同位置重复"最终目标是什么"。这种重复看似啰唆,实际是在帮助模型长时间推理时不偏离任务。

技巧三:列出什么不算答案

这份 Prompt 没有停留在"请给出完整证明"这种抽象要求上,而是专门列出了一批看起来已经很接近、实际上仍然没有完成任务的结果。比如只证明某些特殊图类不算,构造出覆盖但部分边不是恰好出现两次也不算。提前预测模型可能偷懒的方式,先天排除一批失败路径。

技巧四:动态分工与独立审查

Prompt 要求调用最多 64 个智能体,但没有简单地规定"10 个研究路线 A,10 个研究路线 B"。相反,它要求先建立多样化的方法组合,根据每条路线的实际进展动态调整资源。大量 Agent 挤到同一种方法上时重新分配到尚未探索的方向;某条路线卡在和原问题同等困难的引理上则标记"受阻",除非出现新机制,否则不继续堆算力。

Prompt 还专门设置了对抗性智能体(adversarial agent),负责检查候选证明是否偷换定义、遗漏边界情况,或把闭合路径硬说成圈。每个子 Agent 回来时必须带具体引理、方程、构造或反例,不能只汇报"有进展"。

这里有两个实用原则:复杂问题需要探索多条互相独立的路线,不能让所有模型一开始就知道"当前最被看好的答案",否则容易集体收敛到同一个错误上;生成答案和检查答案最好分开,不要让提出方案的模型顺手给自己的方案打分。

总结

这份 Prompt 真正值得学习的,在于它把一个复杂任务写成了一份可验收、可审查、可纠错的任务合同。不规定唯一道路,但把终点、边界、失败条件和审查机制全部写清楚。对路径未知的任务,定义清楚交付物比规定流程更重要。

参考链接:

推荐阅读