The Verification Venue · a coincidence that had to grow a proof

The Coincidence That Grew a Character

196884 = 196883 + 1 is where monstrous moonshine started. It is not why anyone believes it. Expand j minus 744 here in exact integers, then replace the dimensions with Monster traces and watch a seven-column certificate refuse every wrong answer.

Two numbers, from two countries that had no border crossing.

The first, 196884, is the coefficient of q in the expansion of J = j - 744, where j is the modular function that nineteenth-century complex analysis handed down. Nothing in its definition mentions a group.

The second, 196883, is the degree of the smallest nontrivial irreducible complex representation of the Monster, the largest sporadic finite simple group. In 1978, when John McKay noticed that the first number is the second plus one, the Monster had not yet been constructed. Conway and Norton made the noticing precise in 1979 and called it monstrous moonshine. Frenkel, Lepowsky and Meurman built the graded object it needed. Borcherds proved the conjecture in 1992.

The addition is the easy part. This page is about what had to happen next.

One: expand the function

No coefficient below is stored. The page builds the Eisenstein series E4 = 1 + 240 ∑ σ3(n) qn from divisor cubes, builds Δ/q = ∏ (1 - qn)24 from its product, divides the two formal series in exact integers, and subtracts 744.

Bench 1 · the q-expansion of J = j - 744

Each is an exact BigInt. Every quantity this page displays is an exact integer or an exact ratio of integers: no coefficient, trace, determinant or multiplicity is ever a floating point number. Slider positions and array indices are ordinary machine numbers, as they have to be.

ncoefficient of qn in Jdigits

Press a button. The page will write that coefficient as a sum of Monster representation degrees, greedily, largest degree first. Dimensions only: no element of the group has acted yet.

Two: why that addition proves nothing

The Monster's trivial representation has degree 1. Once you may use copies of it freely, every positive integer is a nonnegative combination of Monster degrees, and a dimension match costs nothing. Type a number that has no business being there and watch it decompose just as obligingly.

Bench 2 · the free lunch

Nothing decomposed yet.

Greedy over the first seven irreducible degrees, remainder paid in copies of the trivial representation. It always succeeds. That is the point.

So a dimension-only decomposition is not evidence. It is arithmetic with a spare part. The conjecture only becomes falsifiable when the graded pieces are asked to be representations of the Monster, which means every element g of the group acts on them and every action has a trace.

Three: stop adding dimensions, start taking traces

Write Vn for the n-th graded piece of the moonshine module. If it decomposes as a1χ1 + a2χ2 + … into irreducibles, then the dimension is only one of its numbers. For each conjugacy class g there is another, Tr(g | Vn) = ∑ aiχi(g), and the same multiplicity vector has to produce all of them at once.

Those traces arrive from the other country. Conway and Norton attached a modular function to each class, and the page expands three of them from their own product formulas. The identity class gives J itself. The class 2B is the Frenkel-Lepowsky-Meurman product R = q-1 ∏ (1 + qn)-24, which is the eta quotient (η(τ)/η(2τ))24. The class 2A is R + 4096/R, the same series plus 4096 times its reciprocal. That constant is quoted from Conway and Norton, not derived here, and it is the one input a reader could not have reconstructed from the sentence before it, so it is stated rather than buried: the engine builds R once, inverts it as a formal series, and adds 4096 times the inverse. Only coefficients of qn with n ≥ 1 are ever used, so the additive constant that different sources attach to these Hauptmoduln never enters. The character values come from the ATLAS. The two sources never touch until the solve.

Bench 3 · three classes, three characters, one exact solve

class gTr(g | Vn) from modular sideχ₁(g)χ₂(g)χ₃(g)

Solving.

The 3 by 3 character block is invertible over the rationals, so this system has exactly one solution. It happens to be a vector of nonnegative integers. Nothing forced that.

Four: Borcherds's seven-column certificate

Three classes fix the first two graded pieces because only three irreducibles are small enough to appear. By V₅ the first seven are in play, and the eighth is not: Borcherds writes, "The only irreducible representations of the monster with dimension at most that of V5 are the first seven". The eighth irreducible character has degree 3879214937598 and dim V₅ is 333202640600, so nothing past the seventh irreducible can occur in these five pieces at all. Seven independent columns are what is needed, and enough. In section 9 of the 1992 proof, Borcherds picks exactly seven: the involution class 2B, plus six classes of odd order whose Leech lattice automorphisms fix no nonzero vector, namely 3B, 5B, 7B, 9B, 13B, 15D. He records their cycle shapes, which is what this page expands into trace series, and he records that the determinant of the seven by seven matrix of character values is 35672555520, printed in the paper as 222 35 51 71.

The page recomputes that determinant by fraction-free Bareiss elimination on the ATLAS fixture. If our character table were wrong in a single entry, the determinant would almost certainly not land on his.

Bench 4 · the certificate, and the reader's chance to break it

χidegree

Computing the determinant.

class gtrace usedrebuilt from multiplicitiesresidual

Solving.

Solving.

Five graded pieces times seven classes is 35 places to move a trace by one. Press the button and every one of them is re-solved from scratch.

Five: the recurrences that leave no room

Five graded pieces would be a small coincidence if the rest were free. They are not. Borcherds derives, from the twisted denominator identity (8.3) of the monster Lie algebra, four explicit recursion formulas he labels (9.1). They express cg(n) for n = 4 and every n > 5 purely in terms of earlier coefficients of g and of . As he puts it in the paper, "if we know all the coefficients cg(n) for n = 1, 2, 3, and 5 and all elements g of the monster then we can work out all the coefficients cg(n)."

So here is a prediction with nowhere to hide. Pick a class and a target n. The page evaluates (9.1) term by term from coefficients it has already fixed, and separately expands the class's own product formula out to qn. Those two numbers were computed by code that shares nothing but arithmetic.

Bench 5 · recurrence (9.1), term by term

Notation follows the paper: c(k) is Tr(g | Vk) and c2(k) is Tr(g² | Vk). Every index on the right is smaller than the target, so nothing here is circular.

Selecting a class.

term of (9.1)value

Evaluating.

Evaluating.

Seven classes and eight reachable targets is 56 forced coefficients, and the walk button runs all of them. Every one is a place the whole structure could have come apart and did not.

The check

Everything below was recomputed in your browser while this page loaded, from the equations, not from a table of answers. An offline program re-derives the same mathematics independently, then reads this exact file, executes the arithmetic engine inside it, and compares the engine's output value by value against its own.

What that catches, precisely: any change to a character-table entry (both the seven by seven fixture and the three by three head block), to a degree, to a class name, to a cycle shape, to the power map, to a series formula, to a multiplicity, to the recurrence, or to any run of four or more digits printed in the prose outside the engine. What it does not do is run a browser. The rendering code that copies engine values into these tables is checked by pattern, not by execution: the verifier asserts that each cell is still written from the engine value and that the rendering block contains no stray numeric literal, which is weaker than executing it. That gap, and how it was measured, is written down in the README beside the verifier.

computing…

External anchors this reproduces

Every uncertainty and every free choice on this page

Run it yourself: node research/moonshine-196884/verify-moonshine-196884.mjs

What the coincidence actually was, and what it was not

McKay's observation was an addition sum. What made it a conjecture rather than a curiosity is that it did not stop: the next coefficient split as 1 + 196883 + 21296876, and the one after that as 2 + 2(196883) + 21296876 + 842609326, always with small nonnegative integers, always using the smallest available irreducibles. Thompson proposed that a graded module was hiding behind it. Conway and Norton went further and attached a genus zero modular function to every conjugacy class, which is the claim that actually had teeth, and the claim this page's traces test.

What the coincidence was not: proof, evidence in isolation, or a statement about the smallest faithful representation. The 196883 here is the smallest nontrivial irreducible complex representation. Faithfulness follows because the Monster is simple, so any nontrivial representation has trivial kernel. Over the field of two elements there is a faithful representation of dimension 196882, one smaller, which is a different question.

And the proof, when it came, did not come from checking more coefficients. Borcherds built a generalized Kac-Moody algebra whose denominator identity forces the recursions, then used the finite certificate above to pin the first five graded pieces. The finite part is the part a browser can carry.