Reproducing the Jacobian conjecture counterexample in two cells of SymPy

korbonits1 pts0 comments

Trust Nothing, Verify Everything: reproducing the Jacobian counterexample from my couch — Alex Korbonits Jul 20, 2026 · 8 min read<br>Trust Nothing, Verify Everything: reproducing the Jacobian counterexample from my couch<br>mathverificationaijacobian-conjecturewar-stories

Trust Nothing, Verify Everything: reproducing the Jacobian counterexample from my couch

Yesterday, while most of the world was watching the World Cup final, the Jacobian conjecture — open since Keller stated it in 1939, Problem 16 on Smale’s list of problems for this century — was disproved. Not in the Annals. Not on arXiv. On X, in a tweet by Levent Alpöge, a number theorist who credited “my close friend fable for working during the world cup final.” Fable is Anthropic’s new Claude model.

As I write this, the Wikipedia page still calls it “a famous unsolved problem.” There is no paper. There is no referee report. There is a tweet containing three polynomials.

Ten years ago, the correct response to this situation was: wait. Wait for the arXiv post, wait for the experts, wait for the seminar where someone finds the gap — because the Jacobian conjecture is notorious for wrong proofs; the Wikipedia page says so in its second paragraph. The conjecture has eaten careers.

But this isn’t a proof. It’s a counterexample. And that changes everything about who gets to know it’s true, and when.

The claim

The Jacobian conjecture says: if a polynomial map F:Cn→CnF: \mathbb{C}^n \to \mathbb{C}^nF:Cn→Cn has a Jacobian determinant that’s a nonzero constant, then FFF has a polynomial inverse. Locally, a nonvanishing Jacobian always gives you an inverse — that’s the inverse function theorem from multivariable calculus. The conjecture claimed that polynomial rigidity plus a globally constant Jacobian upgrades local invertibility to global. It’s one of those problems you can state to a calculus student and then fail to solve for 87 years.

Alpöge’s tweet exhibits a specific map F:C3→C3F: \mathbb{C}^3 \to \mathbb{C}^3F:C3→C3:

F(x,y,z)=((1+xy)3 z+y2(1+xy)(4+3xy)y+3x(1+xy)2 z+3xy2(4+3xy)2x−3x2y−x3z)F(x, y, z) = \begin{pmatrix}<br>(1+xy)^3\, z + y^2 (1+xy)(4+3xy) \\<br>y + 3x(1+xy)^2\, z + 3xy^2(4+3xy) \\<br>2x - 3x^2 y - x^3 z<br>\end{pmatrix}F(x,y,z)=​(1+xy)3z+y2(1+xy)(4+3xy)y+3x(1+xy)2z+3xy2(4+3xy)2x−3x2y−x3z​​<br>For this to kill the conjecture, exactly two things must be true:

det⁡JF\det JFdetJF is a nonzero constant.

FFF is not invertible.

Both are finite, mechanical checks. No class field theory, no referee, no trust. So I checked.

Cell one: the determinant

import sympy as sp

x, y, z = sp.symbols('x y z')

F = sp.Matrix([<br>(1 + x*y)**3 * z + y**2 * (1 + x*y) * (4 + 3*x*y),<br>y + 3*x*(1 + x*y)**2 * z + 3*x*y**2 * (4 + 3*x*y),<br>2*x - 3*x**2*y - x**3*z,<br>])

print(sp.simplify(F.jacobian([x, y, z]).det()))<br>-2<br>Not numerically-close-to-negative-two. Symbolically, exactly, −2-2−2. Every monomial in that determinant cancels except the constant. Condition one: verified, by my laptop, in under a second.

Cell two: the collision

The cheapest way to show a map has no inverse — polynomial or otherwise — is to find two points with the same image. A non-injective map isn’t invertible, full stop.

Here’s a hint at where to look (this structure is why the example works, and it’s the part worth staring at): the third coordinate factors as f3=x(2−3xy−x2z)f_3 = x(2 - 3xy - x^2z)f3​=x(2−3xy−x2z). So the fiber over the plane w3=0w_3 = 0w3​=0 contains two entirely different branches — the plane x=0x = 0x=0, and the surface z=(2−3xy)/x2z = (2-3xy)/x^2z=(2−3xy)/x2. Two branches, one target. Collisions live where they land on each other:

p, q = {x: 0, y: 6, z: -142}, {x: 1, y: 0, z: 2}<br>print(F.subs(p).T, F.subs(q).T)<br>Matrix([[2, 6, 0]]) Matrix([[2, 6, 0]])<br>F(0,6,−142)=F(1,0,2)=(2,6,0)F(0, 6, -142) = F(1, 0, 2) = (2, 6, 0)F(0,6,−142)=F(1,0,2)=(2,6,0). Two distinct points, one image. (If you’re worried one collision is a fluke of some degenerate locus: F(0,7,−193)=F(2,1,−1)=(3,7,0)F(0,7,-193) = F(2,1,-1) = (3,7,0)F(0,7,−193)=F(2,1,−1)=(3,7,0) too. The branch structure gives you a collision for every point on a surface’s worth of choices.)

That’s it. That’s the whole verification. The Jacobian conjecture is false.

Two footnotes that fall out for free. The collision points are integers, so by a 1983 theorem of Connell and van den Dries the conjecture dies over every field of characteristic zero, not just C\mathbb{C}C. And padding the map with identity coordinates kills every dimension n≥3n \geq 3n≥3. What survives is exactly Keller’s original two-variable problem — n=2n = 2n=2 remains open, and is suddenly the most interesting question in the area.

What I didn’t need

Here is the part I actually want to write about.

To know — not believe, know — that an 87-year-old conjecture is false, I did not need to trust:

Alpöge. He seems trustworthy! Doesn’t matter. Didn’t need him.

Anthropic , whose model found the map and who have every commercial incentive to promote the result.

Wikipedia , which...

jacobian conjecture counterexample trust mathbb reproducing

Related Articles