# Measurement provenance

- `computation.json`: derived by `python3 proof/summarize.py` from the sanitized certificate. Thread-hours are elapsed job wall time multiplied by allocated threads, not measured CPU time. 456 jobs cover 331 distinct position IDs. The absence of a failures list is reported as zero recorded failures, consistent with the original verification report.
- `game-stats.json`: generated with `rust/target/release/game_stats 100000 5`. Fixed xorshift seed 1940669073. Each legal move is selected uniformly (modulo the negligible PRNG modulo bias). A placement consumes two empty cells; forced passes do not increment placement depth. Branching means exclude passes and terminal positions. Samples are random paths, not uniform positions or uniform complete game records.
- `match-site5-100ms.json`: original saved result, copied unchanged. 191 wins, 1 draw, 8 losses at 100ms/move. The 194/0/6 result at 500ms/move was reproduced in the source project by `match_eval 200 500 site5 4`: 200 games, 4 threads, four random opening plies, paired colors, no book. The experiment owner confirms that the opponent faithfully reimplements level-5 `choose()`, cross-checked against the original `game.js`. The public equivalent is `node test/match_eval.js 200 500 site5 4`, directly using the optional original adapter. It skips when original code is unavailable. Neither match was rerun in this offline revision; randomization and timing can change scores.

- `position-counts.json`: final count dataset. Position keys include colors, domino pairing and side to move. Ply counts forced passes; terminal branches stop. D4 uses up to eight board symmetries without color exchange. `exact` gives exhaustive paths / distinct positions / D4 classes at plies 0–7; use this rather than `exact_per_empties`, whose grouping differs when passes occur. `exact_prefix_totals` gives the exact union lower bound through ply 7: 132,473,902 raw and 64,356,263 D4 classes.
- The paper uses `distinct[0]` (`distinct-shallow`, 4,096 samples) for plies 8–11, where multiplicities were fully resolved: N_d = E[W/m(P)], with Knuth forward weight W and exact retrograde path multiplicity m(P). D4 estimates also account for reachable orbit members. `validation_ci` compares estimates to shallow exact counts. Other deeper/capped datasets are not interchangeable point estimates. At ≥12, only bounds are available because exact multiplicity counting is intractable.
- `knuth` uses 1,000,000 complete playouts with seed 20261006. `tree_total` counts all finite record prefixes including the root (mean 1.0336e26, 95% CI [1.0001e26, 1.0672e26]); `terminal_records` counts completed games (3.5573e25 [3.4409e25, 3.6736e25]). The per-ply table takes path estimates from `knuth.per_ply` and distinct estimates and CIs from the shallow dataset. Normal confidence intervals are empirical asymptotic diagnostics; heavy tails may impair coverage.
- `global_deterministic_bounds.raw_union` bounds all distinct reachable positions between 132,473,902 and 2,257,477,011,250,567,606,304. The D4 upper bound is 564,369,252,829,441,183,372. The true total is not pinned down. A weighted frontier DP counts a structural superset: the fixed initial pairing, all outside partial matchings, monochrome domino colors and both sides to move. Burnside C4 orbits bound reachable D4 classes from above (reflections may identify further classes). These are proven upper bounds, not reachable counts. Layer sums can repeat positions reached at different plies and must not be confused with unions.
- `perfect-line.jsonl`: saved results computed on 2026-10-06 using `analyze --prove-best`, 22 threads. The first three moves come from the distributed certificate; JSONL rows with `ply` 3–24 prove moves 4–25. `ply` is zero-based pre-move depth, `empties` is before the move, `value` is the exact mover-perspective final difference, and `sec` is proof time in seconds. No separate timings for the first three moves are recorded. The final `seq`/`final` entries give all 25 placements, with no passes. The terminal `value: -2` is from White's perspective after Black's last move: Black 30, White 28, six isolated empty cells. Other optimal lines may exist. The browser replays the line using the local JavaScript rules engine; replay verifies legality and final counts, not optimality independently.

`game-stats.json` retains historical branching-product and extrapolation fields for provenance; these model-dependent proxies are superseded and are not used as position or record counts in the paper. Its depth fields count placements, unlike the pass-inclusive ply in `position-counts.json`.

The paper's engine speed, training MAE and parallel scaling are inherited benchmark reports checked against the source project's READMEs. Raw training data and full benchmark archives are omitted. Othello comparison numbers and search hardware model names were supplied with the task; no external paper or website was downloaded during staging.
