Claude’s ETH proof pays off only past 10^108 variables

Anthropic’s paper, posted on October 27 and credited to “Claude (Anthropic)”, refutes the Exponential Time Hypothesis (ETH). It does so with a deterministic algorithm that counts the satisfying assignments of a 3-SAT formula on n variables in 2^o(n) time. Practical SAT solving is untouched: by the paper’s own estimate, the bound beats trying every assignment only once n exceeds 10^(10^8), a number about 100 million digits long, and our recomputation from its appendix puts the crossover higher still.
“The core algorithm was found on October 16 by an internal Claude research model with 14M output tokens and no human input,” the paper’s provenance statement says. Anthropic researchers then worked with Claude on the presentation. The same statement adds that an internal model at OpenAI “claims to have proven a similar result”, independently and concurrently. OpenAI says its model found its proof on October 16 as well, and OpenAI published first.
What actually falls
3-SAT asks whether a formula made of three-literal clauses has a satisfying assignment. Until now the best algorithms only shrank the base of the exponential. Anthropic’s paper puts the records at 1.328^n for deterministic algorithms and 1.308^n for randomized ones, and OpenAI’s paper cites a 2026 preprint at 1.307031578^n. ETH, formulated by Russell Impagliazzo and Ramamohan Paturi, says no algorithm can push the exponent itself below some fixed fraction of n. Claude’s algorithm does exactly that, running in 2^O(n log log n/√log n) according to Anthropic’s README. That still grows faster than any polynomial, so P versus NP is not in play.
The paper says two more results follow from earlier work. The stronger SETH implies ETH, so it falls too. Independent Set, Clique, Vertex Cover and Dominating Set get subexponential algorithms in theory, and the class E^NP gets a new circuit lower bound. The old assumption reached a long way: a literature search carried out by Claude turned up more than 800 papers that prove at least one result of their own only under ETH or a hypothesis that implies it.
The Orthogonal Vectors hypothesis survives. SETH implies it, and many fine-grained lower bounds rest on it, but the paper says its Theorem 1 does not refute it.
Two labs, one day
OpenAI’s preprint and Lean proof landed in its GitHub math repository at 20:52 UTC on October 26. Anthropic merged its paper and Lean 4 formalization, under Apache 2.0, 6 hours 15 minutes later, at 03:07 UTC on October 27. The Hexagon deposit followed at 05:12 UTC, and the PDF itself is dated October 26.
The two Lean developments check different claims. Anthropic’s formal theorem matches its paper’s Theorem 1: one machine for every clause width k, with time 2^(C·min{km/√log m, k²n log log n/√log n}) and no polynomial factor. OpenAI’s manuscript claims 2^O_k(n log log n/√log n). The statement its Lean code proves has (log log n)² in place of log log n, holds per fixed k and carries a polynomial factor in the input length, and OpenAI’s own scope note acknowledges the gap. Both are deterministic and both count solutions. Still, only OpenAI’s weaker bound is machine-checked, and its sharper one rests on the manuscript alone; on October 7, a single sign error pulled three papers from that same repository.
On Anthropic’s side, the paper says the Lean development “was written by AI models and reviewed by other instances of the same models; at the time of writing no person is known to have checked it; its constant is not explicit.” It adds that “AI models, not a mechanical check, compared the Lean proof with the printed one”. Hexagon tags the deposit “HUMAN UNDERSTANDING: SOME PARTS”.
Our analysis
What we checked
On October 29 we reread the paper’s text, including the exact placement of its printed exponents, and recomputed the crossover from the constants in its Appendix D. We also compared both labs’ Lean theorem statements, checker configurations, CI logs and Git timestamps, without rebuilding the proof or running the second-kernel check ourselves.
The threshold that went out with the news, 10^108 variables (in our first item too), misreads a nested superscript. The paper prints 10^(10^8), and its own constants give an even higher crossover than the one it states. Anthropic’s release commit passed a public CI run that includes a re-check by a second, independently written kernel. OpenAI’s checked statement is weaker than its paper, and its configuration for this result switches that re-check off.
| Point | As stated | What we found |
|---|---|---|
| Crossover with brute force | Paper: n > 10^(10^8); for m = 5n clauses, n > 10^10,000 | Its Appendix D chain gives log₂ n > 8.56·10^9, so n > 10^(2.58·10^9); for m = 5n the same chain gives n > 10^41,370 |
| Second-kernel check | Both labs published Lean proofs on GitHub | Anthropic forces the nanoda re-check on, and the release CI job passed (03:07 to 03:31 UTC, October 27). OpenAI’s config for this result has nanoda off, and no CI in its repository runs the comparator. Based on configs and logs, not our own run |
| Release time | Lean proof up at 03:07 UTC | 03:07 UTC is the merge to main; a CI run on the PR branch had started at 02:46 UTC |
| Edit distance | Backurs–Indyk lower bound left without its condition | The paper lists it among the bounds that rest on Orthogonal Vectors, which stay standing |
| Rebuilding it | README: about 8 minutes on 24 virtual CPUs, largest process about 7 GB | Toolchain Lean v4.33.1. The build step took 16 minutes on GitHub’s hosted runner; a 2 GB sandbox cannot rebuild it |
Up next
Claude Code team defines a loop by its stop condition
Four loop types in Claude Code, per The AI Corner, all rest on one definition from the Claude Code team, an agent repeating cycles of work until a stop condition is met. Do you set your agent’s stop condition up front or stop it by hand?
Related stories
- 13 million lines of Lean back Claude’s Fermat proof
- Claude pushed the zeta-zero lower bound from 41.6% to 67.2%
- Anthropic buys Mithril, a one-person biotech run on Claude
- At Enveda, Claude drafted a filing in 4 hours vs 3 months
- Unreleased Claude model built a one-click Chrome exploit
- Claude Mythos 5 faked identities to push malware on GitHub
Comments
No comments yet. Be the first.
Join the conversation
Sign in to leave a comment. It appears after moderation.

