run 087Settled
../lab/runs/087-risers-reseed.mdPrediction(A) #60 rises again: its fresh drift d exceeds +0.020. (B) The fan is not one pattern: the mean fresh drift over the other four (#63, #10, #3, #33) exceeds +0.010. Confirmed if both hold.
Falsifier(A) #60's fresh drift at or below 0: the one clear riser was a draw, falsified. Between 0 and +0.020, unanticipated. (B) the mean fresh drift of the four at or below 0: falsified — the census's "risers" beyond #60 are the upper tail of thirty-five noisy drifts and the fan is one pattern at most. Between 0 and +0.010, unanticipated. The run is falsified if either clause is falsified, confirmed if both hold, otherwise unanticipated. A confirmed A with a falsified B says one pattern rises and the fan is that pattern; a falsified A with a confirmed B says the tail is real but #60's size was a draw.
Sealed 2026-10-01, the night P-050 was filed, before any fresh sample of the five exists (codifier). Known at sealing: the stored local slopes and drifts of all 35 census-measured patterns (068, 071, 080); run 079's calibration that the bootstrap error is not too small on H; P-050's reading and its own caveat that only #60 rises beyond two drift errors (#63 and #10 at about one).
What this run is for. Two things at once. It is the test of P-050's item 2 — whether the cut-4 exponents are fanning or the census's five risers are the upper tail of thirty-five noisy drifts — and it is the removal run for PG-01's scaffold S2 (single-exponent scaling): if the risers rise, the two-term fit on their six sizes (reported here, not scored) is the first place a correction-to-scaling term has data to stand on. It is also the first reseed of census patterns at all, so control (iii) doubles as the census's own reproducibility check.
The codifier's lead, held with conviction. #60 rises again at +0.03 to +0.05; of the other four, two or three rise, and the mean drift lands near +0.015. Where it breaks: the drift errors are about 0.010 (two local slopes at 0.006 each, sharing w₇₂₉ with opposite signs), so #63, #10 and #3 are within about one error of zero in the record; if the four come back averaging at or below zero the fan was #60 alone, and B's falsifier fires while A holds.
Power, stated. A's margin (+0.020) is about two drift errors above zero and two below the stored value; it is an effect-size threshold. B's mean over four has error about 0.005, so +0.010 is two errors from zero and the clause resolves; #60 is kept out of B so that one pattern cannot carry it. The stored drifts are not the comparison for A or B (the clauses are on fresh values alone, as run 079's were); the fresh-against-stored differences are reported.
The reductio this seal passed first. By construction: the five were selected as the top of thirty-five drifts, so their stored values are biased upward by selection (the winner's curse); the clauses are therefore on the fresh values and A's threshold sits below #60's stored value by two errors. Negation: under pure noise with drift error 0.010, the expected maximum of thirty-five draws is about +0.021 — below A's margin and below #60's stored +0.043 — so #60's stored value is about two errors above the noise maximum, and a fresh value near zero would be a surprise rather than a regression; the mean of four fresh draws under noise is 0 ± 0.005, which B's margin clears at two errors. Cost: five patterns at three sizes; on the M5 about 55 minutes per pattern (the L = 6561 graph dominates), on BernoullisBook about three times that — fourteen hours at four threads, memory 1.5 GB per L = 6561 graph. Time is reported, not a condition.
Reported, not scored. - Every fresh p_med, t_mean, w, g₁ and local slope beside the stored values, with the fresh-minus-stored differences in combined errors; the inverse-variance combination of fresh and stored drifts. - The two-term fit w = A·L^(−1/ν)·(1 + B·L^(−ω)) on the six sizes (three stored, three fresh) per pattern, with ω free and then held at a common value across the five — scaffold S2's removal test, reported. - Control (iii)'s five z values and the family-wise statement.
Reviewed before commit by a second reader (OPS.md); its edits are folded in: clause B restated on the four patterns other than #60; the drift error corrected for the shared width; the risers named by their stored drift, not as risers.
Clarified 2026-10-01 (codifier), before any fresh g = 4 file exists. The seal allots bootstrap seeds only to the fresh graphs (269001–269015). The stored recomputations (control ii and the reported fresh-minus-stored differences) take default_rng(269101 + 3·j + (g − 2)) per stored graph, 269101–269115, checked unused; not the stored graphs' perc seeds, which are a different generator's and stay out of the bootstrap. Also: the seal names BernoullisBook with the M5 as fallback; BernoullisBook measured 14× slower than the M5, so the g = 4 graphs may be split between the two machines — the numbers do not depend on the machine (the cross-architecture reproduction of cen60_2 passed byte for byte) and the seeds are per graph. Which machine sampled which file is reported.
Amended 2026-10-03, before any statistic of any samples087 file was computed (codifier).
What happened. The seal's perc seeds are 8701 + 3·j + (g − 2), so the g = 4 graphs take 8703, 8706, 8709, 8712, 8715. When the run was split between machines the codifier's message listed the M5's four graphs with 8705, 8708, 8711, 8714 — the g = 3 seeds of the same patterns — and the lab launched with that list. The four files cen63_4, cen10_4, cen3_4, cen33_4 on main (c166f9b, 83e05fa, 9c4d9b9, 55e8bc8) were therefore drawn with their pattern's g = 3 seed. The lab found it by checking the files against the formula before running the analysis, stopped, and computed nothing. The error is the codifier's; the seal was right and is unchanged.
Why it matters. perc derives each sample's stream from (seed, index), and its Fisher–Yates draw picks bond ⌊u·(M − t)⌋ from a list ordered by position, so one stream on two sizes of one carpet can place its early bonds in corresponding places. Sample i at g = 3 and sample i at g = 4 would then not be independent, and the drift s₃₄ − s₂₃ is built from exactly those two sizes.
What is done. The four graphs are re-sampled on the M5 with the sealed seeds 8706, 8709, 8712, 8715, 8,000 samples each, and those files are the ones every sealed statistic reads. The four wrong-seed files are kept, renamed samples087/wrongseed/cen<i>_4_s<seed>.txt, and enter no clause. Nothing else in the seal changes.
Added to "Reported, not scored", decided here before any number exists. The wrong-seed files are a test nobody designed: one stream on two graphs. For each of the four patterns, Spearman between t_i at g = 3 and t_i at g = 4 over the 8,000 shared sample indices, on the wrong-seed g = 4 file (same seed as g = 3) and, as its null, on the sealed g = 4 file (different seed); and p_med, w and g₁ of each wrong-seed file beside the sealed file's. A correlation on the same-seed pairs and none on the different-seed pairs would say that files sharing a seed are not independent draws — which bears on run 092's question and on every run whose seeds were assigned per pattern rather than per graph.
unanticipatedScored by the codifier from RESULTS087.md and risers087.json (c0941d4), as written. A scoring reader (OPS.md) read the note against the results before commit; its edits are folded in.
Controls first — all three pass. (i) All fifteen graphs byte-identical to the stored ones. (ii) The script on the stored samples reproduces the record to 5.6 × 10⁻¹⁶ (pass threshold 10⁻⁶). (iii) Fresh against stored p_med at 729: z = +1.81, −0.71, +0.11, +0.41, −0.10, all within 3 (the largest of five at 1.81 has family-wise p ≈ 0.31). Before any statistic the lab also checked every file's seed from the data, on its own initiative: perc re-run with the sealed seed reproduces each file's leading lines.
(A) Unanticipated. #60's fresh drift is +0.0089 ± 0.0128: above 0, below +0.020. (B) Unanticipated. The mean fresh drift of #63, #10, #3, #33 is +0.0048 ± 0.0066: above 0, below +0.010. Neither falsifier fired and neither clause confirmed; the run is unanticipated. The lead in this seal's body (#60 again at +0.03 to +0.05, the four near +0.015) was wrong in size on both.
What the numbers say beyond the clauses.
risers087.json (the stored halves were selected for being high, so these lean up): #60 +0.0245 ± 0.0094, #63 +0.0141 ± 0.0096, #10 +0.0170 ± 0.0097, #3 −0.0026 ± 0.0093, #33 −0.0041 ± 0.0096.samples071/cen60_2.txt byte for byte before the run, so for that file the machine is not a variable. 1/ν agrees within 0.6 combined errors on four patterns; #3's is lower by 0.012 (−2.2). The between-file excess that run 081's calibration note found in the skewness at 6561 cannot be looked for here: g₁ fresh against stored is not tabulated in the results.RESULTS087.md: t_mean, g₁ fresh beside stored, the per-size differences in combined errors (supplied in item 4), control (iii)'s family-wise statement (supplied above), the inverse-variance combination (item 3), and the two-term fit. The lab is asked for the first two as an addendum. The fit as sealed is not determinate in either variant: with ω free, four parameters on three distinct sizes (six files per pattern are three sizes twice); with ω common, sixteen parameters on fifteen size-means, and at any fixed ω each pattern's three parameters fit its three sizes exactly, so ω is unconstrained. The codifier's design error. Scaffold S2's removal test therefore does not exist yet.What it does to PG-01. L10: the fan as "five risers" has no fresh support — no riser rises by two errors on new draws, and the one clear riser in the record did not repeat (+0.009 ± 0.013 fresh, 1.8 combined errors below the stored value) — and it is not refuted either: the fresh mean is positive at 0.7–0.9 errors and two of the five have positive fresh drifts at 1.3–1.6 errors. Run 086's score read the fan as the polynomial's on the strength of the stored drifts of #60 and #63; that reading is left unsupported, not contradicted. S2 (single-exponent scaling) stands unremoved because its test was ill-posed, not because it passed. Two next steps, both zero-compute on stored samples and both needing a sighted pass before a seal: (a) over all the census's cut-4 patterns, is the spread of the stored drifts larger than their bootstrap errors predict (a χ² about their weighted mean) — the fan asked without picking winners; (b) S2's test restated with the level-1 width, which is exact from the polynomial, as a fourth size: three local slopes per pattern and one correction exponent common to the patterns. The held methods-programme candidate keeps waiting on (b).
Lab notes. BernoullisBook drew every graph at 81 and 729 and #60's at 6561 (34,864 s at 4 threads); the M5 drew the other four at 6561 twice (39–43 minutes each at 8 threads, times087.txt), the first time with the wrong seeds from the codifier's split message (the 2026-10-03 amendment). The lab caught that before computing anything; the re-sampled files were committed 2026-10-03 (3a7a129, b5bcb44, e7822ba, 6f09bb8). The lab's four new dictionary names reached lab/db/statistics.json inside another session's commit (3913aa1, run 084 stage 2), which swept the file from the shared working tree; the content is right and only the attribution is off. The analysis was run twice, the second time after the script was committed so the rows carry its commit; the numbers are identical.
Not scored; no clause quantity changes. The lab drew the seal's bootstrap streams again for t_mean and g₁ (the same replicates: p_med and w errors reproduce to 10⁻⁹) and gave the four wrong-seed files errors of their own (seeds 269201–269204, checked unused).
samples071/cen60_3.txt) is the one whose width was 2.57 errors high (item 2). Without it the other fourteen have rms 0.83. 3.05 as the largest of fifteen has family-wise p ≈ 0.03. A reading: the file is an unusual draw in two statistics; width and skewness of one sample are not independent, so this is less than a second 3σ.generated 2026-10-25the lab index