Dormant But Alive
A locus that consumes no compute can be fully live.
- Standing
- STATED CHECKABLE RUNNABLE EXECUTED STAGED PUBLISHED REPRODUCED
- Last checked
- never run
- Source
computedriven/receipts/R7.1-OPEN.md- Limit
- States a lifecycle obligation. The BEAM satisfies it within a node and durable-execution vendors satisfy it across restarts; neither fact is a measurement made here.
- Next rung
in_tree— a locus in this tree observed addressable after the process that ran it exited.
Why this page says STATED — the derivation, not the word
- ✓ a witness is named
- ✗ its evidence kind is one the ledger already uses
- ✓ the witness path resolves in this tree
- ✗ its rung is in_tree or above (spec)
- ✗ a run is recorded for these exact bytes — shape spec carries no execution
- ✓ 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
Liveness is a semantic property: does the locus have a defined state and admissible next transitions? Placement is a resource property: does a carrier hold it right now? A locus can be live and unplaced. Its mailbox accumulates events that change its readiness, and none of them executes anything until a carrier takes it.
Technical register
R7.1 admission: a per-Locus mailbox of depth M in the multiplexer. An event changes readiness but executes no floor command by itself (FPLA design A restates the same separation). Placement moves possession from vacant to attached; the pending work is exactly the mailbox contents.
Problem
Runtimes conflate 'idle' with 'done' and 'unscheduled' with 'dead'. A garbage collector, a supervisor or a human reads an empty carrier and concludes there is nothing to do, while a locus with a full mailbox waits above the floor.
Solution
Separate readiness from execution: an event arriving updates a ready-set and nothing else. Make placement an explicit floor command. Keep the mailbox on the locus's context, bounded by M, and refuse the (M+1)th event at admission with a named refusal rather than dropping it silently.
Real-world analogy
A doctor on call. Not in the building, not being paid by the hour, and still on the roster with a pager that changes what happens next. The hospital being quiet says nothing about the pager.
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 14 of 32 — the fragment _patterns/wrl/chain/dormant-but-alive.wrl, sealed alone by wrl.js
; DORMANT BUT ALIVE — its OWN clock domain, with phase 3: the locus receives nothing for three epochs and is
; fully defined the whole time; at epoch 4 it turns. Dormant is a placement fact, not a liveness fact.
[pulser:db_clock](every 4, phase 3){sig_out}
[spinner:db_locus](w=16, n=8, rotor=quarter_turn_z){sig_in, socket}
[orb:db_view]{pose}
[db_clock] --sig--> [db_locus]
[db_locus] --socket--> [db_view]module + bench seal to → sem-f0998ba567e37b23cdb32c13de64336803983d73926aa3ab04d4e06d04305851
Run inputs — a ScenarioV1, the forge's own document, bound to this world's id and never part of it (D3) · ScenarioDigest scen-66ce95db624331b0364… (the run inputs' own identity, computed by the forge)
No claims: the world runs on its clocks alone for 6 epochs.
Reduced by the native reducer (ic32); the reference reducer reproduces every epoch's film hash (36.057s).
The Film, epoch by epoch (6)
epoch 1 · sha256:2ebdee519a8cdd9e59ba7a80e999663a005d0df93c0a74d084efac5a0c06cc9a
FILM v0.7 t=1 spinner:db_locus:policy=forge_motor_widemac_tz_sat_v1,quat4,w=16,n=8,rotor=00b5,0000,0000,00b5,socket=db_view,config=fixed orb:db_view:policy=forge_motor_widemac_tz_sat_v1,quat4,w=16,n=8,pose=0100,0000,0000,0000,controller=db_locus,fault=0 pulser:db_clock:mode=periodic,p=4,phase=3,armed=0,done=0,nf=1 wire:w__db_clock__db_locus: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:9fcdcfdc71f8c6e28ae25c0af4dd0ea0c3937d13b7f2da2838b57a56303ff68c
FILM v0.7 t=2 spinner:db_locus:policy=forge_motor_widemac_tz_sat_v1,quat4,w=16,n=8,rotor=00b5,0000,0000,00b5,socket=db_view,config=fixed orb:db_view:policy=forge_motor_widemac_tz_sat_v1,quat4,w=16,n=8,pose=0100,0000,0000,0000,controller=db_locus,fault=0 pulser:db_clock:mode=periodic,p=4,phase=3,armed=0,done=0,nf=4 wire:w__db_clock__db_locus:cur=0,nxt=1 admit:policy=admit_candidate_min_firstreceipt_v1,fact_capacity_fault=0,receipt_capacity_fault=0,capacity_fault=0
epoch 3 · sha256:5a35f225f334a7761f3b96378f90cdb98c108ed77d4793ab191607ab1aa9c9ca
FILM v0.7 t=3 spinner:db_locus:policy=forge_motor_widemac_tz_sat_v1,quat4,w=16,n=8,rotor=00b5,0000,0000,00b5,socket=db_view,config=fixed orb:db_view:policy=forge_motor_widemac_tz_sat_v1,quat4,w=16,n=8,pose=00b5,0000,0000,00b5,controller=db_locus,fault=0 pulser:db_clock:mode=periodic,p=4,phase=3,armed=0,done=0,nf=3 wire:w__db_clock__db_locus:cur=1,nxt=0 admit:policy=admit_candidate_min_firstreceipt_v1,fact_capacity_fault=0,receipt_capacity_fault=0,capacity_fault=0
epoch 4 · sha256:4a067b82a36b17045af7efc5ea169fc4a7fc9f081ec29b60e1274bf03ef5d555
FILM v0.7 t=4 spinner:db_locus:policy=forge_motor_widemac_tz_sat_v1,quat4,w=16,n=8,rotor=00b5,0000,0000,00b5,socket=db_view,config=fixed orb:db_view:policy=forge_motor_widemac_tz_sat_v1,quat4,w=16,n=8,pose=00b5,0000,0000,00b5,controller=db_locus,fault=0 pulser:db_clock:mode=periodic,p=4,phase=3,armed=0,done=0,nf=2 wire:w__db_clock__db_locus:cur=0,nxt=0 admit:policy=admit_candidate_min_firstreceipt_v1,fact_capacity_fault=0,receipt_capacity_fault=0,capacity_fault=0
epoch 5 · sha256:2ff9b66d7f4bd8f2cb6c80a8c376f704e46ed596ae7678eb0d266e4d1ffa1671
FILM v0.7 t=5 spinner:db_locus:policy=forge_motor_widemac_tz_sat_v1,quat4,w=16,n=8,rotor=00b5,0000,0000,00b5,socket=db_view,config=fixed orb:db_view:policy=forge_motor_widemac_tz_sat_v1,quat4,w=16,n=8,pose=00b5,0000,0000,00b5,controller=db_locus,fault=0 pulser:db_clock:mode=periodic,p=4,phase=3,armed=0,done=0,nf=1 wire:w__db_clock__db_locus:cur=0,nxt=0 admit:policy=admit_candidate_min_firstreceipt_v1,fact_capacity_fault=0,receipt_capacity_fault=0,capacity_fault=0
epoch 6 · sha256:4b848a881985170e39ad44a7214f9db11c9cf7ba54a8c1c80eeed116ce49caf6
FILM v0.7 t=6 spinner:db_locus:policy=forge_motor_widemac_tz_sat_v1,quat4,w=16,n=8,rotor=00b5,0000,0000,00b5,socket=db_view,config=fixed orb:db_view:policy=forge_motor_widemac_tz_sat_v1,quat4,w=16,n=8,pose=00b5,0000,0000,00b5,controller=db_locus,fault=0 pulser:db_clock:mode=periodic,p=4,phase=3,armed=0,done=0,nf=4 wire:w__db_clock__db_locus:cur=0,nxt=1 admit:policy=admit_candidate_min_firstreceipt_v1,fact_capacity_fault=0,receipt_capacity_fault=0,capacity_fault=0
Composes with the 13 chapters before it
The chain through this chapter — every earlier fragment, this one, and the links — seals to sem-1c7111f4db352d49a645f6b4bfb39d178d632d9465c5f62108e9d657cc366009: 48 objects, 44 edges (was 45 / 42; every earlier object and edge is still present — checked, or the build refuses).
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 admission rule (R7.1-OPEN — an OPEN record; specified, its battery not yet run) 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
A dormant locus costs memory for its context and its mailbox, so the depth bound M is real: past it, the multiplexer must refuse admission rather than grow. The temptation is to let the scheduler treat the mailbox as advisory. The pattern says it is an admission rule.
Applicability
Actor systems, agent runtimes with many more agents than cores, durable-execution engines, and any system that must answer 'is there pending work?' honestly.
Transformations
- a locus holding no carrier for any length of time
- events arriving while unplaced
- placing a dormant locus on any available carrier
- executing a floor command as a side effect of an event's arrival
- inferring 'nothing to do' from 'no carrier busy' (False Quiescence)
- growing the mailbox past M
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
'Is the system quiet?' stops being answerable from the carriers. That is the gap Proven Quiescence names — and that pattern is still PROPOSED, which this page says plainly.
Failure mode it answers
Busywork Scheduling — Maximizing resource utilization while semantic progress stalls. Paid for at: computedriven/receipts/R7-EXECUTED.md title: the busiest Carrier makes the least progress
Witness
Source identity: computedriven/receipts/R7.1-OPEN.md · shape spec · rung spec (an OPEN record: the admission rule is specified, the battery is R7.1's)
No execution record: this check has not been run for the bytes on disk. WITNESSED requires one.
Not staged on this site: the page cannot run this witness. Its shape (spec) is a document, not a run.
Counterexample
No counterexample shipped (required only when WITNESSED).
What to take away
- from the animationReadiness changed three times while nothing executed; placement is what made the pending work run.
- from the syntaxMailbox depth M is an admission rule: the (M+1)th event is refused, not queued forever.
- from the literatureBEAM processes and durable-execution engines embody this; continuations are the older form.
- from the witnessSTATED, not witnessed: the source is an OPEN record, and the label on this page derives from that.
Prior art — and what is not claimed
| work | relation | what it shares | where it differs |
|---|---|---|---|
| BEAM processes | realization | a process that is not running is still alive and addressable | the BEAM's dormancy is scheduler-local; the pattern wants it across restarts |
| Durable execution (Temporal, Restate) | close analogue | a workflow survives the death of the worker executing it | these replay from a log; the pattern does not require replay to be the mechanism |
| Delimited continuations | antecedent | suspended computation as a first-class value | a language mechanism, not a lifecycle claim |
Novelty not claimed. Durable execution vendors have shipped this. Nothing here improves on them.
Realizations in the tree
- computedriven/receipts/R7.1-OPEN.md:42
- FPLA/DESIGN_NOTES_2026-09-06.md design A
Relations with other patterns
Carrier Multiplexing WITNESSED · Locus Is Not Its Carrier 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.