I poked at the golden ratio in SQL for fun.

An open maths problem fell over.

the authors who deserve all the credit for their original work: Benoît Cloitre, Wieb Bosma, Michel Dekking, Wolfgang Steiner, Robbert Fokkink, and Gandhar Joshi

It started with the golden ratio, years ago. I had recently learned that it was an infinite continued fraction that could be represented by a simple equation, (1+5) / 2(1 + \sqrt{5})\,/\,2.

How?! An infinite tower represented by an equation that even I can comprehend… this is obviously neat! I understood every piece of that expression in isolation. I know what addition does. I know what division does. I know what a square root does. Those numbers aren't magic constants, they're building blocks that a toddler can play with. How does all of that simplicity turn into an object that I personally consider to be unapproachably complex?

With no intuition, my only choice was to do what I know how to do as a programmer: treat the equation like code and swap out its parts to see how it behaved. Since SQL was my daily language at the time, my sandbox was a query.

the query I actually ran
select X = X.n
     , [Circle] = [Circle].n
     , [DxCircle] = X.n / NullIf(2. * Abs(X.n), 0)
     , [Rectangle] = [Rectangle].n
     , [Dx Rectangle] = 1. / Sqrt(4 * X.n + 1)
     , [Square] = [Square].n
     , [Dx Square] = 1. / NullIf(2. * Sqrt(X.n), 0)
     , [Triangle] = [Triangle].n
     , [Dx Triangle] = 2. / Sqrt(8 * X.n + 1)
     , [Square Triangle] = [Square Triangle].n
     , [Dx Square Triangle] = (1 / NullIf(2 * Sqrt(X.n), 0) + 1) * 0.5
     , [√2] = ([Triangle].n - 1) / NullIf([Square].n - 1, 0)
from dbo.RangeInt(0, 1000000) X
cross apply (values((1 + Sqrt(X.n * X.n)) * 0.5)) [Circle] (n)
cross apply (values((1 + Sqrt(1 + 4 * X.n)) * 0.5)) [Rectangle] (n)
cross apply (values((1 + Sqrt(X.n)))) [Square] (n)
cross apply (values((1 + Sqrt(1 + 8 * X.n)) * 0.5)) [Triangle] (n)
cross apply (values((X.n + Sqrt(X.n)) * 0.5)) [Square Triangle] (n)

Every one of those cross apply lines is the golden ratio's formula with a piece swapped out. Keep the skeleton (<x> + √<y>) / <z>, change a variable, watch what happens. Eventually I settled on the form (1 + √<y>) / 2 because it had the most approachable results. Two things jumped out at me, and I could not explain either of them.

First: the floors of the outputs all counted. Each variant, fed the right inputs, enumerated the positive integers — not approximately, every one of them hit every positive integer. Different formulas, same infinite result. That felt marvelous but also really weird. How was I supposed to tell these functions apart when the only tool I had effectively insisted they were all the same?

Second: when I looked at which inputs made each formula land exactly on an integer, I recognized them. They were the figurate numbers: triangular numbers, square numbers, etc. The names in the query (Triangle, Square, Rectangle) are literal because each variant is the formula that inverts its shape, reversing the stacking of dots into triangles or squares.

I felt like there was something there, but I just didn't know enough to say what it was or explore much further on my own. So the query sat in a public gist, saved under the name Nonsense.sql because that's what I believed this exploration to be…

Modern LLMs enter the chat

Recently, I was digging through my old gists to hopefully find inspiration for the application I've been building, and I ran into Nonsense.sql again. Reading it back, I thought the figurate numbers might end up being useful to me. I can't tell you how… that's still just a hunch, but I really needed a break from correctness and performance validation for a bit.

So I handed the query to Gemini (3.1 Pro) and asked it to make something useful out of my code. I explained the observations I'd made back then about the counting, the figurate inputs, and the fact that every variant seemed to give the same answer. Then I pushed for what I actually wanted: the general formula underneath them all. We went back and forth like that, developing and generalizing until I felt like the limit had been reached.

Later, I handed the pile of formulas to Claude (Fable 5/Opus 4.8) for implementation and asked the question I'd never had anyone to ask before: “What is the object that represents this?” The first answers were too specific. Every time it handed me something tied to one of my examples I pushed it to generalize further by asking “What's underneath that?” This went on for a while and what came out the other side was a small pile of code in my application's math library:

Those descriptions and names obviously aren't mine because I don't really understand any of the maths involved. I can read code though, and now I had a toolkit I could actually play with. It did everything I'd been asking for:

go find the shapes(each dot knows its own layer)

These shapes are all built the same way: each new layer just wraps around whatever came before. Three sliders set it going, the size of the first layer, how much each layer grows, and how many dots sit in the center. Nudge them, or grab a preset, and the figurate numbers fall out on their own. This tool is LayerSequence from the list above.

first layer1
growth per layer+1
center dots0

Triangular numbers

figurate numbers: 1, 3, 6, 10, 15, …

Click any dot. Which layer does it live in? Found in one shot, without counting up to it.

observe the invariant(the determinant stays 1)

There are only two moves here, a quarter turn (S) and a shear (T). String them together however you like and you always land on a 2 by 2 grid of whole numbers whose determinant stays exactly 1. The coral cell twists and stretches as you go, sometimes into a proper mess, and yet the area it covers never once budges. The tool here is ModularTransform from the list above.

determinant1it never moves
trace2
classidentitynothing yet; press a move

Press a move and watch the coral cell. Undo steps back with the exact opposite matrix (the adjugate), so nothing ever rounds.

grow the crystal(it never repeats)

There are only two options here: golden (k = 1) draws the Penrose tiling, silver (k = 2) draws the Ammann–Beenker tiling — the two members of the metallic family with flat pictures I know how to draw. Bronze and up have tilings of their own that don't fit on a page like this. Turn up the detail and every tile gets cut into smaller ones; the pattern just grows around whatever was already there. An ordinary crystal is the same pattern repeated forever, floor tiles all the way out. These never repeat — slide a copy of either over itself and it never lines up again — and yet real materials grow this way, which is why they get called quasicrystals. The tool here is MetallicQuasicrystal / QuadraticQuasicrystal from the list above.

detail5

Count the half-tiles, and every inflation multiplies them by this little matrix, which is the square of the metallic matrix Mk at k = 1. That same Mk turns up again near the end of this essay, as the tiny integer matrix underneath the Bosma–Dekking–Steiner proof.

So how do these toys connect back to my query? The robots tell me it comes down to three naive questions:

Invert, iterate, draw. Here's the whole path on a single page.

A map of the path from the SQL query to the theorem A vertical flow of five stages — the Nonsense.sql query, then LayerSequence, ModularTransform, the quasicrystals, and an open conjecture below — joined by three questions: what is this the inverse of, what if I feed it to itself, and what does it look like. A return arrow loops from the conjecture back to LayerSequence, labelled: and the proof is move one again. Nonsense.sql LayerSequence ModularTransform quasicrystals an open conjecture (below) what is this the inverse of? what if I feed it to itself? what does it look like? …and the proof is move 1 again
Three naive questions turn one SQL query into the whole toolkit — and the theorem below is just move 1 all over again.

The Jacobian conjecture is disproven*!

On July 19th, 2026, Levent Alpöge posted on Twitter. The post read “hello there the jacobian conjecture is false thanx” and contained an equation. Using Fable, he had found a counterexample to the Jacobian conjecture: an 87-year-old problem, resolved in a mere tweet, solved by a robot parrot. The same conjecture once derailed the early career of Yitang Zhang. He wrote his doctoral thesis on it, never published it, and spent years outside academia afterwards; the kind of blow that keeps people away from hard problems forever. He kept going anyways, and decades later he became famous for prime gaps.

I relay that latter story because everyone in it was wrong. Zhang's thesis didn't survive, and the conjecture itself — the thing experts spent eighty-seven years trying to prove — turned out to be false. Even the greats miss, and I find that a bit freeing: not everyone can prove a great theorem, but a great theorem can come from anywhere… even from a man who felt forced to perform sums while working in a sandwich shop.

Inspired to goof off, equipped with some new toys, and just having learned about the /goal directive, I asked ChatGPT (GPT-5.6) to review the toolkit Claude had implemented. It found some bugs, we fixed them, and then I sent this exact prompt:

/goal Use our new toolkit to explore the state of the art. Find relevant open math problems and do not stop until you have successfully used the kit to solve at least one open problem.

A hair over sixteen minutes later, it claimed it had solved one. What?! Nonsense! Poppycock even!

So, I reviewed the logs to see what it had actually done and, indeed, it went hunting through open problems, looking for one that was shaped like the toolkit, and settled on a conjecture that had been left in the closing paragraph of a 2018 paper; restated last year with a note that the general case was still open. Then it applied the tools and a solution emerged.

I was out of Fable credits, so I settled for Opus 4.8 and asked it to check. It doubted the claim, as it should have, but it thought the result was correct. Gemini agreed. Then I had ChatGPT prove it in Lean, and it claimed it had.

That's when I started taking it seriously, because this is just not how it usually goes. If you've ever had a model hand you a fantastical result, you know the drill: you send it to another model and watch it get torn to pieces; it doesn't get turned into a Lean proof. Time to email Daniel Lemire who knows I'm ignorant AF and is kind enough to humor me anyways. He wrote back:

I am optimistic that this is correct. You should do a write up (at least a gist).

Here we are now.

The Bosma–Dekking–Steiner conjecture is proven**?

In 2018, Bosma, Dekking, and Steiner published a paper titled A Remarkable Integer Sequence Related to π and √2, and in its last paragraph they left a conjecture. In 2025, Fokkink and Joshi restated it as Conjecture 20 of their paper on Cloitre's hiccup sequences, proved a special case, and noted that the general proof was still missing. The mathematics that follows isn't mine, so what you're getting is my retelling of the models' account, the same way I'd explain someone else's code after stepping through it.

Fix an integer k1k \ge 1 and let α=(k+k2+4) / 2\alpha = (k + \sqrt{k^2 + 4})\,/\,2, the kk-th metallic mean; the golden ratio is the case k=1k = 1. Now consider the sequence defined by the recurrence

sn=kn1+n2sn+1s_n = kn - 1 + \frac{n^2}{s_{n+1}}

an infinite continued-fraction-like tower, each term leaning on the next one forever. The conjecture says that the floor of this infinitely nested object is exactly the floor of a straight line:

sn=αn1+αk2+4\left\lfloor s_n \right\rfloor = \left\lfloor \alpha n - \frac{1 + \alpha}{\sqrt{k^2 + 4}} \right\rfloor

for every k1k \ge 1 and n1n \ge 1. The proof runs through exactly the objects Claude had built, only read forwards this time. Getting the left-hand side, sn\lfloor s_n \rfloor, is move 1 all over again: you run a quadratic backwards, exactly like the Triangle column did, which is precisely what MetallicPolynomialContinuedFraction does when it hands back the floor of the whole tower in constant time, never once building the tail or rounding a metallic mean. Underneath the kk-th metallic mean sits one tiny integer matrix, the same MkM_k from move two,

Mk=(k110)M_k = \begin{pmatrix} k & 1 \\ 1 & 0 \end{pmatrix}

with two numbers baked into it: a big root and a small one. The big root is α\alpha itself, the slope of the straight line. The small one, its conjugate, is what makes the whole thing work: it converts the question “can an integer sneak into the gap between the line and the tower?” into a question about size. Any integer that tried to sneak in would hand you a quadratic norm: a positive whole number provably congruent to k(modk2+4)-k \pmod{k^2 + 4}, and therefore provably too big to fit in the gap. Nothing fits, so nobody sneaks in, and the floors agree everywhere.

let the proof run(nothing fits the gap)

The whole argument, acted out with live numbers: the tower assembles, the line shows up, and every whole number that tries to squeeze between them gets weighed and turned away. Pick a k and press play. Every number on screen is worked out for that k, which is sort of the point... it is meant to hold for all of them at once.

which metallic mean?

Conclusion

Is it true? Here is exactly what I can and can't tell you.

My understanding, as an outsider, is that the kernel has already checked every step of the proof; that is its entire job, and it doesn't care that a robot parrot wrote the thing. What still needs human eyes is the statement itself: does the theorem in the Lean file actually say what Conjecture 20 says on paper? I can't answer that one.

This kind of recreation used to be borderline impossible; not because the maths was out of reach, but because the company was. How many others in the world could possibly care about some random sequences that fell out of my contrived SQL query? Collaborators are a mere prompt away now: completely different AI models, happy to care about anything at any hour, no matter how niche.

You probably have a Nonsense.sql of your own: a shelved question you stopped taking seriously because nobody around you could possibly have cared. Go pick it up and play around a bit. Use your imagination, borrow from the bots whenever you find your own wanting, and if you discover something interesting then share it with someone, because that is how this whole thing worked: strangers helping strangers, some human, some not, some no longer with us, each one leaving something behind for those who come after.

*Disproven in three dimensions and above, the two-dimensional case is still open.

**Proven, pending human verification.

Sources: