Chance-node decorrelation and search depth compound rather than substitute
web/content/research/TH-20260821-factored-chance-depth-compounding-aca01725.mdx and it will appear here. The registered record is shown below.The registered record
Claim
Factoring the fair search's chance node into independent next-disc and reveal draws pays at every depth, so applying it on top of the fourth ply raises mean score over the same four-ply search with a single reveal sample by a paired margin whose one-sided 95% whole-game bootstrap lower bound is above zero. The depth-3 gain finding-09 measured (+64,116 with a lower bound of +7,475 from one to six reveal samples) is therefore an increment that adds to depth rather than an alternative way of buying the same thing.
Mechanism
finding-09 diagnosed a specific defect: the reference search indexed the next-disc draw and the covered-disc reveal with the same counter, so with seven samples it saw seven of the 49 joint outcomes and those seven were perfectly correlated. A move whose value depends on the combination could not be evaluated. That defect is a property of the chance node, not of the horizon, and the frozen four-ply search contains exactly the same defective node. If the defect is what the extra reveal samples repair, repairing it inside a deeper search should be worth at least as much as repairing it inside a shallower one, and the two axes should add. The competing account is that depth and chance-estimator quality are exchangeable ways of spending one budget - both ultimately buy a less biased estimate of the same expectation - in which case paying for both at once buys little beyond paying for either.
What would prove it wrong
- The paired depth-4 (N=7, M=2) minus depth-4 (N=7, M=1) score delta over the complete 64-game cohort has a one-sided 95% whole-game bootstrap lower bound at or below zero.
- The depth-3 reveal ladder stops ordering with joint chance coverage: taking reveal samples from six to twelve (85.7% to 100% joint coverage) does not raise the paired mean over the six-sample arm.
- Any arm completes a decision below its requested depth, which voids that arm.
- The joint-coverage attribution fails: an arm with higher joint (disc, reveal) coverage scores below one with lower coverage at the same depth and the same work bound.
Experiments that test it
- The two arms finding-09 left unfinished: reveal sampling on top of the fourth ply, and the depth-3 ladder at full joint coveragefactored-chance-fair-search, arms d4 N=7 M=2 and d3 N=7 M=12 vs the recorded single-reveal-sample arms on the same seeds (d4 N=7 M=1 = runs/RUN-A51D-s7confirm/fresh-s7.json; d4 N=5 M=1 = runs/RUN-A51D-s7confirm/fresh-s5.json) and finding-09's completed depth-3 ladder (M=1, 3, 6) · STANDARD · running
Results recorded against it
Chance-node decorrelation and search depth do not compound; they substitute. The primary arm is complete at 64 of 64 games: depth 4 with seven disc samples and two reveal samples scores 356,548 against the 398,498 of the same search with one reveal sample, a paired -41,950 with a one-sided 95% whole-game bootstrap lower bound of -100,137 and W-T-L 28-0-36, for 4.07x the logical work per move. The gate asked for a lower bound above zero and got a negative point estimate, so the compounding theory is rejected as tested. STATE THE DOSE WHEN QUOTING THIS: two reveal samples raises joint (disc, reveal) coverage from 14.3% to 28.6%, which is a smaller increment than the six samples (85.7%) that first cleared noise at depth 3; at depth 3 the three-sample dose (42.9%) was also not significant (+24,980, lower bound -23,451). This result therefore rejects a doubling of reveal samples on top of the fourth ply, and does not establish that a wide reveal estimator at depth 4 would fail - that arm was never affordable. What the arm does establish is that the depth-4 search is not starved for the thing the extra samples supply. The striking positive finding is an equivalence at near-equal work: depth 3 with six reveal samples costs 4,244,020 work per move and scores 376,442, while depth 4 with one reveal sample costs 4,956,614 and scores 398,498, and the paired delta between them is -22,056 with a lower bound of -89,867 and W-T-L 30-0-34 - two different ways of spending the same budget landing in the same place, which is the same exchangeability the depth factorial shows from the other side. The new arm is not worthless: against the frozen five-stratum depth-4 reference it is +59,221 with a lower bound of +9,134 and W-T-L 37-0-27, so the gain comes from the seven disc samples, not from the reveal samples. Second arm, partial at 32 of 64 games and still running: depth 3 with twelve reveal samples takes joint coverage to 100% and scores -4,495 against the six-sample arm on the 32 shared seeds (lower bound -91,425, W-T-L 15-0-17) and +31,413 against the one-sample arm (lower bound -70,729), so the ladder that ordered with coverage from M=1 to M=6 stops ordering at M=12. Every arm audited 0 decisions below target depth, 0 work-limit events, 0 censored games and 0 score-decomposition identity failures, and the chunk-pooling used to survive interruption was verified to reproduce a single 64-game run field-for-field with identical summed logical work.
- ✓Pooling validity: four pooled 16-game chunks reproduce a single 64-game run on all 13 per-game fields with identical summed logical work — observed: 64 games, 0 field mismatches, logical work 312,966,881 vs 312,966,881 (equal)
- ✓Bound diagnostics: 0 decisions below target depth and 0 work-limit events in every arm — observed: d4 N=7 M=2: 6,633 decisions, 0 below target, 0 work-limit events, busiest decision at 44% of its bound; d3 N=7 M=12 (partial): 3,335 decisions, 0 below target, 0 work-limit events, busiest at 31% of its bound
- ✕Depth 4 with two reveal samples beats depth 4 with one reveal sample, 95% bootstrap lower bound above zero, 64 complete games — observed: -41,950 with a 95% lower bound of -100,137 (upper bound +17,541), W-T-L 28-0-36, at 4.07x the logical work per move; negative point estimate, and not distinguishable from zero in either direction
- –Depth 3 with twelve reveal samples is at least as strong as depth 3 with six — observed: undecidable as run: the arm holds 32 of 64 games and is still executing. On the 32 shared seeds the delta is -4,495 with a 95% lower bound of -91,425 and W-T-L 15-0-17 - the coverage ladder has stopped ordering, but 32 games cannot decide this criterion
- ✓0 censored games and 0 score-decomposition identity failures in every arm — observed: 0 and 0 in both new arms and in every comparator arm re-read here
Recorded metrics
- M1
- 312,327
- M3
- 337,306
- M6
- 376,442
- M12partial32
- 356,890
- M1
- 0.1430
- M2
- 0.2860
- M3
- 0.4290
- M6
- 0.8570
- M12
- 1
- n
- 64
- meanScoreDelta
- -41,950
- lowerBound95
- -100,137
- upperBound95
- 17,541
- meanMoveDelta
- -11.0200
- winTieLoss
- 28-0-36
- workRatio
- 4.0700
- n
- 64
- meanScoreDelta
- 59,221
- lowerBound95
- 9,134
- meanMoveDelta
- 16.4800
- winTieLoss
- 37-0-27
- workRatio
- 15.5700
- n
- 64
- meanScoreDelta
- -19,894
- lowerBound95
- -76,456
- meanMoveDelta
- -5.8100
- winTieLoss
- 37-0-27
- workRatio
- 4.7500
- n
- 64
- meanScoreDelta
- -22,056
- lowerBound95
- -89,867
- meanMoveDelta
- -5.2000
- winTieLoss
- 30-0-34
- workRatio
- 0.8600
- n
- 64
- meanScoreDelta
- 24,980
- lowerBound95
- -23,451
- winTieLoss
- 32-0-32
- n
- 64
- meanScoreDelta
- 64,116
- lowerBound95
- 7,475
- winTieLoss
- 36-0-28
- n
- 32
- meanScoreDelta
- -4,495
- lowerBound95
- -91,425
- winTieLoss
- 15-0-17
- note
- partial arm, paired on the 32 shared seeds
- n
- 32
- meanScoreDelta
- 31,413
- lowerBound95
- -70,729
- winTieLoss
- 15-0-17
- note
- partial arm, paired on the 32 shared seeds
- n
- 32
- meanScoreDelta
- -31,616
- lowerBound95
- -143,344
- winTieLoss
- 12-0-20
- note
- partial arm, paired on the 32 shared seeds
- decisions
- 6,633
- decisionsBelowTargetDepth
- 0
- workLimitEvents
- 0
- minCompletedDepth
- 4
- maxDecisionWork
- 81,686,570
- declaredBound
- 187,336,114
- decisions
- 3,335
- decisionsBelowTargetDepth
- 0
- workLimitEvents
- 0
- minCompletedDepth
- 3
- maxDecisionWork
- 128,386,272
- declaredBound
- 407,634,528
- games
- 64
- fieldMismatches
- 0
- summedLogicalWorkCandidate
- 312,966,881
- summedLogicalWorkComparator
- 312,966,881
- note
- four pooled 16-game chunks against the single 64-game d3 N=5 M=1 run
- PARTIAL ARM: the depth-3 twelve-reveal-sample arm holds 32 of 64 games (chunks 0 and 1 of 4) and was still executing when this result was written. Every M=12 number here is over those 32 paired seeds, none of them decides its gate, and the arm's 32-game mean is not an estimate of its 64-game mean. The frozen snapshot assessed is runs/RUN-20260821T143541Z-4c4370b6/d3-n7-m12-partial-32games.json; re-pooling the live artifact after chunk 2 will change its bytes.
- DOSE, NOT AXIS: the depth-4 arm tested two reveal samples (28.6% joint coverage), which is below the depth-3 dose that first cleared noise (six samples, 85.7%). The negative result is about that dose at that depth. A wide depth-4 reveal estimator was not run and remains unmeasured; at the observed 20.2M work per move for M=2, an M=6 depth-4 arm would be roughly another 3x on top and was not affordable on a shared machine.
- The depth-4 M=2 delta is negative but not significantly negative: the same estimator's one-sided 95% upper bound is +17,541. The honest reading is 'buys nothing measurable for 4.07x the work', not 'harms'.
- The comparator arms for the M ladder (d3 M=1, M=3, M=6) and the two depth-4 single-sample arms come from finding-09 and from the earlier chance-strata study; they were re-read here from their retained artifacts but have no machine-readable run record of their own, so this result's run records cover only the two new arms.
- 64 paired games with a score standard deviation of 55-62% of the mean. Effects smaller than roughly 60,000 points are invisible at this sample size.
- The cohort 0xa51d1000-0xa51d103f was opened by finding-05 and read again by finding-09; it is permanently development data. STANDARD tier, diagnostic only, never a freeze gate and never confirmation evidence.
- Each arm ran as four sequential 16-game chunks so it could survive interruption. Pooling was verified to reproduce a single run exactly, but chunking does change thread scheduling and wall time, and chunk 1 of the depth-4 arm ran at 8 threads rather than 12 after a load back-off.
- Work per move is not comparable across arms with different declared cache capacities. The new arms auto-size their cache from their branching factor (960,695 and 346,921 entries) while the recorded comparators declare 60,000; every work figure must be read with its capacity.
- The experiment record was written after the runs, by a different agent than the one that executed them. The two arms and their launch protocol were fixed in prose in finding-09 and in run-arms.sh before either produced a game, but this is retroactive registration and the amendment on the experiment record says so.
- All artifacts for this family live under runs/, which is gitignored, so the evidence is not committed with the record. The frozen snapshots and the content manifest under the two run directories are the durable reference.
- This rejects compounding at the tested dose only. It says nothing about the reveal-by-reveal correlation, which finding-09 identified as untouched by this knob and which no arm here attacks.
SUPERSEDES RS-20260821T181918Z-ea7076a3, which assessed the same experiment while its second arm held 32 of 64 games. Both arms are now complete at 64 of 64 and the run validity rises from partial to valid. The old record remains as committed history and is not edited; this record carries the completed figures and everything below replaces the partial ones. Nothing in arm 1 changed and the direction of arm 2 did not change; only its magnitude did, by about 6x. ARM 1, unchanged and complete: depth 4 with seven disc samples and two reveal samples scores 356,548 against the 398,498 of the same search with one reveal sample - a paired -41,950 with a one-sided 95% bootstrap interval of (-100,137, +17,541) and W-T-L 28-0-36, for 4.07x the logical work per move. The gate required a lower bound above zero, so the compounding theory is rejected as tested. The sign is stable across both cohort halves (-11,082 on seeds 0xa51d1000-0xa51d101f and -72,818 on 0xa51d1020-0xa51d103f), independently confirmed by the agent that completed the runs. The +17,541 ceiling is the load-bearing number: had the axes compounded even at a quarter of the +64,116 the same knob is worth at depth 3, the data would have had to show it. The axes substitute in the strong sense. ARM 2, now complete: depth 3 with twelve reveal samples - the configuration at which (disc, reveal) joint coverage reaches 100% - scores 349,345, not the 356,890 its first 32 games suggested. Against the six-sample arm it is -27,097 with an interval of (-83,807, +31,209) and W-T-L 28-0-36; against the one-sample arm +37,019 (-25,076, +102,426), 30-0-34. THE REVEAL AXIS SATURATES AT M ABOUT 6 AND DOES NOT IMPROVE TO FULL COVERAGE. Read this as saturation, not as a demonstrated regression: the M=6 to M=12 step does not clear zero in either direction, so the data are consistent with the curve being flat from M=6 onward and are not consistent with it continuing to climb at the rate M=1 to M=6 showed. Score, moves, numbered clears and covered reveals all peak at M=6 (85.7% coverage) and fall back at M=12 (100%); only mean occupancy improves monotonically across all four points (23.88, 23.81, 23.49, 23.39). This weakens two SUPPORTING arguments in finding-09 without touching its headline, which rests on its own paired tests and stands: the dose-response is no longer monotone once the fourth point is added, with four of five tracked quantities reversing, and section 2's attribution of strength to joint coverage fails exactly at the 100% endpoint that attribution predicts should be best. finding-09 section 5 should now be read as 'M=6 is a local optimum', not 'more M is better'. Validity controls all pass: 0 decisions below target depth, 0 work-limit events, 0 censored games and 0 score-decomposition identity failures in both arms, and the chunk-and-pool procedure on which every cohort in this family depends was verified end to end by running depth 3 (N=5, M=1) as four 16-game chunks at 1 thread and reproducing the existing 64-game 12-thread artifact field-for-field - 0 mismatches, identical summed logical work of 312,966,881, only per-game wallSeconds differing, which also re-confirms worker-count independence.
- ✓Pooling validity: four pooled 16-game chunks reproduce a single 64-game run on all per-game fields with identical summed logical work — observed: depth 3 (N=5, M=1) as 4x16 chunks at 1 thread vs the existing 64-game 12-thread artifact: 64 games, 0 field mismatches, logical work 312,966,881 = 312,966,881, only per-game wallSeconds differing; pooled bound diagnostics identical (5,750 decisions, 0 below target, 0 work-limit events, maxDecisionWork 85,085)
- ✓Bound diagnostics: 0 decisions below target depth and 0 work-limit events in every arm — observed: d4 N=7 M=2: 6,633 decisions, busiest at 44% of its bound; d3 N=7 M=12: 6,523 decisions, busiest at 47% of its bound; 0 below target depth and 0 work-limit events in both
- ✕Depth 4 with two reveal samples beats depth 4 with one reveal sample, 95% bootstrap lower bound above zero, 64 complete games — observed: -41,950, interval (-100,137, +17,541), W-T-L 28-0-36, at 4.07x the logical work per move; negative in both cohort halves (-11,082 and -72,818) and not distinguishable from zero in either direction
- ✕Depth 3 with twelve reveal samples is at least as strong as depth 3 with six, 64 complete games — observed: -27,097, interval (-83,807, +31,209), W-T-L 28-0-36, at 3.18x the work; the ladder peaks at M=6 and turns over at full joint coverage. Failed as a criterion, but the interval spans zero, so this is saturation rather than a demonstrated regression
- ✓0 censored games and 0 score-decomposition identity failures in every arm — observed: 0 and 0 in both arms and in every comparator arm re-read here
Recorded metrics
- M1
- 312,327
- M3
- 337,306
- M6
- 376,442
- M12
- 349,345
- M1
- 92.2700
- M3
- 98.7000
- M6
- 109.4500
- M12
- 101.9200
- M1
- 1.9849
- M3
- 2.0033
- M6
- 2.0447
- M12
- 2.0231
- M1
- 1.1001
- M3
- 1.1111
- M6
- 1.1423
- M12
- 1.1309
- M1
- 23.8800
- M3
- 23.8100
- M6
- 23.4900
- M12
- 23.3900
- M1
- 156,834
- M3
- 1,045,719
- M6
- 4,244,020
- M12
- 13,506,434
- M1
- 0.1430
- M2
- 0.2860
- M3
- 0.4290
- M6
- 0.8570
- M12
- 1
- n
- 64
- meanScoreDelta
- -41,950
- lowerBound95
- -100,137
- upperBound95
- 17,541
- meanMoveDelta
- -11.0200
- winTieLoss
- 28-0-36
- workRatio
- 4.0700
- half1
- -11,082
- half2
- -72,818
- n
- 64
- meanScoreDelta
- 59,221
- lowerBound95
- 9,134
- upperBound95
- 111,812
- winTieLoss
- 37-0-27
- workRatio
- 15.5700
- n
- 64
- meanScoreDelta
- -19,894
- lowerBound95
- -76,456
- upperBound95
- 36,846
- winTieLoss
- 37-0-27
- workRatio
- 4.7500
- n
- 64
- meanScoreDelta
- -22,056
- lowerBound95
- -89,867
- upperBound95
- 46,009
- winTieLoss
- 30-0-34
- workRatio
- 0.8600
- n
- 64
- meanScoreDelta
- 24,980
- lowerBound95
- -23,451
- upperBound95
- 73,442
- winTieLoss
- 32-0-32
- n
- 64
- meanScoreDelta
- 64,116
- lowerBound95
- 7,475
- upperBound95
- 121,776
- winTieLoss
- 36-0-28
- n
- 64
- meanScoreDelta
- -27,097
- lowerBound95
- -83,807
- upperBound95
- 31,209
- meanMoveDelta
- -7.5300
- winTieLoss
- 28-0-36
- workRatio
- 3.1800
- half1
- -4,495
- half2
- -49,698
- n
- 64
- meanScoreDelta
- 37,019
- lowerBound95
- -25,076
- upperBound95
- 102,426
- meanMoveDelta
- 9.6600
- winTieLoss
- 30-0-34
- n
- 64
- meanScoreDelta
- -49,153
- lowerBound95
- -125,029
- upperBound95
- 27,828
- meanMoveDelta
- -12.7300
- winTieLoss
- 22-0-42
- decisions
- 6,633
- decisionsBelowTargetDepth
- 0
- workLimitEvents
- 0
- minCompletedDepth
- 4
- maxDecisionWork
- 81,686,570
- declaredBound
- 187,336,114
- decisions
- 6,523
- decisionsBelowTargetDepth
- 0
- workLimitEvents
- 0
- minCompletedDepth
- 3
- maxDecisionWork
- 190,214,472
- declaredBound
- 407,634,528
- games
- 64
- fieldMismatches
- 0
- summedLogicalWorkChunked1Thread
- 312,966,881
- summedLogicalWorkSingle12Thread
- 312,966,881
- onlyDifferingField
- per-game wallSeconds
- note
- depth 3 (N=5, M=1) run as four 16-game chunks at 1 thread against the existing single 64-game 12-thread artifact; also a worker-count independence check. Recorded in finding-09 Continuation section 12.
- SUPERSESSION: this record replaces RS-20260821T181918Z-ea7076a3 for the same experiment. That record was written and committed while arm 2 held 32 of 64 games and is left byte-unchanged, because this repository has no precedent for annotating a committed result in place; the supersession relationship is carried here and by the theory record's evidenceRefs list, which is how the afterstate line's superseded results are linked. Quote this record, not the partial one.
- DOSE, NOT AXIS, for arm 1: the depth-4 arm tested two reveal samples (28.6% joint coverage), below the six samples (85.7%) that first cleared noise at depth 3. The negative is about that dose at that depth; a wide depth-4 reveal estimator was never affordable and remains unmeasured. What the +17,541 ceiling does bound is how much compounding could have been hiding at this dose.
- SATURATION, NOT REGRESSION, for arm 2: the M=6 to M=12 step does not clear zero in either direction. The defensible statement is that the reveal axis is exhausted by M about 6 and that filling the last of the joint grid buys at most +31k and plausibly nothing. It is not evidence that more reveal samples hurt.
- No adjacent step in the depth-3 M ladder is individually significant, so the whole M >= 3 region is consistent with one plateau. The M=1 to M=6 endpoint test (+64,116 [+7,475]) is what carries finding-09's positive result, and it is unaffected by this record.
- The three readings finding-09's Continuation section 16 lists for the turnover - redundant last atoms, variance reduction rather than coverage per se, or 64 games being unable to resolve steps this size - are not separated by this experiment.
- 64 paired games with a score standard deviation of 55-73% of the mean; the M=12 arm's is 254,059 on a mean of 349,345. Effects below roughly 60,000 points are invisible at this sample size.
- The cohort 0xa51d1000-0xa51d103f was opened by finding-05 and read again by finding-09; it is permanently development data. STANDARD tier, diagnostic only, never a freeze gate and never confirmation evidence. A fresh-block replication is owed before anything here is promoted.
- Work per move is not comparable across arms with different declared cache capacities: the new arms auto-size from their branching factor (960,695 and 346,921 entries) while the recorded comparators declare 60,000.
- Not timing-grade: shared machine throughout, and chunk 1 of the depth-4 arm ran at 8 threads rather than 12 after a load back-off. Scores, moves and logical work are deterministic and unaffected, as the 1-thread-versus-12-thread pooling control demonstrates directly.
- The experiment record was written after the runs. The arms and their launch protocol were fixed in prose in finding-09 and in run-arms.sh before either produced a game, but this is retroactive registration and the experiment record's amendment says so.
- All artifacts live under runs/, which is gitignored, so the evidence is not committed with the record; the content manifest and the retained analysis output under the run directories are the durable reference.
- Nothing here moves the ceiling. The best arm on this cohort remains 398,498 against the 1,050,000 the frozen qualification protocol requires, and every game ended.