Carrier Multiplexing
More loci than slots, carried by rotation, and no locus is lost by not holding one.
- Standing
- WITNESSED CHECKABLE RUNNABLE EXECUTED STAGED PUBLISHED REPRODUCED
- Last checked
- 2026-09-05 UTC
- Source
computedriven/receipts/R7-EXECUTED.md- Limit
- This is the measured half of locus-is-not-its-carrier and nothing more. That many loci share few carriers is how every modern runtime already works; the pattern claims no improvement on any of them.
- Next rung
live_local— the multiplexing shown on this page rather than cited. R7.2.1D produced a number (P2 8/8) and it measured multiplexing, not benefit — the benefit is a different measurement and nothing has made it.
Why this page says WITNESSED — the derivation, not the word
- ✓ a witness is named
- ✓ its evidence kind is one the ledger already uses (measurement)
- ✓ the witness path resolves in this tree
- ✓ its rung is in_tree or above (in_tree)
- ✓ a run is recorded for these exact bytes
- ✓ no claim is cited that could be REFUTED
- ✓ a counterexample is shipped (required once WITNESSED)
- ✗ not staged on this site, so it cannot run from the page
WITNESSED requires every line above to hold. The label is computed from them by build.mjs and cannot be typed into the registry — the build refuses a record that carries it.
Intent
A floor has a fixed number of slots. A population of loci may be far larger. Multiplexing rotates loci through slots; the slot is a temporary embodiment and the locus's identity, state and admissible transitions are unchanged by leaving it. R7 measured eight slots carrying sixty-four loci.
Technical register
Per-Locus mailbox of depth M in the multiplexer (R7.1 admission); a slot holds one Locus Core Context (309 B production profile, KERNELLET-R1); rotation is a floor command, not a copy. Instruction counts per admitted transition are the receipt's unit.
Problem
Threads are expensive and identity is cheap. A system that gives every locus its own thread, core or process runs out of carriers long before it runs out of things worth being; and a system that then says 'the locus IS the thread' has to kill loci to free carriers.
Solution
Give the floor N slots and the population K > N loci. Keep every locus's context outside the slot (the 309-byte context is the locus's, not the slot's). Rotate by floor command; never copy a context to move it. Measure instructions per admitted transition, not slot occupancy.
Real-world analogy
A hotel with eight beds and sixty-four guests on a night shift roster. A guest who is not in a bed has not ceased to exist, and the hotel does not photocopy guests to move them.
Structure — on the surface
An illustration on a compute surface: loci above, carriers below. Press Play or Step; the takeaways collect as you go. Nothing here is evidence — the witness section is.
The chapter in WRL — and the chain so far
Chapter 15 of 32 — the fragment _patterns/wrl/chain/carrier-multiplexing.wrl, sealed alone by wrl.js
; CARRIER MULTIPLEXING — the floor's signal arrives at cm_in (a router) and fans out to four slots (relays),
; each carrying to a locus (a Door that opens when its signal arrives). Replication `*4` is the language's own.
[relay:cm_in]{sig_in, sig_out}
[relay:cm_slot*4]{sig_in, sig_out}
[door:cm_locus*4]{sig_in}
[cm_in] --sig--> {[cm_slot0], [cm_slot1], [cm_slot2], [cm_slot3]}
[cm_slot0] --sig--> [cm_locus0]
[cm_slot1] --sig--> [cm_locus1]
[cm_slot2] --sig--> [cm_locus2]
[cm_slot3] --sig--> [cm_locus3]Its test bench _patterns/wrl/chain/carrier-multiplexing.bench.wrl — drives the entry for this chapter's own film; never part of the chain
; TEST BENCH — drives this chapter's entry alone; the chain replaces it with a wire from an earlier chapter
[pulser:cm_bench](every 1){sig_out}
[cm_bench] --sig--> [cm_in]module + bench seal to → sem-f6b2fd2004e277f5a10df9174c87843937a8d3e552fcd77ee7c8d71a5a292ce5
Run inputs — a ScenarioV1, the forge's own document, bound to this world's id and never part of it (D3) · ScenarioDigest scen-886cdaf007dc64a8089… (the run inputs' own identity, computed by the forge)
No claims: the world runs on its clocks alone for 7 epochs.
Reduced by the native reducer (ic32); the reference reducer reproduces every epoch's film hash (0.012s).
The Film, epoch by epoch (7)
epoch 1 · sha256:ac1afc4e7ef3b79bee182c914e2bff2ea512a63131146e696070a2faed76c901
FILM v0.7 t=1 pulser:cm_bench:mode=periodic,p=1,phase=0,armed=0,done=0,nf=1 door:cm_locus0:open=0,next_open=0 door:cm_locus1:open=0,next_open=0 door:cm_locus2:open=0,next_open=0 door:cm_locus3:open=0,next_open=0 relay:cm_in:cur_out=0,next_out=1 relay:cm_slot0:cur_out=0,next_out=0 relay:cm_slot1:cur_out=0,next_out=0 relay:cm_slot2:cur_out=0,next_out=0 relay:cm_slot3:cur_out=0,next_out=0 wire:w__cm_bench__cm_in:cur=1,nxt=1 wire:w__cm_in__cm_slot0:cur=0,nxt=0 wire:w__cm_in__cm_slot1:cur=0,nxt=0 wire:w__cm_in__cm_slot2:cur=0,nxt=0 wire:w__cm_in__cm_slot3:cur=0,nxt=0 wire:w__cm_slot0__cm_locus0:cur=0,nxt=0 wire:w__cm_slot1__cm_locus1:cur=0,nxt=0 wire:w__cm_slot2__cm_locus2:cur=0,nxt=0 wire:w__cm_slot3__cm_locus3:cur=0,nxt=0 admit:policy=admit_candidate_min_firstreceipt_v1,fact_capacity_fault=0,receipt_capacity_fault=0,capacity_fault=0
epoch 2 · sha256:88f304ad725f33c76a937859aafb0254636c107294f146446ebe62bf7cd0cca4
FILM v0.7 t=2 pulser:cm_bench:mode=periodic,p=1,phase=0,armed=0,done=0,nf=1 door:cm_locus0:open=0,next_open=0 door:cm_locus1:open=0,next_open=0 door:cm_locus2:open=0,next_open=0 door:cm_locus3:open=0,next_open=0 relay:cm_in:cur_out=1,next_out=1 relay:cm_slot0:cur_out=0,next_out=0 relay:cm_slot1:cur_out=0,next_out=0 relay:cm_slot2:cur_out=0,next_out=0 relay:cm_slot3:cur_out=0,next_out=0 wire:w__cm_bench__cm_in:cur=1,nxt=1 wire:w__cm_in__cm_slot0:cur=0,nxt=1 wire:w__cm_in__cm_slot1:cur=0,nxt=1 wire:w__cm_in__cm_slot2:cur=0,nxt=1 wire:w__cm_in__cm_slot3:cur=0,nxt=1 wire:w__cm_slot0__cm_locus0:cur=0,nxt=0 wire:w__cm_slot1__cm_locus1:cur=0,nxt=0 wire:w__cm_slot2__cm_locus2:cur=0,nxt=0 wire:w__cm_slot3__cm_locus3:cur=0,nxt=0 admit:policy=admit_candidate_min_firstreceipt_v1,fact_capacity_fault=0,receipt_capacity_fault=0,capacity_fault=0
epoch 3 · sha256:89a5a260d854066926e5b77b825d9f7af374fc36e61860651d0c7336662bac46
FILM v0.7 t=3 pulser:cm_bench:mode=periodic,p=1,phase=0,armed=0,done=0,nf=1 door:cm_locus0:open=0,next_open=0 door:cm_locus1:open=0,next_open=0 door:cm_locus2:open=0,next_open=0 door:cm_locus3:open=0,next_open=0 relay:cm_in:cur_out=1,next_out=1 relay:cm_slot0:cur_out=0,next_out=1 relay:cm_slot1:cur_out=0,next_out=1 relay:cm_slot2:cur_out=0,next_out=1 relay:cm_slot3:cur_out=0,next_out=1 wire:w__cm_bench__cm_in:cur=1,nxt=1 wire:w__cm_in__cm_slot0:cur=1,nxt=1 wire:w__cm_in__cm_slot1:cur=1,nxt=1 wire:w__cm_in__cm_slot2:cur=1,nxt=1 wire:w__cm_in__cm_slot3:cur=1,nxt=1 wire:w__cm_slot0__cm_locus0:cur=0,nxt=0 wire:w__cm_slot1__cm_locus1:cur=0,nxt=0 wire:w__cm_slot2__cm_locus2:cur=0,nxt=0 wire:w__cm_slot3__cm_locus3:cur=0,nxt=0 admit:policy=admit_candidate_min_firstreceipt_v1,fact_capacity_fault=0,receipt_capacity_fault=0,capacity_fault=0
epoch 4 · sha256:72e8f7bd89986e98f7ce6d53eedf95db766bcbec4dd962f5c0628b041caed2e3
FILM v0.7 t=4 pulser:cm_bench:mode=periodic,p=1,phase=0,armed=0,done=0,nf=1 door:cm_locus0:open=0,next_open=0 door:cm_locus1:open=0,next_open=0 door:cm_locus2:open=0,next_open=0 door:cm_locus3:open=0,next_open=0 relay:cm_in:cur_out=1,next_out=1 relay:cm_slot0:cur_out=1,next_out=1 relay:cm_slot1:cur_out=1,next_out=1 relay:cm_slot2:cur_out=1,next_out=1 relay:cm_slot3:cur_out=1,next_out=1 wire:w__cm_bench__cm_in:cur=1,nxt=1 wire:w__cm_in__cm_slot0:cur=1,nxt=1 wire:w__cm_in__cm_slot1:cur=1,nxt=1 wire:w__cm_in__cm_slot2:cur=1,nxt=1 wire:w__cm_in__cm_slot3:cur=1,nxt=1 wire:w__cm_slot0__cm_locus0:cur=0,nxt=1 wire:w__cm_slot1__cm_locus1:cur=0,nxt=1 wire:w__cm_slot2__cm_locus2:cur=0,nxt=1 wire:w__cm_slot3__cm_locus3:cur=0,nxt=1 admit:policy=admit_candidate_min_firstreceipt_v1,fact_capacity_fault=0,receipt_capacity_fault=0,capacity_fault=0
epoch 5 · sha256:d342c7de60e056f3c06c255f6becdf1a63e42fb58a812f238c9cd3c335444923
FILM v0.7 t=5 pulser:cm_bench:mode=periodic,p=1,phase=0,armed=0,done=0,nf=1 door:cm_locus0:open=0,next_open=1 door:cm_locus1:open=0,next_open=1 door:cm_locus2:open=0,next_open=1 door:cm_locus3:open=0,next_open=1 relay:cm_in:cur_out=1,next_out=1 relay:cm_slot0:cur_out=1,next_out=1 relay:cm_slot1:cur_out=1,next_out=1 relay:cm_slot2:cur_out=1,next_out=1 relay:cm_slot3:cur_out=1,next_out=1 wire:w__cm_bench__cm_in:cur=1,nxt=1 wire:w__cm_in__cm_slot0:cur=1,nxt=1 wire:w__cm_in__cm_slot1:cur=1,nxt=1 wire:w__cm_in__cm_slot2:cur=1,nxt=1 wire:w__cm_in__cm_slot3:cur=1,nxt=1 wire:w__cm_slot0__cm_locus0:cur=1,nxt=1 wire:w__cm_slot1__cm_locus1:cur=1,nxt=1 wire:w__cm_slot2__cm_locus2:cur=1,nxt=1 wire:w__cm_slot3__cm_locus3:cur=1,nxt=1 admit:policy=admit_candidate_min_firstreceipt_v1,fact_capacity_fault=0,receipt_capacity_fault=0,capacity_fault=0
epoch 6 · sha256:997d43196cddb4755abd0d5ada3f60eea57d69b7f4aa63daf020dfc61f5add3f
FILM v0.7 t=6 pulser:cm_bench:mode=periodic,p=1,phase=0,armed=0,done=0,nf=1 door:cm_locus0:open=1,next_open=1 door:cm_locus1:open=1,next_open=1 door:cm_locus2:open=1,next_open=1 door:cm_locus3:open=1,next_open=1 relay:cm_in:cur_out=1,next_out=1 relay:cm_slot0:cur_out=1,next_out=1 relay:cm_slot1:cur_out=1,next_out=1 relay:cm_slot2:cur_out=1,next_out=1 relay:cm_slot3:cur_out=1,next_out=1 wire:w__cm_bench__cm_in:cur=1,nxt=1 wire:w__cm_in__cm_slot0:cur=1,nxt=1 wire:w__cm_in__cm_slot1:cur=1,nxt=1 wire:w__cm_in__cm_slot2:cur=1,nxt=1 wire:w__cm_in__cm_slot3:cur=1,nxt=1 wire:w__cm_slot0__cm_locus0:cur=1,nxt=1 wire:w__cm_slot1__cm_locus1:cur=1,nxt=1 wire:w__cm_slot2__cm_locus2:cur=1,nxt=1 wire:w__cm_slot3__cm_locus3:cur=1,nxt=1 admit:policy=admit_candidate_min_firstreceipt_v1,fact_capacity_fault=0,receipt_capacity_fault=0,capacity_fault=0
epoch 7 · sha256:137d6cf6f8eafbc3074193fb0a98a0921f74903bbe207e38942c958ed951c689
FILM v0.7 t=7 pulser:cm_bench:mode=periodic,p=1,phase=0,armed=0,done=0,nf=1 door:cm_locus0:open=1,next_open=1 door:cm_locus1:open=1,next_open=1 door:cm_locus2:open=1,next_open=1 door:cm_locus3:open=1,next_open=1 relay:cm_in:cur_out=1,next_out=1 relay:cm_slot0:cur_out=1,next_out=1 relay:cm_slot1:cur_out=1,next_out=1 relay:cm_slot2:cur_out=1,next_out=1 relay:cm_slot3:cur_out=1,next_out=1 wire:w__cm_bench__cm_in:cur=1,nxt=1 wire:w__cm_in__cm_slot0:cur=1,nxt=1 wire:w__cm_in__cm_slot1:cur=1,nxt=1 wire:w__cm_in__cm_slot2:cur=1,nxt=1 wire:w__cm_in__cm_slot3:cur=1,nxt=1 wire:w__cm_slot0__cm_locus0:cur=1,nxt=1 wire:w__cm_slot1__cm_locus1:cur=1,nxt=1 wire:w__cm_slot2__cm_locus2:cur=1,nxt=1 wire:w__cm_slot3__cm_locus3:cur=1,nxt=1 admit:policy=admit_candidate_min_firstreceipt_v1,fact_capacity_fault=0,receipt_capacity_fault=0,capacity_fault=0
Composes with the 14 chapters before it
The chain through this chapter — every earlier fragment, this one, and the links — seals to sem-5600ca5f6490f64d94008434879c591827d3d9ab13b90e8554d8d04384762d52: 57 objects, 53 edges (was 48 / 44; every earlier object and edge is still present — checked, or the build refuses).
Links only the chain carries
; the busy clock's second hop is the floor's router [pu_hop1] --sig--> [cm_in]
How to read this board
Five kinds of object, two kinds of wire, and one band per Part of the book. Signal flows left to right: it starts at a clock, travels through relays, and ends at a door — or turns a spinner, which drives an orb. Nothing below is the book's own vocabulary; each line is quoted from where the definition lives.
| shape | is | and so |
|---|---|---|
| a clock; the only source of signal | Every signal on the board starts at one of these. Nothing else can make one. | |
| a pass-through, so signal can travel | One arrives, any number leave — a relay that fans out is the board's router. | |
| a sink; signal arrives and stops | It latches what reached it and passes nothing on. A door is where a path ends. | |
| rotation: takes signal, drives a pose | The only object on the board that holds a value a claim can rewrite — and only if its config says configurable. | |
| the thing that gets moved | It is driven, never driving: an orb is what you watch to see whether anything happened. | |
| not a WRL role — the book's own drawing of the receipts in the epoch's Film | It counts what the run admitted, and turns red on a Rejected outcome. | |
| SignalWire | signal: a sig_out to a sig_in | Legal from a Pulser or Relay, into a Relay, Door or Spinner. This is how the board moves. |
| SocketControl | control: a socket to a pose | Legal only from a Spinner into an Orb. At most one may land on any input port — fan-in is a typed refusal. |
Hover any object for what it is, which chapter put it there, and every field of its line in that epoch's Film — split into what it is doing now and how it was built. Click to pin the readout, then click a wired name to follow the signal. The field definitions come from TRVM/forge/film.py (the emitter), TRVM/forge/forge_state.py (nf, derived from the decoded counter and never from t), TRVM/forge/lower_e2a.py (the commit/react law), TRVM/FORGE_SEMANTIC_IR_v1_MEASURE.md §1.3; the shapes from WRL/learn.html and WRL/docs/spec/README.md. The build refuses if a Film emits a field this key does not explain.
The board so far: one band per Part, signal flowing left to right; relays that fan out are routers, doors are switches, pulsers are clock domains. Hover an object — or click the board and walk it with the arrow keys — for its role, its Part and what it is wired to. This board is the chain’s sealed shape; no Film drives it, so it has no state to report, and the whole board in the conclusion is where every object’s state is read epoch by epoch. Wheel zooms · drag pans · double-click fits.
Syntax — quoted from the tree at build time
The measured line in R7-EXECUTED — the receipt this page cites as its witness computedriven/receipts/R7-EXECUTED.md:101
than any fair arm. Eight slots multiplex 64 Loci at 97.4 B on the fabric per admitted transition. 5. **AGE-FIRST thrashes the hot set on SKEW** (P4): its victim rule
The admission rule (R7.1, an OPEN record — specified, not yet a battery) computedriven/receipts/R7.1-OPEN.md:42
- **Admission**: per-Locus mailbox of depth M in the multiplexer (`tools/r7_progress.py`, extended); the ready set is derived only from
Forces
Rotation costs commands, and a fair rotation spends most of them relocating. The per-locus mailbox bounds what a waiting locus can accumulate, and that bound is an admission rule the multiplexer must enforce, not a scheduler hint. The picture is easy; the receipt is what says whether the rotation left any progress behind.
Applicability
Any floor whose population exceeds its carriers: agent runtimes, actor systems, cooperative schedulers, the FPLA's array elements. Not for systems where the carrier is the identity by design (a physical device with one owner).
Transformations
- growing the population without growing the floor
- changing which slot a locus is rotated into
- adding a slot (the population is unchanged)
- copying a context to 'move' a locus — that is Replica Theater
- deriving any locus property from its current slot
- declaring completion because every slot is empty
A refusing transformation is not one that is discouraged: it is one that, applied, makes the invariant above false. The word is the tree's, and it is the same word the join uses.
Consequences
Capacity becomes a question about admitted transitions per cost rather than about carrier count. The trap is that the utilization meters look wonderful while nothing is admitted; Progress Over Utilization is the measuring pattern this one needs beside it.
Failure mode it answers
Carrier Identity — Treating a thing as the process, thread or container currently executing it.
Witness
Source identity: computedriven/receipts/R7-EXECUTED.md · shape receipt · evidence kind measurement · rung in_tree (R7-EXECUTED.md:101 'Eight slots multiplex 64 Loci at 97.4 B')
Execution identity: 2026-09-05 — the witness is itself an execution record
Not staged on this site: the page cannot run this witness. Its shape (receipt) is a document, not a run.
Counterexample
computedriven/receipts/R7-EXECUTED.md — marker fair arm
, expected REFUSED.
A marker, not a resolved law. The build checked that this string is present in the file, and it occurs there 2 times, so it does not pick out one place. A string being present proves the file mentions it, not that the file refuses anything — this record cites no law id that could be resolved against a suite index. It is the weaker of the two forms this catalog uses.
What to take away
- from the animationThe slot is not the unit of identity; a locus without a slot is the same locus.
- from the syntaxEight slots, sixty-four loci, 97.4 B — a receipt line, not a design goal.
- from the literatureM:N scheduling and BEAM processes are the prior art; what is new here is measuring the rotation by admitted transitions rather than by fairness.
- from the witnessThe witness is a receipt document; this page cannot re-run it, and says so under Witness.
Prior art — and what is not claimed
| work | relation | what it shares | where it differs |
|---|---|---|---|
| M:N threading; Go's scheduler; Erlang schedulers | realization | many loci share few carriers | none claimed — these are the pattern, working |
Novelty not claimed. This is how every modern runtime already works. It is in the catalog because it is the measured half of locus-is-not-its-carrier, not because it is new.
Realizations in the tree
- computedriven/receipts/R7-EXECUTED.md:101
Relations with other patterns
Dormant But Alive STATED↩ · Locus Is Not Its Carrier STATED · Progress-Aware Placement STATED · Progress Over Utilization WITNESSED↩
A ↩ marks a relation named on the other page. Relations are symmetric here and the reverse is derived, so neither side can go missing by being written once.