Verification checks (P4)
- Clean re-run: deleted out/results.json and out/counterexample.csv, re-ran analysis.py; results.json byte-identical (cmp) and counterexample.csv SHA-256 identical. PASS.
- counterexample.csv has 100000 data rows = design n = counterexample_values.n = n_analysed. PASS.
- All values finite; |y| == |x| row-wise (consistent with Y = S X). PASS.
- sd_sum recomputed from CSV (1.40589) equals results.json; theoretical sd sqrt(2)=1.41421; close. PASS.
- Sample means of x, y, sum near 0 and sds of x, y near 1 (theory: N(0,1) marginals). PASS.
- ks_sum_vs_normal = 0.2508; theoretical KS distance between the law of X+Y (atom 1/2 at 0, CDF jumps 0.25 -> 0.75) and N(0,2) is 0.25 (attained at 0). Matches. PASS.
- Fraction of sums exactly 0 = 0.50047 (theory 0.5). PASS.
- Magnitude vs baseline: independent-sum KS = 0.0017 (below 1.358/sqrt(n)=0.0043), marginal KS for x, y = 0.0021, 0.0020; counterexample sum KS is ~100x larger. PASS.
- Sample corr(x,y) = -0.008 ~ 0 (theory 0: uncorrelated but dependent). PASS. Note: KS critical value 1.358/sqrt(n) assumes fully specified null; with estimated mean/sd (Lilliefors) the correct critical value is smaller, so it is used only as a rough scale.