diff --git a/docs/Y-standalone-rng-and-tail.md b/docs/Y-standalone-rng-and-tail.md index eb3053d..23b525c 100644 --- a/docs/Y-standalone-rng-and-tail.md +++ b/docs/Y-standalone-rng-and-tail.md @@ -131,3 +131,70 @@ This lane does not fix it: the file is another lane's. It is measured and report **Falsification.** If no `maxIncome` in the int32 range separates the two constants, the correction is real but inert and should be recorded as such. + +--- + +# Outcomes + +Written after the run, against the predictions above. Nothing above was edited. + +## P-Y1 — held exactly + +16 words on both calibrated pairs, all attributed to the trade-raid phase, `left` 379 and 359. The +player vector read 8 on both, as the wire says. The falsification table's other branches did not +fire: not 8 (the NPC gate was open), not 24 (the refugee gate was not). + +## P-Y2 — held exactly + +Residual 4 on the turn-4→5 pair and 2 on the turn-5→6 pair, matching the per-call-site split +(2 detection + 2 research, and 2 detection + 0 research). The state block is byte-identical in both +cases and only `left` differs, so the two instruments disagree about nothing. + +**The answer to the milestone question is therefore "no", by 4 words and by 2.** + +One thing this pair of numbers does *not* establish, and the prediction should have said so: the +residual is a subtraction, so it confirms the **sum** of the modelled and unmodelled terms, not each +term separately. The static bound is what carries the 16; this arithmetic corroborates it. + +## P-Y3 — held + +480 fields over 80 player-records across 11 saves, 0 mismatches, 0 dangling owned-system ids. The +same check runs inside every turn and is printed as a phase note. + +## P-Y4 — held, and the shape of the result is more useful than the claim + +`--commit-blocked` closes 29 and regresses 17 on the first reference pair, and closes 13 and +regresses 19 on the second. Every regressed leaf is in the unmodelled set: `almem` x8, `inc` x3, +`sav` x3, three of the ship census. Nothing outside it moved. + +So "committing makes it worse" is **not** what the measurement says: on the first pair the turnstats +subsystem is net +7 and on the second it is net -9. The record is right in six fields and wrong in +five, and which way the net falls depends on the save. The phase stays blocked, and it becomes a +clean +24 the moment the alliance mask and the budget land. + +## P-Y5 — WRONG in its framing, and the correction is the result + +The prediction said the two constants differ "for some maxIncome reachable in a real game" and that +the smallest such value could be found by a linear scan. The scan found it immediately, and the +framing -- inherited from the phrase "one ulp out on large empires" -- was the wrong picture +entirely. + +`trunc(m / -0.15)` and `trunc(m / -0.15000000596046448)` differ for **every m divisible by 3**: 1000 +of the first 3000 integers, smallest `m = 3` giving -20 against -19. It is not precision loss at +scale. `m / 0.15` is an exact integer whenever 3 divides m, and the two constants straddle it. + +Measured on the corpus by inverting the stored limit: **5 of 25 player-records would get a different +stored value from the engine's current constant than the game wrote.** The defect is live, it is a +whole unit rather than an ulp, and it is one third of all inputs rather than a tail. + +The file belongs to another lane in flight, so it is reported and not fixed here. + +## An unpredicted result: the blocked input is recoverable from every save + +The elimination limit is injective in the maximum-income sum it is computed from (slope about 6.67), +so it inverts. Every save in the corpus therefore states, for every player that owns anything, the +exact sum of its systems' maximum money outputs -- which is the term that blocks `ComputeBudget`, +both savings phases, the bankruptcy limits and five fields of the turn record. + +That was not predicted and is the most useful thing this lane found. The same inversion recovers the +protection-limit factor as 3.3 from the saves, independently of the game data files.