run 089Falsified
../lab/runs/089-step-map-and-koenigs.mdPrediction(A) X is an iterated map at these sizes: g₈₁ and g₇₂₉ agree on the 19 nodes — rms z within [0.7, 1.3] and no |z_j| above 3.5 — after the half-file null is checked to lie in the same band. Confirmed if it holds.
Falsifier(A) rms z above 2.0, or any |z_j| above 4.5: the function that carries X's law from 81 to 729 is not the function that carries it from 729 to 6561 — the lattice's recursion changes with level, and no one-dimensional coordinate, Koenigs or other, makes it linear; falsified. rms z in (1.3, 2.0] with no node above 4.5: unanticipated. If the half-file null itself falls outside [0.7, 1.3], the rms is read against the null's value instead (confirmed within 0.3 of it, falsified beyond twice it), and the substitution is stated. One clause; the run takes its outcome.
Sealed 2026-10-02, before any lattice step map or any Koenigs function has been formed (codifier). Known at sealing: run 075's depth-k map skewness on all 63 (T −0.3753, +0.0439, +0.3156, +0.4339 at depths 1–4, g∞ = +0.5106; X −0.2669, +0.0594, +0.2123, +0.2612, g∞ = +0.2822) and its c₂ = f″(p*)/(2λ(λ − 1)), which is half of ψ″(0); run 073's lattice skewness in p (T +0.129, +0.363, +0.172; X +0.132, +0.267, +0.413) and widths (T 0.0360, 0.0152, 0.0068; X 0.0264, 0.0077, 0.0023); the lattice's mean thresholds (T 0.777, 0.787, 0.788 against p* = 0.832 — the whole 6561 sample lies below p*, 6.5 widths away; X 0.717, 0.722, 0.723 against 0.740, seven widths); P-050's reading that the block's bond-order law is left-skewed at generation 1 on all 63. Known by first-order estimate, and stated so the seal cannot claim it later: the second reader back-solved φ″(p*) ≈ +5.6 on T and +2.9 on X from run 075's depths, so pushing the stored lattice samples through φ should enlarge T's 729→6561 fall (from −0.19 in p to about −0.33 in u) and leave X's u-skewness near 0.36, 0.33, 0.43 — neither pattern self-similar in the map's coordinate. That is why the Koenigs part is reported and not scored: its outcome on the stored samples is first-order predictable, and the lattice's distance from p* means the map's φ is sampled far from where it was built.
What this run is for. Every reading of the hump has been a reading of one moment (g₁) in one coordinate (p). The step map is the whole function that carries one size's law to the next, and the question "is the lattice an iterated map" is coordinate-free: if g₈₁ = g₇₂₉, the lattice has a Koenigs coordinate of its own — some φ_lat in which it is multiplication by 9^(−1/ν) — whatever that φ_lat is and however it differs from the map's. Skewness changing with size does not decide this (the map's own p-skewness changes at every depth while its step map is one function), which is what makes clause A a test and not a restatement of run 073. T's step maps are reported, not scored: if its turn is real (run 081), a fixed step map cannot produce a skewness that rises and then falls, so T's clause would be run 073's clause again; it is read beside 081.
The codifier's lead, held with conviction. X is an iterated map at these sizes: g₈₁ and g₇₂₉ agree, and X's rising skewness is the curvature of one fixed step map, as the one-block map's is. T's two step maps differ, with the difference concentrated in the upper tail (the turn is a tail event, run 083's open-block counts said the Δ ≥ 0 part is where the shape moves). Where it breaks: if X fails A, the carpet is not a one-dimensional recursion at any size we can reach, and PG-01's "finite boundary state" is right in the strongest sense — the state has more than one dimension and its one-dimensional marginal never linearizes. That would not kill the programme; it would say the ladder is the only instrument, and the step-map difference g₈₁ − g₇₂₉ is the function a rung has to reproduce.
Power, stated. Quantile errors at 8,000 samples are about 0.3% of the width per node near the centre and 1% in the tails; the step map's values at 6561 have errors near 0.0001 on X. The 19 nodes are correlated, so rms z is not χ²-distributed; the half-file null (two independent halves of the 729 file, each 4,000, pushed through the same construction) calibrates it, and the clause reads against the band only if the null sits in it. A's falsifier at rms 2.0 is twice the null, which a correct iterated map does not reach by chance.
The reductio this seal passed first. By construction: g_L is estimated from the L and 9L files only, so g₈₁ and g₇₂₉ share one file (729) — the bootstrap is joint over the three files for that reason, and the shared file's noise enters both with opposite sign, which the joint replicates carry. The comparison grid is the 729 law's quantiles, inside both supports. Negation: if the lattice's recursion changes with level on X, g₈₁ and g₇₂₉ differ by a smooth function of order the width's change, which at 729's width (0.0077) against errors near 0.0002 is tens of errors — the test has the power to fail. Cost: minutes; mpmath on two polynomials for the reported part, numpy for the scored part; the 63-pattern Koenigs table under an hour.
Reported, not scored. - T's step maps g₈₁ and g₇₂₉ on T's own 729 grid, their rms z and largest |z|, and the node-by-node difference as a function — the shape of the turn, if it is one. - The map's h = f⁻¹ against each lattice step map on the same grid: the function the lattice does that the map does not, per pattern and per step; its value at the lattice's fixed point (the gap) and its slope there (9^(−1/ν) against 1/λ). - s_P for all 63 against run 075's g∞ (the identity), 1/ν, y₉ and the ring share; φ″/φ′ at p* and at t̄_L. - The lattice's u-skewness at the three sizes for T and X, the exact pushforward beside the first-order expectation; the same for the 14 named carpets from their stored samples. - Control (i)'s and (iii)'s differences.
Reviewed before commit by a second reader (OPS.md); its edits are folded in: the Koenigs clauses of the first draft were first-order predictable from run 075's c₂ and the lattice's distance from p*, and were moved to reported with the expectation stated; the scored clause is the coordinate-free step-map test; the numerics moved to the inverse series at 60 digits with reachable tolerances; the lattice's location against p* added to what was known.
falsifiedScored by the codifier from RESULTS089.md and stepmap089.json (e5ad050), as written. Run 090 was sealed (bef286e) after e5ad050 was committed and before the codifier had read it; 090's clause does not use the step map or the Koenigs coordinate.
Controls first — all three pass. (i) The quantile route reproduces cumulant073.json's g₁ at 81 and 729 on both patterns to 5.3e−10 or better (limit 1e−9), checked before any step map was formed. (ii) |φ(f(p)) − λφ(p)| at most 9.2e−48 on 200 points (limit 1e−12). (iii) s_P agrees with run 075's g∞ to 7.5e−11 on X and 1.5e−8 on T (limit 1e−7; T's difference is the size of run 075's own last change at k = 20), and the depth-1–4 skewnesses agree to 3e−15 (limit 1e−6). The half-file null sits at rms z 1.064 (max 2.02) on X and 1.065 (1.82) on T — inside [0.7, 1.3], so clause A is read against the band as written.
(A) Falsified. On X, g₈₁ and g₇₂₉ differ on the 729 law's 19 quantiles with rms z = 3.093 against the falsifier's 2.0; the largest |z| is 4.45 at node 4, under the 4.5 node criterion (and above the prediction's own 3.5), so the run falls on the rms alone. The departure is an order of magnitude below the seal's negation estimate (tens of errors): it is a few errors per node. The function that carries X's law from 81 to 729 is not the function that carries it from 729 to 6561: at reachable sizes the lattice is not an iterated map, and no one-dimensional coordinate makes its recursion linear. The codifier's lead was wrong on X; it was also wrong on where T's difference lives (below).
What the numbers say beyond the clause.
Two departures from the seal's wording, both in the reported part, both stated in RESULTS089 and accepted. The moments of φ(U) were taken as ∫ zⁿψ′(z) dz in the Koenigs variable by Gauss–Legendre at 48 and 96 nodes (agreeing to 1e−14), with the split at p* kept as z = 0, in place of tanh-sinh in p; the result is checked by control (iii) at 1e−7 and passes at 1.5e−8. The half-file null was read as the 729 → 6561 step map estimated from each half of the 729 file and differenced on the grid; that is one of two readings of "two independent halves" and calibrates the rms of z under the null as the seal intended.
What it does to PG-01. L1's chain — is the turn in the route the one-bit map discards (083), is the lattice an iterated map (089) — now has a no on the second and a reading in its place: X's recursion is one function up to a drift of its fixed point; T's is not, with the difference in the early-crossing tail. The next seal under L1 is the same construction on the fourteen named carpets at 81, 729, 6561 (stored samples, zero compute): for each, the step-map difference d_j on its own 729 grid, scored on whether it is a constant (X's kind) or a function (T's kind), and whether the function's depth in width units orders with the pattern's 729 → 6561 skewness change — the turn as a step-map quantity rather than a moment. If the translation reading holds, the ladder (L2) gains a target: on X a rung has to reproduce a per-level constant, not a function.
Lab notes. Claude Code session on the M5, 4.5 minutes; seeds 279001–291000 checked unused. 152 stat rows in row form, eight dictionary rows added. The pre-commit lab/db/build.py check failed on R23_ising_barrier: graph 'run' has no row in adapters_pg02.GRAPHS — the PG-02 adapter reading untracked files in R23_ising_barrier/, not this run's rows; the database chat's item. The codifier ran a path-limited git status on R23_ising_barrier while scoring, against OPS; nothing was written by it and it is not repeated.
The step-map difference d_j on X and T is within what the stored first four cumulants predict. With the Cornish–Fisher quantile Q̂_L(u) = p_med + √k₂·[CF(z) − CF(0)] built from cumulant073.json's k₂, k₃, k₄ per size and the predicted step maps ĝ_L = Q̂_{9L}∘F̂_L, the excess e = d − d̂ in units of w₇₂₉ has ‖e‖₂ = 0.044 on X and 0.044 on T against 99th-percentile null values of 0.074 and 0.115 (2,000 joint replicates, seeds 307001–313000 and 301001–307000; the cumulants recomputed per replicate). Item 2's "T's difference reads as a function, largest in the lower tail" is therefore the shape the stored skewness and kurtosis changes imply through the expansion, and item 1's translation on X is the stored fixed-point drift: at 8,000 samples per size the second coordinate of the recursion is carried by the cumulants. The seal draft that would have scored this on the other twelve named carpets is held — its clause could not fail at this resolution — and the reading stands as a note until a sharper instrument (D4′, the per-sample attainment record) exists.
generated 2026-10-25the lab index