Rustinaresearch programme2026-08-19

The Blind Subspace

The fitted field ranks at 81.1% and generates at parity. That gap is a property of the estimator, not the model: the pool-softmax objective is exactly invariant on a subspace the docking argmin selects on. One scalar in that subspace — worth a single target in cross-validation — turns out to control the whole PoseBusters regression, and removing it restores validity to the baseline's level.

Branch
feat/equifield-dock @ 39c10c3
Corpus
g0c 8,237 rankable, guarded
Status
mechanism found · regression removed
§0

What this changes

§3.11 left the campaign with one open result: the fit wins +6.1 points at re-ranking and transfers nothing to generation. This document identifies the mechanism, measures it on data already on disk, and derives the estimator that does not have it.

The mechanism is an invariance, not an error. The pool-softmax loss depends on the parameters only through score differences within a pool. Every parameter direction orthogonal to the span of within-pool feature differences leaves the training loss numerically unchanged, while changing the energy of every pose outside the pools — which is the entire space an exhaustive argmin searches.

The measurement, on the shipped rank-8 field, with no refitting. Rewriting the potential's short range three different ways — three changes that a docking run separates decisively — moves the ranking objective by less than its fifth decimal place:

Correction to cp8w_ce, in-sample‖ΔW‖/‖W‖Δ ranking lossΔ top-1 of 8,237
isotonic core, below 2.0 Å13.1%−0.00001+0
zero the core, below 2.0 Å24.7%+0.00047+0
isotonic core, below 2.5 Å29.2%+0.00023+4
flat-clamp the core, below 2.5 Å (this is cp8c_ce)88.9%−0.00048+1

The highlighted row is the decisive one. Clamping rewrites 88.9% of the potential's norm, and the training objective it was fitted under scores that as a marginal improvement — loss down, top-1 up one. §3.11 docked exactly that change and measured minimum_distance_to_protein going from 12 failures to 18.

The load-bearing sentence

Ranking accuracy is not a sufficient statistic for generation quality, and the difference is not small: on this potential it is most of the potential. Every model-selection decision the campaign has made — rank, ridge, basis, clamp — was made on a metric that provably cannot see the failure mode it was trying to fix.

Tested end-to-end, six arms on 225 targets. The first remedy — correcting the core's shape — was refuted: it recovered no validity (208 → 206). Following the magnitude instead did. The learned field pays 3.3× more per contact than the empirical score while carrying the same wall, and because argmin(c·learned + wall) = argmin(learned + wall/c) that imbalance is one number. Cross-validation prices scales 0.75 and 1.00 at 6761 and 6762 of 8,237 — one target. Docked, the same number takes clash failures from 12 → 6 → 1 and validity from 208 → 213 → 218 against the baseline's 219.

So the campaign's one significant negative result was a mis-set scalar that its own selection metric could not see, and at scale 0.75 the fitted field is +8 top-1 and +10 ceiling over the empirical term at a validity regression that is no longer significant. §4 gives the general repair, tested against ground truth: an objective whose negatives come from the argmin rather than from a pool takes docking from 15% to 92% in a controlled problem where the true potential is known.


§1

The invariance

Stated exactly, because the strength of the claim is that it is an identity and not an approximation.

The fitter's score is linear in the parameters — S = X @ w + off in lowrank_field_gate.py, with φ the pairwise hat-basis contact histogram and o the fixed physics carried per pose. For pools P_t with positive p_t:

L(θ) = Σ_t [ S_{p_t} + log Σ_{q∈P_t} exp(−S_q) ]
     = Σ_t log Σ_{q∈P_t} exp( −⟨θ, φ_q − φ_{p_t}⟩ − (o_q − o_{p_t}) )

The parameters enter through nothing but those differences. So, writing Δ = span{ φ_q − φ_r : q, r in the same pool }, for every ψ ⟂ Δ:

L(θ + ψ) = L(θ)          exactly, for every θ

With a ridge the minimiser is unique, but its component in Δ is set by the regulariser alone — by a convention, not by data. Under a ranking objective the ridge is silently choosing the physics in the blind subspace. That is a different epistemic role from the one it plays in a well-posed fit, and it is invisible in every reported CV number.

The quantitative form

With 8,237 pools of depth 8 there are 57,659 difference vectors against 1,452 dimensions, so Δ is generically trivial and the exact statement above does no work on its own. The content is in the conditioning. The loss Hessian is a sum of within-pool covariances of φ, so curvature along a direction d is dTAd with A the within-pool second moment, and the coefficient standard error goes as (N·Add + λ)−1/2.

This has to be quoted in two parameterisations, because they say different things and using one for the other overstates the case. The fitter works on whitened features with a uniform ridge, so that space carries the conditioning of the estimator itself. What multiplies a real contact count — and therefore sets the energy error — is the physical coefficient wphys = wwhite/scale. Measured on the guarded corpus:

knotshare of contactsstd. error, whitenedstd. error, physical
1.5 Å0.001%0.06386.95
2.0 Å0.005%0.01070.712
2.5 Å0.119%0.006490.0866
3.0 Å1.221%0.005890.0237
4.0 Å11.30%0.007030.00598
5.5 Å27.87%0.008130.00387

11× in the whitened space, 1,796× in physical units, monotone in distance in both. The whitening does not remove the disparity, it relocates it: a uniform ridge in whitened space is a ridge in physical space weighted by 1/scale, so the rarest knots are shrunk hardest — by corpus occupancy, not by any physical statement. The corpus holds 1.35% of its contacts inside 3.0 Å and 81.9% beyond 4.5 Å, and both spreads track that occupancy.

Caveat

Read the ratios, not the magnitudes. The printed figure is 1/√(N·Add), a standard error only under a diagonal approximation — the true one needs the full inverse Hessian plus the ridge — and within-pool centring makes a pool's 8 rows sum to zero, so information scales with the ~8,237 pools rather than the 65,896 rows and the absolutes are optimistic by up to √8. A second correction: since wwhite = scale · wphys, a uniform whitened ridge is λ·Σ scale²·wphys², which shrinks the common knots hardest and the rare short-range ones least — the opposite of what an earlier draft said. The short range is poorly determined because the data curvature there is tiny, not because the ridge presses on it. Neither spread is the headline; the blindness sweep in §0 measures an actual change to the physical tensor and is invariant to all of this.


§2

What grew in the unconstrained region

An unconstrained direction does not stay empty. It fills with whatever minimises the loss elsewhere, and the result is a potential that is not merely uncertain at contact range but wrong in a specific, physical way.

Reading the shipped rank-8 tensor directly, over the 82 class pairs holding more than 1,000 contacts: 67 have an attractive slope inside their own repulsive core, and 21 (25.6%) reach their global minimum at or inside 3.0 Å. The free tensor is worse on the second count — 47 of 82, 57.3% — so the low-rank constraint does regularise the core, just nowhere near enough to make it physical. Some individual radial functions:

pair2.0 Å2.5 Å3.0 Å3.5 Å4.0 Å5.0 Å
NC−0.111−0.644−0.332−0.044−0.101−0.098
OAN+−0.626−1.205−0.700−0.337−0.157−0.146
OAA−0.188−0.280+0.058+0.009−0.017−0.092
CC (for contrast)+0.004+0.044+0.059−0.021−0.057−0.073

A ligand nitrogen 2.5 Å from a receptor carbon is a hard clash — the Vinardo radii sum to 3.7 Å — and the fitted potential pays −0.644 for it, its deepest value at any distance. CC is what a well-determined row looks like: monotone through the core, minimum at 5.0 Å.

Not every short-range well is spurious

OAN+ at 2.5–3.0 Å is also where a real salt bridge sits, and hydrogen bonds are genuinely sub-van-der-Waals contacts — which is precisely why Vina and Vinardo carry a separate h-bond term. Any core constraint has to be stated so that it does not suppress them. This is what sets the two cuts in §5 apart, and it is a real risk to the wider one.


§3

Why exhaustive search converts this into failure

The same property that makes the engine's search a strength under a correct objective makes it the amplifier under an incorrectly estimated one.

Write the estimate as θ̂ = θ* + ε with ε the estimation error, covariance Σ = (N·A + λI)−1. The energy of a pose then carries error ⟨ε, φ(ω)⟩ with standard deviation σ(ω) = √(φ(ω)TΣφ(ω)), and what the engine reports is

ω̂ = argmin_ω [ E*(ω) + ⟨ε, φ(ω)⟩ ]

Evaluating that random function at 8 given in-distribution poses — which is ranking — sees σ nearly constant, so the noise very largely cancels in the comparison. Minimising it over ~109 lattice × quadrature points, with σ varying by three orders of magnitude across the space, is a different operation: the argmin is drawn toward the poses where σ is largest, and σ is largest exactly where the corpus is emptiest, which is the clash region. The engine is not finding a bad pose by accident. It is doing its job, on a function whose uncertainty is concentrated precisely where it is licensed to look.

This gives §3.9.1's recorded anomaly a second, independent reading. That entry proposed a basin-measure mechanism for why "an exact optimiser of a wrong objective finds the global optimum of wrongness", and §3.9 refuted it. The mechanism here is not about basin volume, is measured rather than modelled, and predicts the same protection for stochastic search: finite-restart MC never evaluates enough of the high-σ region to find its minimum.


§4

The objective that cannot have a blind subspace

Rescaling one number removed the regression, but it is a patch on a symptom: it corrects the gain the objective could not set, and says nothing about the other 1,451 directions. The general repair is to stop fitting against a fixed pool of poses at all.

The pool-softmax gradient is supported on the eight poses in the pool. That is the whole of §1: everything off the pool is unconstrained. So use an objective whose gradient is supported on the argmin over the entire pose space — the operator the engine actually runs. With native pose y and a task loss Δ(ω) ≥ 0 that vanishes at the native, the structural hinge is

L(θ)  =  (λ/2)‖θ‖²  +  (1/N) Σ_c [  max_ω ( Δ_c(ω) − E_θ(ω) )  +  E_θ(y_c)  ]

∇L    =  λθ  +  (1/N) Σ_c [ φ(y_c) − φ(ω̂_c) ],     ω̂_c = argmin_ω [ E_θ(ω) − Δ_c(ω) ]

The subgradient needs exactly one thing: loss-augmented inference, an argmin over the whole space. Four properties follow, and each is a direct answer to something that has gone wrong in this campaign:

§3.14 makes rigid augmentation cheap; §3.16 makes flexible squared-RMSD augmentation exact

For a rigid conformer, §3.14 proves RMSD²(R,T) = floor(R) + ‖T + m(R)‖², so either RMSD or RMSD² is a precomputed array added before the argmin. That statement did not cover torsions: their coordinates and RMSD balls change with the assignment. TorsionSolver::with_squared_rmsd_margin now takes Δ(ω) = μ·RMSD²(ω,y) inside the torsion DP. Per rigid node it evaluates n‖T‖² + 2T·Σ(x−y) + Σ‖x−y‖², so the loss remains additive over sibling branches and is exact over every retained torsion and translation, with one atom-independent lattice pass per node state.

Tested against ground truth, where the answer is known

The real corpus cannot settle this — it has no ground-truth potential. So scripts/structured_prediction_gate.py builds a miniature docking problem that does: receptor atoms in a box, a rigid 4-atom ligand, poses on a 17³ translation lattice so the argmin is exhaustive, the shipped hat basis, and a true potential with a steep core and a well. The geometry is 3-D, so pair counts grow as r² and the radial occupancy matches the real corpus (11.8% inside 3.6 Å, 77.2% beyond 4.5 Å). Training pools are what a physical generator returns: clash-free poses near the native. Same complexes, same features, same ridge — the two objectives differ only in where the negatives come from.

Three objectives are fitted on the same training complexes and scored on held-out ones. The middle arm is the ablation that makes this controlled: pool-softmax and the hinge differ in more than their negatives — different loss, different optimiser, one carries a margin — so hinge, pool holds loss, optimiser and margin fixed and changes only the negative set.

held-out, 5 seeds × 72 complexesranks poolsdocks (full argmin)clashing
the true potential100.0%100.0%0.0%
pool-softmax (the shipped objective)91.1%12.8%89.7%
hinge, pool negatives (ablation)90.8%12.8%88.3%
hinge, full-space negatives97.2%86.4%10.3%

The ablation lands exactly on pool-softmax — 12.8% docking, to the decimal. Identical loss, optimiser and margin; only the negative set differs. So the optimiser and the margin explain none of the gap and the negatives explain all of it: +53.0 complexes, worst seed +47. The pool objective reproduces §3.11 from first principles, with a fitted core that is attractive (mean +0.8, min −0.89) where the truth is +12.7 — not a quirk of the g0c corpus, but what the objective does whenever the proposal is clash-free and the argmin is not.

Scope

A synthetic existence proof, not the engine: rigid poses, one atom class, translations only. It establishes that the failure follows from the negative set alone — no featurisation defect, no corpus artefact and no model-class limitation is required to produce it — and it does not predict the size of the effect on SPINDR.

The maximum-likelihood alternative, and why it is second choice

The field is also an exponential family over the engine's own pose space, and §3.13 makes its partition function exactdescend_soft's log-sum-exp semiring returns the free energy of the whole discrete torsion space at every lattice point at unchanged O(n·K) cost. Fitting by maximum likelihood of the near-native set gives the moment-matching gradient

∇[−log P_θ(N)]  =  β ( E_{p_θ|N}[φ]  −  E_{p_θ}[φ] )

whose Fisher information is Covp_θ[φ] — the covariance under the model, so information concentrates wherever the model puts mass, i.e. wherever it is currently wrong. That also has no blind subspace. But it is a difference of convex functions rather than convex, β is unidentified without an explicit norm constraint (as §3.13 already records), and it needs the full normaliser where the structural hinge needs only an argmin the engine already computes. Prefer the hinge; keep this as the probabilistic route if calibrated scores are wanted.


§5

The negative phase is affordable

The usual objection to exact maximum likelihood is that the negative phase is intractable, which is why the literature reaches for contrastive divergence. Here it costs about one extra correlation per ligand atom class — and the derivation is the reason this engine, and not a stochastic one, can do this at all.

The feature is already a map lookup. With Mb,k the receptor map grid.rs builds,

φ_(a,b,k)(ω) = Σ_{i∈a} Σ_{j∈b} h_k(‖x_i(ω) − y_j‖) = Σ_{i∈a} M_{b,k}(x_i(ω))

so the whole 1,452-dimensional expectation collapses onto one object per ligand class — the responsibility density, the Boltzmann-expected density of class-a ligand atoms in the receptor frame:

ρ_a(y) := Σ_ω p_θ(ω) Σ_{i∈a} δ(x_i(ω) − y)

E_{p_θ}[φ_(a,b,k)] = ⟨ ρ_a , M_{b,k} ⟩          — a grid inner product

and for a rigid conformer ρa is a convolution of the Boltzmann weight field with the rotated class-a atom density, whose transform the forward pass has already computed:

ρ̂_a = Σ_R  p̂_R · d̂_a^R            accumulate in Fourier space over rotations,
                                  one inverse FFT per class, at the end

The per-rotation marginal cost is one forward FFT of the weight field plus a complex multiply-accumulate per class, against the forward pass's one inverse FFT per channel. The 1,452 feature expectations are then a single GEMM of the ~12 responsibilities against the ~121 maps — order 108 operations on a pocket-sized grid, milliseconds.

stagework per complex per gradient stepvs. one docking pass
negative phase, rigid1 FFT per rotation + nclass inverse FFTs + 1 GEMM≈ 0.1–1×
positive phasethe same sum restricted to the §3.14 balls< 0.1×
torsions (stage 2)inside–outside through descend_soft for per-node marginalsO(n·K) convolutions

The identity is verified, not argued. scripts/tests/test_responsibility_density.py checks it against brute-force enumeration of an entire pose set — 52,800 poses, every one of 36 feature cells populated — and the two agree to a relative 2.7×10⁻¹⁶. A third case perturbs one class's responsibility to confirm the test has the power to fail.

This is the payoff of exhaustiveness, and it inverts §3.9.1's reading of it. Exact Z requires exhaustive enumeration of the pose space. A stochastic engine cannot compute it and must approximate the negative phase by sampling, with all the bias that carries. The property that made this engine fragile under a discriminatively-fitted score — that it really does find the global minimum — is the property that makes the correct generative estimator tractable.


§6

The physics that costs no data

Maximum likelihood is a campaign. There is a constraint available now that needs no refitting at all, and §0 says the ranking objective will not charge for it.

One statement about the core needs no data to justify: no pair potential has its minimum inside the van der Waals contact distance. It is a constraint on shape, it costs no parameters, and it is a set of linear inequalities in the free tensor — so a constrained fit stays convex. Imposed on the shipped tensor as the minimal L2 correction, it is isotonic regression per pair over its own core, and the projection is exact by pool-adjacent-violators (validated here against a constrained QP on 300 random sequences, worst deviation 1e−14).

PAVA preserves each pooled block's mean, so the correction removes the well without changing the core's integral — it is a repair of shape, not a strengthening of repulsion. Two fields are built, and the difference between them is the §2 caveat:

armcore imposed overpairs corrected‖ΔW‖/‖W‖in-sample Δ top-1
pv25_ce1.0 – 2.5 Å8427.0%+4
pvw_ceout to each pair's vdW contact sum11545.6%−53

Both are registered in run_spindr_matrix.py; the engine expands CP to a dense tensor before use, so both are drop-in at identical runtime.

A pre-registration that was wrong, and how

Before these arms ran, this page predicted that pv25_ce would not touch hydrogen bonding, on the grounds that a 2.5 Å cut sits below any real heavy-atom h-bond, and quantified it as 0.0% of the correction's mass in the 2.5–3.0 Å donor/acceptor window. That was computed on the stored knot table, and the engine does not evaluate the knot table — learned_field::energy interpolates linearly between knots. Moving the knot at 2.5 Å therefore changes the energy across the whole interval above it. Measured on the shipped field: 73 of 165 pair values moved at the 2.5 Å knot, perturbing 2.5–3.0 Å on 6 of 26 donor/acceptor pairs. A knot-level cut is one interval wider than it reads. The same error invalidates this page's earlier "the core's integral is unchanged": PAVA preserves the discrete block mean, while the trapezoidal integral of the interpolated function weights endpoints by ½ — all 84 corrected pairs moved theirs. The docked outcomes below are unaffected; the h-bond interpretation of the two cuts is withdrawn.

Kill

If neither arm moves PoseBusters validity off 208 toward the baseline's 219, the core is not the mechanism of the validity regression and the causal half of this diagnosis is wrong — the blindness measurement in §0 would stand, but its connection to the docked failure would not.

Both arms ran. The kill criterion fired.

225 SPINDR targets, same binary as cp8w_ce (0c5ce3d5593c), each arm differing from it by exactly one flag — the field file. Neither corrected field recovered validity: 208 → 206 and 206 against the baseline's 219, and clash failures went 12 → 13 → 15. Core shape is not the mechanism, and the causal half of the §2 diagnosis is refuted.

Why it failed, and it was stated up front

PAVA preserves each pooled block's mean — this page said so as a virtue, that the correction "removes the well without changing the core's integral". That makes it the minimal change, and it also makes it incapable of adding repulsion. A shape constraint cannot fix a magnitude deficit, and §3.11 had already localised the problem as missing repulsion. The wrong tool was applied to a correctly identified region.

Following the magnitude instead: one scalar

The refutation pointed straight at what PAVA could not touch. Two measurements set up the next arm. First, the searched objective pays −0.039 per receptor–ligand pair inside 6 Å against the empirical score's −0.012, while carrying Vinardo's own wall at Vinardo's own weight — its attraction runs 3.3× hot against the repulsion balancing it. Second, because

argmin( c · learned + wall )  ==  argmin( learned + wall / c )

scaling the learned field is scaling the wall. It is one number, and it is a number the ranking objective cannot set:

field scaleheld-out top-1 of 8,237%vs scale 1.00per-contact vs Vinardo
0.30619875.25%−4721.00×
0.50655379.56%−1171.67×
0.75667981.09%+92.51×
1.00 (shipped)667080.98%+03.34×
1.50662780.45%−435.02×

What this is, and what it is not

The scale direction is not in the exact null space of §1 — the loss changes along it (1.288 → 1.319 in sample), and §1's own gate records that Δ is generically trivial with 57,659 difference vectors against 1,452 dimensions. Nor are the PAVA and clamp perturbations. What is demonstrated throughout this page is the quantitative claim, not the exact one: substantial physical changes are weakly identified by pool ranking and decisive for the argmin. §1's identity explains why such directions exist and where to look for them; it does not certify that any particular measured perturbation lies in the exact subspace, and this page should not be read as claiming so.

Out of sample, ranking is flat between 0.75 and 1.00 — it marginally prefers 0.75, by 9 targets of 8,237 — while the attraction/repulsion balance differs by a third. Grouped 5-fold by protein entry, CP rank 8 refitted per fold, evaluated on held-out targets only (scripts/scale_balance_cv.py). So the ranking metric the campaign selects on cannot locate this number, and would have had no reason to move off the shipped value.

Correction

An earlier version of this page reported this sweep as "CV top-1" using numbers that were in-sample — the shipped field, fitted on everything, evaluated over the same corpus (6761 vs 6762). That is not a generalisation claim and the footer contradicted it. The table above is the held-out replacement, and it happens to make the point more strongly: 0.75 is not merely tied with 1.00 out of sample, it is ahead.

Docked, that scalar is the whole regression

armtop-1top-5ceilingPB-validmin-dist fails
xt_off_ce baseline1091391462191
cp8w_ce scale 1.0011314315420812
cp8c_ce clamp12114615320118
pv25_ce core < 2.5 Å11914815620613
pvw_ce core to vdW11214015320615
sw075_ce scale 0.751171421562136
sw050_ce scale 0.501111411512181

The scalar controls the failure monotonically and completely. Clash failures run 12 → 6 → 1 across scales 1.00 / 0.75 / 0.50, and sw050_ce returns exactly the baseline's single failure. Against the baseline its validity is 218 vs 219 — net −1, p = 1.00, where the shipped field was −11 at p = 0.0034. Against cp8w_ce it is +10 (+11 −1), p = 0.0063, the only significant improvement anywhere in this campaign.

And the accuracy survives. sw075_ce is the better operating point: top-1 117 and ceiling 156 against the baseline's 109 / 146, with validity 213 — a regression of −6 at p = 0.070, no longer significant. So the §3.11 headline can be restated: the fitted field is not merely at parity as a generator; it is +8 top-1 and +10 ceiling over the empirical term at essentially baseline physical validity. The parity finding was an artefact of one mis-set scalar.

Honest

The accuracy gains are not significant — sw075_ce vs baseline is +8 (+28 −20), p = 0.31 on top-1 and p = 0.16 on ceiling, and vs cp8w_ce its validity gain is +5 at p = 0.23. What is significant is sw050_ce's +10 validity over cp8w_ce (p = 0.0063) and the disappearance of the baseline regression (p = 1.00). The claim is that the regression is explained and removed, not that accuracy is won.

Timing

No speedup is claimed. The runner's cell_boundaries record machine load, and on a 6-core set the arms ran at loadavg 8.22 (cp8w_ce), 11.08 (cp8c_ce) and 0.42 (pv25_ce). The apparent 1.8× is the machine. Accuracy is unaffected: xt_off_ce returns exactly 109 / 139 / 146 / 219 on five binaries at loads from 1.89 to 16.09, so contention moves wall time only.

Two further changes, proposed and not measured


§7

Order of work

Two things are done. The rest is ordered by what the results above now indicate rather than by what looked promising before they ran.

  1. Dock the core-shape correction. Done; refuted. Validity 208 → 206. Core shape is not the mechanism. It did buy the sharpest evidence for the invariance itself: three sub-2.5 Å treatments the objective scored 0 / +4 / +1 produced 12 / 13 / 18 clashes.
  2. Follow the magnitude. Done; it works. One scalar, sw050_ce, removes the regression entirely (218 vs 219, p = 1.00; +10 over cp8w_ce at p = 0.0063). sw075_ce is the better operating point. Ship sw075_ce and re-read §3.11's parity claim.
  3. Fit the scale, do not tune it. Two arms is a two-point sweep chosen by hand, and choosing it on the benchmark is exactly the selection error this page is about. The scale must come from a held-out criterion that can see it — physical validity on a validation split, not ranking CV.
  4. Fit the structured objective. The flexible squared-RMSD negative oracle is now built in §3.16. Train the convex §4 hinge: negatives from the exhaustive argmin, positives from the near-native ball. The gate to beat is sw075_ce, not cp8w_ce. The kill criterion is generation, not ranking — §0 says ranking cannot price what is being fixed.
  5. Test a saturating head. A pairwise-additive potential is linear in contact count and the argmin extrapolates that linearity far outside the ±24-contact window a pool spans. Saturation is the physics (desolvation, coordination shells) and §3.10 already proved a monotone head keeps the search exact. Measured here: saturation constants from 150 to 2000 change ranking by +1 to +9 targets while halving the energy of a deeply buried pose — so §3.8's "a pooled nonlinearity buys nothing" is exactly what this predicts and is uninformative about generation. Do not cite it as evidence against.
  6. Refine the basis over 2.5–3.5 Å and rebin in surface distance. Still indicated, now clearly downstream of the two above.

A reporting rule this implies

No field should be selected on re-ranking CV alone. The scalar that removed this regression was worth one target in CV. Any candidate that changes the potential's gain, its short range, or its head must be docked before it is believed — and the in-sample blindness sweep is cheap enough to run on every one as a standing check.


§8

What is claimed

Measured, proven under ground truth, derived, and proposed are four different things.

claimbasisstatus
Pool-softmax is exactly invariant on Δidentity, §1PROVEN
27–89% of the tensor's norm is rewritable at ≈0 ranking costin-sample, no refitMEASURED
Those perturbations lie in the exact null space Δloss moves along themNOT CLAIMED
Ranking cannot order clamp / isotonic / leave-it; docking can0/+4/+1 vs 12/13/18MEASURED
Core shape causes the validity regression225 SPINDR, both armsREFUTED
The field pays 3.3× more per contact than the empirical scoreguarded corpusMEASURED
Held-out ranking is flat 0.75–1.00 (it prefers 0.75 by +9)grouped 5-fold, refit per foldMEASURED
That scalar controls the regression: 12→6→1 clashes, 208→213→218 valid225 SPINDR, 3 armsMEASURED
sw050_ce removes the regression (218 vs 219, p = 1.00)exact McNemarMEASURED
The gap is the negative set, not the loss/optimiser/marginablation lands on 12.8%PROVEN
Structured prediction fixes it: 12.8% → 86.4% held-out dockingground truth, 5 seeds, ablatedPROVEN
Ep[φ] = ⟨ρa, Mb,k⟩, the responsibility identityvs brute force, 2.7e−16VERIFIED
Rigid RMSD loss is one lattice passcorollary of §3.14DERIVED
Flexible squared-RMSD loss is exact over retained torsions and translationmoment identity; field, recovery and exact-search testsBUILT + PROVEN
A saturating head is invisible to ranking, decisive for generationCV +1..+9; halves a deep poseHALF-MEASURED
Structured prediction helps the real enginecomplete v2 development: top-1 73→78, any-mode 112→119 / 192DEVELOPMENT PASS
Surface-distance basis improves identifiabilitySTAGE 6

The finding that reframes the campaign is not the scalar; it is why the scalar survived. Every learned field in this repository has been fitted and selected under an objective that is provably unable to see most of what it is fitting — including, it turns out, its own overall gain. Rank, ridge, basis, clamp, and the "parity" verdict on the field as a generator were all decided by a measurement that could not distinguish the choices that mattered. That is a defect of the estimator, which is fixable and now has a tested fix, rather than of the model class, which §3.8 already showed is adequate.

Development result, 2026-08-19. An exact flexible squared-RMSD oracle, grid-consistent subgradients, chemistry/search-space maximin sampling, and PDB-disjoint adversarial validation produced a field that improved the complete 192-evaluable v2 development split from 73 to 78 top-1 successes and from 112 to 119 any-mode successes. The paired directions are encouraging but not significant (top-1 p = 0.500; any-mode p = 0.230), so the 198-target holdout remains sealed and this is not yet a release claim.