similarity in two more places MEASURED: triple by shape gives APS 2527 — below the published 2806 and below EVERY baseline including chandrupatla 2785 — and far-end by dissimilarity gives CHA 2683 (the ITP target met) with 5511 over both sets (project target 6026 beaten, ITP-oracle 5871 passed). Guarantee intact everywhere, 193/199. Neither mode is inert (38.6% / 26.9% of steps changed). A+B do NOT compose: 2884/2859 is worse than either alone — select, never weight, and never assume composability

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
vvs
2026-09-20 23:45:55 +01:00
co-authored by Claude Opus 5
parent 04ee5c89b9
commit 22f19c57f0
10 changed files with 342 additions and 3 deletions
+63
View File
@@ -0,0 +1,63 @@
# Findings — похожесть в составе точек и в направлении
(`PREREG_points_and_direction_2026-09-21.md`)
Числа с Linux; свипы в своих файлах (`sweep_points.json`, `sweep_direction.json`,
`sweep_combo.json`), `sweep_full.json` не тронут. Все конфигурации: 193/199 решено,
`over2x = 0` — гарантия цела везде.
## 1. Результаты
| конфигурация (поверх гейта наклона) | APS-154 | CHA-45 | два набора, одна конфигурация |
|---|---|---|---|
| **режим A** `points="shape"` | **2527** | 3021 | 5635 |
| **режим B** `direction="dissimilar"` | 2726 | **2683** | **5511** |
| A+B вместе | 2884 | 2859 | 5743 |
| гейт наклона (предыдущий шаг) | 2848 | 2903 | 5922 |
| **опубликованное x-пространство** | 2806 | 4516 | 12 312 |
| базлайн Chandrupatla | 2785 | **2423** | **5208** |
| базлайн TOMS 748 | 2820 | 4000 | 6820 |
| базлайн ITP-oracle | 3260 | 2611 | 5871 |
**Взятые цели:**
- 🟢 **APS: 2527** — ниже опубликованного 2806 **и ниже всех базлайнов**, включая Chandrupatla 2785
(режим A, `ratio.derived3.safe`).
- 🟢 **CHA: 2683 ≤ 2857** — недобранная цель ITP взята (режим B).
- 🟢 **два набора: 5511 < 6026** — цель проекта взята с запасом; ITP-oracle (5871) обойдён.
- 🔴 Chandrupatla по двум наборам (5208) и на CHA (2423) по-прежнему впереди.
**Неинертность (обязательная проверка A2/B2):** режим A меняет решение в **38.6 %** шагов
(APS 33.0 %, CHA 44.0 %), режим B — в **26.9 %** (18.1 % / 40.8 %). Пред-регистрация требовала ≥5 %:
оба замера — эксперименты, а не пустышки.
## 2. 🔴 A+B НЕ складываются
Комбинация хуже каждого режима по отдельности: APS 2884 против 2527 и 2726; CHA 2859 против 2683.
Два независимо полезных чтения похожести **интерферируют**. Это тот же закон, что записан в корпусе про
консенсус — «equal consensus только для сравнимых по силе, **select, never weight**»: нельзя считать
композицию бесплатной. **Запрет:** не предполагать складываемость режимов без замера.
## 3. Что установлено по существу
**Место чтения похожести — управляющая переменная метода, и мест больше, чем одно.**
Карта решений цикла: направление, масштаб, длина шага, доверие до шага, сторож, состав точек,
остановка, выбор `S`. Похожесть исходно стояла только в «длине шага». За эту линию добавлены три
чтения, и каждое дало измеримый эффект:
| место | чтение | эффект |
|---|---|---|
| доверие до шага | знак наклона установился? | CHA 4516 → 2903, ремонты 77.5 % → 55.3 % |
| **состав точек** | **argmin \|φ−ξ\| по объявленным тройкам** | **APS 2806 → 2527** (лучший результат на каноническом наборе) |
| **направление** | конец с большим \|f\| (менее похожим на ноль) | **CHA → 2683**, два набора → **5511** |
И отрицательные, с числами: прогресс скобки как валюта отказа (APS 4449), логарифмическая замена
переменной (APS 6940), композиция A+B (APS 2884).
## 4. Что это значит для статьи
Заголовок усиливается, а не теряется: **APS-154 = 2527 при нуле настроечных констант** — это ниже
всех базлайнов, включая Chandrupatla; и отдельно **5511 на двух наборах при целой гарантии** против
цели 6026. Позиционирование, которое было развилкой на прошлом шаге (терять ли первое место), снято:
первое место не теряется, а улучшается.
🔴 **Не повторять:** композиция A+B; гейт по прогрессу скобки; логарифмическая замена; `cbrt` по
набору; три детектора режима.
+54
View File
@@ -0,0 +1,54 @@
"""A2/B2: is the new reading INERT? (PREREG_points_and_direction_2026-09-21 §4)
A mode that changes nothing is not evidence either way, so the share of steps on which the
new rule actually changed the decision is measured over the whole benchmark, per set.
python -u measure_inertness.py
"""
from __future__ import annotations
from simroot.pure import pure_root
from sweep_full import MAXFEV, XTOL, load_problems
def run(mode):
kw = {"points": "shape"} if mode == "shape" else {"direction": "dissimilar"}
key = "triple_changed" if mode == "shape" else "dir_changed"
out = {}
for setname in ("APS", "CHA"):
steps = changed = solved = n = 0
for s, _pid, f, a, b, root in load_problems():
if s != setname:
continue
n += 1
st = {}
try:
x, nfev, ok = pure_root(f, a, b, XTOL, MAXFEV, similarity="ratio",
scale="derived3", guard="safe", prestep="slope",
stats=st, **kw)
except Exception:
continue
steps += max(nfev - 2, 0)
changed += st.get(key, 0)
solved += int(bool(ok) and abs(x - root) <= 1e-6)
out[setname] = (changed, steps, 100.0 * changed / steps if steps else float("nan"),
solved, n)
return out
def main():
for mode in ("shape", "dissimilar"):
res = run(mode)
print(f"\nmode {mode!r}:")
for setname, (ch, st, pct, solved, n) in res.items():
print(f" {setname}: changed {ch} of {st} steps = {pct:.1f}% "
f"(solved {solved}/{n})")
pct_all = 100.0 * sum(r[0] for r in res.values()) / max(sum(r[1] for r in res.values()), 1)
verdict = "NOT inert" if pct_all >= 5.0 else ("INERT — the measurement is void"
if pct_all < 1.0 else "borderline")
print(f" overall {pct_all:.1f}% -> {verdict} (prereg: >=5% not inert, <1% void)")
if __name__ == "__main__":
main()
+66
View File
@@ -0,0 +1,66 @@
sweep: 63 configurations x 199 problems (FULL)
10/63 done, 0s elapsed
20/63 done, 1s elapsed
30/63 done, 1s elapsed
40/63 done, 1s elapsed
50/63 done, 1s elapsed
60/63 done, 2s elapsed
63/63 done, 2s elapsed
wrote sweep_combo.json (2s total)
====================================================================================
APS: 154 problems (top 20 of 63)
====================================================================================
configuration solved total fev over 2x
------------------------------------------------------------------------------------
pure+shape+dissim+slope.ratio.derived3.step 153/154 2884 0
pure+shape+dissim+slope.ratio.derived3.safe 153/154 2884 0
pure+shape+dissim+slope.ratio.derived3.none 153/154 2941 0
pure+shape+dissim+slope.ratio.derived3.project 153/154 2941 0
pure+shape+dissim+slope.exp_abs.derived3.none 153/154 3286 0
pure+shape+dissim+slope.exp_abs.derived3.project 153/154 3286 0
pure+shape+dissim+slope.exp_abs.derived3.step 153/154 3313 0
pure+shape+dissim+slope.exp_abs.derived3.safe 153/154 3313 0
pure+shape+dissim+slope.rational.derived3.step 153/154 3481 0
pure+shape+dissim+slope.rational.derived3.safe 153/154 3481 0
pure+shape+dissim+slope.rational.derived3.none 153/154 3536 0
pure+shape+dissim+slope.rational.derived3.project 153/154 3560 0
pure+shape+dissim+slope.ratio.derived3.credit 153/154 4354 0
pure+shape+dissim+slope.exp_abs.derived3.credit 153/154 5204 0
pure+shape+dissim+slope.ratio.derived3.bracket 153/154 5274 0
pure+shape+dissim+slope.ratio.derived3.both 153/154 5329 0
pure+shape+dissim+slope.ratio_soft.derived3.none 153/154 5571 0
pure+shape+dissim+slope.ratio_soft.derived3.step 153/154 5571 0
pure+shape+dissim+slope.ratio_soft.derived3.project 153/154 5571 0
pure+shape+dissim+slope.ratio_soft.derived3.safe 153/154 5571 0
====================================================================================
CHA: 45 problems (top 20 of 63)
====================================================================================
configuration solved total fev over 2x
------------------------------------------------------------------------------------
pure+shape+dissim+slope.ratio.derived3.safe 40/45 2859 0
pure+shape+dissim+slope.ratio.derived3.step 40/45 2860 0
pure+shape+dissim+slope.exp_abs.derived3.step 40/45 2921 0
pure+shape+dissim+slope.exp_abs.derived3.safe 40/45 2921 0
pure+shape+dissim+slope.rational.derived3.step 40/45 2990 0
pure+shape+dissim+slope.rational.derived3.safe 40/45 2990 0
pure+shape+dissim+slope.ratio_soft.derived3.credit 40/45 3031 0
pure+shape+dissim+slope.ratio.derived3.credit 40/45 3037 0
pure+shape+dissim+slope.ratio_soft.derived3.both 40/45 3050 0
pure+shape+dissim+slope.exp_abs.derived3.credit 40/45 3084 0
pure+shape+dissim+slope.cbrt.derived3.credit 40/45 3091 0
pure+shape+dissim+slope.ratio_soft.derived3.step 40/45 3098 0
pure+shape+dissim+slope.ratio_soft.derived3.safe 40/45 3098 0
pure+shape+dissim+slope.ratio_soft.derived3.bracket 40/45 3107 0
pure+shape+dissim+slope.ratio.derived3.both 40/45 3110 0
pure+shape+dissim+slope.rational.derived3.credit 40/45 3121 0
pure+shape+dissim+slope.sqrt.derived3.credit 40/45 3121 0
pure+shape+dissim+slope.cosine.derived3.credit 40/45 3128 0
pure+shape+dissim+slope.exp_sq.derived3.credit 40/45 3130 0
pure+shape+dissim+slope.rat_sq.derived3.credit 40/45 3130 0
====================================================================================
THE STAGE-0C LAW ACROSS THE GRID
====================================================================================
scale=derived3 slope c=1 (linear) mean total 6150 mean solved 193.0/199
scale=derived3 slope c=0 (quadratic) mean total 15145 mean solved 193.0/199
+74
View File
@@ -0,0 +1,74 @@
sweep: 126 configurations x 199 problems (FULL)
10/126 done, 0s elapsed
20/126 done, 1s elapsed
30/126 done, 1s elapsed
40/126 done, 1s elapsed
50/126 done, 2s elapsed
60/126 done, 2s elapsed
70/126 done, 2s elapsed
80/126 done, 3s elapsed
90/126 done, 3s elapsed
100/126 done, 3s elapsed
110/126 done, 3s elapsed
120/126 done, 3s elapsed
126/126 done, 3s elapsed
wrote sweep_direction.json (4s total)
====================================================================================
APS: 154 problems (top 20 of 126)
====================================================================================
configuration solved total fev over 2x
------------------------------------------------------------------------------------
pure+dissim+slope.ratio.derived3.none 153/154 2726 0
pure+dissim+slope.ratio.derived3.project 153/154 2726 0
pure+dissim+slope.ratio.derived3.step 153/154 3123 0
pure+dissim+slope.ratio.derived3.safe 153/154 3123 0
pure+dissim+slope.ratio.derived.none 153/154 3232 0
pure+dissim+slope.ratio.derived.project 153/154 3232 0
pure+dissim+slope.ratio.derived.step 153/154 3233 0
pure+dissim+slope.ratio.derived.safe 153/154 3233 0
pure+dissim+slope.rational.derived3.step 153/154 3281 0
pure+dissim+slope.rational.derived3.safe 153/154 3281 0
pure+dissim+slope.exp_abs.derived3.none 153/154 3358 0
pure+dissim+slope.exp_abs.derived3.project 153/154 3358 0
pure+dissim+slope.exp_abs.derived.project 153/154 3401 0
pure+dissim+slope.exp_abs.derived.none 153/154 3401 0
pure+dissim+slope.rational.derived3.none 153/154 3403 0
pure+dissim+slope.rational.derived3.project 153/154 3403 0
pure+dissim+slope.exp_abs.derived3.step 153/154 3461 0
pure+dissim+slope.exp_abs.derived3.safe 153/154 3461 0
pure+dissim+slope.rational.derived.none 153/154 3476 0
pure+dissim+slope.rational.derived.project 153/154 3476 0
====================================================================================
CHA: 45 problems (top 20 of 126)
====================================================================================
configuration solved total fev over 2x
------------------------------------------------------------------------------------
pure+dissim+slope.ratio.derived3.step 40/45 2683 0
pure+dissim+slope.ratio.derived3.safe 40/45 2683 0
pure+dissim+slope.exp_abs.derived3.step 40/45 2739 0
pure+dissim+slope.exp_abs.derived3.safe 40/45 2739 0
pure+dissim+slope.ratio.derived3.none 40/45 2785 0
pure+dissim+slope.ratio.derived3.project 40/45 2785 0
pure+dissim+slope.exp_abs.derived3.none 40/45 2803 0
pure+dissim+slope.exp_abs.derived3.project 40/45 2803 0
pure+dissim+slope.rational.derived3.step 40/45 2822 0
pure+dissim+slope.rational.derived3.safe 40/45 2822 0
pure+dissim+slope.cbrt.derived.step 40/45 2933 0
pure+dissim+slope.cbrt.derived.safe 40/45 2933 0
pure+dissim+slope.cbrt.derived.credit 40/45 2978 0
pure+dissim+slope.ratio.derived3.credit 40/45 3002 0
pure+dissim+slope.ratio_soft.derived3.credit 40/45 3046 0
pure+dissim+slope.ratio_soft.derived.credit 40/45 3050 0
pure+dissim+slope.rational.derived3.none 40/45 3053 0
pure+dissim+slope.rational.derived3.project 40/45 3053 0
pure+dissim+slope.ratio_soft.derived3.both 40/45 3054 0
pure+dissim+slope.ratio_soft.derived3.step 40/45 3075 0
====================================================================================
THE STAGE-0C LAW ACROSS THE GRID
====================================================================================
scale=derived slope c=1 (linear) mean total 6581 mean solved 193.0/199
scale=derived slope c=0 (quadratic) mean total 15182 mean solved 193.0/199
scale=derived3 slope c=1 (linear) mean total 6036 mean solved 193.0/199
scale=derived3 slope c=0 (quadratic) mean total 14974 mean solved 193.0/199
+66
View File
@@ -0,0 +1,66 @@
sweep: 63 configurations x 199 problems (FULL)
10/63 done, 1s elapsed
20/63 done, 1s elapsed
30/63 done, 2s elapsed
40/63 done, 2s elapsed
50/63 done, 2s elapsed
60/63 done, 3s elapsed
63/63 done, 3s elapsed
wrote sweep_points.json (3s total)
====================================================================================
APS: 154 problems (top 20 of 63)
====================================================================================
configuration solved total fev over 2x
------------------------------------------------------------------------------------
pure+shape+slope.ratio.derived3.step 153/154 2527 0
pure+shape+slope.ratio.derived3.safe 153/154 2527 0
pure+shape+slope.ratio.derived3.none 153/154 2675 0
pure+shape+slope.ratio.derived3.project 153/154 2675 0
pure+shape+slope.exp_abs.derived3.step 153/154 3095 0
pure+shape+slope.exp_abs.derived3.safe 153/154 3095 0
pure+shape+slope.exp_abs.derived3.none 153/154 3190 0
pure+shape+slope.exp_abs.derived3.project 153/154 3190 0
pure+shape+slope.rational.derived3.none 153/154 3539 0
pure+shape+slope.rational.derived3.step 153/154 3562 0
pure+shape+slope.rational.derived3.safe 153/154 3562 0
pure+shape+slope.rational.derived3.project 153/154 3563 0
pure+shape+slope.ratio.derived3.credit 153/154 3755 0
pure+shape+slope.exp_abs.derived3.credit 153/154 4923 0
pure+shape+slope.ratio_soft.derived3.step 153/154 5523 0
pure+shape+slope.ratio_soft.derived3.safe 153/154 5523 0
pure+shape+slope.ratio_soft.derived3.project 153/154 5613 0
pure+shape+slope.ratio_soft.derived3.none 153/154 5613 0
pure+shape+slope.ratio_soft.derived3.both 153/154 5707 0
pure+shape+slope.ratio_soft.derived3.bracket 153/154 5718 0
====================================================================================
CHA: 45 problems (top 20 of 63)
====================================================================================
configuration solved total fev over 2x
------------------------------------------------------------------------------------
pure+shape+slope.ratio.derived3.credit 40/45 3021 0
pure+shape+slope.cbrt.derived3.credit 40/45 3045 0
pure+shape+slope.ratio_soft.derived3.credit 40/45 3047 0
pure+shape+slope.exp_abs.derived3.credit 40/45 3087 0
pure+shape+slope.ratio.derived3.safe 40/45 3108 0
pure+shape+slope.ratio.derived3.step 40/45 3109 0
pure+shape+slope.cosine.derived3.credit 40/45 3130 0
pure+shape+slope.exp_sq.derived3.credit 40/45 3130 0
pure+shape+slope.rat_sq.derived3.credit 40/45 3130 0
pure+shape+slope.rational.derived3.credit 40/45 3130 0
pure+shape+slope.sqrt.derived3.credit 40/45 3130 0
pure+shape+slope.exp_abs.derived3.step 40/45 3244 0
pure+shape+slope.exp_abs.derived3.safe 40/45 3244 0
pure+shape+slope.ratio_soft.derived3.both 40/45 3272 0
pure+shape+slope.ratio_soft.derived3.bracket 40/45 3310 0
pure+shape+slope.rational.derived3.step 40/45 3323 0
pure+shape+slope.rational.derived3.safe 40/45 3323 0
pure+shape+slope.ratio_soft.derived3.step 40/45 3477 0
pure+shape+slope.ratio_soft.derived3.safe 40/45 3477 0
pure+shape+slope.ratio.derived3.project 40/45 3498 0
====================================================================================
THE STAGE-0C LAW ACROSS THE GRID
====================================================================================
scale=derived3 slope c=1 (linear) mean total 6287 mean solved 193.0/199
scale=derived3 slope c=0 (quadratic) mean total 22016 mean solved 193.0/199
+1
View File
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+15 -3
View File
@@ -198,6 +198,15 @@ def build_grid_log(smoke):
for sim in sims for sc in ("derived", "derived3") for gu in guards] for sim in sims for sc in ("derived", "derived3") for gu in guards]
def build_grid_combo(smoke):
"""A+B together (PREREG 2026-09-21 §2: licensed only because each mode alone improved
APS — A 2527 and B 2726 against the published 2806)."""
sims = ["ratio", "sqrt"] if smoke else sorted(PURE_SIMS)
guards = ("credit", "project") if smoke else GUARD_MODES
return [("pure", sim, "derived3", gu, "x", "slope", "shape", "dissimilar")
for sim in sims for gu in guards]
def build_grid_points(smoke): def build_grid_points(smoke):
"""Mode A (PREREG 2026-09-21): the triple chosen by shape, on top of the slope gate that """Mode A (PREREG 2026-09-21): the triple chosen by shape, on top of the slope gate that
already reached the project target. Three-point scale only — a triple must exist.""" already reached the project target. Three-point scale only — a triple must exist."""
@@ -255,9 +264,11 @@ def main():
logmode = "--log" in sys.argv # the u-space grid, written to its OWN file logmode = "--log" in sys.argv # the u-space grid, written to its OWN file
gatemode = "--gate" in sys.argv # the pre-step gate grid, likewise gatemode = "--gate" in sys.argv # the pre-step gate grid, likewise
slopemode = "--slope" in sys.argv # the slope-stability gate grid slopemode = "--slope" in sys.argv # the slope-stability gate grid
combomode = "--combo" in sys.argv # modes A and B together
pointsmode = "--points" in sys.argv # mode A: triple by shape pointsmode = "--points" in sys.argv # mode A: triple by shape
dirmode = "--direction" in sys.argv # mode B: far end by dissimilarity dirmode = "--direction" in sys.argv # mode B: far end by dissimilarity
specs = (build_grid_points(smoke) if pointsmode else specs = (build_grid_combo(smoke) if combomode else
build_grid_points(smoke) if pointsmode else
build_grid_direction(smoke) if dirmode else build_grid_direction(smoke) if dirmode else
build_grid_slope(smoke) if slopemode else build_grid_slope(smoke) if slopemode else
build_grid_gate(smoke) if gatemode else build_grid_gate(smoke) if gatemode else
@@ -277,8 +288,9 @@ def main():
# the published sweep_full.json is what verify_article.py checks the paper # the published sweep_full.json is what verify_article.py checks the paper
# against, so the log grid never writes into it # against, so the log grid never writes into it
if pointsmode or dirmode: if combomode or pointsmode or dirmode:
base = "sweep_points" if pointsmode else "sweep_direction" base = ("sweep_combo" if combomode else
"sweep_points" if pointsmode else "sweep_direction")
out = f"{base}_smoke.json" if smoke else f"{base}.json" out = f"{base}_smoke.json" if smoke else f"{base}.json"
with open(out, "w", encoding="utf8") as fh: with open(out, "w", encoding="utf8") as fh:
json.dump(results, fh) json.dump(results, fh)
File diff suppressed because one or more lines are too long