BREAKS → DEFENDED ×2 → CLOSED 2026-07-10 · attack A4 (KB §3; the probe's own documented H3 residual) · two defenses landed in one iteration, each proven by re-attack · clean 0/3
aggregate_worst_regime documented its pooled bootstrap's cross-symbol stitching as a
benign residual: "H3, ~1% bound shift … conservative (bias to WATCH/PENDING), never a false
PASS." A documented magnitude claim is a falsifiable claim — so it was attacked.
Stitched (current) vs boundary-respecting within-symbol bootstrap (KB §3: "within-symbol block
bootstrap, then combine"), identical hash-derived uniforms so the ONLY difference is boundary
respect; the probe's own _boot_ci + ci_gated_redundant (B=400, |Spearman|
binding) on 18 pooled regimes × 7 pairs.
| Falsifier | Result |
|---|---|
| F1 — any verdict flip stitched vs within | 0 of 126 (not verdict-material today) |
| F2 — any bound shift > 0.02 (2× the documented "~1%") | 4 hits — shifts up to 0.036 (>3× documented), all on bar_dispersion_entropy|trade_intensity in high-vol/thin regimes; stitched CIs consistently WIDER (conservative in direction, wasteful in power, and the documented number simply false) |
+ stationary_bootstrap_idx_segmented(n, seed, segments) # per-symbol segments resampled
# independently; blocks never
# cross a symbol boundary
+ _boot_ci(..., segments=None) # plumbed through
+ evaluate_pooled: passes per-symbol segment offsets # H3 residual ELIMINATED
- "known_limitations: … H3, ~1% bound shift …" # false claim removed from docs
G1 (mechanical boundary respect): 900/900 resamples clean. But G2 exposed a
knife-edge combo: high|asian|flat · price_impact|volume, whose CI lower bound
straddles the frozen 0.95 BAN line by ±0.001 — lo = 0.9489 (WATCH) under one uniform source,
0.9506 (BAN) under another. A frozen-line verdict decided by Monte Carlo noise — the stochastic
sibling of iter 3's order-dependence finding, and it would flip between two seeds of the same sampler.
+ boot_verdict_replicated(fn, …, replicates=3) # 3 independent seed streams
all 3 verdicts agree → that verdict
any disagreement → WATCH # noise can force caution,
# never a noise-BAN / noise-PASS
Fixed construction (R=3 — same spirit as iter 4's k∈{2,3,4} sub-slice guard); bands untouched;
wired into evaluate_pooled for both the binding ρ gate and the advisory ξ gate.
| Check | Result |
|---|---|
| G1 — boundary respect (900 resamples over real segment structures) | 0 crossings |
| G2′ — verdict invariance across THREE estimator flavors (rng / shifted-seed / hash uniforms), 126 combos | 126/126 identical; the knife-edge combo resolves to WATCH under all flavors (replicate-disagreement detected exactly there, as designed) |
A3 block-length regression (exercises the modified _boot_ci) | PASS |
| §B declaration self-test | PASS |
| File | What |
|---|---|
| a4_stitching_attack.py / a4_results.json | v1 — stitched vs within comparison; the 4 F2 magnitude breaches. |
| a4_stitching_attack_v2.py / a4_v2_results.json | v2 — re-attack of defense #1; the knife-edge MC flip (1 breach). |
| a4_stitching_attack_v3.py / a4_v3_results.json | v3 — both defenses under re-attack; 0 breaches (final). |
| a4_stderr.log · a4_v2_stderr.log · a4_v3_stderr.log | Run logs under the 2 CPU / 2 GB scope. |
| regression_tests/test_a4_stitching.sh | Permanent regression test — re-runs v3, asserts SURVIVES. |
The pooled CI path no longer stitches across symbols (residual eliminated, false doc claim removed) and no frozen-line verdict can be decided by Monte Carlo noise (knife-edges resolve to WATCH). Two real mechanism defects found and closed in one iteration — the second one only visible because the loop re-attacks its own fixes. Clean rounds: 0 of 3 (reset).
evaluate_pooled positional tie-break default (advisory ξ path) — carried from iter 3.iter 6 · attack A4 · verdict BREAKS → DEFENDED ×2 → CLOSED · one atomic commit:
iter 6: A4 bootstrap stitching — BREAKS→DEFENDED · append-only.