Meaning

The exact ring put to work: concepts as codewords, and dynamics whose channels nothing in the ring can couple.

The walls of the first deletion measure what it costs a static operation (Walls). The same ring run as a live medium pays and collects differently. A rung is Z/N with N the product of the first k primes, one channel per prime; on Z/510510 the tower split gives it an error-correcting code — data windows {2, 3, 5, 7}, parity {11, 13, 17}, minimum distance d = 4 — and that one number decides both what a symbol system built on the ring can do and what it provably cannot. Run the ring as dynamics and the deletion shows up as isolation instead: no rule made of ring operations lets one channel see another, so every coupling is a purchase with a price in bits.

Meaning as codeword

What does an exact substrate buy a symbol system? Let “a meaning” be a ring element and a concept a valid codeword of the tower split. The three properties folk semantics asks for are then theorems of the blueprint.

Exact binding property

bind(role, filler) = multiply; unbind = multiply by the meadow inverse. Exact for every unit role and every filler; chained roles unbind in either order. Every element is both datum and operator: opx = multiply-by-x, read back by opx(1) = x, and the operator's reach is its window support — the meadow pseudo-inverse undoes unit actions exactly and recovers the surviving windows for the rest. The contrast: in HRR and the Semantic Pointer Architecture, circular convolution binds and correlation unbinds approximately — the unbound filler returns at cosine ~0.7, never 1 — so every retrieval needs a cleanup memory and is probabilistic. (Binary XOR binding is also exactly self-inverse; what the ring adds is the guaranteed cleanup below and the datum-as-operator structure.)

Scope. Exhaustive at Z/210, sampled at Z/510510.

verifier: explore_meaning_codeword.py

Snap-to-whole in three exact zones rule

A Gestalt is a codeword: MDS d = 4 makes the perceptual basin of attraction a theorem. Any one corrupted window snaps back to the whole, guaranteed (exhaustive: all 210 concepts × all 51 corruptions), and any 3 erased windows reconstruct it (all 35 patterns). Two corrupted windows are always detected and never mis-snapped — a mis-snap would need 2 + 1 ≥ d, forbidden at d = 4. Three can produce an illusion — the view snaps to a different valid whole, never to garbage — but rarely: 0.58% of 5000 random weight-3 views snapped; the rest were detected and refused. Basins are disjoint, exactly 52 tuples per concept: beyond radius 1 the decoder refuses rather than hallucinates.

verifier: explore_meaning_codeword.py

The superposition wall and its cure rule

The classical VSA bundle — an elementwise sum of bound pairs — carries no cleanup here, and for codeword fillers the failure is exact: unbinding a two-item sum returns the true filler plus a noise element sharing the second filler's support, and every nonzero codeword has tuple weight ≥ d = 4, so the query sits outside the true concept's radius-1 basin always — retrieval is provably 0 (verified 0/2000; the lone degenerate escape is an empty second item, whose noise is zero). The same d that guarantees the snap forbids the sum. What rescues the sum classically — quasi-orthogonality, bundle noise nearly invisible to a dot product in high dimension — is archimedean concentration-of-measure geometry, not a ring resource: a wall of the deletion read at the representation level. The cure is ring-native: bundle = direct sum. Idempotent slots (roles = channel windows) retrieve every stored item exactly at hard capacity = the channel partition, and multiplicative binding composes inside a slot.

Scope. The limits: capacity is hard (210 scenes at this rung; scaled by rungs or designed towers), and codewords carry no similarity gradient — semantic similarity must arrive with a learned embedding. The HRR contrast is a contrast of kind, not a benchmark: on self-inverse substrates exact unbinding is table stakes, and the published factorization benchmarks run on per-coordinate partial credit — exactly the archimedean concentration resource this wall names as missing, and one no rung can buy.

verifier: explore_meaning_codeword.py

Grammar comes free of syntax: with AGENT the {2, 3} window, PATIENT mod 5, ACTION mod 7, every data value below 210 is a valid scene — a bijective grammar — and any 4 of the 7 windows carry the whole scene.

The deletion as dynamics

Set the ring in motion: cells hold values of Z/N and update by a local rule, neighbor by neighbor. Two results govern everything such an automaton can do, and they cut opposite ways.

The decoupling law and the coupling toll rule

A CA rule built from ring operations (+, ×, constants — hence every power map, every gate, the meadow inverse) is a polynomial, hence channel-local: the automaton is the direct product of k independent mod-p automata, channel p's entire future a function of channel p's initial plane alone. Conversely, any k-tuple of arbitrary per-channel rules is one polynomial rule (Lagrange interpolation per channel, coefficients CRT-glued degreewise): pure-ring automata are exactly the products of arbitrary per-channel automata. Coupled dynamics is therefore bought, not built, and the toll is priced in bits crossing the channel boundary per cell-read: an aliveness bit ([x = 0], or any channel quantifier) costs 1, the support grade [|supp(x)| ≥ t] (supp x = the channels where x is nonzero) costs log₂(k+1), size comparison costs log₂ N — no polynomial computes any of them, and the content never crosses: only quantifier bits do. Conway's Life threshold is bought at the grade tier, and the toll is real — a graded Life on Z/30 paying one grade-read per cell per step builds cross-channel mutual information from a channel-independent soup within 20 steps, while its decoupled twin never leaves the sampling floor.

Scope. The rule-equals-polynomial leg needs a squarefree modulus (it fails at Z/4); locality ⇒ product holds for any product ring. Exhaustive rule batteries at Z/6 with three-cell neighborhoods, trajectory invariance at Z/30, the converse construction exact; the Life runs are observations, recorded in the script.

verifier: explore_ring_ca.py

The snap-back automaton rule

The same isolation quarantines damage. The tower-split code (the Gestalt basin above) survives no arithmetic — under a sum rule its minimum distance degrades with running height, 4 → 3 (values from 210) → 2 (2310) → 1 (30030) → 0 (510510), and the repair is a per-step base extension — one of the priced borrows, paid every step — so make the invariant a dictionary closed under the dynamics instead. Binding-closed dictionaries of units are exactly the subgroups of the unit group; channels being cyclic, a subgroup is a linear code over the exponent space ∏p Z/(p−1) with window distance = exponent Hamming distance: classical coding theory imports wholesale through the index transform. Binding never spreads an error across windows — wrong(xy) ⊆ wrong(x) ∪ wrong(y), wrong(x) the set of corrupted windows — and two guarantees follow. Eager — snap each cell to its nearest word before binding: at most t corrupted windows per cell per step gives an exact trajectory forever (verified at the full 3-of-7 budget). Lazy — correction waits until readout: three stuck lanes, open loop, zero maintenance, one snap per cell reads out exactly. Instances: binary linear codes bind-closed as ±1-per-channel words (Hamming [7,4,3] on seven odd channels corrects any one window); a designed tower on places p ≡ 1 (mod 8) holds an order-8 unit whose powers sit at pairwise distance 7, correcting three.

Scope. The fault model is noisy value registers under reliable control — the algorithm-based fault-tolerance stance. The dictionary-closed-under-a-group-action form with coset correction is Beckmann–Musicus and Hadjicostis–Verghese; universal computation on coded data at polylog overhead is Spielman. Binding is the classical transversal gate set, and the decoupling law is the matching wall. This rung's own maximum-order unit generates a dictionary at minimum distance 1 — channel 2 never separates units — so a dictionary is constructed, never inherited.

verifier: explore_snapback_ca.py