logoalt Hacker News

Terrence Tao's ChatGPT Conversation about the Jacobian Conjecture Counterexample

381 pointsby gmaystoday at 5:30 PM192 commentsview on HN

Comments

WarmWashtoday at 6:09 PM

Math has some of the most insanely dense and impenetrable nomenclature. I can generally keep my head mostly above water or at least near the surface reading from most STEM fields, perhaps leaning on google/wikipedia a bit, but man, mathematics just so quickly decouples from all common tractable understanding it's insane.

Sorry it's a bit of an aside, but I imagine many other otherwise "technical" folks feel the same unfamiliar sense of total loss like when encountering hard mathematics.

show 17 replies
napoleoncomplextoday at 6:03 PM

This is the second ChatGPT shared conversation I've seen today that is truly fascinating.

The first one was someone proving another conjecture false by just repeatedly saying "keep going" to ChatGPT: https://x.com/DmitryRybin1/status/2079904005652893709

What a world we live in.

show 11 replies
lukebuehlertoday at 5:55 PM

It’s endlessly fascinating to read the AI transcript of an expert who _really_ knows how to cut to the chase. It just shows how much you can potentially squeeze out of these models. I’m also surprised to see that even Terrence Tao seems to use it in a way that resembles, in progression, how I use llms in my area of expertise (emphasis on progression and usage patterns, not absolute skill, obv I don’t match that): short pointed questions that goes all in on the jargon and machinery of the field and steers the llm hard (eg no softballs). I’ve noticed that llms switch their tone and meet you basically more or less on your level.

show 2 replies
ecshafertoday at 6:09 PM

Terrance Tao's chatgpt conversation is really interesting for a variety of reasons:

1. The counter example wasn't just a brute force selection, the polynomial is structured in a very specific way that ends up getting the result.

2. Terry Tao's questions are very specific and prompts the AI in a useful way, that without high math training you are not going to get the same information out of it. Terry seems to see some aspects of the problem and counter example and uses AI to brute force some parts of it.

show 2 replies
jvanderbottoday at 6:07 PM

It's crazy how he suggests simplifications over and over and gets led through the finding. Absolutely bonkers how you can use AI to understand something and map it to your own mental map so efficiently, and of course he's most interested in generalizing or finding a simpler sub-result that would explain it.

Just awesome to see new knowledge hit an incredible mind like this. Having these "what if" discussions is what I miss most from JPL and academia.

axustoday at 5:56 PM

"I’ve activated Pro. Can you continue to look for a potential geometric explanation of the X_3 ~ A3 miracle that avoids coordinates or other unmotivated constructions ?"

Another satisfied customer!

show 4 replies
NitpickLawyertoday at 6:12 PM

Jeez. While I obviously can't talk at all about the math, I've noticed a few things:

a) The model thinks on some questions while straight answers on others. (I wish I'd knew from the questions if this is somehow correlated to hard tasks or "inventive" tasks, but that's way out of my league).

b) The model sometimes pushes back. Again, I'd wish I knew if it was warranted, but I counted 2 instances where it said "yes, but with caveats", one where it said "mostly yes but with this correction" and one where it said "careful here, because x y z".

c) The model did q&a + pdf ingestion + code writing + more q&a + thinking + more q&a, for a looong while, while seemingly staying on topic (at least Terrence Tao seems to think they're still productive, so I'll trust that).

This is what model progress is, not number goes up on xBency or yBencher. Damn.

show 1 reply
ghm2199today at 8:40 PM

Words and sentences to an LLM are like witchcraft. There are certain words, sentences that make LLMs go a certain way and do vastly better. Sometimes its not at all apparent what set of words will work to do what you want it to do. An example I have been using to do design at a high level is to say to claude.

```

A question is salient to the degree that its answer changes what we do next. Operationally, saliency = the product of four things:

- Decision-leverage — would resolving it one way vs another force a different design or invalidate a stated decision? (No leverage → drop, however interesting.)

- Residual uncertainty given current evidence — is it still genuinely open after reading the docs and the code? (Already settled → drop, however deep.)

- Load-bearing-ness — how much rests on the premise.

- Cost of finding out late — architecture-deciding / expensive-to-unwind raises priority; cheap-to-fix-later lowers it.

```

There are a few things to note about this prompt

1. There is no reason from looking at it that it should work, it even has the word load-bearing which people loathe, but it remarkably produces a stable design with questions from claude (atleast from claude Opus 4.8 and even better from Fable5). Otherwise the design document claude likes to really write are implementation level(code or otherwise). I usually pair this with matt pocock's grilling skill to make claude behave.

2. From design -> implementation, its is generally about understanding when claude is trying to trick you into making something sound like a good/easy solution but has tons of untested assumptions. Here you have to read and patiently spot if a how you would get to the solution is not clear. A common error here are when claude makes a big deal based on what it read and interpreted too seriously without questioning the assumptions. There are several more.

But it also comes down to your experience as a SWE, much like a mathematician's. The frustrating thing about it is, it feels tha a skilled mathematician working with AI can make them productive in ways that are more reliable as compared to a SWE (e.g. lean is deterministic and can provide very strong feedback and LLMs are very good at using that feedback). Maybe a mathematician can chime in on that?

personalitysontoday at 6:33 PM

This was my conversation with ChatGPT 4 years ago: https://i.imgur.com/WPaWgzZ.png

Where will we be in another 4 years? What a time to be alive!

show 4 replies
jstanleytoday at 6:03 PM

It's reassuring to know that even a supergenius's ChatGPT session is one sentence from the human followed by 3 pages of LLM output.

Jun8today at 5:52 PM

Similar to how Cypher puts it: I know this is “just” next token inference, matrix mult and just software, ie there’s no “intelligence” there BUT, looking at this convo … damn!

The fascinating this is that the LLM is not acting as a tool here AFAIk, but very much like a colleague.

I have no knowledge of the domain and have only PhD EE level math knowledge, so maybe my bar is too low.

show 5 replies
minimaxirtoday at 6:02 PM

I'll have a blog post up tomorrow about it but the Jacobian Conjecture counterexample is a very funny cognitohazard for LLM assistants. It's a paradox for modern LLMs: they have enough math skills such that they can easily compute the Jacobian to formally verify the counterargument, but its own knowledge base is locked prior July 19th 2026 where all it knows is that the Jacobian Conjecture is unsolved and a random chat user providing such a proof is highly unlikely.

show 1 reply
doctoboggantoday at 6:26 PM

Similar to the story of George Dantzig, who was late to class and solved two open problems in statistics because he mistook them for homework, I think the current batch of frontier LLMs are chained up by knowing which problems are supposed to be unsolved. If they're let free (probably via some targeted RLHF) we might get a flurry of solutions to open problems.

show 1 reply
ChaitanyaSaitoday at 6:03 PM

I don't understand any of the math here, but I had two thoughts. Soon we'll have explainer agents that translate these according to my level so I can, with effort and interest, follow along and stretch my understanding boundary bit by bit.

Two, at some point AIs will be able to use other context like the fact that this is Terrence Tao and not your average Joe and change how it answers, either in tone or structure.

show 2 replies
purple-leafytoday at 7:40 PM

I’ve had a similar experience using LLMs to have mini personal breakthroughs.

One thing I notice is many models say statements along the lines of “okay we have exhausted this thread it’s diminishing returns from here and we should stop and move on”

It’s funny because I’ve been building a tiny neural network maze solver (23 bytes solves 92.75% of unseen 2D mazes)

When I asked ChatGPT/Fable if we had anymore threads to pull to increase capability and decrease byte size, they both basically said no way - back when I was at ~166 byte models with a ~85% solve rate.

Throughout the experiment I just kept trying different approaches and eventually had 3 mini “breakthroughs” in this particular niche. But if I had listened to the models…

Anyway, these models are amazing to experiment with quickly, but they are dumb as hell and so absolute

kreliantoday at 8:13 PM

How long has it been since we last saw a "LLMs can't really think/be useful/be better than a human expert" discussion on HN? There used to be so many!

show 1 reply
6thbittoday at 6:30 PM

Presumably this was Sol on xhigh, then over to Pro (as per his indication on chat)?

Is there any way to tell a conversation's model and thinking level?

seamossfettoday at 8:10 PM

The big take away for is the fact that the ONLY reason why chatgpt was able to get to this counterexample was because of the knowledge of the person driving the conversation.

I don't think chatgpt could have come to this on its own without the amount of steering he did, which just validates the idea that AI is not a replacement for human expertise but an amplifier.

show 2 replies
sandeberttoday at 7:08 PM

ChatGPT: "The determinant identity is almost embarrassingly simple once one writes the map in the right way."

WithinReasontoday at 8:10 PM

All I can tell from this is that Terrence Tao has good mathematical intuition

hintymadtoday at 6:39 PM

I recall several mathematicians (possibly including Terence Tao) mentioning that fields in mathematics have become so specialized and isolated that a conference like the ICM feels more like a collection of mini-conferences. An expert in one area can barely understand a talk in another.

Modern AI feels like a godsend to mathematicians. It helps them break down boundaries and connect concepts in ways a mere mortal couldn't imagine.

khurstoday at 8:03 PM

Can someone ELI5 this?

Is this a breakthrough of something or 'kinda interesting'?

show 1 reply
riazrizvitoday at 7:21 PM

Love this share! Thanks for helping ppl better understand what it really means when folks say "ChatGPT Discovered..."

show 1 reply
personalitysontoday at 7:53 PM

The last Fields Medal has been awarded.

show 1 reply
I_am_tiberiustoday at 7:45 PM

Are shared chats solely secured by a uuid?

show 1 reply
OJFordtoday at 6:28 PM

Fancy telling Tao something's 'almost embarrassingly simple' (if only written in the right way)!

show 1 reply
gcgbarbosatoday at 6:35 PM

I find it amazing how people can use AI to do things that seem hard but yesterday I could not figure out how to install a package on my system. It kept suggesting dependencies that don't exist, and telling me to use functions that are not in the system. The math does not math...

iphonecorridortoday at 6:48 PM

Never meet your heros.

khernandezrttoday at 7:18 PM

Damn. I should have stayed in school.

jdw64today at 6:08 PM

I'm watching how Tao uses AI, and it's interesting.

Expand the entire expression, then change the representation to find the core axis. You can't see the axis from just one perspective, so you change the representation. In programming terms, it's like applying multiple domain models. Then break it down into small contract units. Why is it a Jacobian monomial? Why does x satisfy a cubic equation? And so on.

Then swap out the modeling under a hypothesis, assemble it all back together, and verify it through the equation.

This feels similar to modeling in programming.

Observe the whole -> explore better modeling -> decompose local problem -> verify independently -> reason about the highre level structure -> integrate back into the original problem.

This feels similar to when I receive work from a client and write a programming proposal

latenightcodingtoday at 6:03 PM

Can't even ctrl+f the conversation, wish openai would fix that

show 2 replies
sandspartoday at 6:41 PM

Sense of vertigo that this is the same AI that plans meals and recommends movies for me. Incredible range.

vb-8448today at 5:44 PM

Maybe it's silly, but from someone who is ignorant on this topics, what are the consequences of this kind of "discoveries"?

Is it something "revolutionary" or just another small brick that will pile up until something really "revolutionary" will happen?

show 5 replies
bradortoday at 6:07 PM

"The determinant identity is almost embarrassingly simple once one writes the map in the right way." #Flexingontheentirehumanspecies

show 1 reply
sjreesetoday at 7:24 PM

Specifically, if the eigenvalues all have real parts that are negative, then the system is stable near the stationary point. If any eigenvalue has a real part that is positive, then the point is unstable. If the largest real part of the eigenvalues is zero, then the Jacobian matrix does not allow for an evaluation of the stability.

Yes—for a continuous-time autonomous system

x ˙ =f(x),f(x ∗ )=0,

this is the standard linearization criterion, with J=Df(x ∗ ):

If every eigenvalue of J has strictly negative real part, then x ∗ is locally exponentially asymptotically stable. If at least one eigenvalue has strictly positive real part, then x ∗ is unstable. If no eigenvalue has positive real part but at least one has real part 0, linearization is generally inconclusive. Nonlinear terms or a center-manifold analysis are needed.

The last case really can go either way. For example, all three scalar equations below have Jacobian J=0 at x=0:

x ˙ =−x 3 , x ˙ =x 3 , x ˙ =0.

Yet 0 is respectively asymptotically stable, unstable, and neutrally stable.

A slightly more precise wording is therefore:

If the spectral abscissa

α(J)= λ∈σ(J) max

Reλ

is negative, the equilibrium is locally exponentially stable. If α(J)>0, it is unstable. If α(J)=0, the Jacobian test is inconclusive.

This criterion concerns the Jacobian matrix of a dynamical system at an equilibrium; it is unrelated to the “constant Jacobian determinant” condition in the Jacobian conjecture.

housutoday at 5:53 PM

It's awesome to publish this kind of thing - great PR at least. Even if you don't understand the details, it's interesting to be able to peek into a technical conversation that a world class mathematician is having about their work with a "colleague". It's also the clearest demonstration I've seen of the vision AI people have about a future with truly intelligent copilots in super technical fields.

Human-Cabbagetoday at 6:45 PM

Is ChatGPT's interface always this atrociously jittery? Or is it just because this page is getting an HN hug-of-death right now? Every time I try to scroll the whole page goes blank for a few seconds and then re-renders.

show 2 replies
jdw64today at 5:59 PM

I wish you'd share some conversations from experienced programmers too. How do they ask questions?

show 1 reply
the_aftoday at 5:56 PM

It's fun if you ask ChatGPT to guess the identity of its interlocutor :) It will guess math researcher or paper author without hints, but if you give it some additional hints, "this was shared over the internet", "it's someone willing to work with AI", it will guess Terence Tao as the first choice.

sjreesetoday at 8:17 PM

import Mathlib

noncomputable section

open Matrix Function

/-! # A counterexample to the Jacobian conjecture in dimension three

We formalize the polynomial map

  F : ℂ³ → ℂ³
whose Jacobian determinant is the constant `-2`, but which is not injective.

The final theorem `jacobianConjecture3_false` states the failure of the polynomial-inverse formulation of the Jacobian conjecture in dimension three. -/

namespace MvPolynomial

variable {R : Type} {σ : Type}

/-- The formal Jacobian matrix of a family of multivariate polynomials. -/ def jacobianMatrix [CommSemiring R] [DecidableEq σ] (F : σ → MvPolynomial σ R) : Matrix σ σ (MvPolynomial σ R) := Matrix.of fun i j ↦ pderiv j (F i)

/-- The formal Jacobian determinant. -/ def jacobianDet [CommRing R] [Fintype σ] [DecidableEq σ] (F : σ → MvPolynomial σ R) : MvPolynomial σ R := (jacobianMatrix F).det

/-- Evaluation of a polynomial map at a point. -/ def evalMap [CommSemiring R] (F : σ → MvPolynomial σ R) (p : σ → R) : σ → R := fun i ↦ eval p (F i)

end MvPolynomial

open MvPolynomial

namespace JacobianCounterexample

variable (K : Type) [Field K]

/-- The three components of the polynomial counterexample.

The variables `X 0`, `X 1`, `X 2` correspond respectively to `x`, `y`, `z`. -/ def F : Fin 3 → MvPolynomial (Fin 3) K := ![ (1 + X 0 X 1) ^ 3 * X 2 + X 1 ^ 2 * (1 + X 0 * X 1) * (C 4 + C 3 * (X 0 * X 1)),

    X 1
      + C 3 * X 0 * (1 + X 0 * X 1) ^ 2 * X 2
      + C 3 * X 0 * X 1 ^ 2
          * (C 4 + C 3 * (X 0 * X 1)),

    C 2 * X 0
      - C 3 * X 0 ^ 2 * X 1
      - X 0 ^ 3 * X 2
  ]
/-- The formal Jacobian determinant of `F` is the constant polynomial `-2`. -/ theorem jacobianDet_F : jacobianDet (F K) = C (-2) := by simp only [ jacobianDet, jacobianMatrix, det_fin_three, of_apply, F, cons_val_zero, cons_val_one, cons_val_two, head_cons, tail_cons, map_add, map_sub, Derivation.map_one_eq_zero, pderiv_mul, pderiv_pow, pderiv_C, pderiv_X_self, pderiv_X_of_ne, ne_eq, Fin.reduceEq, not_false_eq_true ] simp only [map_neg, map_ofNat] ring

variable {K}

/-- The point `(0, 0, -1/4)` maps to `(-1/4, 0, 0)`. -/ theorem evalMap_F_p0 : evalMap (F K) ![0, 0, -(1 / 4)] = ![-(1 / 4), 0, 0] := by funext i fin_cases i <;> simp [evalMap, F]

/-- Provided `2 ≠ 0`, the point `(1, -3/2, 13/2)` also maps to `(-1/4, 0, 0)`. -/ theorem evalMap_F_p1 (h2 : (2 : K) ≠ 0) : evalMap (F K) ![1, -(3 / 2), 13 / 2] = ![-(1 / 4), 0, 0] := by have h4 : (4 : K) ≠ 0 := (by norm_num : (2 : K) * 2 = 4) ▸ mul_ne_zero h2 h2 funext i fin_cases i <;> simp [evalMap, F] <;> field_simp [h4] <;> ring

end JacobianCounterexample

open JacobianCounterexample

/-- The Jacobian determinant of the displayed map over `ℂ` is a unit. Indeed, it is the nonzero constant `-2`. -/ theorem F_jacobian_isUnit : IsUnit (jacobianDet (F ℂ)) := by rw [jacobianDet_F] exact (isUnit_iff_ne_zero.mpr (by norm_num : (-2 : ℂ) ≠ 0)).map C

/-- The polynomial map `F : ℂ³ → ℂ³` is not injective. -/ theorem F_not_injective : ¬ Injective (evalMap (F ℂ)) := by intro hInjective

  have hp :
      (![0, 0, -(1 / 4)] : Fin 3 → ℂ) =
        ![1, -(3 / 2), 13 / 2] :=
    hInjective
      ((evalMap_F_p0 (K := ℂ)).trans
        (evalMap_F_p1 (K := ℂ) (by norm_num)).symm)

  exact zero_ne_one (congrFun hp 0)
/-- The injectivity consequence of the dimension-three Jacobian conjecture is false over `ℂ`. -/ theorem unitJacobian_does_not_imply_injective : ¬ ∀ P : Fin 3 → MvPolynomial (Fin 3) ℂ, IsUnit (jacobianDet P) → Injective (evalMap P) := by intro h exact F_not_injective (h (F ℂ) F_jacobian_isUnit)

/-! We now formulate the polynomial-inverse version explicitly. -/

/-- Polynomial self-maps of affine three-space over `ℂ`. -/ abbrev PolyMap3 := Fin 3 → MvPolynomial (Fin 3) ℂ

/-- A polynomial map has a polynomial two-sided inverse, viewed as functions on `ℂ³`. -/ def HasPolynomialInverse (P : PolyMap3) : Prop := ∃ Q : PolyMap3, LeftInverse (evalMap Q) (evalMap P) ∧ RightInverse (evalMap Q) (evalMap P)

/-- The polynomial-inverse formulation of the Jacobian conjecture in dimension three. -/ def JacobianConjecture3 : Prop := ∀ P : PolyMap3, IsUnit (jacobianDet P) → HasPolynomialInverse P

/-- The Jacobian conjecture in dimension three is false. -/ theorem jacobianConjecture3_false : ¬ JacobianConjecture3 := by intro hJC unfold JacobianConjecture3 at hJC

  apply unitJacobian_does_not_imply_injective
  intro P hP

  rcases hJC P hP with ⟨Q, hleft, _⟩
  exact hleft.injective
#print axioms jacobianDet_F #print axioms F_not_injective #print axioms jacobianConjecture3_false
cphoovertoday at 5:53 PM

Anybody have a cache/mirror of this? This is blocked by a corporate firewall... sigh

show 2 replies