Science
A three-variable counterexample to the Jacobian conjecture, found with Claude Fable 5
Levent Alpöge posted a short polynomial map that breaks Keller's 1939 conjecture in three dimensions. Anyone can check it in seconds; the two-variable case is still open.
HackHoster Team · · 12 min read

At a glance
- On July 19, 2026, Levent Alpöge posted a polynomial map in three variables that disproves the Jacobian conjecture, crediting Anthropic's Claude Fable 5.
- The map has Jacobian determinant −2 at every point, yet three different inputs all land on the output (−1/4, 0, 0), so it cannot be inverted.
- Ott-Heinrich Keller stated the conjecture in 1939, and Stephen Smale put it on his 1998 list of problems for the next century.
- Paul Lezeau formalized the counterexample in Lean and opened a pull request to Google DeepMind's Formal Conjectures repository.
- The counterexample settles every dimension from three up; the two-variable case, where most of the failed proofs were aimed, is still open.
On Sunday evening, July 19, during the World Cup final, mathematician Levent Alpöge posted on X that the Jacobian conjecture is false. He attached a polynomial map from three-dimensional space to itself, thanked a friend for asking him about the problem, and thanked Anthropic's Claude Fable 5 model, which he called another friend, for working through the match. The Next Web, which describes Alpöge as a Harvard fellow who lists an Anthropic affiliation, counted the whole counterexample at 216 characters, short enough for a single post.
The conjecture was stated by Ott-Heinrich Keller in 1939 and has a reputation for attracting wrong proofs. Stephen Smale put it on his 1998 list of problems for the next century. A single explicit example now settles it for three or more variables, and anyone with a computer algebra system can confirm that in well under a second.
This piece explains what the conjecture says, why it resisted 87 years of attempts, what the counterexample looks like, how to check it yourself, and what it does and does not tell us.
What the conjecture says, in developer terms
Take a function F that maps points (x, y, z) to new points, where each output coordinate is a polynomial in the inputs. Its Jacobian matrix holds all nine partial derivatives, one row per output and one column per input. The determinant of that matrix tells you how much F stretches or squashes a tiny region around each point. If the determinant is zero somewhere, F flattens space there, and nothing can undo it locally.

Keller's question was about the strongest version of the opposite property: the determinant is the same nonzero constant at every point, so F never flattens anything anywhere. The inverse function theorem then says that around any point you pick, F can be undone on a small neighborhood. The conjecture claimed much more: that such an F has a global inverse, and that the inverse is itself a polynomial map.
Keller map: a polynomial map from n-dimensional space to itself whose Jacobian determinant is a nonzero constant. The Jacobian conjecture said every Keller map is invertible, with a polynomial inverse. Alpöge's example is a Keller map in three variables that is not even one-to-one.
For a programmer, the closest analogy is a function that passes a local check at every input but fails a global property. Every small neighborhood looks reversible, yet the function as a whole still collides. As John D. Cook summarized the result on his blog, being invertible locally at every point does not make a map invertible everywhere.
In one variable the conjecture is easy. A polynomial with a constant nonzero derivative is a straight line, and lines are invertible. Everything interesting starts at two variables, where many of the published attempts, and many of the flawed proofs, were aimed.
An 87-year-old problem with a long trail of wrong proofs
The question is older than its name. According to Wikipedia's history of the problem, Ludwig Kraus wrote down a two-dimensional version in 1884, with a proof that turned out to be flawed. Keller stated the general n-variable form in 1939, for polynomials with integer coefficients. The phrase "Jacobian conjecture" first shows up in print in a 1973 paper by Masayoshi Miyanishi, and Alexander Borisov has credited Shreeram Abhyankar, who wrote lecture notes on the two-variable case in 1977, with coining it.

The matrix and its determinant are named after Carl Gustav Jacob Jacobi (1804–1851). The conjecture borrows his name only because the determinant is the object it is about; Jacobi had nothing to do with the question itself.

Over the following decades, mathematicians made the problem smaller without solving it. Several of those reductions matter for understanding why a computer search was plausible at all:
| Year | Result | Who |
|---|---|---|
| 1884 | Two-variable version stated with a flawed proof | Ludwig Kraus |
| 1939 | General conjecture stated | Ott-Heinrich Keller |
| 1982 | General case reduced to cubic homogeneous maps, at the cost of more variables | Bass, Connell and Wright |
| 1983 | Further reduction to an even more special cubic form | Drużkowski |
| 1983 | Two-variable case verified by computer for degree up to 100 | Moh |
| 1994 | Counterexample to a stronger "real" version, not the original | Pinchuk |
| 1998 | Listed as problem 16 for the 21st century | Stephen Smale |
| 2025 | Two-variable degree bound raised to 104 | Nguyen |
| 2026 | Three-variable counterexample posted | Alpöge, with Claude Fable 5 |
Source: Wikipedia's summary of the literature, and the July 2026 reports cited below.
Two of those entries are worth a closer look. Pinchuk's 1994 map is a real polynomial map whose Jacobian determinant is never zero but is not constant, and which has no global inverse. It showed that "never zero" is too weak, but it left Keller's constant-determinant version untouched. The degree reductions point the other way: they show that if the conjecture failed anywhere, it would fail for some fairly structured map, though possibly in a huge number of variables.
The conjecture also has a famous casualty. The Next Web notes that it derailed Yitang Zhang's PhD work, long before his research on prime numbers made him widely known.

Smale's list of 18 problems, proposed in 1998 and republished in 1999, gave the conjecture a profile well beyond algebraic geometry. It is problem 16 on a list that opens with the Riemann hypothesis, the Poincaré conjecture and P versus NP.

The map, and how to check it yourself
Here is the counterexample as Alpöge posted it and as Cook reproduced it:
- F1 = (1 + xy)³z + y²(1 + xy)(4 + 3xy)
- F2 = y + 3x(1 + xy)²z + 3xy²(4 + 3xy)
- F3 = 2x − 3x²y − x³z
Its Jacobian determinant is −2 for every input. Yet (0, 0, −1/4), (1, −3/2, 13/2) and (−1, 3/2, 13/2) all land on the same output, (−1/4, 0, 0). A function that sends three different inputs to one output has no inverse of any kind, polynomial or otherwise. Adding extra coordinates that pass through unchanged gives a counterexample in every higher dimension as well.
You can check all of this in a few lines of SymPy. We ran this before publishing:
from sympy import symbols, Matrix, Rational as R, expand
x, y, z = symbols("x y z")
F = Matrix([
(1 + x*y)**3 * z + y**2 * (1 + x*y) * (4 + 3*x*y),
y + 3*x * (1 + x*y)**2 * z + 3*x * y**2 * (4 + 3*x*y),
2*x - 3*x**2 * y - x**3 * z,
])
print(expand(F.jacobian([x, y, z]).det())) # -2
for p in [(0, 0, R(-1, 4)), (1, R(-3, 2), R(13, 2)), (-1, R(3, 2), R(13, 2))]:
print(list(F.subs(dict(zip((x, y, z), p))))) # [-1/4, 0, 0] each time
What our own checks turned up
A few more facts fall out of the same session, and they help explain why this is a needle in a haystack.
- Degrees. Expanded, the three components have total degree 7, 6 and 4, with 7, 6 and 3 monomials. That is tiny by computer-algebra standards.
- Cancellation. Expanding the six signed products that make up the 3×3 determinant gives 82 monomial terms spread over 18 distinct monomials. Every one of them cancels except the constant −2. A random map with the same shape essentially never does this.
- A hidden symmetry. The quantity xy appears everywhere, and it is unchanged if you scale x by t and y by 1/t. Scaling (x, y, z) to (tx, y/t, z/t²) multiplies the three outputs by 1/t², 1/t and t. In other words, the map is homogeneous with weights 1, −1 and −2 on x, y and z.
- Collisions come in families. Because of that symmetry, the collision above is one member of an infinite family. For any nonzero t, the points (0, 0, −1/(4t²)), (t, −3/(2t), 13/(2t²)) and (−t, 3/(2t), 13/(2t²)) all map to (−1/(4t²), 0, 0). So every point (s, 0, 0) with s negative has at least three preimages. The two non-trivial points in Alpöge's post are the t = 1 member and its mirror image.
None of this explains why the determinant is constant, which is the hard part. It does show that the example is structured rather than a lucky jumble of coefficients, which is consistent with Alpöge's suggestion, reported by The Next Web, that the map may hide positive mathematical insight.
Cheap to verify, expensive to find
The asymmetry between checking and finding is the center of this story. Checking means expanding one determinant of polynomials, confirming that every non-constant term cancels, and evaluating the map at three points. A laptop does it in milliseconds, and a patient person can do it by hand.
Finding means searching an enormous space of polynomial maps for one where dozens of terms cancel exactly while the map still folds space back on itself. The Next Web reports that the search was not a one-line prompt. It quotes mathematician Bartosz Naskręcki as saying that looking for a counterexample like this takes real insight.
How the model was steered has not been published. Alpöge has not released a write-up of the prompts, tools or compute involved, so outsiders cannot yet tell how much of the search was the model's own and how much came from the mathematicians around it. Two other details from The Next Web's report add context:
- An independent find. OpenAI researcher Aaron Lou said the company's internal Codex model had independently found essentially the same counterexample.
- A claimed generalization. Developer Alexis Gallagher reportedly used GPT-5.6 to extend the single example into an infinite family, one for every whole number above two. That claim had not been verified when The Next Web published.
Lean and the formal record
Formal verification followed within a day. According to Kevin Buzzard's Xena Project blog, Paul Lezeau formalized the counterexample by hand in the Lean proof assistant and opened a pull request to Google DeepMind's Formal Conjectures repository, which holds Lean statements of well-known open problems.
Buzzard's argument is that the human work that matters most is agreeing on the formal statement. Once mathematicians agree that a Lean statement faithfully captures a conjecture, checking a machine-found proof or disproof against it is routine. Buzzard also says he does not read informal, natural-language mathematics produced by AI, and he wants such results checked formally instead.

His July 20 post puts the Jacobian result in a run of AI-found counterexamples from the same summer:
| Date (2026) | Problem | What happened, per Buzzard |
|---|---|---|
| May 20 | Erdős unit distance conjecture | Disproved with ChatGPT; Logical Intelligence's system autoformalized the paper in Lean within about a week |
| June 26 | Same Erdős result | Boris Alexeev used OpenAI's Sol model to produce a full Lean formalization of about 1.2 million lines in three weeks |
| July 11 | Grothendieck's question on finite flat group schemes | Sol found a counterexample; Claude Fable turned it into a 1,076-line Lean file in about four hours |
| July 19 | Jacobian conjecture, three variables | Alpöge's map, credited to Claude Fable 5; hand-formalized by Lezeau |
For scale, Buzzard notes that mathlib, Lean's main mathematics library, is about 2.3 million lines built over nine years. A single machine-written formalization of half that size in three weeks is a new kind of artifact for reviewers.
The key caveat: a Lean proof is only as good as its statement. The machine checks that the counterexample satisfies the formal definition, so the human review that matters is whether the formal definition of a Keller map and of invertibility matches what Keller meant.
Reactions, and the limits of a counterexample
The reaction among mathematicians mixed delight and caution. The Next Web reports that Fields medallist Timothy Gowers said this was the first time an AI had solved a problem outside his own field that was big enough for him to have heard of. Daniel Litt posted at 2 a.m. that he couldn't stop laughing.

Not everyone sees a turning point. Columbia mathematician Andrew Blumberg told Mashable, as quoted by The Next Web, that the result "did not cause me to update my priors." His argument is that searching a large space for a counterexample is exactly the task machines were expected to be good at, and that a counterexample closes a question without explaining much.
That is a fair reading, and it points to the real open questions:
- Why does it work? The map shows the conjecture is false. It does not show which structure makes Keller maps fail, or how to recognize others. Buzzard says the next step is for people to understand exactly what is going on with the example.
- The plane. The two-variable version remains open, and it is the version with the longest history and the most failed proofs. A planar counterexample would be two polynomials in x and y, and nothing about this three-variable construction settles it. Computer checks have already ruled out small degrees there.
- Method and credit. Without a write-up, it is unclear what the model contributed beyond search, how many attempts it took, or whether the approach transfers to other problems.
- Related conjectures. Wikipedia's article lists the Dixmier conjecture, about endomorphisms of an algebraic structure called the Weyl algebra, as equivalent to the Jacobian conjecture. Working out what the new counterexample implies for such statements, and in which dimensions, is a job for specialists, and claims will need the same careful checking as the original.
What builders can take from it
You do not need to care about algebraic geometry to use the pattern here. A model proposes a small, explicit candidate. A computer algebra system checks it in milliseconds. A proof assistant pins it down formally. The model never has to be trusted, because every claim it makes is cheap to verify.
That pattern fits a lot of hackathon-sized problems:
- Bug hunting with failing inputs. Ask a model for an input that violates an invariant, then run it. A crash or wrong answer is a counterexample you can verify, and the model's explanation doesn't matter.
- Property-based testing with a model in the loop. Tools such as Hypothesis already search for counterexamples to properties. A model can suggest structured inputs that random generators rarely hit, much as the hidden symmetry above would be hard to stumble into by chance.
- Optimization with a checker. Scheduling, packing and layout problems often have answers that are hard to find and easy to score. Let the model propose, let your scorer judge.
- Formal specs first. Buzzard's point applies to software too. If you can write the property precisely, whether as a Lean statement, a test or a type, machine-generated answers become safe to accept.
Practical tip: when you show off a model-found result, ship the checker with it. A ten-line script that anyone can run, like the SymPy snippet above, is more convincing to judges and reviewers than any description of how clever the search was.
A few things to check before you trust a result of this kind: use exact rational arithmetic rather than floating point, since a determinant that is "almost constant" in floats proves nothing; test the claimed collision points exactly; and if you formalize, have someone who did not write the proof read the statement.
What to watch next
As of July 21, the open items are clear. Alpöge's fuller write-up is still pending, and it may show how the model was guided and whether the hidden structure suggests a general construction. Lezeau's Lean formalization has been submitted to the Formal Conjectures repository as a pull request. The claimed infinite family from GPT-5.6 needs independent checking. The two-variable case, the one Kraus tried in 1884, is still open.
Whatever the write-up shows, the episode has already changed the practical bar for claims like this one. A disproof that fits in a social media post, checks in a second, and is formalized within a day sets a high bar for the next AI-assisted result.
Sources
- AI just disproved the 87-year-old Jacobian conjecture (The Next Web)
- Human mathematicians are being outcounterexampled (Kevin Buzzard, Xena Project)
- Locally everywhere does not imply everywhere (John D. Cook)
- Jacobian conjecture, history and known results (Wikipedia)
- Smale's problems (Wikipedia)
- Jacobian matrix and determinant (Wikipedia)
More from the blog

Science ·
Anthropic's wet lab reports a CRISPR-like enzyme family surfaced by Claude agents
About 950 Claude agent sessions mined sequence data for reverse transcriptases and flagged ART, a phage system with CRISPR-like repeats. Humans ran the experiments, and its function is unknown.
11 min read

Science ·
Six proteomic aging clocks read younger in rentosertib's lung fibrosis trial
A Nature Biotechnology study ran six protein-based aging clocks on serum from Insilico's IPF drug trial. The signal is consistent but small, early and hard to separate from the lung disease.
11 min read

Science ·
MIT and Oak Ridge's CrysVCD builds charge balance into AI crystal generation
A small transformer writes charge-balanced formulas before a diffusion model builds the crystal. Tuned for stability, 85% of outputs were predicted metastable. The code is open.
10 min read