Lean Kernel Bug Exploited for AI-Generated Disproof
A soundness bug in the Lean kernel was reported and fixed, allowing an AI-assisted 'disproof' of the Collatz conjecture to be generated. The bug, which affects metaprogramming, was exploited through a repository containing a proof of False. New patch releases have been issued to address the issue.
Key points
- A soundness bug in the Lean kernel was reported and fixed on July 28, after being exploited to generate an AI-assisted 'disproof' of the Collatz conjecture.
- The bug, which affects metaprogramming, allowed an ill-typed argument to be used to make the kernel accept a proof of False.
- The issue was identified in a repository containing a proof of False, which was generated with AI assistance and posted on July 25.
- The Lean kernel's handling of nested inductive types was found to be vulnerable to the bug, which was only reachable through metaprogramming.
- New patch releases have been issued to address the issue, and the bug is considered an implementation bug rather than a hole in Lean's meta-theory.
The Lean kernel, a proof assistant used for mathematics and computer science, has been affected by a soundness bug. The bug, which was reported and fixed on July 28, allowed an AI-assisted 'disproof' of the Collatz conjecture to be generated. The issue was identified in a repository containing a proof of False, which was generated with AI assistance and posted on July 25.
The bug, which affects metaprogramming, allowed an ill-typed argument to be used to make the kernel accept a proof of False. This was possible because the kernel's handling of nested inductive types was found to be vulnerable to the bug, which was only reachable through metaprogramming.
The bug was exploited through a repository containing a proof of False, which was generated with AI assistance and posted on July 25. The repository was reviewed by several users, including Kiran Gopinathan, who reduced the proof to a small proof of False and opened issue #14576. A fix was pushed one hour after the report, and the bug was merged after review by Joachim Breitner.
New patch releases have been issued to address the issue, and the bug is considered an implementation bug rather than a hole in Lean's meta-theory. The bug was not caught by nanoda, the main external checker for Lean, which is an independent kernel implemented in Rust.
Sources
The WireByte editorial team synthesises technology news from multiple primary sources, verifies the facts, and links every source. Articles are produced with AI assistance and reviewed under our editorial policy.