Перейти к содержанию

55. Коллатц как вечный двигатель на ограниченном топливе

← 54. Соседи за горизонтом · Оглавление · 56. Первопричина Коллатца →

Lean-источник: Engine/CollatzEngine.lean (структурные факты: even_marginal, odd_accel_ascends, not_descent_on_odd, trivial_halt_cycle), Engine/CollatzFuel.lean (k1_step_grows, k2_step_drops, no_monotone_height), Engine/CollatzTugOfWar.lean (проверен, core Lean, аксиомы [propext, Quot.sound]; секция «Опровержение = двигатель» — стандартная тройка через Classical.em): engine_at_most_one_rank, rope_pulls_one, rope_pulls_two, window_budget, window_descends, ГЕРОЙ reaches_one_of_countingLaw, nonDescendingOrbit_is_perpetual_engine; универсальная форма RopeCountingLaw опровергнута 🟢 (not_ropeCountingLaw_27, ropeLaw_universal_refuted; свидетель n = 27 закрыт вычислением counts_le_70_at_27, counts_at_70_at_27 и леммой цикла cycle_counts через oddCount_add/evenCount_add); per-n форма жива (countingLaw_4). Числа: tools/RESULTS_collatz.md (харнессы collatz_engine_harness.py, collatz_fuel_harness.py). Обозначения: 🟢 — доказано машинно; 🔴 — открытый именованный вход.

Где мы

Основная линия провела единый запрет no_infinite_descent через свои маски (маска — большая задача, прочитанная через запрет двигателя; см. словарь) и арифметический зоопарк. Коллатц — самая странная из них: здесь «двигатель» не суррогат, а буквальный объект на ℕ.

Это приложение переводит гипотезу на язык двигателя и каната, показывает, где именно она нарушает наши законы (и почему от этого трудна), и доводит зелёную механику до именованного закона каната — который в универсальной форме мы здесь же опровергаем свидетелем n = 27. Что стало с декретом на этом законе — в главе 56.

Карта: Коллатц через линзу двигателя

Определение 55.1 (ускоренная карта Коллатца). Карта \(T\colon\mathbb N\to\mathbb N\) задаётся правилом $\(T(n)=\begin{cases}n/2,&n\equiv 0\ (\mathrm{mod}\ 2),\\ (3n+1)/2,&n\equiv 1\ (\mathrm{mod}\ 2)\end{cases}\tag{55.1}\)$ — вынужденное деление на 2 после нечётного шага вложено в саму карту. Сопоставление с двигателем Евклида:

Элемент двигателя Коллатц Статус
спуск (A·h' < h) чётный шаг n ↦ n/2 (высота ×½) спуск ровно на 2 — край (2·(n/2) = n, не строгий при A=2)
топливо «+1» (восхождение) нечётный шаг 3n+1 (×3 и +1) восхождение n < 3n+1 — буквально «+1 = впрыск топлива»
остановка (всегда) достижение 1 (минимум) открыто (гипотеза Коллатца)
цикл = возврат нетривиальный цикл открыто (нет до ~10²⁰)
необратимость детерминированный вперёд да, но без строгого Ляпунова

Где Коллатц нарушает наш закон — и почему он от этого труден

Двигатель Евклида останавливается гарантированно, потому что каждый шаг — строгий спуск (A·h' < h), и тогда no_infinite_descent даёт H(t) < H₀/Aᵗ < 1. У Коллатца этого закона нет.

Теорема 55.2 (odd_accel_ascends). Для нечётного \(n\ge 1\) ускоренный шаг строго поднимает высоту: $\(n<\frac{3n+1}{2}=T(n)\qquad (n\equiv 1\ \mathrm{mod}\ 2).\tag{55.2}\)$

Теорема 55.3 (not_descent_on_odd). Для нечётного \(n\ge 1\) шаг не является спуском: \(\neg\,(T(n)<n)\). Следовательно, высота вдоль орбиты не StrictAnti, и закон no_infinite_descent неприменим.

  • численно (RESULTS_collatz.md): пик/старт достигает 53930× (n = 159487) — высота гуляет вверх на 4–5 порядков до спуска. Строгого монотонного Ляпунова нет.

Вывод 1. Коллатц — это вечный двигатель Евклида, у которого сломан 2-й закон в строгой форме: впрыск топлива (+1 в 3n+1) временно поднимает высоту, поэтому no_infinite_descent к нему неприменим. Именно поэтому остановка Коллатца открыта, а у двигателя Евклида — доказана.

Конечно ли топливо? — Да, в среднем (но не для каждого)

«Топливо конечно» ⟺ траектория ограничена (не уходит в ∞). Меряем баланс (RESULTS_collatz.md):

  • halvings / triplings = 2.016 > порога log₂3 = 1.585: чтобы погасить одно ×3, нужно ≥ 2 деления (one_tripling_needs_two_halvings: 2 < 3 ≤ 4); фактически 2.016 — спусков с запасом. Топливо нетто-расходуется;
  • геом. дрейф за шаг = 0.864 (= √(3)/2 ≈ 0.866) < 1: каждый шаг в среднем множит высоту на 0.864 — сжатие. Двигатель в среднем едет вниз;
  • все n ∈ [2, 200000] достигают 1 — чужих циклов (вечных двигателей) в диапазоне нет.

Но это закон среднего, а гипотеза требует «каждая траектория останавливается». И монотонной высоты нет даже после сжатия odd-блоков: сжатый шаг n ↦ (3n+1)/2^k при k = 1 (≈50%, n ≡ 1 mod 4) растит значение (k1_step_grows), при k ≥ 2 — падает (k2_step_drops).

Теорема 55.4 (no_monotone_height). Восходящие позиции неограниченны: для всякого \(N\) найдётся \(n>N\) с \(n\equiv 1\ (\mathrm{mod}\ 4)\) и \(n<(3n+1)/2\) (свидетель \(n=4N+5\)). Поэтому монотонной \(\log_2\)-высоты нет 🟢.

Вывод. Значит Lyapunov нет, и наш EPMI (требует строгого спуска каждый шаг) к Коллатцу неприменим. Коллатц — двигатель на ограниченном топливе по энергии, но не EPMI-двигатель. Это точная граница между доказанными законами и открытостью.

Перетягивание каната (мультипликативно, без логарифмов)

Читаем словами автора: «двигатель продвигается не более чем на 1 ранг вперёд за шаг, канат тянет на 1 или 2 ранга назад; топливо кончится — двигатель стянется к старту». Ранг = двоичный порядок; «+1 ранг» = не более удвоения, «−1» = ровно половина. Зелёная механика:

Элемент метафоры Лемма Статус
двигатель ≤ +1 ранг за шаг engine_at_most_one_rank : T n ≤ 2n 🟢
честная цена двигателя (×1.5, не ×2) engine_exact_fuel : 2·T n = 3n+1 🟢
канат тянет на 1 rope_pulls_one : 2·T n = n (чёт) 🟢
канат тянет на 2 rope_pulls_two : 4·T²n = n (n ≡ 0 mod 4) 🟢
бюджет топлива окна window_budget : 2^e·T^k(n) ≤ 2^t·n 🟢
канат перетянул ⟹ спуск window_descends : t < e ⟹ T^k(n) < n 🟢
«топливо кончится — притянет к началу» reaches_one_of_countingLaw (ГЕРОЙ) 🟢 условно (per-n)
закон доминирования каната (универсальный) RopeCountingLaw 🟢 ОПРОВЕРГНУТ (n = 27)

Бюджет окна. Каждый рывок каната множит значение ровно на ½; каждый ход двигателя — не более чем на 2.

Теорема 55.5 (engine_at_most_one_rank). Один ход двигателя поднимает не более чем на ранг: \(T(n)\le 2n\) для всех \(n\) 🟢.

Теорема 55.6 (window_budget). За окно из \(k\) шагов, среди которых \(t=\mathrm{oddCount}(k,n)\) нечётных и \(e=\mathrm{evenCount}(k,n)\) чётных, границы перемножаются при любом порядке шагов: $\(2^{e}\cdot T^{k}(n)\;\le\;2^{t}\cdot n.\tag{55.3}\)$ Это чистая \(\mathbb N\)-арифметика: floor-деления съедены точностью пошаговых границ, логарифмы не нужны 🟢.

Теорема 55.7 (window_descends). Если канат перетянул окно строго (\(t<e\)) и \(n\ge 1\), то значение строго упало: \(T^{k}(n)<n\) 🟢. (Из (55.3): \(2^{t+1}\le 2^{e}\) даёт \(2\cdot T^{k}(n)\le n\).)

Лестница героя. Герой здесь — в домовом смысле: центральная условная теорема ветви, доводящая закон до цели (см. словарь).

Определение 55.8 (RopeCountingLaw, закон доминирования каната, счётная форма). Для \(n\) закон гласит: в каждой позиции орбиты над поглощающим циклом найдётся окно с чётным перевесом, $\(\mathrm{RopeCountingLaw}(n)\;:\equiv\;\forall j,\ \bigl(2<T^{j}(n)\ \Rightarrow\ \exists k,\ \mathrm{oddCount}(k,T^{j}(n))<\mathrm{evenCount}(k,T^{j}(n))\bigr).\tag{55.4}\)$

Лестница RopeCountingLaw n → (бюджет окна, Теорема 55.6) → ValueDescentLaw n → (индукция по потолку значения) → достижение 1.

Теорема 55.9 (reaches_one_of_countingLaw, ГЕРОЙ). Если \(n\ge 1\) и выполнен \(\mathrm{RopeCountingLaw}(n)\), то \(\exists K,\ T^{K}(n)=1\) 🟢. Это условная теорема о конкретном \(n\) — «дай закон для этого \(n\), и получишь остановку»; сама лестница зелена целиком.

Что теперь нельзя — это раздать посылку всем n сразу: универсальная форма закона ниже опровергнута (n = 27). Герой остаётся честным условным движком; ложна оказалась не механика, а обещание, что топливо у каждого n перетянет из старта.

Три честности (что зелено, а что нет)

  1. Мост приговорённого.

Теорема 55.10 (valueLaw_iff_reaches_one). Для \(n\ge 1\) ценностная форма закона эквивалентна сходимости: \(\mathrm{ValueDescentLaw}(n)\iff \exists K,\ T^{K}(n)=1\) 🟢. Сама по себе она содержания не добавляет. Содержательна только счётная форма (Определение 55.8); её обратная сторона (сходимость ⟹ счётный закон) не утверждается — бюджет окна односторонен. 2. Отказ от «канат вдвое сильнее». Форма 2·odd < even отвергнута: эмпирически на ускоренной карте e ≈ 1.016·t (halvings/triplings = 2.016, минус 1 халвинг, съеденный ускорением) — порог e > 2t ложен в среднем. Взят точный порог e > t — ровно тот, что зелёная граница ×2 конвертирует в спуск. Запас ~1.6% — цена отказа от log₂3 (настоящий спуск требует лишь e > 0.585·t, но это уже логарифмы, не core Lean). 3. Стена k=1 и ловушка хвоста. single_window_fails/no_single_step_law 🟢: окно длины 1 проваливается на каждой нечётной позиции (семейство 2N+1) — полное согласие со стеной no_monotone_height; закон обязан жить на окнах ≥ 2. Гард «значение > 2» обязателен: в цикле 1→2→1 t ≥ e во всех окнах (countingLaw_1 — вакуумная истинность: закон выполняется даром, см. словарь) — без гарда закон был бы ложен для всякой сходящейся траектории.

Теорема 55.11 (countingLaw_4). Закон каната выполнен для \(n=4\) по-настоящему (невакуумно): \(\mathrm{RopeCountingLaw}(4)\), единственная позиция над циклом — старт, где окно \(k=2\) (4→2→1) даёт \(t=0<e=2\) 🟢.

Опровержение закона: карабкающаяся орбита 27

Универсальную форму закона каната мы больше не выдаём в кредит: она ложна, и свидетель — конкретный объект, удостоверяющий утверждение (см. словарь), — самое знаменитое в фольклоре Коллатца число, n = 27. Его орбита долго карабкается: с 27 она поднимается до пика 4616, прежде чем сдаться.

И вот в чём загвоздка. Закон каната требует, чтобы в каждой позиции выше цикла — в том числе с самого старта, из позиции j = 0 — нашлось окно, где чётных шагов строго больше нечётных. У орбиты 27 такого окна из старта нет ни одного: пока число лезет вверх, шаги нечётно-тяжёлые, и разность evenCount − oddCount в префиксных окнах никогда не становится положительной.

Теорема 55.12 (counts_at_70_at_27). Орбита 27 приходит к единице за 70 ускоренных шагов: $\(\mathrm{oddCount}(70,27)=41,\quad \mathrm{evenCount}(70,27)=29,\quad T^{70}(27)=1.\tag{55.5}\)$ То есть 41 ход двигателя против всего 29 рывков каната; канат в сумме отстаёт на 12 — и из старта ни разу не вырывается вперёд 🟢 (машинная проверка).

А хвост дефицит не отыгрывает. После 70-го шага орбита падает в поглощающий цикл 1→2→1, где шаги идут строго парами — один нечётный, один чётный. Каждая пара добавляет по единице и туда, и сюда, так что отставание каната в −12 замирает навсегда: ни одно окно от старта его не перевернёт. Красивая метафора «топливо кончится — двигатель стянется к старту» верна по исходу (27 всё-таки достигает 1), но не по той сильной пошаговой причине, которую формулировал закон.

Ядро проверяет это без веры на слово. Префикс до k = 70 включительно закрыт прямым вычислением (counts_le_70_at_27: во всех этих окнах even ≤ odd; counts_at_70_at_27: ровно 41 против 29 и финиш в 1). Хвост в вакууме закрывает лемма цикла cycle_counts — через аддитивность счётчиков по конкатенации окон (oddCount_add, evenCount_add).

Итог раздела.

Теорема 55.13 (not_ropeCountingLaw_27). Закон каната ложен для \(n=27\): \(\neg\,\mathrm{RopeCountingLaw}(27)\). Из позиции \(j=0\) (значение \(27>2\)) ни одно окно не даёт перевеса каната — префикс до \(k=70\) закрыт вычислением, хвост — леммой цикла 🟢.

Теорема 55.14 (ropeLaw_universal_refuted). Универсальная форма закона ложна: \(\neg\,\forall n\ (1\le n\Rightarrow \mathrm{RopeCountingLaw}(n))\); свидетель \(n=27\) (Теорема 55.13) 🟢. Граница-декрет на этом законе невозможна. Причём 27 не одинок: харнесс находит целое семейство нарушителей — 27, 31, 41, 47, 54, 55, … Все они карабкаются, и у всех канат из старта не перетягивает.

Примечание. Урок честный, и он не отменяет чисел. Средний дрейф ×0.864 остаётся законом — но законом среднего по орбите. Префиксно-оконная форма требовала большего: доминирования каната из каждой позиции, включая подъём, — а карабкающиеся орбиты этого не дают. Ранняя предупредительная лампочка уже мигала: «стена k = 1» (single_window_fails) показывала, что на нечётной позиции окно может проваливаться. Орбита 27 — та же стена, только выросшая до целого подъёма. Что стало с декретом, который стоял на этом законе как на четвёртой границе первопричины, — в главе 56.

Неубывающая орбита = вечный двигатель

По директиве автора это доказано зелёно и станет мостом к главе 56:

Теорема 55.15 (nonDescending_engine_never_loses). Пусть \(n\ge 1\) и орбита неубывающая (\(n\le T^{k}(n)\) для всех \(k\)). Тогда двигатель выигрывает или сводит вничью каждое окно навсегда: \(\mathrm{evenCount}(k,n)\le \mathrm{oddCount}(k,n)\) для всех \(k\) 🟢 — прямо из бюджета окна (Теорема 55.6). Бесконечная подпитка без единого проигранного окна — это и есть вечный двигатель.

Теорема 55.16 (nonDescendingOrbit_is_perpetual_engine). Для \(n\ge 3\) неубывающая орбита не проигрывает окон (\(\forall k,\ \mathrm{evenCount}(k,n)\le \mathrm{oddCount}(k,n)\)) и никогда не останавливается (\(\forall K,\ T^{K}(n)\neq 1\)) 🟢.

Теорема 55.17 (no_nonDescendingOrbit_under_countingLaw). Для \(n\ge 3\) при выполненном \(\mathrm{RopeCountingLaw}(n)\) неубывающих орбит нет: первая же позиция даёт окно с перевесом каната и строгий спуск ниже старта 🟢. То есть закон каната запрещает такой двигатель с первой позиции.

Нижний ранг: почему +1 запутывает 2 и 3

Теорема 55.18 (plus_one_full_rank_only_at_one). Для \(n\ge 1\) добавка +1 весит полный ранг только на дне: \(3n+1=4n\iff n=1\) 🟢. Выше дна (\(n\ge 3\)) она строго суб-ранговая, \(3n+1<4n\) (plus_one_subrank_above_one).

Теорема 55.19 (engine_confused_at_bottom). Ровно на дне выстрел двигателя попадает в чистую степень каната: \(3\cdot 1+1=2^{2}\), причём \(T(1)=2\) и \(T(2)=1\) 🟢 (без аксиом вообще). Канат стягивает его два шага подряд — рождается поглощающий цикл 1→2→1. На нижнем ранге тройка двигателя и двойка каната неразличимы для +1: она составляет там целый ранг.

Философское отступление: затухающий дрейф и квантовый пол

Перетягивание каната — термодинамический образ, честнее логарифмов. Карта ведёт число как затухающий случайный блуждатель: двигатель (×3) впрыскивает топливо, канат (÷2) дренирует, средний дрейф отрицателен (×0.866 < 1). Это частица в потенциальной яме с трением: сколько бы её ни подбрасывало, в среднем она сползает ко дну.

Демпфированный осциллятор возвращается в покой не потому, что каждый размах меньше предыдущего (бывают всплески), а потому, что в среднем энергия уходит быстрее, чем накачивается. И здесь та же стена, что у турбулентности и простых чисел: среднее решено, судьба каждой траектории — открыта.

RopeCountingLaw пытался именовать её сильнее — «в каждой позиции найдётся окно, где канат перетянул» — и именно эта сильная форма оказалась ложью: карабкающаяся орбита 27 держит канат позади из самого старта. Открытое сердце — сама сходимость, и никакое известное нам счётное имя её не подменяет. Чем закончился декрет, стоявший на этом законе, и почему решить сходимость изнутри всё равно нельзя — в главе 56.


← 54. Соседи за горизонтом · Оглавление · 56. Первопричина Коллатца →