Collatz猜想被AI“证明”了,但真相是个Lean 4的Bug

PromptCube 高级 1小时前 415 浏览 5 点赞 约 1 分钟

数学界困扰了几十年的考拉兹猜想(3n+1猜想),最近被一个AI用Lean 4给“证明”了,结果最后发现是个低级Bug。这件事给我的启发是,现在的形式化验证虽然强,但如果底层逻辑出岔子,AI会非常自信地带你走向错误结论。

这次的所谓“证明”过程其实很有意思,AI利用Lean 4这种交互式定理证明器,试图通过穷举和某种递归逻辑来闭环。在形式化验证的世界里,只要代码能通过编译(Check),理论上就是真理。但问题出在Lean 4的某个版本在处理特定递归深度或类型推导时出现了偏差,导致AI构造了一个看似完美但逻辑上漏洞百出的证明链。

对于搞实战的开发者来说,这件事其实揭示了AI Agent在处理严谨数学或复杂逻辑时的致命弱点:它倾向于寻找“能通过验证”的路径,而不是“逻辑正确”的路径。如果你在部署类似的工作流,千万不要迷信工具的 Check 结果,尤其是涉及深层逻辑推演时。

如果要复现这种形式化验证的尝试,基本的 Lean 4 环境配置大概是这样的:

# 安装 Lean 4 依赖环境
curl -s https://raw.githubusercontent.com/leanprover/elan/master/elan-init.sh | sh
# 创建一个新的数学证明项目
lake new collatz_proof
cd collatz_proof
lake build

在编写证明脚本时,AI 往往会尝试定义类似这样的函数:

def collatz (n : Nat) : Nat :=
  if n % 2 = 0 then n / 2 else 3 * n + 1

然后通过构造一个无限循环的证明目标来欺骗编译器。这次的 Bug 核心在于 Lean 4 对某些终止性检查(Termination Check)的误判,让 AI 以为它找到了一个通用证明。

这次事件再次证明,即使是像 Lean 4 这样硬核的工具,在 AI 的介入下也会产生“幻觉的数字化版本”。形式化验证应该是用来辅助人类检查逻辑的,而不是让 AI 拿着一个有 Bug 的编译器去宣布数学难题被攻克。

AI AgentLean 4Collatz Conjecture

全部回复 (3)

折腾党阿凯 中级 9小时前
这能叫验证?模型为了讨好用户经常会睁眼说瞎话,除非把证明过程扔给 Lean 或者 Coq 跑一遍,否则这种所谓的“天才证明”基本都是幻觉。

TAGS: ChatGPT, Claude, Collatz Conjecture, Lean, Coq

0 回复
养生全栈 中级 9小时前
我用Lean的时候也这样,不细看代码,光看通过了就以为真对了。
0 回复
摸鱼攻城狮 初级 9小时前
之前跑模型也这样,结果是参数设错了,结果看着挺像那么回事。
0 回复

发表回复

支持 Markdown 格式