From 66fdf0f2df16768be7ce54ae394a441365c23536 Mon Sep 17 00:00:00 2001 From: alex Date: Tue, 8 Sep 2026 10:24:05 -0400 Subject: [PATCH] Z: P9 held on every clause -- the node-line draw landed on turn 64 and cost one word Predicted at turn 34 with the run in flight, from min_life falling by exactly 1 per turn: the first phase-11 draw on turn 64, exactly 1 word, tail total 1, bracket = ProcessTurn + 1. The game was played to turn 64 and every clause held. predict_words, computed before the original ran, said 1 and the measurement said 1 -- a real check of the model, against 63 preceding turns where 0 matched 0 and checked nothing. So the defect lane K warned about is no longer latent: on that turn a reimplementation modelling ProcessTurn perfectly would have written an autosave one word out of step. And the instrument's thinnest part ran live on the same turn -- ProcessTurn crossed a block boundary (left 11 -> 615, one twist, 20 words) and the bracket still reconciled to residual 0. --- findings/control-flow/tail-rng-ledger.md | 53 ++++++++++++++++++----- verify/traces/tailrng-zuul-long.jsonl.gz | Bin 0 -> 22450 bytes 2 files changed, 43 insertions(+), 10 deletions(-) create mode 100644 verify/traces/tailrng-zuul-long.jsonl.gz diff --git a/findings/control-flow/tail-rng-ledger.md b/findings/control-flow/tail-rng-ledger.md index 0e87526..95879be 100644 --- a/findings/control-flow/tail-rng-ledger.md +++ b/findings/control-flow/tail-rng-ledger.md @@ -386,19 +386,52 @@ Three things follow, none of which was knowable before: 3. It explains why the campaign never noticed: no save in the corpus is within 40 turns of a decay event, and the ones that could get there are the newest saves in it. -**Phase 11's draw therefore remains a path no save exercises — a hypothesis, and labelled one.** What *is* -now instruction-verified is the predicate that decides it (§6.1), and what is measured is the distance. +### 9.1 The prediction, and the turn it came true -### 9.1 The model is stated but not yet tested +Because `min_life` was falling by exactly 1 per turn — 43, 42, 41 … 30 at turn 34, with the traffic term +contributing nothing on this map — a numeric prediction became possible, and it was committed to +`sots-engine/docs/Z-tail-rng.md` §6 at turn 34 with the run still in flight: -`predict_words` is computed at hook entry, before the original runs, and recorded on every node-line-decay -record. It read **0** on every call and the measured delta was **0** on every call. That agreement is worth -exactly nothing as a test of the model — it is the "0 diverged while comparing nothing" shape this campaign -has already paid for — and it is reported that way rather than as a green tick. +> **P9. The first phase-11 draw happens on turn 64, and costs exactly 1 word.** Node-line decay records +> `np_min_life = 0`, `predict_words = 1`, and a measured `rng` delta of 1; the tail's total becomes 1 +> instead of 0; the bracket total becomes `ProcessTurn + 1`. -Compare mode was **not** run on this hook for the same reason: with a prediction of 0 and a measurement of 0, -`ours` would advance the scratch generator by nothing, diff clean, and prove only that the harness works. -The model becomes checkable the first time a line expires, and the descriptor is ready for that day. +The game was played to turn 64. **Every clause held.** + +| turn | node paths | mortal | min life | ≤5 | expired | `predict_words` | node-decay words | **tail words** | `ProcessTurn` | bracket | residual | +|---|---|---|---|---|---|---|---|---|---|---|---| +| 62 | 64 | 13 | 2 | 1 | 0 | 0 | 0 | 0 | 18 | 18 | 0 | +| 63 | 64 | 13 | 1 | 1 | 0 | 0 | 0 | 0 | 18 | 18 | 0 | +| **64** | 64 | 13 | — | 0 | **1** | **1** | **1** | **1** | 20 | **21** | **0** | + +**That is the first non-zero tail cost this campaign has ever recorded**, and it is exactly the draw lane K +found by reading 0x007ae095. The defect lane K warned about is no longer latent, no longer inferred and no +longer a hypothesis: **on turn 64 of this save, a reimplementation that models `ProcessTurn` perfectly and +stops would have written an autosave one generator word out of step, and every subsequent turn would +diverge.** + +`predict_words` is computed at hook entry, *before* the original runs, from the same `RemainingLife` +predicate transcribed in §6.1. It said 1; the measurement said 1. That is a real check of the model — as +opposed to the 63 preceding turns, where it said 0 and the measurement said 0, which checked nothing and was +reported that way. + +### 9.2 The twist path ran, live, on the same turn + +The instrument's thinnest part (§8: "the block-chain machinery has never run live") was exercised on this +very turn. `ProcessTurn` entered with `left = 11` and left with `left = 615` — it **crossed a block +boundary**, the generator twisted, and the ledger reported `11 + (624 − 615) = 20` words. Sixty-three turns +of measurements had all sat inside a single block, so every earlier word count reduced to a subtraction; this +one did not, and the bracket still reconciled to a residual of 0. + +### 9.3 What is still not settled about node lines + +* **One expiry, on one map.** 51 of the 64 lines are permanent; the 13 mortal ones are Zuul-dug. A + non-Zuul game may never produce a mortal line at all. +* **The `0x20000`-fleet gate has never been exercised**, because it only matters when the roll *succeeds* + and no fleet was riding this line. Whether the roll succeeded here is not visible in a word count — the + draw costs 1 either way, which is the whole point of §6's correction. +* **Two expiries on one turn has never been observed** (`np_within5` read 1, never 2), so "one word per + expired line" is confirmed for *one* line and extrapolated for two. --- diff --git a/verify/traces/tailrng-zuul-long.jsonl.gz b/verify/traces/tailrng-zuul-long.jsonl.gz new file mode 100644 index 0000000000000000000000000000000000000000..6f9cfe6800fda2129a0f975595a096b3e259f1b2 GIT binary patch literal 22450 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