# EXP-09: v(S) transfer versus a coordinated-but-wrong prior, gamma sweep (program M4)

- Date: 2026-10-07 (iter3, iter4a, iter4b), 2026-10-08 (iter8 corrected-eval rerun of the crossover band) | Cadence version: v0.75.0 / `88f4dde` (iter3, iter4); 0.78.0 / `750c8ef` (iter8) | Program iter: iter3, iter4, iter8 (superseded in comparison role by iter9 / EXP-15)
- Script: `exp/EXP-09_vs_gamma_coordinated_prior.py` (current: crossover band, 12 seeds, #164 reset fix) and `.py.bak` (pre-fix eval) | Evidence: `exp/EXP-09.out` (iter4a low-gamma half, 20 seeds, pre-fix), `exp/EXP-09-crossover.out` (iter4b, 12 seeds, pre-fix), `exp/EXP-09-fixed.out` (iter8, 12 seeds, current). The iter3 8-seed full sweep has no surviving output file (EXP-09.out was overwritten by iter4a); its numbers exist only in the program log.

## Summary
- Question: does transfer still refuse credit to a fake whose prior agrees with the exogenous task T on a tunable fraction gamma of contexts, past the peer-prediction crossover of about gamma*=0.70?
- Setup: EXP-08 twin ablation, K=8, 2 actions, `modules=(16, 8)`, 1600-step witness. The witness teaches rule R_gamma made by flipping each context of T independently with probability 1-gamma (so agreement is gamma only in expectation). Transfer to T measured per seed. iter3: 7 gammas x 8 seeds; iter4a: gamma 0.0/0.25/0.5 x 20 seeds; iter4b and iter8: gamma 0.625/0.75/0.875/1.0 x 12 seeds.
- Prediction: written in the docstring before running: "transfer should rise monotonically with gamma and cross zero near the point where the prior stops being better-than-chance about T."
- Result: current (iter8, fixed eval, 12 seeds): gamma 0.625 +0.125 (SEM 0.074), 0.75 +0.135 (0.054), 0.875 +0.281 (0.049), 1.0 +0.469 (0.045); fraction of seeds above 0.15: 0.50 / 0.58 / 0.58 / 1.00. Low-gamma half has only pre-fix numbers (iter4a, 20 seeds): 0.0 -0.281 (0.055), 0.25 -0.188 (0.054), 0.5 -0.062 (0.032). Superseded pre-fix crossover band (iter4b): +0.021 (0.044), +0.021 (0.036), +0.094 (0.033), +0.135 (0.045). Superseded iter3 (8 seeds): 0.0 -0.344, 0.25 -0.234, 0.5 -0.078, 0.625 +0.047, 0.75 +0.000, 0.875 +0.094, 1.0 +0.141.
- Verdict: SUPERSEDED. The pre-fix claim "coordinated fakes price to about zero below gamma 0.875; worth bar sits higher than PP's 0.70" is RETRACTED (iter8): after the eval fix, credit rises roughly in proportion to agreement (a 62.5%-agreeing prior earns about 27% of genuine credit). The M4 comparison was replaced by EXP-15 (iter9), which found the gamma-vs-0.70 comparison was never like-for-like and scored one adversary under both mechanisms. The docstring prediction (monotonic, crossing zero near chance) is consistent with the combined curve, but the low half is pre-fix.

## Reflection
- What it means: transfer credit tracks how much real T-information a prior carries, roughly proportionally; it is not a threshold that zeroes out moderately-correlated fakes. That is arguably the correct behavior (a 5/8-right prior carries real information), but it removes the "faking collapses into contributing only at about 90% agreement" story. What this experiment cannot say is how transfer compares to peer prediction; that needed a matched baseline (EXP-15).
- Process: (1) Eval bug #164 (no reset between probes) produced the threshold shape; iter4 had added a "greedy act() is PURE" probe that was wrong and dropped the save/load clone on that basis. (2) Mixed-N, mixed-version curve: the current state combines a post-fix 12-seed crossover band with a pre-fix 20-seed low half that was never rerun. (3) The headline comparison to gamma*=0.70 was conceptual from the start (different axis: fraction of the PP reference pool coordinated, not prior agreement with T), which the log acknowledged as "not decision-grade" before iter9 showed it was a different axis entirely. (4) `rule_at_gamma` draws flips randomly, so with K=8 the realized agreement per seed varies around gamma, adding noise the gamma label hides. (5) Hardware limit split the run (inline 590s cap), and the iter3 output was overwritten. (6) Stale records: the EXP-09 entry in EXPERIMENT-RESULTS.md still reports the pre-fix curve with verdict "SUPPORTIVE, clean curve" and the "~zero below 0.875" reading, and the M4 status line in VS-TRANSFER-PROGRAM.md SOLVED-CRITERIA is also pre-fix; neither notes the iter8 retraction. (7) The post-fix output prints no "worth-threshold crossed" line because the crossing logic needs a row at or below 0.10 and the lowest fixed row is already +0.125; that line should not be read as missing data.
- Lesson: compare two mechanisms only on the same adversary and the same axis; a borrowed number from a different mechanism is not a baseline. Keep each run's output file instead of overwriting.
- Next: led directly to EXP-15 (matched peer-prediction baseline, iter9), which is the current M4 result. The low-gamma half (0.0 to 0.5) under the fixed eval is still not rerun.
