Pure biology, no counting
2026-06-26 · honest mixed verdict · experiment CZ
Drop counting entirely and build pure biology: random sparse codes, an HTM temporal memory, Monty cortical voting, all Hebbian, no backprop. Does it trace the arc the prefrontal cortex follows as it learns, dimensionality high then low, then an abstract, rule-selective geometry? It traces the back half. Sequences are learned, dimensionality compresses, voting sharpens the compression. Abstraction drops instead of rising, and more data does not turn it on.
The question
A neuroscience result frames the whole bet. When a prefrontal cortex learns a task, its population geometry moves through a shape: first high-dimensional and randomly mixed, then low-dimensional and rule-selective, finally an abstract, stimulus-invariant code that generalizes to cases it never saw. Bounded memory is the metabolic cost that is thought to drive that arc: a brain cannot afford the high-dimensional code forever, so it compresses toward the abstract one.
That is our four laws in someone else's data: online, local, bounded, brain-shaped. So the user set the sharpest possible test: drop counting altogether and build the thing out of pure biology. No counts anywhere. If a gradient-free, Hebbian, voting cortex can trace the prefrontal arc on its own, the program's bet is vindicated at its foundation. If it cannot, we learn exactly which limb breaks.
What we tried
The full pure-bio stack, on the node runtime. A random-letter sparse encoder feeds an HTM spatial pooler (Hebbian), which feeds an HTM temporal memory: predictive cells on distal segments, the no-count predictor, where surprise is the fraction of cells that burst. Several columns then run Monty cortical voting, a Hebbian lateral consensus, into a Hebbian decoder with plastic weights, not counts. We measured the paper's way: PR (participation ratio, the dimensionality, which should drop), CCGP (the abstraction score, which should rise), and bits-per-char only as a progress curve, not against counts, since counting was banned.
Getting it to scale was the real work. The first build ran at 50 to 90 characters a second, because the temporal memory's segment pool grows toward its cap and the per-step matrix op grows with it. We ported the hot path to bit-exact MLX on Metal (zero mismatches against the numpy oracle, and it turns a degrading curve flat at about 450 characters a second regardless of pool size), then batched the columns into one tensor op and added a selective top-k lateral rule. That bought a 6× scale run to test whether the abstract geometry shows up with enough data.
What happened
The arc came out in two halves, and only the first half appeared.
| over training (6× scale, N=3 voting columns) | start | end | direction |
|---|---|---|---|
| anomaly (surprise) | 0.239 | 0.118 | monotone drop, it learns sequence |
| PR (dimensionality) | 149 | 80 | monotone drop, it compresses |
| CCGP (abstraction) | 0.649 | 0.561 | drifts down, never rises |
| bits-per-char | ~3.9 | ~4.0 | plateaus |
Three real wins. Anomaly collapses. The pure-Hebbian temporal memory genuinely learns the sequence structure of text, with no counting and no gradient. That is the load-bearing positive: sequence learning falls out of biology alone. Geometry differentiates then compresses: PR drops, the first limb of the arc. And voting sharpens the compression. With three columns the dimensionality drop is real where a single column's PR rises instead, so the cortical-voting mechanism earns its keep on geometry, the one place more columns matter.
But the abstraction limb never turns on. CCGP drops rather than rises, in a 0.55 to 0.62 band, the same direction at 50k and at 6× scale. The abstract, factorized, stimulus-invariant geometry the paper predicts does not emerge, and more data plus selective voting did not change it. Dimensionality compresses without buying prediction or abstraction.
The road to it was littered with honest engineering negatives kept as oracles: the lateral-driven consensus first hurt prediction because dense laterals saturate into a non-selective blanket (the fix was the sparse top-k rule), and an early sweep ran with voting silently inert until a winner-cell bug was found and fixed. Bit-exact ports throughout, so every speedup is provably the same model.
The lesson
A gradient-free Hebbian voting cortex traces the back half of the prefrontal arc. It learns sequences and it compresses dimensionality, and voting sharpens the compression. But it does not build the abstract space. CCGP drops, not rises, and scale does not save it. Making representations sparser and lower-dimensional is not the same as making them abstract.
This converges with the gradient-free negatives the program had already collected from very different mechanisms (an Oja embedding, a predictive-coding stack, a shared-representation hierarchy), all of which carved structure and compressed but could not build an aligned abstract space. The pure-bio stack, the most biologically faithful version yet, lands in the same place. The wall is real and it is about abstraction specifically, not about counting versus biology.
Lineage
Grew from the node-architecture boundary round, whose validated runtime carried this stack with no engine changes, and from the standing gradient-free negatives that named the abstraction wall. The measurement is from the prefrontal-geometry literature; the mechanisms are HTM (spatial pooler, temporal memory) and the Thousand-Brains cortical-voting model.
Thread: abstraction, and online learning without counting. The keeper is a clean negative on abstraction with two real positives beside it (sequence learning and voting-driven compression) and a bit-exact, fast, bounded substrate to run the next test on.