# Verification checks (P4) - Clean re-run (deleted results.json/table1.csv/figure1.png, re-ran analysis.py): results.json byte-identical, table1.csv identical — PASS - Brute-force check of vectorised bootstrap (explicit y* construction, 20 draws) matched to 1e-12 — PASS - MC Var(ybar)/exact Var(ybar) in 0.93–1.06 across cells (cell_diagnostics), consistent with MC error (~3% SE for R=2000) — PASS - 27 coverage keys / 27 mcse keys / 18 rel_bias keys — PASS - table1 has 27 rows, wcb rel_bias empty — PASS - coverages in [0,1], mc se >0 and = sqrt(p(1-p)/R) — PASS - n_failure_cells == len(failure_cells) and failure set matches rule — PASS - nominal set matches rule — PASS - n_analysed = 9*2000 — PASS - cr1 rel bias = G/(G-1)*cr0 rel bias — PASS - MC rel bias vs exact analytic: max |z| = 2.46 (<3) — PASS - cr1 halfwidth > cr0 halfwidth in every cell — PASS - cr1 coverage >= cr0 coverage in every cell (nested intervals) — PASS - best_procedure_small_G is argmax of mean_coverage_G5 — PASS - no degenerate bootstrap draws — PASS