Math Mapgenerated 2026-10-25 · a354234
PUBLIC BUILD

run 092Settled

The calibration note on run 081 found the bootstrap error of the skewness g₁ right within a file (pooled block-to-bootstrap ratio 1.00 over ten files) while files of one graph differ beyond their block errors at L = 6561 — T4: 0.172 ± 0.026 on samples053/T4.txt (the file run 073 read), run 070's 0.282 ± 0.028, run 081's 0.248 ± 0.020 (one-way F over blocks, p = 0.008); X1's F4: 0.216 against 0.348 (Welch on blocks, p = 0.005) — and not at 729. The two low files were drawn on the M5 (runs 053, 063), the three high ones in the cloud (runs 070, 081). perc.c's sample path is unsigned 64-bit integer arithmetic, so one (seed, index) gives one k on any machine unless a build is defective, and nobody has checked that. Is it one sampler on both machines, and on one graph with fresh seeds does the skewness at 6561 spread as the bootstrap says?

slug
one-sampler-seed-spread
state
run
created
2026-10-02
sealed
2026-10-02
builds_on
[081, 073, 070, 053, 063]
concepts
[fractal-dimension]
programme
PG-01
statistic
(A) Bit-for-bit, keyed by sample index (perc.c writes its lines in index order in one loop after the threads join; each sample is seeded from (seed, index) alone, so the first 200 lines of a run of 200 are the first 200 lines of any longer run with that seed). perc.c at one commit (3a920cc, the only commit that has touched it; md5 e341b2c86677a0ce71cc9a6e3de5982d recorded on each machine); graphs/T4.bin with md5 de69015ffd05a5df7378bff697d53347 on each machine and graphs/F4.bin with md5 812f04ab829b81fda93a55225b3ad072 (gen.py's builds reproduce both byte for byte); the stored runs' command lines with only the sample count changed. Short runs: 200 samples at 4 threads on each of the M5 and the cloud container with perc seeds 53, 7003 and 8102 on T4 — the seeds that drew samples053/T4.txt (M5), samples070/T4.txt (cloud) and samples081/T4.txt (cloud) — and seed 6304 on F4 (samples063/F4.txt, M5); the k column (column 1) of each run compared with the first 200 lines of the stored file of that seed, and the two machines' runs with each other: eight runs. Full run: the cloud draws all 8,000 samples of seed 53 on T4 and compares k for k with samples053/T4.txt, the file the M5 drew — every line of one stored file crossed between machines. The count of differing k per run is the statistic. (B) Eight fresh draws of T4 in the cloud container at 4 threads, 8,000 samples each, perc seeds 8911–8918, output samples092/T4_s<seed>.txt, each file force-added and committed as it completes; no statistic of any of them is computed until all eight exist. Per file: t = k/M with M from the graph header; g₁ = k₃/k₂^(3/2) by unbiased k-statistics (scipy.stats.kstat); its bootstrap error from 2,000 replicates of numpy.random.default_rng(401001 + i).integers(0, n, n), i = 0 … 7 in seed order, the replicate standard deviation with ddof 1. r₈ = (standard deviation of the eight g₁, ddof 1) / (root mean square of the eight bootstrap errors). Under equal true g₁ and correct bootstrap errors, 7·r₈² is χ² on 7 degrees of freedom; its upper 5% point gives r₈ = 1.42. Power: a per-file component equal to the bootstrap error is rejected with probability 0.43, one twice it with 0.90; the record's three T4 files imply about twice (their standard deviation is 0.056 against a root-mean-square error of 0.025). Seeds 8911–8918 and 401001–401008 checked unused in every script, run file, times file and seed-named JSON key (SIGHTED-D2pD3.md, b0016d0). Controls, checked first: (i) the analysis route reproduces reseed081.json's g₁ for samples081/T4.txt to 1e−9 (the sighted pass found difference 0); (ii) integrity: each of the eight files has 8,000 lines, every k lies in [1, M], and no two files share a line-for-line identical first 100 k values (distinct seeds give distinct streams); (iii) the md5s of perc.c, graphs/T4.bin and graphs/F4.bin on each machine are the ones above before any perc run. Output sampler092.json (with a top-level rows list, docs/DATABASE.md; dictionary rows added for every new name) and RESULTS092.md.
script
R27_tree_groups/carpet_perc/sampler092.py, run092.sh (cloud session for B and A's cloud half; any Code chat on the M5 for A's M5 half)
artifacts
[R27_tree_groups/carpet_perc/RESULTS092.md, R27_tree_groups/carpet_perc/sampler092.json, R27_tree_groups/carpet_perc/samples092/]
outcome
confirmed
source
../lab/runs/092-one-sampler-seed-spread.md

Prediction(A) Every k agrees: zero differing lines in the eight short runs and in the full run. (B) r₈ ≤ 1.42. Confirmed if both hold.

Falsifier(A) Any differing k — between the two machines' reruns of one seed, or between the cloud's full run and the M5's stored file (a platform or build difference: the record's L = 6561 samples were not drawn by one sampler, and every skewness at 6561 is re-read by machine before anything else is concluded), or between a machine's rerun and that machine's own stored file (a build that does not reproduce itself, or a file drawn from other graph bytes — named as which from the md5s and the git history of gen.py since run 053): falsified. (B) r₈ > 1.42: one graph's skewness at 6561 spreads between seeds by more than its bootstrap error allows — a per-file component the within-file blocks do not see — and the turn's size carries between-seed errors from here; falsified. The run is falsified if either clause is. If A is falsified, B's eight files are still drawn and reported (they are one machine's) but B is not scored.

Sealed 2026-10-02, before any perc run for this seal and before any fresh T4 sample exists (codifier). Known at sealing: the ten-file block table of the 081 calibration note (SIGHTED-D2D3-2.md, dd1c6cf) — that table was computed by a sighted pass the codifier mis-scoped, which is why the first draft of this question became a note and not a run; the three T4 values and their machines; that run 070's machine control compared 1/ν across machines with different seeds (0.3745 against 0.3743) and never k for k; perc.c's types and write order (SIGHTED-D2pD3.md: SEED is uint64_t parsed by strtoull, the index is int64_t cast to uint64_t, seed_rng mixes seed·0x2545F4914F6CDD1D ⊕ (index + 1)·0x9E3779B97F4A7C15 through four splitmix64 rounds, the bound is a 128-bit multiply-high with bias at most M/2⁶⁴); the pooled T4 skewness of the two cloud files, 0.260 ± 0.016, 2.85 errors above run 073's.

What this run is for. Every reading of T's turn since run 073 has rested on three files at 6561 that disagree by more than their errors, and the disagreement lines up with the machine that drew them. There are two explanations and they have different consequences: a defect (two samplers — then half the record's 6561 numbers are another instrument's), or chance (one sampler — then 073's T4 was a 2.9-error draw and the turn is half its recorded size). Clause A separates them in minutes; clause B then measures the thing the bootstrap cannot: the spread between seeds.

The codifier's lead, held with conviction. A holds on every run — the integer path leaves no room for a platform difference — and B holds with r₈ near 1.0, the eight values scattering about 0.25–0.28. Then run 073's T4 is a 2.9-error draw, and T's fall from 729 to 6561 is about −0.09 on the pooled files, not −0.19. Where it breaks: B fails with A holding — a seed-level effect the sampler's seeding does not explain — and the next object is seed_rng itself (an XOR of two products may leave structure between (seed, index) pairs that splitmix64 does not remove; the test is a re-seeding through a hash and the same eight draws).

Power, stated. A: a different stream gives a different k with probability about 1 − 1/(w·M) per line (k ranges over about 3 × 10⁵ values at this size), so a wholesale different stream cannot pass 200 lines. A sporadic defect can: one touching 0.1% of samples passes 200 lines with probability 0.82, and six to thirteen samples at four or five widths in 8,000 are enough to move g₁ by 0.1 — which is why one stored file is crossed between machines in full (a 0.1% defect passes 8,000 lines with probability 0.0003). B: stated in the statistic; with eight files the confirming outcome under the record's own implied spread has probability 0.10.

The reductio this seal passed first. By construction: A compares integers produced by the same source on the same graph bytes; nothing is fitted. B's eight files are new, the three existing files enter no clause, and r₈'s null distribution is χ²₇/7 to the normal approximation of g₁ and its bootstrap error (simulated size at the 1.42 cut: 4.5–5.3% on four surrogate laws at n = 8,000; unequal errors up to ±20% move it to 5.4%). Negation: if the builds differ, A fails at the first line; if a per-file component of the record's implied size exists, B fails nine times in ten. Cost: A: about 4 minutes per short run in the cloud (10,273 s per 8,000 samples there) and about 2 on the M5 at 4 threads (2,601 s per 8,000 at 8), beside run 084's chains, and 2.9 cloud-hours for the full run; B: about 23 cloud-hours.

Reported, not scored. - The eight g₁ with errors beside the three existing T4 files'; the eleven-file one-way F over 8-block g₁ values; the pooled g₁ at T4 over the eleven with a between-file error. - The same block table for w and p_med, and each fresh file's p_med and w against the three existing files' (location is reported, not a control: a between-file effect in g₁ may or may not reach the median); the per-file 8-block g₁ values. - T's 729 → 6561 fall recomputed with the pooled T4 against the pooled T3 of runs 073, 070 and 081. - The first 200 lines of each short run of clause A, and the wall time per run per machine. - The 95% upper limit on a per-file component implied by r₈ (1.49 bootstrap errors at r₈ = 1.0, 2.35 at 1.42): a confirmed B bounds the effect, it does not remove it.

Reviewed before commit by a sharpness reader and a second reader (OPS.md); their edits are folded in: four seeds raised to eight and the threshold moved from 2.0 to the 5% point (four seeds passed under the record's own effect half the time); a build that fails to reproduce itself scored, not withdrawn; the comparison keyed by index; the bound called what it is; the builds that drew the record's three T4 files each tested with their own seeds; X1's F4 added; one stored file crossed between machines in full, against a sporadic defect; a machine failing to reproduce its own file named separately from a difference between machines. A sighted pass (SIGHTED-D2pD3.md) supplied the seeds, the types, the write order, the md5 and control (i)'s value; it ran no sampler.

Scored 2026-10-03 — confirmed

Scored by the codifier from RESULTS092.md and sampler092.json after the cloud branch was merged (merge b61cf8f; results afbf827, M5 half folded in c066324), as written.

Controls first — all three pass. (i) g₁ of samples081/T4.txt reproduces reseed081.json to 0. (ii) Eight B files of 8,000 lines, every k in range, no two sharing their first 100 k. (iii) perc.c, T4.bin and F4.bin carry the sealed md5s on both machines, logged before every batch; the seal's commit 3a920cc is outside the cloud's shallow clone, and the md5 is the binding check.

(A) Confirmed. Zero differing k everywhere: the cloud's four short runs against their stored files, the M5's four short runs against their stored files and against the cloud's runs of the same seeds, and the cloud's full 8,000-sample redraw of seed 53 against samples053/T4.txt, the M5 file run 073 read. One sampler on both machines; the integer path leaves no room, as the lead said.

(B) Confirmed. r₈ = 0.0255 / 0.0284 = 0.898, below 1.42; P(χ²₇ > 7 r₈²) = 0.58. The eight fresh g₁ at 6561 run +0.2325 to +0.2931, scattering as their bootstrap errors say; the 95% upper limit on a per-file component is 1.27 errors.

Both hold: confirmed. The codifier's lead was right in every part: A on every run, r₈ near 1 (0.90), the eight values about 0.25–0.28 (mean 0.265), and T's fall from 729 to 6561 about −0.09 on the pooled files (−0.0908 ± 0.0215, eleven files against three) where run 073 read −0.19.

What the numbers say beyond the clauses. 1. Run 073's T4 was a 2.9-error draw, and nothing else. samples053/T4.txt sits at +0.172 against a pooled +0.254 ± 0.011 over eleven files; it is the lowest of the eleven and the only one below +0.23. The machine split that looked like two samplers was two low draws on the M5 against three high ones in the cloud. 2. T's turn stands at half size. The pooled fall −0.091 ± 0.022 is 4.2 errors from zero on eleven files; 081's clause A read the fall on fresh seeds at 1.8 errors (run 083's note 4) and this is the figure to carry. CASE-28's premise survives; its continuation's lab report should quote −0.09, not −0.19. 3. The eleven-file F is marginal. g₁ F = 1.89 (p 0.059), w F = 1.98 (p 0.047), p_med 0.62 (p 0.79): with the 053 file in, a weak between-file excess remains in g₁ and w; without it (the eight fresh files alone) r₈ says none. Reported, not read further. 4. The bootstrap error at 6561 is right. This is the second check this week (087 for p_med and w across machines; here g₁ across seeds). The 081 calibration's "between-file excess in the skewness" is the 053 file.

What it does to PG-01. Every skewness at 6561 in the record is one instrument's; nothing is re-read by machine. T's fall is −0.09 ± 0.02 and every document that carries −0.19 (run 073's reading; CASE-28's packet; the explainer's "NEXT" paragraph) should carry the pooled figure when next touched. The seal's "where it breaks" — a seed-level effect in seed_rng — did not arise; seed_rng is not the next object.

Lab notes. Cloud: 4 cores, perc at 4 threads, 8,600–9,200 s per 8,000-sample T4 file; one VM restart rerun from the same seed; two push retries. M5 half in 7ea7e72 without wall times. Branch merged on the M5 after a cloud-side merge was pushed to the branch; the only conflict beyond MANIFEST.md was statistics.json's appended rows, kept both.

generated 2026-10-25the lab index