Math Mapgenerated 2026-10-25 · a354234
PUBLIC BUILD

run 087Settled

P-050 read the census's local slopes and found the cut-4 exponents reading as a fan around y₉ — the spread of the local slope wider over 729→6561 than over 81→729 — carried by five patterns whose stored drift reads positive while thirty of thirty-five fall, only one of them beyond two drift errors: #60 (+0.043), #63 (+0.010), #10 (+0.012), #3 (+0.007), #33 (+0.001). Each rests on one set of 8,000 samples per size, and run 079 has shown a two-error pattern on H failing to replicate. Drawn again with fresh seeds, do the risers rise?

slug
risers-reseed
state
run
created
2026-10-01
sealed
2026-10-01
builds_on
[080, 071, 079]
concepts
[fractal-dimension]
programme
PG-01
statistic
BernoullisBook over ssh (alias bernoulli) if perc.c builds there, otherwise the M5 after run 085; the machine and the thread count do not change the numbers (perc seeds each sample from (seed, sample index)). perc.c unchanged; graphs cen60_g, cen63_g, cen10_g, cen3_g, cen33_g at g = 2, 3, 4 as the census built them (gen.py write). 8,000 samples per graph; perc seeds 8701 + 3·j + (g − 2) for pattern j in the order #60, #63, #10, #3, #33 (8701–8715). Output samples087/cen<i>_<g>.txt. No statistic is computed until all fifteen files are complete. Per pattern: p_med and w at each size by the census's estimator, the two local slopes s₂₃ and s₃₄ (−Δln w/ln 9) and the drift d = s₃₄ − s₂₃, 1/ν as the endpoint slope; errors by bootstrap, 2,000 replicates, numpy.random.default_rng(269001 + 3·j + (g − 2)) per graph, resampling rng.integers(0, 8000, 8000), slopes and drifts from the replicate widths; every error the replicate standard deviation (ddof = 1). The stored drifts and their errors are recomputed from the stored samples by the same script (control ii) and are the comparison values for the reported differences; a combined error is the quadrature sum of fresh and stored. Seeds checked against every perc seed (49–8612, plus 490, 510, 530, 7002) and bootstrap range (up to 259012) in the carpet_perc scripts and runs 051–086: none reused. Controls, checked first, any failure withdrawing the run: (i) construction: each graph's M and terminal flags equal the census graph's (byte-identical graph.bin to the stored cen<i>_g.bin); (ii) the analysis script on the stored samples of the five patterns reproduces census080.json / bands071.json / census068.json's recorded p*, w and 1/ν to 1e-6; (iii) the reseed is a reseed: the fresh and stored p_med at 729 agree within 3 combined errors on all five (five points at 3σ: family-wise pass probability 0.987). Script risers087.py; output risers087.json with a top-level rows list (docs/DATABASE.md; every statistic name a row of lab/db/statistics.json, added if missing) and RESULTS087.md.
script
R27_tree_groups/carpet_perc/risers087.py
artifacts
[R27_tree_groups/carpet_perc/RESULTS087.md, R27_tree_groups/carpet_perc/risers087.json, R27_tree_groups/carpet_perc/samples087/]
outcome
unanticipated
source
../lab/runs/087-risers-reseed.md

Prediction(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.

Scored 2026-10-03 — unanticipated

Scored 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.

  1. The run could not resolve its own question, and the seal said it could. The seal put the drift error at about 0.010 and the four-mean's at 0.005. They are 0.013–0.014 and 0.0066. The drift is (2 ln w₇₂₉ − ln w₈₁ − ln w₆₅₆₁)/ln 9, so the 729 width enters twice and adds: the reported drift errors are 1.20–1.24 times the quadrature of their two slope errors (√(3/2) for equal relative errors). The seal's 0.010 already had that factor (0.006 × √3); what it had wrong was the slope error, 0.006 assumed against 0.0069–0.0082 measured. So A's margin was 1.6 errors from zero, not 2, and B's 1.5. Each clause quantity sits 0.7 errors above zero and 0.8–0.9 below its margin. The codifier's error; the outcome is "not resolved", not "a small rise".
  1. A reading: #60's stored rise was mostly one file's draw. Its fresh width at 729 is 0.01577 against the stored 0.01646, lower by 2.57 combined errors, the largest of the fifteen fresh-against-stored width differences; its widths at 81 and 6561 agree (−0.19, −0.47). The 729 width difference alone accounts for −0.039 of the −0.034 change in drift (81 and 6561 give +0.001 and +0.004); with the fresh 729 width in the stored triple the stored drift would be +0.004. A reading, not a result: 2.57 as the largest of fifteen has family-wise p ≈ 0.14, two files cannot say which one is the outlier, and the drift difference itself is −1.79 combined errors. #60 was picked as the top of thirty-five stored drifts (this seal's reductio); a lower value on redraw is the direction selection predicts, and the size was not computed.
  1. Pattern by pattern, fresh alone: #63 +0.018 and #10 +0.022 (1.3 and 1.6 errors above zero), #3 −0.012 and #33 −0.009, #60 +0.009. No fresh drift is two errors from zero. The mean of the five, computed here, is +0.0056 ± 0.0059 against the stored +0.0147 ± 0.0062 (difference −0.0091 ± 0.0085, 1.1 errors). Inverse-variance combinations of fresh and stored, computed here from 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.
  1. The census reproduces. By this seal's own statement this is the first reseed of census patterns. Over fifteen graphs the fresh and stored p_med differ at rms z 0.81 (largest 1.81) and the widths at rms z 1.18 (largest 2.57; χ² 20.8 on 15, p = 0.14; 14.2 on 14 without #60 at 729). The differences are consistent with the bootstrap errors; fifteen comparisons fix the error scale only to about ±18%. Eleven of the fifteen fresh files (all at 81 and 729, and #60's at 6561) were drawn on BernoullisBook; the results do not say which machine drew the stored files, but BernoullisBook reproduced 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.
  1. One stream on two sizes: no rank dependence detected. Spearman between sample i at 729 and sample i at 6561 drawn with the same perc seed: +0.022 (p = 0.053; 1.9 null errors, family-wise 0.20 over four), +0.007, +0.001, −0.012; with different seeds +0.009, −0.003, −0.015, +0.011; the null's standard error is 0.011. A reading: the four wrong-seed files are then ordinary draws at 6561. Used in place of the sealed files they give drifts +0.0105, +0.0205, −0.0036, +0.0026 and a four-mean of +0.0075 — computed here, in the same band as the sealed +0.0048, and sharing the 81 and 729 files with the sealed drifts, so not an independent check. No clause reads them. Their widths differ from the sealed files' by +1.0, +0.2, −1.0, −1.7 of √2 × the sealed file's error; their skewness is 0.384, 0.120, 0.146, 0.250 against the sealed 0.416, 0.199, 0.135, 0.257, with no error recorded for either.
  1. Reported items are missing, and one of them cannot exist. Absent from 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.

Addendum, 2026-10-03 — the lab's remaining reported items (RESULTS087.md's addendum, 00dd935)

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).

generated 2026-10-25the lab index