Live data from Hacker News

Terence Tao's ChatGPT conversation about the Jacobian Conjecture counterexample

chatgpt.com

171–180 of 681 posts

Re: Terence Tao's ChatGPT conversation about the Jacobian Conjecture counterexample

#171
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

Re: Terence Tao's ChatGPT conversation about the Jacobian Conjecture counterexample

#172

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.

this sounds like like an open parenthesis ( without someone independently verifying it, it just dangles there ...

At Mozilla, we had a set of whiteboard tags we could set on bugs, like "[crash]" or "[compat]" or "[leave-open]". That last was used when there were multiple patches attached to the bug, and we wanted to land only some of them without automation closing the bug once they landed. (It's common to have alternate approaches or test cases also attached to the bug, so you normally don't want to wait for all of them to land before closing the bug.)

I started using "[leave-open" for those.

It lasted for a couple of years, until someone went through and "fixed" them all.

Re: Terence Tao's ChatGPT conversation about the Jacobian Conjecture counterexample

#174

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!

> Where will we be in another 4 years?

Possibly somewhere amazing, but see also: https://x.com/pronounced_kyle/status/1768852493092680036

Re: Terence Tao's ChatGPT conversation about the Jacobian Conjecture counterexample

#175

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…

This is also true for almost every other field, even within computer science. The only difference is that a lot of people operate at a very surface level without realizing just how much background knowledge they have accumulated. Think about the number of keywords your average SWE is expected to know. It is rather insane. Cache, stack, heap, process, thread, socket, file, tcp, http, tls, websocks, socks, soc2???, dea…

At least a lot of those are common words that allow some level of meaning inference with a little bit of adjacent knowledge, like cache and queue make sense with the barest of explanations because their everyday definitions are still applicable. Many of these terms aren’t entirely opaque until you drill down into specific niches.

Re: Terence Tao's ChatGPT conversation about the Jacobian Conjecture counterexample

#176
post #162

Earlier quoted context omitted.

This is also true for almost every other field, even within computer science. The only difference is that a lot of people operate at a very surface level without realizing just how much background knowledge they have accumulated. Think about the number of keywords your average SWE is expected to know. It is rather insane. Cache, stack, heap, process, thread, socket, file, tcp, http, tls, websocks, socks, soc2???, dea…

Just be thankful that we don't share the penchant for giving credit to discoverers. Imagine calling a cache a "Murphy/Steinman/Sokolov structure" (made-up names). I mean, we do for some things, especially algorithms (Boyer-Moore). Probably for the same reason the mathematicians do -- there aren't readily available real-world analogies. And I won't even mention the branded future, with its "Google HyperZipper String S…

[deleted]

Re: Terence Tao's ChatGPT conversation about the Jacobian Conjecture counterexample

#177
post #40

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…

I had a few moments of this in the past. For example, in my quantum class the teacher wrote "H Psi = E Psi" on the board, we all laughed, "just cancel the psi" but it turns out one was a multiplcation and the other was a matrix multiplication (operator) and so we had to learn all new nomenclature. Similarly, at some point somebody pointed out to me "the reason you're confused is that the bold on that variable means i…

Sometimes I wonder if mathematics would have been significantly more improved if they hadn't insisted on notating their variables as single letters and also indicated variable types out-of-line (or at all)...

but then I take a look at literally anything the Haskell people do and realize that it probably wouldn't have helped.

Re: Terence Tao's ChatGPT conversation about the Jacobian Conjecture counterexample

#178
post #5

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.

What does "predicting the next token" mean? I ask this every time people say "LLMs are just predicting the next token" and it's maddening that nobody can give a straight answer. Predicting it according to what probability distribution? Every process that produces a sequence of actions (including e.g. a human writing) can be modeled by some probability distribution and therefore their actions are indistinguishable fro…

Yeah that's pretty much what gwern argues here[0]. Or to adapt another proverb: to predict the next token you first need to model the universe.

[0] https://gwern.net/scaling-hypothesis#gwern-difference--effic...

Re: Terence Tao's ChatGPT conversation about the Jacobian Conjecture counterexample

#179

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…

This is also true for almost every other field, even within computer science. The only difference is that a lot of people operate at a very surface level without realizing just how much background knowledge they have accumulated. Think about the number of keywords your average SWE is expected to know. It is rather insane. Cache, stack, heap, process, thread, socket, file, tcp, http, tls, websocks, socks, soc2???, dea…

This is also true for almost every other field, even within computer science. The only difference is that a lot of people operate at a very surface level without realizing just how much background knowledge they have accumulated. Think about the number of keywords your average SWE is expected to know. It is rather insane.

Nah, math is much harder because there is not just the lingo, but also all the math machinery behind it. Each math definition represents some long process behind it, which builds on another process, etc. The knowledge builds on itself , too much more so than computer science.

Re: Terence Tao's ChatGPT conversation about the Jacobian Conjecture counterexample

#180
post #5

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.

[flagged]
Post reply on HN