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