docs(pdep): name the finite-SA-row precondition at the distrust call site (I-037) - #211
Conversation
…site select_by_distrust escapes the master-equation sensitivity FLOOR in its ranking (compute_distrust reads no sensitivity value), but not unconditionally: it drops any candidate for which the round's Arkane SA left no finite row -- SKIP_UNMEASURABLE / SKIP_NO_EVIDENCE -- before the distrust window is applied, because t3.pdep.capture refuses an artifact with no coefficient to record. The prior call-site comment claimed "distrust, not that coefficient, decides what survives", which overstated the escape: the coefficient's PRESENCE co-decides survival even though its VALUE does not. An ordinary structural zero is a finite row (0.0 or ~1e-18) and is kept, so on a pristine pre-QM surface every entrance channel survives to be ranked; only a NaN/absent row -- a degenerate ME solve -- reintroduces the floor's blindness for that one in-window candidate. Comment-only; no behaviour change. (I-037)
There was a problem hiding this comment.
Pull request overview
Updates in-code documentation at the run_pes_loop distrust-selection call site to clarify that distrust-based ranking is independent of the sensitivity floor’s value, but candidate selection still requires the presence of a finite sensitivity coefficient row (i.e., evidence must exist for capture/recording).
Changes:
- Refines the comment above
select_by_distrust(...)to distinguish ranking behavior (distrust) from the precondition for eligibility (finite SA evidence row). - Documents the skip classifications (
SKIP_UNMEASURABLE/SKIP_NO_EVIDENCE) that occur before the distrust energy window is applied. - Adds a concrete pointer to the existing real-Arkane test demonstrating finite rows for each TS in a normal run.
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #211 +/- ##
==========================================
- Coverage 82.01% 82.00% -0.02%
==========================================
Files 76 76
Lines 12268 12268
Branches 2626 2626
==========================================
- Hits 10062 10060 -2
- Misses 1584 1585 +1
- Partials 622 623 +1
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
What
The distrust selector's escape from the master-equation sensitivity floor was documented at the
pes_loopcall site as if it were unconditional: "distrust, not that coefficient, decides what survives and in what order." This corrects the record. The escape lives in the ranking (compute_distrustreads no sensitivity value), but selection is conditional on Arkane emitting a finite SA row.Comment-only; no behaviour change.
Why (I-037)
select_by_distrust(t3/pdep/distrust.py:317) gates each candidate onevidence_by_ts_label.get(candidate.ts_label). A candidate with no finite row is skipped before the distrust energy window is applied —SKIP_UNMEASURABLEif structurally unmeasurable, elseSKIP_NO_EVIDENCE— becauset3.pdep.capturerefuses an artifact with no coefficient to record.An ordinary structural zero is a finite row (
0.0or~1e-18) and is kept, so on a pristine pre-QM surface every bimolecular entrance channel survives to be ranked (confirmed bytest_run_round_me_sensitivity_runs_real_arkane, where real Arkane emits a finite row for every TS). Only a NaN/absent row — a degenerate ME solve, not the structural-zero case distrust was built for — reintroduces the floor's blindness for that one in-window candidate.Verifier
A constructed no-row network run through
select_by_distrust:SKIP_UNMEASURABLESKIP_NO_EVIDENCEtests/test_pdep/test_distrust.py tests/test_pdep/test_pes_sa.py tests/test_pdep/test_pes_loop.py— 80 passed, unchanged.Verdict
Conditional escape, condition = a finite SA row exists for the candidate. The condition holds on ordinary pre-QM surfaces (finite structural zeros), so this is a documentation matter, not a live defect there. The failure mode (NaN/absent row) is reachable only under a degenerate ME solve; whether real Arkane then writes a NaN row vs. crashing the whole SA job (which the round already catches and fails loudly) is unverified here without running Arkane on such a network.