OpenSentience.orgUnboxed PatternsChapter 16 of 32 · Progress

UP-016 · Progress · STATED CHECKABLE RUNNABLE EXECUTED STAGED

Progress-Aware Placement

Place a locus where the semantic progress it can make is greatest, not where fairness among carriers is.

A locus is placed on the home where the semantic progress it can make is greatest, not where fairness among runnable carriers is greatest.
Standing
STATED CHECKABLE RUNNABLE EXECUTED STAGED PUBLISHED REPRODUCED
Last checked
never run
Source
none — this record cites no check
Limit
Prespecified and UNRUN. R7.2.1D stage 2 — the placement battery on the compiled home — has not been executed, so no number appears on this page. P4 measured reached_fraction and it saturates near 1 with no STATIC-vs-STATIC null, which is why it is not a benefit.
Next rung
in_tree — run the prespecified battery. The design is written; nothing about it is measured.
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
  • ✗ 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

Once progress is what is measured (Progress Over Utilization), placement can be chosen for it. A locus whose mailbox and authority working set are resident on one home makes progress there and spends its commands relocating anywhere else. The battery that would measure this — placement on the compiled home — is prespecified and has not run.

Technical register

ComputeDriven R7.2.1D: stage 1 executed; stage 2, the placement battery on the compiled home, is written in R7.2.1D-OPEN.md §2–§3 and blocked on review. The metrics comparator has its own red control (metrics_mutant=), and the oracle for the compiled home was built and validated against mutants before the home existed. No placement number exists; none is written here.

Problem

Schedulers place for fairness because fairness is what they can see. A locus placed 'fairly' onto a home where nothing it needs is resident is a locus that relocates instead of transitioning, and the fairness meter calls that healthy.

Solution

Instrument admitted transitions per locus per home. Choose placement to maximize expected progress under a fairness floor. Run the battery against fair arms with a red control on the comparator. Do not write the number before the run.

Real-world analogy

Seating a violinist next to the orchestra's other strings rather than in the first empty chair. The empty chair is fair; the section is where the music happens.

Structure — on the surface

compute surfacehome A · fair placementhome B · progress placementutilization · 0%admitted transitions · 0%utilization · 0%admitted transitions · 0%LTwo homes and a locus that could be placed on either. Every bar here is a picture; R7.2.1D stage 2 has not run.

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 16 of 32 — the fragment _patterns/wrl/chain/progress-aware-placement.wrl, sealed alone by wrl.js

; PROGRESS-AWARE PLACEMENT — two homes (relays); the locus is placed on pp_homeB, where the signal reaches
; it. pp_homeA has nothing resident and nothing arrives: the fair home, idle. pp_in is the entry.
[relay:pp_in]{sig_in, sig_out}
[relay:pp_homeA]{sig_in, sig_out}
[relay:pp_homeB]{sig_in, sig_out}
[spinner:pp_locus](w=16, n=8, rotor=quarter_turn_z){sig_in, socket}
[orb:pp_view]{pose}

[pp_in] --sig--> [pp_homeB]
[pp_homeB] --sig--> [pp_locus]
[pp_locus] --socket--> [pp_view]

Its test bench _patterns/wrl/chain/progress-aware-placement.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:pp_bench](every 1){sig_out}
[pp_bench] --sig--> [pp_in]

module + bench seal to → sem-d9c7da8547beecaf20527520235d2a888180f0ed4d64d5e1c772711106257a57

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.

Idle by design in this world alone: pp_homeA — the fair home: nothing is resident and nothing arrives — that is the point.

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

compute surfacesigsigsigsocketpp_bench · Pulserpp_benchpulserpp_homeA · Relaypp_homeArelaypp_homeB · Relaypp_homeBrelaypp_in · Relaypp_inrelaypp_locus · Spinnerpp_locusspinnerpp_view · Orbpp_vieworbThis chapter's world alone, before epoch 1. Reduced by TRVM's forge in 3.651s; the forge's id equals the seal above.
The Film, epoch by epoch (6)

epoch 1 · sha256:c0563ef2e9c272dd5e83218d13a41efa7e58f1532b1fe0ca561683277217728a

FILM v0.7
t=1
spinner:pp_locus:policy=forge_motor_widemac_tz_sat_v1,quat4,w=16,n=8,rotor=00b5,0000,0000,00b5,socket=pp_view,config=fixed
orb:pp_view:policy=forge_motor_widemac_tz_sat_v1,quat4,w=16,n=8,pose=0100,0000,0000,0000,controller=pp_locus,fault=0
pulser:pp_bench:mode=periodic,p=1,phase=0,armed=0,done=0,nf=1
relay:pp_homeA:cur_out=0,next_out=0
relay:pp_homeB:cur_out=0,next_out=0
relay:pp_in:cur_out=0,next_out=1
wire:w__pp_bench__pp_in:cur=1,nxt=1
wire:w__pp_homeB__pp_locus:cur=0,nxt=0
wire:w__pp_in__pp_homeB: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:2f3cf72bc999d2ab7e5957aadb6d382414ea99f608c518fcd75cf422de79eb12

FILM v0.7
t=2
spinner:pp_locus:policy=forge_motor_widemac_tz_sat_v1,quat4,w=16,n=8,rotor=00b5,0000,0000,00b5,socket=pp_view,config=fixed
orb:pp_view:policy=forge_motor_widemac_tz_sat_v1,quat4,w=16,n=8,pose=0100,0000,0000,0000,controller=pp_locus,fault=0
pulser:pp_bench:mode=periodic,p=1,phase=0,armed=0,done=0,nf=1
relay:pp_homeA:cur_out=0,next_out=0
relay:pp_homeB:cur_out=0,next_out=0
relay:pp_in:cur_out=1,next_out=1
wire:w__pp_bench__pp_in:cur=1,nxt=1
wire:w__pp_homeB__pp_locus:cur=0,nxt=0
wire:w__pp_in__pp_homeB: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:cbe0e3739e4c30ddbce36a9f8283857e0558c4604be7bc7e255bf8e1ec12aa27

FILM v0.7
t=3
spinner:pp_locus:policy=forge_motor_widemac_tz_sat_v1,quat4,w=16,n=8,rotor=00b5,0000,0000,00b5,socket=pp_view,config=fixed
orb:pp_view:policy=forge_motor_widemac_tz_sat_v1,quat4,w=16,n=8,pose=0100,0000,0000,0000,controller=pp_locus,fault=0
pulser:pp_bench:mode=periodic,p=1,phase=0,armed=0,done=0,nf=1
relay:pp_homeA:cur_out=0,next_out=0
relay:pp_homeB:cur_out=0,next_out=1
relay:pp_in:cur_out=1,next_out=1
wire:w__pp_bench__pp_in:cur=1,nxt=1
wire:w__pp_homeB__pp_locus:cur=0,nxt=0
wire:w__pp_in__pp_homeB:cur=1,nxt=1
admit:policy=admit_candidate_min_firstreceipt_v1,fact_capacity_fault=0,receipt_capacity_fault=0,capacity_fault=0

epoch 4 · sha256:31c5182107dc52065cc5d1267a5296fc540004a12a03b2955339c37f60f04b18

FILM v0.7
t=4
spinner:pp_locus:policy=forge_motor_widemac_tz_sat_v1,quat4,w=16,n=8,rotor=00b5,0000,0000,00b5,socket=pp_view,config=fixed
orb:pp_view:policy=forge_motor_widemac_tz_sat_v1,quat4,w=16,n=8,pose=0100,0000,0000,0000,controller=pp_locus,fault=0
pulser:pp_bench:mode=periodic,p=1,phase=0,armed=0,done=0,nf=1
relay:pp_homeA:cur_out=0,next_out=0
relay:pp_homeB:cur_out=1,next_out=1
relay:pp_in:cur_out=1,next_out=1
wire:w__pp_bench__pp_in:cur=1,nxt=1
wire:w__pp_homeB__pp_locus:cur=0,nxt=1
wire:w__pp_in__pp_homeB:cur=1,nxt=1
admit:policy=admit_candidate_min_firstreceipt_v1,fact_capacity_fault=0,receipt_capacity_fault=0,capacity_fault=0

epoch 5 · sha256:c4f1b290caa6fe72c2cf3706a558ddeacb8d7effcf8f148342b7e1e714c2ae7f

FILM v0.7
t=5
spinner:pp_locus:policy=forge_motor_widemac_tz_sat_v1,quat4,w=16,n=8,rotor=00b5,0000,0000,00b5,socket=pp_view,config=fixed
orb:pp_view:policy=forge_motor_widemac_tz_sat_v1,quat4,w=16,n=8,pose=00b5,0000,0000,00b5,controller=pp_locus,fault=0
pulser:pp_bench:mode=periodic,p=1,phase=0,armed=0,done=0,nf=1
relay:pp_homeA:cur_out=0,next_out=0
relay:pp_homeB:cur_out=1,next_out=1
relay:pp_in:cur_out=1,next_out=1
wire:w__pp_bench__pp_in:cur=1,nxt=1
wire:w__pp_homeB__pp_locus:cur=1,nxt=1
wire:w__pp_in__pp_homeB: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:23631876db485ea146d9fc4860dfb68ccc1416d7402b6397b1c4432ce3660162

FILM v0.7
t=6
spinner:pp_locus:policy=forge_motor_widemac_tz_sat_v1,quat4,w=16,n=8,rotor=00b5,0000,0000,00b5,socket=pp_view,config=fixed
orb:pp_view:policy=forge_motor_widemac_tz_sat_v1,quat4,w=16,n=8,pose=0000,0000,0000,00ff,controller=pp_locus,fault=0
pulser:pp_bench:mode=periodic,p=1,phase=0,armed=0,done=0,nf=1
relay:pp_homeA:cur_out=0,next_out=0
relay:pp_homeB:cur_out=1,next_out=1
relay:pp_in:cur_out=1,next_out=1
wire:w__pp_bench__pp_in:cur=1,nxt=1
wire:w__pp_homeB__pp_locus:cur=1,nxt=1
wire:w__pp_in__pp_homeB: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 15 chapters before it

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

Links only the chain carries

; slot 0 of the multiplexer routes to home B
[cm_slot0] --sig--> [pp_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 LocusII · CompositionIII · Progressal_locus · Spinneral_locusspinneral_view · Orbal_vieworbal_world · Pulseral_worldpulsercb_fixed · Spinnercb_fixedspinnercb_gate · Doorcb_gatedoorcb_in · Relaycb_inrelaycb_view · Orbcb_vieworbcc_carrier · Doorcc_carrierdoorcc_grant · Relaycc_grantrelaycm_in · Relaycm_inrelaycm_locus0 · Doorcm_locus0doorcm_locus1 · Doorcm_locus1doorcm_locus2 · Doorcm_locus2doorcm_locus3 · Doorcm_locus3doorcm_slot0 · Relaycm_slot0relaycm_slot1 · Relaycm_slot1relaycm_slot2 · Relaycm_slot2relaycm_slot3 · Relaycm_slot3relayct_in · Relayct_inrelayct_locus · Spinnerct_locusspinnerct_view · Orbct_vieworbdb_clock · Pulserdb_clockpulserdb_locus · Spinnerdb_locusspinnerdb_view · Orbdb_vieworbis_id · Orbis_idorbis_in · Relayis_inrelayis_seal · Spinneris_sealspinnerlc_core · Relaylc_corerelaylc_locus · Spinnerlc_locusspinnerlc_machine · Relaylc_machinerelaylc_thread · Relaylc_threadrelaylc_view · Orblc_vieworbpj_artifact · Spinnerpj_artifactspinnerpj_in · Relaypj_inrelaypj_view_a · Orbpj_view_aorbpj_view_b · Orbpj_view_borbpp_homeA · Relaypp_homeArelaypp_homeB · Relaypp_homeBrelaypp_in · Relaypp_inrelaypp_locus · Spinnerpp_locusspinnerpp_view · Orbpp_vieworbpu_admitted · Orbpu_admittedorbpu_busy · Pulserpu_busypulserpu_hop0 · Relaypu_hop0relaypu_hop1 · Relaypu_hop1relaypu_hop2 · Relaypu_hop2relaypu_locus · Spinnerpu_locusspinnerpu_progress · Pulserpu_progresspulserpu_sink · Doorpu_sinkdoorrb_record · Orbrb_recordorbrd_in · Relayrd_inrelayrd_real · Spinnerrd_realspinnerrd_view · Orbrd_vieworbrj_join · Doorrj_joindoorrj_r · Relayrj_rrelaysm_in · Relaysm_inrelaysm_inside · Spinnersm_insidespinnersm_outside_a · Orbsm_outside_aorbsm_outside_b · Orbsm_outside_borbso_in · Relayso_inrelayso_pose · Orbso_poseorbso_rotor · Spinnerso_rotorspinner

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 comparator's own red control — the oracle exists before the home does (R7.2.1D-OPEN) computedriven/receipts/R7.2.1D-OPEN.md:169

**Item 1 — the metrics comparator's own red control.** `cd-home` takes a replay-only `metrics_mutant=` (a live home
refuses it, exit 5) that corrupts exactly one exported value inside the home and nothing on the channels: `hash-flip`
(one hex digit of the delivered hash), `pos-plus-one` (`pos_all[0]`), `age-plus-one` (`age[0]`), `signal-plus-one`

Forces

Progress-aware placement needs a progress signal per locus per home, which is exactly the instrumentation Progress Over Utilization demands. It also risks starvation: a locus that can make progress nowhere must still be placed somewhere, and the pattern is not a licence to abandon it.

Applicability

Multiplexed floors with more than one home; agent runtimes whose loci carry state that is expensive to move; the FPLA's readiness engine.

Transformations

Preserving
  • re-placing a locus when its progress signal moves
  • holding a fairness floor beneath the progress objective
Refusing
  • quoting a placement gain before the battery has run
  • starving a locus in the name of progress

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

If the battery confirms it, capacity becomes a placement question; if it does not, the pattern is retracted here by name. Either outcome is a receipt.

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

No witness. This pattern is STATED — the tree has no check for its invariant.

Counterexample

No counterexample shipped (required only when WITNESSED).

What to take away

  1. from the animationThe bars moved because a picture moved them; the receipt that could move them has not been produced.
  2. from the syntaxA comparator with a red control can be trusted to have looked; the mutant that changed the protocol is a defect of the control.
  3. from the literatureWork stealing and NUMA-aware placement are the ancestors; the objective here is admitted transitions, not cache locality.
  4. from the witnessSTATED, in progress: stage 2 of R7.2.1D is prespecified and unrun.

Prior art — and what is not claimed

workrelationwhat it shareswhere it differs
Work stealingantecedentmove work to where it can advancework stealing balances queues; placement here is asked to consider semantic progress
NUMA-aware placementclose analoguelocality changes the rate of advancementhardware locality, not semantic locality

Novelty not claimed. Placement heuristics are a mature field. R7.2.1D stage 2 — the placement battery on the compiled home — is NOT RUN, and no number appears on this page before it is.

Realizations in the tree

Relations with other patterns

Carrier Multiplexing WITNESSED