logarithmic space mode: pure_root gains space='x'|'log' (default reproduces the published grid bit-for-bit), u = sign(x-c)*log1p(|x-c|/xtol) with c = the end of smaller |f| and s = xtol fixed by derivation; gates G1/G2' pinned by tests/test_log_space.py (7 green); sweep writes the log grid to its OWN sweep_log.json so the verified sweep_full.json is untouched

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
vvs
2026-09-20 22:52:58 +01:00
co-authored by Claude Opus 5
parent bf221531ac
commit a9060b3dcc
5 changed files with 231 additions and 9 deletions
+33
View File
@@ -47,6 +47,39 @@
Не прошёл G2 → закрывается: широкие скобки куплены ценой канонического набора, а это трейд, на котором
провалились все прежние попытки.
## 3a. ПОПРАВКА 1 (2026-09-20, решение Валерия: вариант B)
**Что произошло:** строгий G2 («шаг в `u` совпадает со шагом в `x` до 1e-12») провален **выводом**, без
прогона, и не для одного кандидата, а для всех доступных беспараметрических единиц — марш требует
ОТНОШЕНИЯ расстояний, тождественность требует АБСОЛЮТНОЙ шкалы (разбор в `FINDINGS_logarithmic.md` §1).
**Решение (Валерий, вариант B):** строгое чтение G2 заменяется его же **измеримым** чтением, которое
уже стоит в этой пред-регистрации как L2:
> **G2′:** на APS-154 суммарная цена не растёт; ни одна задача канонического набора не становится
> дороже по вызовам `f`.
Это **ослабление** пред-регистрированного критерия после его провала — записано как ослабление, а не
как «уточнение», и принято решением, а не молча.
**Единица `s` фиксируется ВЫВОДОМ здесь и не выбирается по рейтингу:**
> `c` = конец скобки с меньшим |f| (сторона, к которой корень ближе);
> **`s` = `xtol`**.
Обоснование, а не удобство: задача преобразования — считать **декады, оставшиеся до различимости**.
Единственная длина в задаче, говорящая «ниже этого различий нет», — это `xtol`, и она приходит от
вызывающего наравне с `a`, `b`, `f`, то есть не является нашей константой. При таком выборе `u`
покрывает ровно `log(w/xtol)` единиц — ту самую величину, в которой сформулирована гарантия метода
`2⌈log₂(w/xtol)⌉+3`, так что марш становится линейным в мере собственной гарантии. Вырождения нет:
`xtol > 0` всегда, и `|x−c| = 0` даёт `u = 0`, а не деление на ноль.
Отвергнутая альтернатива (для протокола): самомасштабируемая `s = |x−c|` вырождается на первом шаге,
потому что итерат стартует в конце с меньшим |f|, то есть ровно в `c`.
**Режим требует выведенной шкалы:** `space="log"` допустим только при `scale ∈ {derived, derived3}` —
в log-пространстве нужен наклон; при прочих шкалах вызов обязан падать, а не считать молча.
## 4. Цели (записаны в `NEXT_PAPER_logarithmic.md` заранее, не подгонялись)
| величина | цель | где сейчас |