You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
A8 F5 scale-invariance is only leading-order (test overclaims); + pre-existing NaN silent-failure in lep_proximity (residual from #70/#81 dual-review) #82
Aufgedeckt beim Dual-Review von PR #81 (Addresses #70). Kein Korrektheits-Regress — die neue radius/gap-Regel (A8) ist strikt besser + dimensional sauber als die alte bare-radius-Regel. Zwei Test-/Härtungs-Residuen:
1. A8 radius/gap ist nur leading-order skalen-invariant — Test + PR-Body überclaimen
Equalita hat die reale Drift gemessen (stark nicht-normaler 3×3-Operator): reales radius/gap driftet 2.549 (c=1e-3) → 2.0 (c=1e3), ~27% über 6 Dekaden — NICHT exakt invariant.
Ursache: D13 (resolvent.py:72) nutzt festeseps=1.0e-3. Für ε-Pseudospektren gilt sigma_eps(cL)=c·sigma_{eps/c}(L); bei fixem ε skaliert der reale Radius nur näherungsweise linear.
Der Code-Kommentar ist ehrlich (classification.py: "scale-invariant to leading order"). Der Überclaim liegt nur im Test-Namentest_a8_f5_rule_is_scale_invariant_under_rescale und im PR-Body/Commit ("L→cL no longer flips A10/F5" ohne Einschränkung). ALLE A8-Tests skalieren nur die gespeicherten Evidence-Werte per Hand (_spectral(gap=0.5*c) UND _resolvent(pseudospectral_radius=5.0*c)) → Quotient trivial invariant; kein Test rechnet pseudospectral_radius aus einem echt reskalierten c·L neu.
Zu tun: (a) Test umbenennen/ergänzen: ..._leading_order + ein echter End-to-End-Metamorph-Test, der den pseudospektralen Radius aus c·L neu berechnet und die reale Rest-Drift dokumentiert/bounded. (b) PR-Body/Commit-Wording auf "to leading order" einschränken. (c) Erwägen: ε relativ mitskalieren (eps ∝ \|L\|) für echte Skaleninvarianz — Physik-Design-Frage, cross-family.
Praktische Flip-Gefahr nur bei grenznahen Systemen (reach ≈ 2·ratio) unter extremem Rescaling → als Follow-up geführt, kein Merge-Blocker.
2. Pre-existing: NaN/inf-Eigenwerte still ignoriert in lep_proximity
lep_proximity (D16) ignoriert NaN/inf-Eigenwerte still (→ finiter Wert statt lautem Fehler). Verstoss gegen das Silent-Failure-Gate. PRE-EXISTING (alte sep>atol-Logik verwarf NaN-Paare identisch), NICHT von fix(classifier): clear #70 semantics debt (A5/A6/A8/A9; B3/B4 proposed) #81 eingeführt. Härten: laut fehlschlagen oder explizit dokumentieren.
Theoretischer Edge: gap<0 würde F5 spurios feuern (Guard nur >0.0); physikalisch kann spectral.gap nicht negativ sein → kein realer Pfad, defensiv absichern optional.
Aufgedeckt beim Dual-Review von PR #81 (Addresses #70). Kein Korrektheits-Regress — die neue
radius/gap-Regel (A8) ist strikt besser + dimensional sauber als die alte bare-radius-Regel. Zwei Test-/Härtungs-Residuen:1. A8
radius/gapist nur leading-order skalen-invariant — Test + PR-Body überclaimenradius/gapdriftet 2.549 (c=1e-3) → 2.0 (c=1e3), ~27% über 6 Dekaden — NICHT exakt invariant.resolvent.py:72) nutzt festeseps=1.0e-3. Für ε-Pseudospektren giltsigma_eps(cL)=c·sigma_{eps/c}(L); bei fixem ε skaliert der reale Radius nur näherungsweise linear.classification.py: "scale-invariant to leading order"). Der Überclaim liegt nur im Test-Namentest_a8_f5_rule_is_scale_invariant_under_rescaleund im PR-Body/Commit ("L→cL no longer flips A10/F5" ohne Einschränkung). ALLE A8-Tests skalieren nur die gespeicherten Evidence-Werte per Hand (_spectral(gap=0.5*c)UND_resolvent(pseudospectral_radius=5.0*c)) → Quotient trivial invariant; kein Test rechnetpseudospectral_radiusaus einem echt reskaliertenc·Lneu...._leading_order+ ein echter End-to-End-Metamorph-Test, der den pseudospektralen Radius ausc·Lneu berechnet und die reale Rest-Drift dokumentiert/bounded. (b) PR-Body/Commit-Wording auf "to leading order" einschränken. (c) Erwägen: ε relativ mitskalieren (eps ∝ \|L\|) für echte Skaleninvarianz — Physik-Design-Frage, cross-family.reach ≈ 2·ratio) unter extremem Rescaling → als Follow-up geführt, kein Merge-Blocker.2. Pre-existing: NaN/inf-Eigenwerte still ignoriert in
lep_proximitylep_proximity(D16) ignoriert NaN/inf-Eigenwerte still (→ finiter Wert statt lautem Fehler). Verstoss gegen das Silent-Failure-Gate. PRE-EXISTING (altesep>atol-Logik verwarf NaN-Paare identisch), NICHT von fix(classifier): clear #70 semantics debt (A5/A6/A8/A9; B3/B4 proposed) #81 eingeführt. Härten: laut fehlschlagen oder explizit dokumentieren.gap<0würde F5 spurios feuern (Guard nur>0.0); physikalisch kannspectral.gapnicht negativ sein → kein realer Pfad, defensiv absichern optional.Belege