The cortex is the dial

Theory update · 2026-06-28 · understanding, not lookup · experiment comprehension, slice 3

Two rounds built a comprehension organ. A gradient-free binder answered a question counting cannot, and then proved itself typed, grounded, and truth-tracking. But every answer so far was about a fact the model was told. The honest worry underneath all of it: is this understanding, or is it lookup with extra steps? This round runs the test that separates the two. Can the binder answer about a novel entity it was never told, getting its property right not because it stored it but because it knows the kind of thing it is? It can, on one condition, and the condition is the whole result. We code each class as a prototype, and a class member as that prototype with a fraction of its bits flipped: a dial from "members are identical" to "members are random." Store a class property for twelve known members, then ask about a thirteenth, never bound. When the code carries class structure, generalization is perfect (1.000) all the way out, and it collapses to chance (0.217) only when the structure is gone. A control that did store the novel member's property stays at 1.000 throughout, so the collapse is a real failure to transfer, not a broken pipe. And the part that ties the architecture together: the cortex code's CCGP geometry predicts when the binder generalizes, correlation +0.98. The same abstraction quality six earlier rounds had set aside as "not our axis" for prediction turns out to be exactly the dial that powers comprehension. The two engines and the binder are one system: the cortex builds an abstract code, the hippocampus binds it, and generalization rides on the geometry.

The question that was still open

The pivot from compression to comprehension has gone well. The smallest version of talking to the system, say a fact and ask about it, works gradient-free where counting is provably at chance, and the binder turned out to be a real organ and not a trick: it keeps a color apart from a size, it runs on the codes a cortex would emit, it knows the box is not red even when the sentence said the word "red." Three clean rungs.

But read the fine print on all of it. Every one of those answers was about a binding the model had seen. Say "the apple is green," ask "what color is the apple," get "green." That is exactly what a dictionary does, and a dictionary understands nothing. The honest question we kept writing down at the bottom of each round was whether the binder was doing anything more than fast, sparse, content-addressable lookup. A hippocampus that only ever replays what it stored is a hash map with biology.

The test that tells understanding from lookup is generalization to the novel. A child who has met three dogs and learned dogs bark will tell you a fourth dog, never seen, barks too, not because she stored it but because she recognizes the kind. The machine version: store a property for some members of a class, then ask about a member you never stored. If the answer is right, it cannot be lookup, because there is nothing to look up. It has to come from the structure the members share. And that structure is precisely what the program's other engine, the one that abstracts, is supposed to build. So this round is also a reckoning with that engine.

The bet, and the instrument

The bet, stated to fail if it is wrong. A gradient-free binder generalizes a class property to a novel member it never stored, on the condition that the code carries class structure, and the amount of class structure in the code predicts whether it can.

The instrument is built to put that condition on a dial. There are five classes. Each class has a prototype, a random vector of plus and minus ones, and one shared property. A member of a class is its prototype with a fraction of the bits flipped, and that fraction is the dial. At flip zero, every member is identical to the prototype, the strongest possible class structure. At flip one half, a member is an independent random vector, no class structure at all. In between, members are noisy copies of their prototype: similar to each other, distinct as individuals. This bit-flip stands in for what a real cortex would do, place same-class things near each other in code space, and the dial lets us turn that quality up and down by hand and watch what the binder does.

The procedure is the binder the program already has, run on these codes. Training is semantic memory: for twelve known members of each class, bind the member's code to its class property and add it to one shared bundle. The test is the generalization probe: take a thirteenth member of a class, freshly sampled, never bound into anything, unbind its code from the bundle, clean up the result against the property codes, and ask whether it lands on the class property. If same-class members cluster, the novel member's code is close to the known ones, so its unbinding leans on theirs and the shared property survives the sum. If members are random, there is no overlap to lean on, and the answer is a coin toss among five.

Two controls keep it honest. Chance is one in five, 0.200. And a stored control runs the identical pipeline on a bundle that did store the novel member's true property: if that does not come back at 1.000, the machinery is broken and a low generalization score would mean nothing. Alongside the accuracy we measure the code's geometry in the same units neuroscience uses, the participation ratio, the within-class versus between-class separation, and CCGP, the cross-class generalization of a linear readout, the abstraction score the whole abstraction line is drawn on. Pure numpy, no gradients, no learned weights anywhere.

What happened

The dial tells the story. As class structure weakens, generalization holds, and holds, and then falls off a cliff, and the cortex's geometry falls off the same cliff at the same place.

A line chart with the class-structure dial flip on the horizontal axis from 0.0 to 0.5 and accuracy on the vertical. Two lines lie almost on top of each other: novel-entity generalization in green and the cortex's CCGP geometry in orange. Both sit flat at 1.000 from flip 0.0 through 0.3. At flip 0.4 the green generalization line dips slightly to 0.850 while the orange CCGP line stays at 1.000. At flip 0.5, where there is no class structure, both fall to chance together, generalization to 0.217 and CCGP to 0.233. A dashed grey line marks chance at 0.200. An annotation on the plateau reads "the binder answers about a novel entity it was never told, because its code is near its class," and an annotation at the cliff reads "no class structure: geometry and generalization fall off the same cliff." A label states "geometry tracks generalization: corr +0.98."

The numbers, sweeping the flip dial, chance 0.200, one seed:

flip (class-structure dial)generalizationstored controlclass separationCCGPparticipation ratio
0.00 (members identical)1.0001.0000.9981.0004.0
0.101.0001.0000.6371.00010.8
0.201.0001.0000.3591.00030.8
0.301.0001.0000.1611.00075.4
0.400.8501.0000.0411.000109.3
0.50 (members random)0.2171.0000.0010.233112.6

Read the generalization column first. The binder answers correctly about an entity it was never told, perfectly from flip 0.00 through 0.30 and still 0.850 at 0.40, and it collapses to chance (0.217, against 0.200) only at flip 0.50 where the class structure is entirely gone. This is the line that rules out lookup: the property for the novel member was never stored, so a perfect answer can only come from the shared structure of its class. The stored control is 1.000 at every flip, so the pipeline is sound the whole way across, and the collapse at 0.50 is a real failure to transfer, not a bug. Generalization is doing exactly what understanding would: it works while there is a kind to recognize, and it fails when there is not.

Now read the CCGP column beside it. The cortex code's geometry tracks generalization almost exactly, correlation +0.98. Where the binder generalizes, CCGP is 1.000; where the binder collapses, CCGP collapses too, to 0.233. The geometry of the code predicts whether the binder can answer about the novel. The plainer class-separation number is a weaker predictor (correlation +0.55) and CCGP is the strong one, which is itself the point: it is the abstract transfer structure, not raw similarity, that governs generalization, exactly as the population-geometry result the program ingested said it would. (The participation ratio rises as the noise grows, four up to a hundred and twelve, which is the degenerate direction, more dimensions because more noise, not more abstraction. High dimensionality is not the thing that helps here; shared structure is.)

So the condition the bet named is the condition that holds, and the predictor the bet named is the predictor that works.

What this means

The headline is two findings that lock together. Gradient-free generalization through shared structure works, on the condition that the cortex code carries class structure. And the code's CCGP geometry predicts when it works, at correlation +0.98. Put them side by side and the second explains the first: the binder generalizes exactly to the degree the code is abstract, and CCGP is the measure of how abstract the code is.

The binder does not just look up; it understands, on one measurable condition. Store a class property for known members, then ask about a novel member never bound, and the answer is right (1.000) while the code carries class structure and collapses to chance (0.217) only when that structure is gone, with a stored control at 1.000 throughout proving the collapse is real transfer-failure, not a bug. And the cortex code's CCGP geometry predicts when it can, correlation +0.98, the strongest predictor in the sweep. So the abstraction engine the program built, the one that reaches the backprop ceiling with no gradient, is not a curiosity off to the side. It is the generalization dial the comprehension organ turns. The two engines and the binder are one system.

That last clause is the architectural payoff, and it is also a quiet correction of the record. Six earlier rounds had measured CCGP against prediction and found it did not move the next character: attention's apparent CCGP lift was expressive dimensionality, not abstraction, a count head on the abstract code pays a tax rather than a bonus, the abstraction-to-prediction feedback arrow was null for the next character. The honest read each time was that CCGP was real but not the ruler for that job, and the abstraction result, a gradient-free learner above the backprop ceiling, sat there genuinely novel and slightly lonely, the prize nobody had a use for. This round gives it the use. CCGP was never the wrong axis. It was being measured against the wrong job. Its job is generalization, and on generalization it is decisive: +0.98. The result the program was proudest of and least sure what to do with is the engine that makes the comprehension organ understand.

So the data flow the architecture has been drawing is now closed and measured end to end. The cortex encodes, building a high-CCGP, class-structured code. The hippocampus binds that code to a role and stores it. And when a novel thing arrives, its code lands near its class, so unbinding recovers the class property: generalization, riding on the geometry. Each piece existed; the arrow from code quality to generalization is the one this round draws, and it points the way the architecture said it would.

The honest forward-look

This is the most important caveat to state out loud, because it is also the next bet. The class-structured codes here are hand-constructed: a prototype plus a controlled bit-flip, a dial we turn by hand to stand in for a cortex that has learned its classes. So what this round proves is the binder half of the claim. If the cortex produces high-CCGP, class-structured codes, then the binder generalizes, and the geometry says by how much. That implication is now solid.

What it does not prove is the antecedent. Whether the abstraction stack can learn codes that good, gradient-free, on realer data than a synthetic five-class world, is the genuinely open question, and it is the end-to-end bet the whole architecture now rests on. The abstraction engine does reach the backprop ceiling on text with no gradient, which is the encouraging half. But feeding its learned codes into this generalization pipeline, on a task with real classes, is untested, and that is the join the next work has to make. The two halves are each shown to work; showing them work together, learned rather than hand-set, is the thing left.

There is a smaller honest note that earns its place. One of our geometry instruments, an orthogonality proxy for signal factorization, stayed flat across the entire sweep, because it measures how orthogonal the class means are, and the flip dial does not touch that, it degrades the spread within each class. So that proxy is the wrong tool for this dial and needs refining; class separation and CCGP are the faithful predictors here. We mention it because reporting the instrument that did not move is the same discipline as reporting the one that did.

The honest caveats

Lineage

Grew from typed, grounded, and true, which validated the binder as a typed, cortex-grounded, truth-tracking organ on stored facts and named novel-entity generalization as the next rung, "where the abstraction engine's above-ceiling code becomes the generalization dial." This round climbs that rung and confirms the prediction it made. And grew from counting cannot bind, the first positive that built the gradient-free binder and flagged, in its own honest bounds, that random codes test the mechanism but not yet generalization, which "waits on learned cortical codes, the move that turns one-shot binding into one-shot generalization, and the reason the abstraction result was never vanity." The abstraction result was not vanity; this is where it pays.

Led to the end-to-end bet now recorded in the architecture: wiring the abstraction engine's learned high-CCGP codes into the binder's generalization pipeline on realer classes, the join that turns "the binder generalizes given good codes" into "the system generalizes from what it learned." The reader that extracts structure from the stream and the generation of the answer remain the other two named pieces; this round settles which engine supplies the generalization, and that engine is the cortex.

Thread: comprehension, and online learning without a global gradient. Understanding rather than lookup, shown by a binder that answers about a novel entity it was never told, on the measurable condition that the cortex code carries class structure, with the CCGP geometry predicting when it can at +0.98, and the honest forward-look that the codes here are hand-set, so the next bet is learning them.