Jacobian Conjecture Counterexample
The Jacobian conjecture predicts that a polynomial map
The example below does exactly that in dimension
Define
where
The computation splits into two independent checks.
First, the Jacobian determinant is constant and nonzero:
Second, the map sends three distinct points to the same output:
The first condition is the hypothesis of the Jacobian conjecture. The second condition contradicts injectivity. Together, these two facts show that this map is a counterexample if the displayed formula is correct.
The following setup block defines the map once. The later checks use these definitions.
import sympy as sp
x, y, z = sp.symbols("x y z")
F1 = (1 + x*y)**3*z + y**2*(1 + x*y)*(4 + 3*x*y)
F2 = y + 3*x*(1 + x*y)**2*z + 3*x*y**2*(4 + 3*x*y)
F3 = 2*x - 3*x**2*y - x**3*z
F = sp.Matrix([F1, F2, F3])
FThe next check computes the Jacobian matrix and its determinant symbolically. The expected output is the constant
J = F.jacobian([x, y, z])
detJ = sp.factor(J.det())
detJThe collision check can be written directly as three formula evaluations:
The three inputs are distinct, so this proves that
For a runnable check of the same claim, use the following code block. It returns True exactly when all three points map to the same target.
points = [
(0, 0, sp.Rational(-1, 4)),
(1, sp.Rational(-3, 2), sp.Rational(13, 2)),
(-1, sp.Rational(3, 2), sp.Rational(13, 2)),
]
target = (sp.Rational(-1, 4), 0, 0)
images = [tuple(F.subs({x: a, y: b, z: c})) for a, b, c in points]
len(set(points)) == 3 and all(image == target for image in images)