All posts

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

A university lecture room with three chalkboards covered in equations behind a wooden lectern and a row of seats
Photo: LBM1948 / Wikimedia Commons, CC BY-SA 4.0

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.

A square grid on the left is mapped by a function f to a curved, skewed grid on the right, with a parallelogram showing the linear approximation
The Jacobian determinant measures how a map scales a small patch of space. The Jacobian conjecture asks what happens when that scale factor is the same nonzero constant everywhere. Diagram: Blacklemon67 / Wikimedia Commons, CC BY-SA 3.0

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.

Black-and-white photo of two older men in suits reading papers together; Ott-Heinrich Keller is on the left
Ott-Heinrich Keller (left), who posed the conjecture in 1939, with Hellmuth Kneser. Photo: Konrad Jacobs / Wikimedia Commons, CC BY-SA 2.0

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.

Sepia portrait of a man with wavy shoulder-length hair in a dark coat and white high collar, with a signature printed below
Carl Gustav Jacob Jacobi in an 1843 portrait. The Jacobian matrix and its determinant are named after him. Image: August Kaselowsky / Wikimedia Commons, public domain

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:

YearResultWho
1884Two-variable version stated with a flawed proofLudwig Kraus
1939General conjecture statedOtt-Heinrich Keller
1982General case reduced to cubic homogeneous maps, at the cost of more variablesBass, Connell and Wright
1983Further reduction to an even more special cubic formDrużkowski
1983Two-variable case verified by computer for degree up to 100Moh
1994Counterexample to a stronger "real" version, not the originalPinchuk
1998Listed as problem 16 for the 21st centuryStephen Smale
2025Two-variable degree bound raised to 104Nguyen
2026Three-variable counterexample postedAlpö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.

A man with short black hair and glasses, in a dark jacket, looking off to the side during an interview
Yitang Zhang, whose doctoral work was on the Jacobian conjecture, in a 2014 interview. Image: Voice of America / Wikimedia Commons, public domain

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.

Portrait of an older man with white hair in a gray shirt, standing in front of trees
Stephen Smale in 2008. His 1998 list of problems for the 21st century included the Jacobian conjecture. Photo: George Bergman / Wikimedia Commons, CC BY-SA 4.0

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.

A man with close-cropped hair, a short beard and a dark t-shirt looking down, with bookshelves behind him
Kevin Buzzard, who writes the Xena Project blog about Lean and formal mathematics, in London in 2007. Photo: Paula Buzzard / Wikimedia Commons, CC BY-SA 3.0

His July 20 post puts the Jacobian result in a run of AI-found counterexamples from the same summer:

Date (2026)ProblemWhat happened, per Buzzard
May 20Erdős unit distance conjectureDisproved with ChatGPT; Logical Intelligence's system autoformalized the paper in Lean within about a week
June 26Same Erdős resultBoris Alexeev used OpenAI's Sol model to produce a full Lean formalization of about 1.2 million lines in three weeks
July 11Grothendieck's question on finite flat group schemesSol found a counterexample; Claude Fable turned it into a 1,076-line Lean file in about four hours
July 19Jacobian conjecture, three variablesAlpö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.

A speaker on a dark stage in front of a large screen showing a cartoon of a mathematician at a chalkboard standing waist-deep in water
Timothy Gowers speaking at the GOSIM conference at Station F in Paris in May 2026. His slide asks what it feels like to be a mathematician today. Photo: Bretwa / Wikimedia Commons, CC0

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