# Gale-Nullspace Feature Mixer MVP `gale_mixer_experiment.py` implements the core construction for `X in R^(a x b)`: SVD of `X.T` is used to obtain `Y in R^((b-a) x b)` with rows in the left nullspace of `X`; it also implements the normalized residual penalty `||Y D X.T||_F^2/(||Y||_F^2 ||X||_F^2 + eps)`. Run: ```bash /home/maxwelhelp/main/bin/python3 gale_mixer_experiment.py ``` The script writes `results.json` and prints it. It runs three fixed-seed mechanism checks: 1. Exact SVD nullspace: predicted `||Y X.T||` is floating-point roundoff. 2. Perturbation sweep `Y + gamma Z`: predicted residual norm scales as `gamma^1`, and the squared normalized penalty as `gamma^2`. 3. Diagonal gauge sweep: `D=cI` preserves annihilation, while a nonconstant diagonal generally breaks it; the measured residual is approximately linear in gauge spread near zero. It also runs a small held-out linear-probe comparison. The probe target is constructed to contain both primary and dual summaries, so this is only a mechanism signal, not a language-model or equal-parameter attention result.