PREREG_flat_stick outcome: NOT accepted. Sticky regime under the projection: CHA 3220 -> 3019 (W1 holds), flat fun3-6 1823 -> 1057 (W4, near pure bisection 1044), guarantee holds (W3), but APS 2806 -> 6781 (W2 fails): the unkept-promise flag enters on 134/154 APS problems and 20/25 non-flat CHA problems, and a false entry now sticks to the end of the run. W6 fails: the order read from the promise is m = inf in 163/174 entries (r >= 1/e; our step is not a pure tangent), so the derived split equals the midpoint on CHA (3019 both). Audit bug fixed and pinned: an infinite |f| at an end made the split nan. Server regression x2: 999 passed, 1 failed = the expected paper-number check.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
vvs
2026-09-21 14:14:35 +01:00
co-authored by Claude Opus 5
parent 1192c68501
commit f8c17c4ed1
6 changed files with 265 additions and 11 deletions
+17 -10
View File
@@ -221,22 +221,26 @@ def _preflight_extrap_mode():
def build_grid_flat(smoke, gate="flat"):
"""PREREG_flat_regime_2026-09-21 stage 2: the flat gate (prestep='flat') in pairs,
on the proposed rule and on the proposed rule with G2 (extrapolate='pattern')."""
x, _n, ok = pure_root(lambda t: t - 1.0, 0.0, 3.0, 1e-10, 100, similarity="ratio",
scale="derived3", guard="project", prestep=gate)
if not (ok and abs(x - 1.0) < 1e-8):
raise SystemExit(f"prestep={gate} preflight FAILED: refusing to report zeros")
on the proposed rule and on the proposed rule with G2 (extrapolate='pattern').
`gate` may be a tuple: every gate in it gets its own cell next to the same 'none'
(PREREG_flat_stick: flatstick and its ablation flatstickmid in one grid)."""
gates = gate if isinstance(gate, tuple) else (gate,)
for gt in gates:
x, _n, ok = pure_root(lambda t: t - 1.0, 0.0, 3.0, 1e-10, 100, similarity="ratio",
scale="derived3", guard="project", prestep=gt)
if not (ok and abs(x - 1.0) < 1e-8):
raise SystemExit(f"prestep={gt} preflight FAILED: refusing to report zeros")
guards = ("project", "credit") if smoke else GUARD_MODES
specs = []
for gu in guards:
for ext in ("none", "pattern"):
for pre in ("none", gate):
for pre in ("none",) + gates:
specs.append(("pure", "ratio", "derived3", gu, "x", pre, "recent",
"distance", "none", ext))
sims = ["sqrt"] if smoke else [s for s in sorted(PURE_SIMS) if s != "ratio"]
for sim in sims:
for gu in guards:
for pre in ("none", gate):
for pre in ("none",) + gates:
specs.append(("pure", sim, "derived3", gu, "x", pre, "recent",
"distance", "none", "none"))
return specs
@@ -414,10 +418,12 @@ def main():
flatmode = "--flat" in sys.argv # the flat-regime gate
flat2mode = "--flat2" in sys.argv # the flat gate, promise failed twice
creepmode = "--flatcreep" in sys.argv # the flat gate AND a creep
stickmode = "--flatstick" in sys.argv # the sticky flat regime + its midpoint ablation
combomode = "--combo" in sys.argv # modes A and B together
pointsmode = "--points" in sys.argv # mode A: triple by shape
dirmode = "--direction" in sys.argv # mode B: far end by dissimilarity
specs = (build_grid_flat(smoke, "flatcreep") if creepmode else
specs = (build_grid_flat(smoke, ("flatstick", "flatstickmid")) if stickmode else
build_grid_flat(smoke, "flatcreep") if creepmode else
build_grid_flat(smoke, "flat2") if flat2mode else
build_grid_flat(smoke) if flatmode else
build_grid_extrap2(smoke) if ext2mode else
@@ -446,8 +452,9 @@ def main():
# the published sweep_full.json is what verify_article.py checks the paper
# against, so the log grid never writes into it
if creepmode or flat2mode or flatmode or ext2mode or extmode or decmode or ordermode or capmode or combomode or pointsmode or dirmode:
base = ("sweep_flatcreep" if creepmode else
if stickmode or creepmode or flat2mode or flatmode or ext2mode or extmode or decmode or ordermode or capmode or combomode or pointsmode or dirmode:
base = ("sweep_flatstick" if stickmode else
"sweep_flatcreep" if creepmode else
"sweep_flat2" if flat2mode else
"sweep_flat" if flatmode else
"sweep_extrap2" if ext2mode else