The Jacobian conjecture fails in dimension 3
A polynomial map ℂ³ → ℂ³ whose Jacobian determinant is a non-zero constant need not be invertible. Refute the 1939 Jacobian conjecture in dimension three by exhibiting such a map that is not injective.
▸Motivation
Ott-Heinrich Keller asked in 1939 whether every polynomial map ℂⁿ → ℂⁿ with constant non-zero Jacobian determinant admits a polynomial inverse. The condition is necessary — an invertible polynomial map must have constant non-zero Jacobian — and the question is whether it is sufficient.
The conjecture resisted for 87 years and accumulated a substantial literature of partial results and false proofs. It was refuted on 19 July 2026 by Levent Alpöge, on a question posed by Akhil Mathew, using Claude Fable 5. The counterexample is a self-map of ℂ³ with Jacobian determinant −2 that identifies three distinct points.
By adjoining identity coordinates, the conjecture is false in every dimension n ≥ 3. The planar case n = 2 remains open.
Counterexample: Levent Alpöge (question by Akhil Mathew, produced with Claude Fable 5), 19 July 2026. Lean formalization: Paul Lezeau, vendored from google-deepmind/formal-conjectures under Apache 2.0.
▸Lean API
import Conjectura.Statements.Mathematics.AlgebraicGeometry.JacobianConjecture
import Mathlib.Data.Complex.Basic
namespace Conjectura.JC003
/-- Refute the Jacobian conjecture in dimension 3 over `ℂ`. -/
def goal : Prop := ¬ Conjectura.AlgebraicGeometry.JacobianConjectureProp ℂ (Fin 3)
end Conjectura.JC003▸Definition13
- Jacobian conjectureConjectura.AlgebraicGeometry.JacobianConjectureProp
The Jacobian conjecture for a ring
kand index typeσ: everyIsKellerMapis anIsPolynomialAutomorphism. Open over a field of characteristic zero in every dimension above one.def JacobianConjectureProp (k σ : Type*) [CommRing k] [Fintype σ] [DecidableEq σ] : Prop := ∀ F : RegularFunction k σ σ, IsKellerMap F → IsPolynomialAutomorphism F- regular functionConjectura.AlgebraicGeometry.RegularFunction
A regular function
k^σ → k^τis a tuple of multivariate polynomials, one per output coordinate. It is the formal stand-in for "polynomial map", and the object every statement in this area is about.abbrev RegularFunction (k : Type*) [CommRing k] (σ τ : Type*) := τ → MvPolynomial σ k- Keller mapConjectura.AlgebraicGeometry.IsKellerMap
A Keller map is a polynomial self-map whose
RegularFunction.Jacobiandeterminant is a unit. Over a field this is the same as the determinant being a non-zero constant, which is how the condition is usually stated.def IsKellerMap {k σ : Type*} [CommRing k] [Fintype σ] [DecidableEq σ] (F : RegularFunction k σ σ) : Prop := IsUnit F.Jacobian.det- polynomial automorphismConjectura.AlgebraicGeometry.IsPolynomialAutomorphism
A polynomial automorphism is a
RegularFunctionwith a two-sided inverse that is itself a regular function. This is strictly stronger than being bijective on points: the inverse must be given by polynomials.def IsPolynomialAutomorphism {k σ : Type*} [CommRing k] (F : RegularFunction k σ σ) : Prop := ∃ G : RegularFunction k σ σ, G.comp F = RegularFunction.id k σ ∧ F.comp G = RegularFunction.id k σ- CompositionConjectura.AlgebraicGeometry.RegularFunction.comp
Composition of regular functions, by polynomial substitution.
noncomputable def comp (F : RegularFunction k σ τ) (G : RegularFunction k τ ι) : RegularFunction k σ ι := fun i => MvPolynomial.bind₁ F (G i)- identityConjectura.AlgebraicGeometry.RegularFunction.id
The identity regular function: each coordinate is its own variable.
noncomputable def id : RegularFunction k σ σ := MvPolynomial.X- CommRingCommRing
class
- FintypeFintype
class
- MvPolynomialMvPolynomial
abbrev
- IsUnitIsUnit
def
- detF.Jacobian.det
def
- bindMvPolynomial.bind
def
- XMvPolynomial.X
def
▸Related work5
- A digestion of the Jacobian conjecture counterexampleTerence Tao · 2026
Works through why the determinant is constant and where the collision comes from. The clearest exposition of the counterexample.
- The new counterexample to the Jacobian conjectureSecret Blogging Seminar · 2026
Independent write-up from the days after the announcement, with the algebraic structure spelled out.
- The Jacobian conjecture: reduction of degree and formal expansion of the inverseBass, Connell, Wright · 1982
The standard reduction to cubic-homogeneous maps, and the reference most prior work builds on. Still valid — it now says the normal form contains counterexamples too.
- formal-conjectures — JacobianConjecture.leanPaul Lezeau et al. · 2026
The Lean formalization this problem vendors, including the determinant computation and the collision.
- Human mathematicians are being outcounterexampledXena Project (Kevin Buzzard) · 2026
On how the result was found and formalized within hours, and what that implies for formalization workflow.
▸Related problems1
- JC002 — the planar case n = 2, still open
▸For your AI
I am proving a theorem in Lean 4 and submitting it to Conjectura.
## Problem JC003 — The Jacobian conjecture fails in dimension 3
A polynomial map ℂ³ → ℂ³ whose Jacobian determinant is a non-zero constant need not be invertible. Refute the 1939 Jacobian conjecture in dimension three by exhibiting such a map that is not injective.
## Environment (fixed — do not assume anything newer)
- Lean toolchain: `leanprover/lean4:v4.33.0-rc1`
- Mathlib: `v4.33.0-rc1`
If a lemma you want does not exist in that Mathlib, prove it inline instead of
importing something newer.
## The exact statement I must prove
```lean
theorem solution : ¬ JacobianConjectureProp ℂ (Fin 3) := by
sorry
```
## The file I submit
```lean
-- Problem JC-003 — submission template
-- Environment: leanprover/lean4:v4.33.0-rc1 · mathlib v4.33.0-rc1
import Conjectura.Problems.JC003.Statement
namespace Submission
/-- Replace `sorry` with your proof. Do not change this signature. -/
theorem solution : Conjectura.JC003.goal := by
sorry
end Submission
```
## The Lean definitions of every term in this problem
These are the actual definitions your proof will be checked against. Do not
substitute your own version of any of them.
### Jacobian conjecture
The Jacobian conjecture for a ring `k` and index type `σ`: every `IsKellerMap` is an `IsPolynomialAutomorphism`. Open over a field of characteristic zero in every dimension above one.
```lean
Conjectura.AlgebraicGeometry.JacobianConjectureProp
-- unfolds to:
def JacobianConjectureProp (k σ : Type*) [CommRing k] [Fintype σ] [DecidableEq σ] : Prop :=
∀ F : RegularFunction k σ σ, IsKellerMap F → IsPolynomialAutomorphism F
```
Defined in this corpus.
### regular function
A regular function `k^σ → k^τ` is a tuple of multivariate polynomials, one per output coordinate. It is the formal stand-in for "polynomial map", and the object every statement in this area is about.
```lean
Conjectura.AlgebraicGeometry.RegularFunction
-- unfolds to:
abbrev RegularFunction (k : Type*) [CommRing k] (σ τ : Type*) := τ → MvPolynomial σ k
```
Defined in this corpus.
### Keller map
A Keller map is a polynomial self-map whose `RegularFunction.Jacobian` determinant is a unit. Over a field this is the same as the determinant being a non-zero constant, which is how the condition is usually stated.
```lean
Conjectura.AlgebraicGeometry.IsKellerMap
-- unfolds to:
def IsKellerMap {k σ : Type*} [CommRing k] [Fintype σ] [DecidableEq σ]
(F : RegularFunction k σ σ) : Prop :=
IsUnit F.Jacobian.det
```
Defined in this corpus.
### polynomial automorphism
A polynomial automorphism is a `RegularFunction` with a two-sided inverse that is itself a regular function. This is strictly stronger than being bijective on points: the inverse must be given by polynomials.
```lean
Conjectura.AlgebraicGeometry.IsPolynomialAutomorphism
-- unfolds to:
def IsPolynomialAutomorphism {k σ : Type*} [CommRing k]
(F : RegularFunction k σ σ) : Prop :=
∃ G : RegularFunction k σ σ,
G.comp F = RegularFunction.id k σ ∧ F.comp G = RegularFunction.id k σ
```
Defined in this corpus.
### Composition
Composition of regular functions, by polynomial substitution.
```lean
Conjectura.AlgebraicGeometry.RegularFunction.comp
-- unfolds to:
noncomputable def comp (F : RegularFunction k σ τ) (G : RegularFunction k τ ι) :
RegularFunction k σ ι :=
fun i => MvPolynomial.bind₁ F (G i)
```
Defined in this corpus.
### identity
The identity regular function: each coordinate is its own variable.
```lean
Conjectura.AlgebraicGeometry.RegularFunction.id
-- unfolds to:
noncomputable def id : RegularFunction k σ σ := MvPolynomial.X
```
Defined in this corpus.
### CommRing
class
```lean
CommRing
```
Defined in Mathlib.
### Fintype
class
```lean
Fintype
```
Defined in Mathlib.
### MvPolynomial
abbrev
```lean
MvPolynomial
```
Defined in Mathlib.
### IsUnit
def
```lean
IsUnit
```
Defined in Mathlib.
### det
def
```lean
F.Jacobian.det
```
Defined in Mathlib.
### bind
def
```lean
MvPolynomial.bind
```
Defined in Mathlib.
### X
def
```lean
MvPolynomial.X
```
Defined in Mathlib.
## Rules — submissions violating these are rejected automatically
1. **Do not change the name or type of `solution`.** It must satisfy the
statement above exactly.
2. **Do not redefine or shadow anything from the problem's Statement module.**
Declaring your own `goal`, or redefining a name it depends on, produces a
proof of a *different* statement and is rejected. This is the single most
common rejection.
3. **No `sorry`** anywhere, including in helper lemmas. It surfaces as the
axiom `sorryAx` and is detected transitively through imports.
4. **No `native_decide`** — it surfaces as `Lean.ofReduceBool` and is not
accepted, because it trusts compiled code rather than the kernel.
5. Only these axioms are permitted: `propext`, `Classical.choice`,
`Quot.sound`.
6. Follow Mathlib style: hypotheses left of the colon, explicit types,
`snake_case` theorem names, `UpperCamelCase` types.
## What I want from you
Here is my argument in informal mathematics:
> [PASTE YOUR PROOF SKETCH HERE]
Turn it into Lean 4 that compiles under the environment above and satisfies the
statement exactly. Where you are unsure a lemma exists in this Mathlib version,
say so explicitly rather than guessing a name.Solved — closed to submissions
Passed submission on file.
New ideas
Nothing here yet.
Discussion
- Nothing yet.
Sign in to take part.