OpenSentience.orgUnboxed PatternsChapter 5 of 32 · The Locus

UP-005 · The Locus · STATED CHECKABLE RUNNABLE EXECUTED STAGED

Continuity Through Reconstruction

A locus continues across a replacement only if a minimal, causally established support set for each declared capability is retained.

A locus continues across a replacement iff a minimal causally established support set sufficient for each declared capability is retained; reconstruction from durable facts is continuity, not creation.
Standing
STATED CHECKABLE RUNNABLE EXECUTED STAGED PUBLISHED REPRODUCED
Last checked
2026-09-11 15:25:45 UTC
Source
scripts/emb-support.mjs @ 92d99bf0f69f · bytes 7a8b6a2f444c3970…
Limit
Rests on cell 30 (capability heredity), whose status is missing — the tree has not established that a reconstructed locus may inherit anything. Stage 5 (Inheritance) has never been reached, and no sentence here is in the present perfect.
Next rung
live_local — Cell 30 ruled either way. Until then this pattern's basis is a question, and the page says so rather than rounding it up.
Why this page says STATED — the derivation, not the word
  • ✓ a witness is named
  • ✓ its evidence kind is one the ledger already uses (constructive_witness)
  • ✓ the witness path resolves in this tree
  • ✓ its rung is in_tree or above (in_tree)
  • ✓ a run is recorded for these exact bytes
  • ✗ every cited claim is PROVED/KNOWN/MEASURED/CONDITIONAL (OPEN, OPEN)
  • ✗ 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

When a carrier is gone and something is rebuilt from what survived, the rebuilt thing is either a continuation or a new being, and the difference is testable: does it retain the declared capabilities under the declared replacement contract, and is the support that carries them causally established rather than merely inherited? Reconstruction from durable facts is continuity when that test passes. Nothing in this tree has passed it yet.

Technical register

AGENCY.md §5b: a continuity kernel is a minimal causally established support set sufficient to retain a declared capability under a declared replacement contract — M′ + K_c → c and M′ + (S ∖ K_c) ↛ c. Support is a hypergraph, so kernels are set-shaped; the revocation-cut dual holds only when the support function is monotone, and scripts/emb-support.mjs refuses kernels for a capability whose observations falsify it. Six-stage lifecycle Motor → Crystallization → Certification → Promotion → Inheritance → Composition; stage 5 has never been reached. Claims EMB-SUPPORT-GRAPH and EMB-KERNEL-LOCATION are OPEN.

Problem

'Reload the weights and it is the same agent; swap the model and it is a different one.' Both are wrong in the direction that matters, because neither asked what was retained. A successor that keeps the name and loses the capability is a new being wearing a label; a successor that keeps the capability from different support is a continuation the old definition could not see.

Solution

Declare the capability and the replacement contract before the replacement. Generate candidate support sets from lineage, then establish support by ablation of the set under test, intervention, runtime dependency or replacement replay. Compute kernels over sets. Refuse when monotonicity is falsified. Report observed kernels as observed and synthetic ones as synthetic.

Real-world analogy

A ship rebuilt plank by plank is the same ship if what made it seaworthy was carried across, and you find that out by removing planks, not by reading the nameplate.

Structure — on the surface

compute surfacereconstructreconstructKsupport set: weights + memory + toolsA locus whose carrier is gone, the records that survive it, and the question of whether what comes next is the same thing.

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 5 of 32 — the fragment _patterns/wrl/chain/continuity-through-reconstruction.wrl, sealed alone by wrl.js

; CONTINUITY THROUGH RECONSTRUCTION — a configurable locus whose state is RE-ESTABLISHED by a claim at
; epoch 2 (SetRotor, receipt Applied). ct_in is the entry; in the chain the core router of chapter 3 feeds it.
[relay:ct_in]{sig_in, sig_out}
[spinner:ct_locus](w=16, n=8, rotor=quarter_turn_z, configurable){sig_in, socket}
[orb:ct_view]{pose}

[ct_in] --sig--> [ct_locus]
[ct_locus] --socket--> [ct_view]

Its test bench _patterns/wrl/chain/continuity-through-reconstruction.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:ct_bench](every 1){sig_out}
[ct_bench] --sig--> [ct_in]

module + bench seal to → sem-bf7bdf27dbc86cfc315f9db25aacfdb8b2cbe8d81848844038e7761203013e61

Run inputs — a ScenarioV1, the forge's own document, bound to this world's id and never part of it (D3) · ScenarioDigest scen-f7d7fbc248e75950382… (the run inputs' own identity, computed by the forge)

epochwriter · seqoptargetrotorlabel
2w1 s1SetRotorct_locus255.0.0.0SetRotor ct_locus 255.0.0.0

Reduced by the native reducer (ic32); the reference reducer reproduces every epoch's film hash (39.472s).

compute surfacesigsigsocketct_bench · Pulserct_benchpulserct_in · Relayct_inrelayct_locus · Spinnerct_locusspinnerct_view · Orbct_vieworbledger · receipts · Ledgerledger · receiptsno receiptsThis chapter's world alone, before epoch 1. Reduced by TRVM's forge in 4.118s; the forge's id equals the seal above.

Receipts in the last epoch's Film

receipt:w=1,s=1,accepted=e0,apkey=0.0.255.0.0.0,epoch=2,outcome=Applied
The Film, epoch by epoch (6)

epoch 1 · sha256:52c1cdea20ace685f5b91c197d654ce6fec089b06672a011845c789b512fccf8

FILM v0.7
t=1
spinner:ct_locus:policy=forge_motor_widemac_tz_sat_v1,quat4,w=16,n=8,rotor=00b5,0000,0000,00b5,socket=ct_view,config=configurable
orb:ct_view:policy=forge_motor_widemac_tz_sat_v1,quat4,w=16,n=8,pose=0100,0000,0000,0000,controller=ct_locus,fault=0
pulser:ct_bench:mode=periodic,p=1,phase=0,armed=0,done=0,nf=1
relay:ct_in:cur_out=0,next_out=1
wire:w__ct_bench__ct_in:cur=1,nxt=1
wire:w__ct_in__ct_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:2da03ecafb0c91967746b4e9ee7ca2defd21ebd373bdabc3268d3d50b82700de

FILM v0.7
t=2
spinner:ct_locus:policy=forge_motor_widemac_tz_sat_v1,quat4,w=16,n=8,rotor=00ff,0000,0000,0000,socket=ct_view,config=configurable
orb:ct_view:policy=forge_motor_widemac_tz_sat_v1,quat4,w=16,n=8,pose=0100,0000,0000,0000,controller=ct_locus,fault=0
pulser:ct_bench:mode=periodic,p=1,phase=0,armed=0,done=0,nf=1
relay:ct_in:cur_out=1,next_out=1
wire:w__ct_bench__ct_in:cur=1,nxt=1
wire:w__ct_in__ct_locus:cur=0,nxt=1
admit:policy=admit_candidate_min_firstreceipt_v1,fact_capacity_fault=0,receipt_capacity_fault=0,capacity_fault=0
claim:w=1,s=1,digest=e0,pkey=0.0.255.0.0.0,payload=SetRotor:ct_locus:255.0.0.0
receipt:w=1,s=1,accepted=e0,apkey=0.0.255.0.0.0,epoch=2,outcome=Applied
recognition:w=1,s=1,state=unambiguous

epoch 3 · sha256:42fa3abcbe9e44664de0171633c5b2ec8b9aa92b416d00d26872ae65366b28c8

FILM v0.7
t=3
spinner:ct_locus:policy=forge_motor_widemac_tz_sat_v1,quat4,w=16,n=8,rotor=00ff,0000,0000,0000,socket=ct_view,config=configurable
orb:ct_view:policy=forge_motor_widemac_tz_sat_v1,quat4,w=16,n=8,pose=00ff,0000,0000,0000,controller=ct_locus,fault=0
pulser:ct_bench:mode=periodic,p=1,phase=0,armed=0,done=0,nf=1
relay:ct_in:cur_out=1,next_out=1
wire:w__ct_bench__ct_in:cur=1,nxt=1
wire:w__ct_in__ct_locus:cur=1,nxt=1
admit:policy=admit_candidate_min_firstreceipt_v1,fact_capacity_fault=0,receipt_capacity_fault=0,capacity_fault=0
claim:w=1,s=1,digest=e0,pkey=0.0.255.0.0.0,payload=SetRotor:ct_locus:255.0.0.0
receipt:w=1,s=1,accepted=e0,apkey=0.0.255.0.0.0,epoch=2,outcome=Applied
recognition:w=1,s=1,state=unambiguous

epoch 4 · sha256:8a2141a8e21060d7ff10b0596fc65d89be4c1ccf00391e10b5d8db23e83a2eb2

FILM v0.7
t=4
spinner:ct_locus:policy=forge_motor_widemac_tz_sat_v1,quat4,w=16,n=8,rotor=00ff,0000,0000,0000,socket=ct_view,config=configurable
orb:ct_view:policy=forge_motor_widemac_tz_sat_v1,quat4,w=16,n=8,pose=00fe,0000,0000,0000,controller=ct_locus,fault=0
pulser:ct_bench:mode=periodic,p=1,phase=0,armed=0,done=0,nf=1
relay:ct_in:cur_out=1,next_out=1
wire:w__ct_bench__ct_in:cur=1,nxt=1
wire:w__ct_in__ct_locus:cur=1,nxt=1
admit:policy=admit_candidate_min_firstreceipt_v1,fact_capacity_fault=0,receipt_capacity_fault=0,capacity_fault=0
claim:w=1,s=1,digest=e0,pkey=0.0.255.0.0.0,payload=SetRotor:ct_locus:255.0.0.0
receipt:w=1,s=1,accepted=e0,apkey=0.0.255.0.0.0,epoch=2,outcome=Applied
recognition:w=1,s=1,state=unambiguous

epoch 5 · sha256:a7eee031cb7f098947ccd78f841827d0656bf8871fd3d0e8407a63e28854b58f

FILM v0.7
t=5
spinner:ct_locus:policy=forge_motor_widemac_tz_sat_v1,quat4,w=16,n=8,rotor=00ff,0000,0000,0000,socket=ct_view,config=configurable
orb:ct_view:policy=forge_motor_widemac_tz_sat_v1,quat4,w=16,n=8,pose=00fd,0000,0000,0000,controller=ct_locus,fault=0
pulser:ct_bench:mode=periodic,p=1,phase=0,armed=0,done=0,nf=1
relay:ct_in:cur_out=1,next_out=1
wire:w__ct_bench__ct_in:cur=1,nxt=1
wire:w__ct_in__ct_locus:cur=1,nxt=1
admit:policy=admit_candidate_min_firstreceipt_v1,fact_capacity_fault=0,receipt_capacity_fault=0,capacity_fault=0
claim:w=1,s=1,digest=e0,pkey=0.0.255.0.0.0,payload=SetRotor:ct_locus:255.0.0.0
receipt:w=1,s=1,accepted=e0,apkey=0.0.255.0.0.0,epoch=2,outcome=Applied
recognition:w=1,s=1,state=unambiguous

epoch 6 · sha256:1fc9d701a94368490b4176a3963c2fc2088100612fef19901cd1166afea1db91

FILM v0.7
t=6
spinner:ct_locus:policy=forge_motor_widemac_tz_sat_v1,quat4,w=16,n=8,rotor=00ff,0000,0000,0000,socket=ct_view,config=configurable
orb:ct_view:policy=forge_motor_widemac_tz_sat_v1,quat4,w=16,n=8,pose=00fc,0000,0000,0000,controller=ct_locus,fault=0
pulser:ct_bench:mode=periodic,p=1,phase=0,armed=0,done=0,nf=1
relay:ct_in:cur_out=1,next_out=1
wire:w__ct_bench__ct_in:cur=1,nxt=1
wire:w__ct_in__ct_locus:cur=1,nxt=1
admit:policy=admit_candidate_min_firstreceipt_v1,fact_capacity_fault=0,receipt_capacity_fault=0,capacity_fault=0
claim:w=1,s=1,digest=e0,pkey=0.0.255.0.0.0,payload=SetRotor:ct_locus:255.0.0.0
receipt:w=1,s=1,accepted=e0,apkey=0.0.255.0.0.0,epoch=2,outcome=Applied
recognition:w=1,s=1,state=unambiguous

Composes with the 4 chapters before it

The chain through this chapter — every earlier fragment, this one, and the links — seals to sem-f19a7a71ee9dc9b61d141f1f3606a9c634d7cfe38a1a45b7cc6b59d6df265ff9: 15 objects, 14 edges (was 12 / 11; every earlier object and edge is still present — checked, or the build refuses).

Links only the chain carries

[lc_core] --sig--> [ct_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.

shapeisand so
a clock; the only source of signalEvery signal on the board starts at one of these. Nothing else can make one.
a pass-through, so signal can travelOne arrives, any number leave — a relay that fans out is the board's router.
a sink; signal arrives and stopsIt latches what reached it and passes nothing on. A door is where a path ends.
rotation: takes signal, drives a poseThe only object on the board that holds a value a claim can rewrite — and only if its config says configurable.
the thing that gets movedIt 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 FilmIt counts what the run admitted, and turns red on a Rejected outcome.
SignalWiresignal: a sig_out to a sig_inLegal from a Pulser or Relay, into a Relay, Door or Spinner. This is how the board moves.
SocketControlcontrol: a socket to a poseLegal 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.

compute surfaceI · The Locusal_locus · Spinneral_locusspinneral_view · Orbal_vieworbal_world · Pulseral_worldpulserct_in · Relayct_inrelayct_locus · Spinnerct_locusspinnerct_view · Orbct_vieworbis_id · Orbis_idorbis_in · Relayis_inrelayis_seal · Spinneris_sealspinnerlc_core · Relaylc_corerelaylc_locus · Spinnerlc_locusspinnerlc_machine · Relaylc_machinerelaylc_thread · Relaylc_threadrelaylc_view · Orblc_vieworbrb_record · Orbrb_recordorb

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 definition, verbatim (AGENCY.md §5b) AGENCY.md:333

> A continuity kernel is a **minimal causally established support set** sufficient to retain a
> declared capability under a declared replacement contract.

The two refusals the engine makes before computing anything scripts/emb-support.mjs:29

 * THE TWO REFUSALS, which are the reason this file is worth more than the algebra:
 *
 *   1. A support set backed only by PROVENANCE is refused. Lineage says B descended from A. It
 *      does not say c still needs A: the competence may have been copied into weights, recompiled,
 *      or independently rediscovered while the edge survived. Cuts computed from lineage would
 *      name artifacts to destroy on evidence that does not reach the claim.
 *   2. A capability whose observations FALSIFY monotonicity is refused. Interference is the
 *      ordinary failure mode of accumulated context, and a kernel computed over a non-monotone

Forces

Ablation is expensive and lineage is free, so provenance will always be the evidence at hand. The obligation 'capability extends' is satisfied by equality — a total no-op satisfies it — so the test has to be about support topology, not capability. And the natural way to write the machinery puts a lineage edge in the causal chain, which the tree already refused once on review.

Applicability

Model substitution, factory lineages, restarts of long-running agents, migrations between runtimes — anywhere 'the same' is claimed across a discontinuity.

Transformations

Preserving
  • rebuilding a locus from durable facts and testing what it retained
  • declaring a weaker replacement contract and testing against that
  • keeping several sufficient kernels at once
Refusing
  • asserting continuity from a preserved name or a lineage edge
  • 'has continued' / 'has inherited' in the present perfect without an observed kernel
  • ablating one artifact and concluding about a set

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

Identity across replacement becomes an experiment with a receipt. The cost is that every 'the agent resumes where it left off' sentence is banned until the experiment runs — a cost this stack has already paid in retracted copy.

Failure mode it answers

Replica Theater — Calling independent mutable copies 'the same thing'. Paid for at: CLAUDE.md: the served box-and-box copy is a MANUAL COPY and nothing syncs it

Witness

Source identity: scripts/emb-support.mjs · shape side-effect · evidence kind constructive_witness · rung in_tree (engine runs; 4 capabilities, 4 synthetic, 0 observed (AGENCY.md §5b))

Execution identity: 2026-09-11T15:25:45.592Z on PX13 · bytes 7a8b6a2f444c3970… · repo HEAD 92d99bf0f69f

Not staged on this site: the page cannot run this witness. It runs from the command line: node scripts/emb-support.mjs in ..

Counterexample

No counterexample shipped (required only when WITNESSED).

What to take away

  1. from the animationThe successor was built from K, and K became a kernel only after ablation showed c was lost without it.
  2. from the syntaxKernels are minimal support SETS under a declared contract; the dual with revocation cuts needs monotonicity, which is a hypothesis with a falsifier.
  3. from the literatureOrthogonal persistence's reconstruction, Erlang's code change, and the ship of Theseus — all about what is carried, none about the name.
  4. from the witnessemb-support.mjs runs today: 4 capabilities, 4 synthetic, 0 observed. Both refusals fire. Heredity is unwitnessed and the page says so.

Invariant basis — and how each piece bears

basisbearsstatus
cell 30necessarymissing cells.json
claim EMB-SUPPORT-GRAPHnot sufficient aloneOPEN CLAIM_LEDGER.json
claim EMB-KERNEL-LOCATIONnot sufficient aloneOPEN CLAIM_LEDGER.json

Satisfying a basis is local. Nothing here implies global adequacy unless a theorem or a composition rule says so.

Prior art — and what is not claimed

workrelationwhat it shareswhere it differs
Atkinson & Morrison, orthogonal persistence — persistence independenceantecedenta value's existence does not depend on where it is storedtheir concern is storage transparency; this one is whether restoration may claim to be continuation
Erlang code change (hot code loading)realizationa process survives the replacement of the code that runs itthe process never stops; reconstruction here starts something that had stopped
Distillation as successorcontrasting solutiona later instance stands in for an earlier onea successor is honestly a new thing; the question here is when that honesty is required

Novelty not claimed. Persistence and restoration are both old. Nothing here is written in the present perfect: stage 5 (Inheritance) has never been reached, and the cell this pattern rests on (30, capability heredity) is status missing.

Realizations in the tree

Relations with other patterns

Descent Is Not Dependence WITNESSED · Orthogonal Persistence STATED