Flat regime (PREREG_flat_regime): the unkept-promise flag - after a model step that did not cross the root, r = f_new/f_old >= 1/4, the tangent-versus-halving break-even at m = 2 - RECOGNISES the regime (stage 1: 53.6% of model steps flagged on the flat families against 21.6% on APS and 17.0% on fun1; recall ten times the m>=2 estimator's 5.8%) and cuts the wide-bracket set by 350-490 wherever the budget does not already bind: safe 3390 -> 3037, step 3524 -> 3037, unguarded 4104 -> 3198.

NOT accepted into the proposed rule by the stop rule: under the projection the flat families are already budget-bound (CHA 3220 -> 3198 only) while the false flags on APS cost 2806 -> 3029 (Z2 fails); with G2 both sets fail. The per-problem edge over Chandrupatla on APS turns into 26/72/55. Guarantee intact in every cell. Next candidate, not pre-registered: require the promise to fail twice in a row.

Regression on the branch: 918 pass (twice); the one red test is the paper-number check awaiting the paper update.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
vvs
2026-09-21 13:25:56 +01:00
co-authored by Claude Opus 5
parent 9df1aa5f13
commit e7e74d71e5
7 changed files with 195 additions and 4 deletions
+29 -3
View File
@@ -219,6 +219,29 @@ def _preflight_extrap_mode():
raise SystemExit("extrapolate preflight FAILED: refusing to report zeros")
def build_grid_flat(smoke):
"""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="flat")
if not (ok and abs(x - 1.0) < 1e-8):
raise SystemExit("prestep=flat 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", "flat"):
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", "flat"):
specs.append(("pure", sim, "derived3", gu, "x", pre, "recent",
"distance", "none", "none"))
return specs
def build_grid_extrap2(smoke):
"""PREREG_extrapolation_gates_2026-09-21: the same cells as build_grid_extrap, every
one in all five modes (none, A, G1, G2, G3)."""
@@ -388,10 +411,12 @@ def main():
decmode = "--decision" in sys.argv # slot 2: the reading in the DECISION place
extmode = "--extrap" in sys.argv # A in the method: step extrapolation
ext2mode = "--extrap2" in sys.argv # gates G1-G3 on the lengthening
flatmode = "--flat" in sys.argv # the flat-regime gate
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_extrap2(smoke) if ext2mode else
specs = (build_grid_flat(smoke) if flatmode else
build_grid_extrap2(smoke) if ext2mode else
build_grid_extrap(smoke) if extmode else
build_grid_decision(smoke) if decmode else
build_grid_order(smoke) if ordermode else
@@ -417,8 +442,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 ext2mode or extmode or decmode or ordermode or capmode or combomode or pointsmode or dirmode:
base = ("sweep_extrap2" if ext2mode else
if flatmode or ext2mode or extmode or decmode or ordermode or capmode or combomode or pointsmode or dirmode:
base = ("sweep_flat" if flatmode else
"sweep_extrap2" if ext2mode else
"sweep_extrap" if extmode else
"sweep_decision" if decmode else
"sweep_order" if ordermode else