Z: P9 -- the first node-line draw lands on turn 64 and costs exactly 1 word

Written with the run in flight at turn 34. min_life is decrementing by exactly
1 per turn (43 down to 30), so the traffic term contributes nothing on this map
and the oldest mortal line expires 30 turns out.

Four ways it can be wrong, each with its own symptom. Every prediction this
lane has made so far compared 0 against 0; this one does not.
This commit is contained in:
alex 2026-09-08 09:50:21 -04:00
parent 6589a3985f
commit fe39c82bea

View file

@ -150,3 +150,33 @@ Two results worth more than the predictions:
Two corrections went back into `combat-done-tail.md` in place: the node-line fleet check runs *after* the
`Chance` call and cannot gate the draw, and `StrategyHost::Autosave` is `ret 8` returning the `std::string*`
in EAX.
---
## 6. A second prediction, written before the run reached it
Committed at turn 34 of the `zuul-turn16-noderoute` long run, with the run still in flight.
The node-line population's minimum remaining life is now decrementing by **exactly 1 per turn** —
43, 42, 41, 40, 39, 38, 37, 36, 35, 34, 33, 33, 32, 31, **30** at turn 34 — i.e. pure ageing, with the
traffic term contributing nothing on this map. `NodePath::RemainingLife` clamps at 0 and the loop skips on
`> 0`, so the oldest mortal line expires the turn its remaining life reaches 0.
**P9. The first phase-11 draw happens on turn 64, and costs exactly 1 word.** On that turn:
`Game::StrategyServer::NodeLineDecay` records `np_min_life = 0`, `predict_words = 1`, and a measured
`rng` delta of **1**; `OnAllCombatDone_Tail`'s total becomes **1** instead of 0 — the first non-zero tail
cost this campaign has ever recorded — and the bracket total becomes `ProcessTurn + 1`.
*Falsified by:*
* **it fires earlier than 64** — then the traffic term `nptf / npdtf` is contributing after all, and the
ageing-only reading of the last fifteen turns is wrong;
* **it fires later than 64, or not at all by turn 66** — then `min_life` is not the line that expires first
(a line dug later with a shorter `npdtn` would do it), or `S+0xc` is not the `turn` the original passes;
* **it costs more than 1 word** — then more than one line expires on the same turn, which the `np_within5`
column would have warned about (it has read 0 on every turn so far), **or** node-line decay has a draw
site the sweeps missed, which is exactly what method rule 16 says a call-graph sweep cannot rule out;
* **it costs 0 with `np_min_life = 0`** — then the expiry predicate transcribed in §6.1 of the finding is
wrong somewhere, most likely in the two never-expire early-outs.
This is the first genuinely falsifiable numeric claim this lane can make: every earlier one compared 0
against 0.