diff --git a/FINDINGS_logarithmic.md b/FINDINGS_logarithmic.md new file mode 100644 index 0000000..274a9de --- /dev/null +++ b/FINDINGS_logarithmic.md @@ -0,0 +1,47 @@ +# Findings — логарифмическая замена переменной (линия `NEXT_PAPER_logarithmic.md`) + +Пред-регистрация: `PREREG_logarithmic_2026-09-20.md`. Здесь — то, что установлено, в порядке +установления. Числа только с Linux (libm). + +--- + +## 0. Базовое состояние воспроизведено (2026-09-20, сервер) + +- `pytest tests/ -q` → **665 passed, 9 skipped, 364.91 s**. +- `verify_article.py` → **«every number stated in the paper matches the sweep data»** (все 72 числа). +- 🟡 Несоответствие документации: README обещает «490 tests», фактически 674. README не правлю — + он описывает опубликованный артефакт; расхождение зафиксировано здесь. +- 🟡 На сервере не было ни одного `*.json`: `sweep_full.json` (1 349 222 байта) залит с ноутбука, иначе + проверки, сверяющие статью с данными, молча пропускаются (те самые 9 skipped). + +## 1. 🔴 Два гейта допуска НЕСОВМЕСТИМЫ в строгой формулировке — установлено ВЫВОДОМ, без прогона + +Шаг метода: `step = (1 − S(|f|/sc))·(far − x)`, `sc = |slope|·|far − x|`. +Гейт **G1** — `c`, `s` выводятся из скобки; гейт **G2** — на узких скобках преобразование тождественно +до округления, то есть требует `|x − c| / s → 0` при сжатии скобки. + +| выбор единицы `s` (все беспараметрические) | узкая скобка | широкая скобка | +|---|---|---| +| `s = \|f(c)\|/\|f'(c)\|` — ньютоновская длина (пред-регистрированный кандидат) | у простого корня `\|x−c\| ~ \|f\|/\|f'\| ~ s`, отношение → **O(1)**, тождественности **НЕТ** | марш есть | +| `s = w₀` — исходная ширина скобки (датум задачи) | `\|x−c\|/w₀ → 0`, тождественность **есть** | `\|x−c\|/w₀ ≤ 1` ⇒ снова почти тождественность, **марша НЕТ** | +| `u = log\|x−c\|` — без единицы вовсе | режима тождественности **нет** и `x = c` не определено | марш есть | +| `s = \|x−c\|` — самомасштабируемая | мультипликативный шаг отличается от аддитивного во **втором порядке** `O((Δ/(x−c))²)` ⇒ строгой тождественности **НЕТ** | марш есть | + +**Вывод:** ни одна доступная беспараметрическая единица не удовлетворяет G1 и строгому G2 +одновременно. Это свойство постановки, а не деталь реализации. + +**Что из этого следует содержательно:** марш требует **отношения** расстояний, а тождественность — +**абсолютной** шкалы; одно преобразование не может быть одновременно масштабно-свободным и +масштабно-привязанным. Заодно это объясняет, почему `cbrt` «работал случайно»: он берёт фиксированную +долю скобки, то есть отношение, и потому марширует — но фиксирует показатель 1/3 как константу, чего +метод себе позволить не может. + +**Развилка, вынесенная Валерию (решение не моё):** +- **A** — оставить G2 строгим ⇒ линия закрывается сейчас, по выводу; отрицательный результат + постановки, сам вывод сохранён. +- **B** — заменить G2 на его же измеримое чтение из пред-регистрации (L2: «на APS-154 суммарная цена + не растёт»), реализовать самомасштабируемый режим и мерить; строгая тождественность была лишним + обещанием, а не требованием протокола статьи. + +Ослабление пред-регистрированного гейта после его провала — приём, которым легко обмануть себя, +поэтому он делается только по явному решению, и оба варианта записаны здесь заранее.