run 099Settled
./perc graphs/<graph>.bin <samples> <seed> <threads> <out> — on BernoullisBook at 4 threads, H4 twice at 2,400,000 samples (perc seeds 7931, 7932; files samples099/H4a.txt, H4b.txt), H5 twice at 2,400,000 (7933, 7934; H5a.txt, H5b.txt), H6 once at 480,000 (7935; H6.txt); on the M5 at 9 threads, H7 at 144,000 (7936; H7.txt) and H8 at 96,000 (7937; H8.txt). Before drawing — BernoullisBook redraws samples079's H4, H5 and H6 in full (seeds 7901, 7902, 7903; 48,000 samples; 4 threads) and the M5 redraws samples079's H7 in full (seed 7904; 9 threads), each to the stored file's md5; the M5 reproduces the first 1,000 lines of samples079/H8.txt (seed 7905). Seeds are unused if a grep of every script, run file and seed-named JSON key finds none of 7931–7937 or 511001–525000, as run 096's scan. No statistic of any new file is computed until all seven exist. The analysis runs on the M5 in the lab's environment (numpy 2.5.3) in two stages — stage one writes the controls and no fit on the new files; stage two the fits. Per file, x = column 0 / M and three moments — the mean of x; ln S, S the square root of the unbiased second k-statistic; g₁ = k₃/k₂^1.5 by unbiased k-statistics (reading_pg03_moments.py). Errors and each new file's 3 × 3 covariance — the sample covariance (divisor 1,999) of 2,000 bootstrap replicates, replicate b of file j resampling that file's samples with replacement by index, numpy default_rng(511001 + 7·b + j).choice(n, n, replace=True), j = 0 … 6 in the order H4a, H4b, H5a, H5b, H6, H7, H8. Stored files (samples079 and samples096, H4 … H8, perc seeds 7901–7905 and 7921–7925) take their errors and correlations from reading_pg03_moments.json at full precision (block 471001). The fit — ln S = ln A − (1/ν) ln L + ln(1 + B L^−ω), mean = p_c + a L^−(1/ν) + c L^−(1/ν+ω), g₁ = g∞ + G L^−ω; nine parameters (1/ν, ω, ln A, B, p_c, a, c, g∞, G) shared by every file in the fit; every file its own point; χ² with each file's covariance; bounds 0.40 ≤ 1/ν ≤ 0.70, 0.05 ≤ ω ≤ 2.00, max(−10, −0.99·81^ω) ≤ B ≤ 10. Minimisation — the six amplitudes that enter linearly solved exactly; χ² profiled over ω on a grid of step 0.002, at each ω minimised over (1/ν, B) by scipy.optimize.minimize (L-BFGS-B, the bounds above, ftol 1e-12) from the starts (0.45, 0.5), (0.52, 0.5), (0.58, 2.0), the least χ² kept; the profile's minimum refined by a bounded scalar minimisation in ω over the two grid cells either side of the grid minimum (xatol 1e-6). The tied fit sets ω = 1/ν and profiles over 1/ν on a grid of step 0.0005, at each 1/ν minimising over B alone from B = 0.3, 1, 3, refined the same way. A fit within 1e-6 of any bound is named in the results; T is scored as computed. Scored quantity — T(new) = χ² of the tied fit minus χ² of the free fit, both on the seven new files alone (21 points; 13 and 12 degrees of freedom). Controls, all written before stage two — (i) on the two stored sets the script gives χ² = 17.22 on 21 degrees of freedom (free) and 28.50 on 22 (tied) with the file covariance, each within 0.05 of that value, either side; (ii) line counts as sealed, every x in (0, 1), md5s of perc.c and the graphs as recorded, the redraws and the 1,000-line reproduction above, the seeds unused, and the 64-bit seeds x₀ of every sample of this run and of samples079 and samples096 on the same graph pairwise distinct (computed, not sampled); (iii) twins — for H4 and for H5, d′(Cₐ + C_b)⁻¹d with d the difference of the two files' three moments and C their covariances; the sum of the two between 0.87 and 16.81 (the 1% points on 6); new against stored — per moment, at each of L = 243, 729, 2187, 6561, z = (new − stored) / √(σ²_new + σ²_stored), where a size with two files takes the equal-weight mean of the two with error √(σₐ² + σ_b²)/2; the sum of the four z² at most 14.86 for each moment (the 0.5% point on 4); z at 81 is reported and is not a control; (iv) on each of the four 2,400,000-sample files, 48 consecutive blocks of 50,000: for each moment the SD (divisor 47) of the block values over √48, divided by the bootstrap error; the mean of the twelve ratios in 0.90 to 1.10; (v) with k = column 0, no run of 8 consecutive k values occurs twice, at any offsets, within a file or in any two files of the same graph, new or stored.../lab/runs/099-tied-form-on-fresh-draws.mdPredictionOn the seven new files alone the tied one-term form fails — T(new) ≥ 25. One clause. (A sighted pass's simulation puts T(new) at 36 to 78 if the stored free fit is the truth and at most 4.7 if ω = 1/ν is.)
FalsifierT(new) ≤ 6.63 — on fresh draws nothing beyond ω = 1/ν is needed in a one-term fit of H, and the stored preference was a fluctuation at 81. Between 6.63 and 25, unanticipated. Withdrawn if control (i) or (ii) fails; reported and not scored if (iii), (iv) or (v) fails, whenever the failure is seen; a run not scored is not redrawn under this seal. Readings fixed now — a confirm says the tied one-term form fails on H; it does not say the correction exponent is H's own, because ω = 1/ν with a next analytic term (L^−2/ν) of negative sign and 1.5 to 4 times natural size fits the stored sets as well and gives the same outcome, and it does not identify what replaces the tied form. χ² of the free fit on the new files is reported; above 26.22 (the 1% point on 12) a confirm reads "both one-term forms fail" and T(new) ≤ 6.63 reads "the one-term forms do not separate".
Sealed 2026-10-04, before any new sample exists (codifier). The third version of this seal: two drafts were struck before sealing, and this text was read once more, frontmatter alone, by a second reader whose edits are folded in and named at the end.
Known at sealing, cited as known. READING-PG03.md, READING-PG03-L1.md, READING-PG03-L2S.md and READING-PG03-MOMENTS.md in full. From the last, with the file covariance on the two stored sets: all five sizes, ω free, χ² = 17.22 on 21 with 1/ν = 0.5211 (0.5150 to 0.5260), ω = 0.329 (0.28 to 0.38), B = +0.58; tied, 28.50 on 22; without 81, 14.55 on 15 free and 16.02 on 16 tied. Each stored set alone gives a tie of 3.91 and 5.03 (the blind readers' refit, diagonal, from the reading's rounded table). Timings at 2,000 samples: about 4.8 hours on BernoullisBook and 9.6 on the M5 for the counts sealed, peak 2.4 GB on H8. The simulations in R27_tree_groups/carpet_perc/sim099/ (the blind readers' scripts and logs; the sighted pass reran the three figures used here and added the refitted blind spot from its own scratch scripts).
How the question got here. Draft 1 scored "the smallest size from which one term fits". Simulation showed a second-order term of natural size is absorbed by the nine parameters (one-term misfit 0.51 in χ² at these errors, 8.71 at four times natural size, 35.27 at eight times), and the scored size came out as 81 in 200 of 200 runs under every self-consistent truth. That question cannot be answered on these sizes. Draft 2 scored the tie on all 51 points with a band on ω and the sentence "H has a correction exponent of its own". The sighted pass showed the confirm was foretold by the stored 11.28, which entered the scored quantity, and that the sentence does not follow: ω = 1/ν with a next analytic term of negative sign and 1.5 to 4 times natural size, refitted to the stored sets, fits them at χ² 15 to 23 on 22 and gives the same outcome in 85% to 97% of simulated runs, passing every control. This seal scores the tie on the new files alone and claims only what a tie can show.
What this run is for. It says whether the stored preference against the tied one-term form is H's or a fluctuation at 81, on draws that share nothing with the stored ones. It cuts the spread of the fitted pair for PG-03 L4's band. It does not test whether one term is enough, and it does not say what replaces the tied form.
The codifier's lead, held with conviction. T(new) near 50. The tied form fails on H. The codifier's further belief, which this run cannot test, is that the reason is an exponent of H's own near 0.33.
Power. The sighted pass's 200 simulated runs per truth, on the new files alone: with ω free at the stored fit, T(new) of 36 to 78, all 200 at or above 25 and 87% at or above 40; with ω = 1/ν, at most 4.7. The new errors are about a seventh of the pooled stored errors at 81 and 243 and four tenths at 729; the new files carry nearly all the weight there, five sixths at 729, 60% at 2187 and half at 6561.
What a fit that holds does and does not bound. "One term fits" bounds a second term only below about eight times natural size. A hidden term of natural size moves the one-term prediction of ln S at 19,683 by about ±0.0023 (the blind readers' simulation). Reported with the results, for L4's band.
Reported, not scored. Per file the three moments with errors and covariance. The free and tied fits on the new files alone, on all seventeen files, and without 81: χ², its form part (the fit to the per-size pooled values) and consistency part (the files' scatter about them), the pair with intervals from the continuous profile, every amplitude. T on all seventeen files, and ω from that free fit beside the stored 0.329 (0.28 to 0.38). The same with diagonal errors. Residuals of the free fit size by size. Predictions at 19,683 for ln S, the mean and g₁ from the free and tied fits, beside the pure power law's, and the shift of each when a term of ±B²·L^−2ω is added to the truth and one term refitted. z at 81, new against stored. W80 and the median on the three largest sizes. Wall time and peak footprint per file.
What the controls can and cannot see (the sighted pass and the second reader). (iii)'s new-against- stored test is limited by the stored errors, so it is taken on the four larger sizes: a difference at 81 is the thing the run is asking about and must not void it. The twins test has a floor as well as a ceiling, since two halves that agree too well are as wrong as two that disagree. (iv) detects errors under-estimated by 15% almost always and by 10% about two times in three; a 10% mis-estimate moves T by about 20%, which reaches no bar from the expected values; the errors of H6, H7 and H8 are not block-checked. (v) catches a whole stream drawn twice; two single samples sharing a state are excluded exactly by (ii)'s arithmetic. Machine is confounded with size, so each machine redraws stored files in full before it draws.
The reductio this seal passed. By construction: T is non-negative; the tied fit is nested in the free one; the two halves of H4 and of H5 enter both fits alike. Negation: ω = 1/ν, and then T(new) is a few units. Twins: the two halves (control iii). Neighbours: the square, where 1/ν is known and the stored one-term fit gives ω = 0.62 (0.22 to 1.24; READING-PG03.md), compatible with ω = 1/ν = 0.75; the same question there is a null case with real power and is not part of this run. Invariance: writing the correction outside the logarithm differs from this form by a second-order term of half natural size, which the fit cannot see (misfit 0.12). A pass without the mechanism: named in the falsifier line. Cost: 4.8 hours on BernoullisBook, 9.6 on the M5, plus about half an hour on each for the redraws.
Readers. Blind readers on draft 1 (sharpness, second reading, reductio, by simulation): the scored quantity could not come out as predicted; redesign on the tie. A sighted pass on draft 2 (a Code chat on the M5): seeds and perc.c hold; the three simulation figures reproduce; the confirm was foretold and over-read; score on the new files alone; minimisation text; control (ii)'s seed arithmetic; the twins' floor; control (v)'s wording. A second reader on this frontmatter alone: the new-against-stored control moved off 81, where it would have voided falsifying runs; the twins as one quadratic form per graph; pooled and combined errors defined; (iv)'s bounds widened to 0.90 to 1.10; the free fit's own χ² mapped; full redraws against the machine confound; the bound on B kept off the singular point; the command line, bond counts, file names and what happens to a run not scored.
withdrawnWithdrawn before any draw, by the seal's own rule: control (ii) cannot be met as sealed. No sample of this run exists on either machine. Seeds 7931–7937 and 511001–525000 were never used.
The seal has BernoullisBook redraw samples079's H4, H5 and H6 "each to the stored file's md5". The lab's redraw of H4 (seed 7901, 4 threads) gives all 48,000 values of column 0 equal to the stored file's and one line different in column 1: 4409 0.674018866166 stored, 4409 0.674018866165 redrawn. H5's redraw is identical in whole. Column 1 is a floating-point number computed after k is fixed and printed to twelve places (perc.c, line 80). The stored file was drawn on arm64 and the redraw on x86_64; the lab's reading, not isolated to a call, is that the two math libraries round differently in the last place. The statistic reads column 0 only, and that column reproduces.
A sealed field is not edited in place (OPS), so the run is withdrawn and resealed. The fault is the seal's and of a known class (OPS, "Every number a control cites is reproduced on disk before the seal commits"): the whole-file comparison came in with the second reader's edit on the afternoon of sealing and was not reproduced on disk before the commit. The lab's pre-draw scripts caught it on the first file, before a sample was drawn. Resealed as the next run, with the redraw compared on column 0.
Artifacts on disk, checked 2026-10-04 (database batch; the sealed fields are not edited). fit099.json, named in the artifacts line, is not on disk and has never been committed, and there is no samples099/ directory on this machine. The run's outcome is withdrawn and the lab database holds no number for it.
Pointers corrected 2026-10-05 (codifier; no sealed field, score or number is changed). The run was withdrawn before its analysis, so the files its seal named were never written. The script: line read script: R27_tree_groups/carpet_perc/run099.sh and fit099.py (to be written from this seal by the lab, with reading_pg03_moments.py's moments and forms) and the artifacts: line read artifacts: [R27_tree_groups/carpet_perc/RESULTS099.md, fit099.json, samples099/ (files over 5 MB untracked, each attested by a sidecar as docs/DATABASE.md allows), times099.txt]. They now name what is on disk for this run (the two shell scripts, the redraw record, the pre-seal simulations) and keep the unwritten names as remarks. The seal as committed is at git log for this file; run 100 is the reseal.
generated 2026-10-25the lab index