高校数学+二進法の知識で読める要約
任意の正の整数 n に対して、次の操作を繰り返す:
「どんな数から始めても、いつか必ず 1 に到達する」——これがコラッツ予想。1937年に提起されて以来、約90年間未解決。
この論文が問うのは:3n+1 の計算の「中身」は何か? なぜ x=3 だけが特別なのか?
任意の正の整数は二進法で書ける。それを2ビットずつ区切ってペアにする。
0110110, 1, 1 → 並べると 0111, 0, 1 → 並べると 101
ここで重要なのがファスナー構造。m4 と m6 を交互に噛み合わせると元の数に戻る:
もっと単純な例で見ると:
つまりどんな数も、m4 と m6 の2本のビット列に分解でき、ファスナーで元に戻せる。これがペア分解の基本。
2ビットのペアは4種類しかない。それぞれに名前をつける:
| ペア | 名前 | 意味 | 足し算での役割 |
|---|---|---|---|
(0, 0) | K (Kill) | 両方0 | 繰り上がりを止める |
(0, 1) | P (Propagate) | 片方だけ1 | 繰り上がりを通す |
(1, 0) | P (Propagate) | 片方だけ1 | 繰り上がりを通す |
(1, 1) | G (Generate) | 両方1 | 繰り上がりを生む |
この G / P / K の分類は、半導体の加算回路(carry-lookahead adder)で1960年代から使われている標準的な概念。
3n+1 = 2n + n + 1。ここで 2n は n を1ビット左にずらしたもの。つまり:
この足し算は、ペアごとに分解できる。各ペア位置で「どのビットとどのビットを足すか」が決まっていて、結果は16通りしかない。
なぜ16通りか:
表を引くには、入力ペアの他に状態が必要。状態は4つだけ:
| ラベル | cin | ai-1 | 意味 |
|---|---|---|---|
| S0 | 0 | 0 | 繰り上がりなし、直前の入力ペアの上ビット=0 |
| S1 | 0 | 1 | 繰り上がりなし、直前の入力ペアの上ビット=1 |
| S2 | 1 | 0 | 繰り上がりあり、直前の入力ペアの上ビット=0 |
| S3 | 1 | 1 | 繰り上がりあり、直前の入力ペアの上ビット=1 |
cin = 直前のペアから来た繰り上がり(carry in)。 ai-1 = 直前に処理した入力ペア(a, b)のa。 cout = 今のペアから出る繰り上がり(carry out)→ 次のペアの cin になる。
初期状態 = S2(+1 による繰り上がりあり、前のペアがないので上ビット=0)。
次の状態は、表の出力(繰り上がりが出たか)と今の入力ペアの上ビットで決まる。表を引けば自動的にわかる。
この16通りを全部書き出したのがTable 5.1(論文の核心)。
011011 → (01)(10)(11) → GPK = P, P, G(11)(10)(01) = G, P, P の順になる。§1–2 の P, P, G と並びが逆転することに注意。
これが表の全体。この要約の全ての主張はこの表を読めば検証できる。
| # | 入力 | GPK | cin | ai-1 | cout | 出力 | 出力GPK | 注目点 |
|---|---|---|---|---|---|---|---|---|
| 1 | (0,0) | K | 0 | 0 | 0 | (0,0) | K | |
| 2 | (0,0) | K | 0 | 1 | 0 | (0,1) | P | |
| 3 | (0,0) | K | 1 | 0 | 0 | (0,1) | P | |
| 4 | (0,0) | K | 1 | 1 | 0 | (1,0) | P | K→Gなし |
| 5 | (0,1) | P | 0 | 0 | 0 | (1,1) | G | P→G, cout=0 |
| 6 | (0,1) | P | 0 | 1 | 1 | (0,0) | K | |
| 7 | (0,1) | P | 1 | 0 | 1 | (0,0) | K | |
| 8 | (0,1) | P | 1 | 1 | 1 | (0,1) | P | |
| 9 | (1,0) | P | 0 | 0 | 0 | (1,0) | P | |
| 10 | (1,0) | P | 0 | 1 | 0 | (1,1) | G | P→G, cout=0 |
| 11 | (1,0) | P | 1 | 0 | 0 | (1,1) | G | P→G, cout=0 |
| 12 | (1,0) | P | 1 | 1 | 1 | (0,0) | K | |
| 13 | (1,1) | G | 0 | 0 | 1 | (0,1) | P | G→P, cout=1 |
| 14 | (1,1) | G | 0 | 1 | 1 | (1,0) | P | G→P, cout=1 |
| 15 | (1,1) | G | 1 | 0 | 1 | (1,0) | P | G→P, cout=1 |
| 16 | (1,1) | G | 1 | 1 | 1 | (1,1) | G | G→G, cout=1 |
この表から直接読み取れること:
■ Case 13–16:G入力 → cout=1 が全4ケース(無条件キャリー生成)
■ Case 1–4:K入力 → cout=0 が全4ケース、出力にGなし(K→G不可能)
■ Case 5, 10, 11:P→G — ただし cout=0(生成は連鎖しない)
※ このフロー図では「n → ペア分解」と「n'」を整数として書いているが、実際の計算では整数に戻す工程は不要。スキャンの入力はペア列、出力もペア列。÷2d はペアの除去と境界シフト。re-pairing もペア→ペア。次のステップの入力もペア列。ペア列のまま、1に到達するまで進行する。結合(ファスナーを閉じる)は人間が数を確認したいときだけ必要になる表示上の操作であり、計算の一部ではない。
フロー全体で、ペアの種類はこの4種の外に出ない:
「閉じている」は「毎回4種が全部登場する」ではない。各ステップで使われる種類は異なりうるが、5番目の型が発生することは絶対にない。出力の n' をまた同じ表に入れれば次の n'' が出る。その次も同じ表。永久に同じ4種と同じ16行の表で回り続ける。これが閉鎖。
しかも、以下の性質が例外なく成り立つ:
| 性質 | 3n+1 では | 意味 |
|---|---|---|
| G → 繰り上がり出力 | 常に1(全4ケース) | Gは必ず繰り上がりを生む |
| K → 繰り上がり出力 | 常に0(全4ケース) | Kは必ず繰り上がりを止める |
| K が G に変わるか | 絶対に起きない | 一度KになったらGに戻れない |
「常に」「絶対に」は比喩ではない。16行の表を全部調べた結果、例外がゼロ。
同じ手順で 5n+1 の表も作れる(5n+1 = 4n + n + 1、シフト量2ビット)。作って比べると:
| 性質 | 3n+1 | 5n+1 |
|---|---|---|
| 表のサイズ | 16行(4状態×4入力) | 32行(8状態×4入力) |
| G → 繰り上がり = 常に1? | はい(全件) | いいえ(1状態で0になる) |
| K → 繰り上がり = 常に0? | はい(全件) | いいえ(1状態で1になる) |
| K → G の変化 | 起きない | 起きる(2状態で発生) |
| 逃げ道 | ない | ある |
| 1以外のサイクル | なし(構造的に排除) | 5n+1では存在(例:13→33→83→13;他のxは未検証) |
両方の表を実際に構成し、奇数500個で全件検証済み
3n+1 で数が大きくなるには、÷2 で1回しか割れない(d=1)必要がある。d=1 になるのは、一番下のペアが G(1,1) のときだけ。
※ なぜ G(1,1) だけなのか — Syracuse 関数は奇数→奇数の写像なので、入力 n は常に奇数。最下位ビットは必ず1になるため、最下位ペアは P(0,1) か G(1,1) の二択しかない(K(0,0) と P(1,0) は最下位ビットが0なので最下位ペアになれない)。P(0,1) だと 3n+1 の末尾に0が2個以上並び d≥2 で縮小、G(1,1) だと末尾の0はちょうど1個で d=1。
一番下のペアが G(1,1) で表を引くと(Case 15):
つまり「成長の原因(G)」が「成長を壊す繰り上がり」を必ず生む。これが表から逃れようがない。
| 経路 | 可能か | 性質 |
|---|---|---|
| K → G(Killから復活) | 不可能 | 表の全16行に K→G なし |
| P → G(Propagateから生成) | 可能(3ケース) | ただし cout=0 で連鎖しない |
| G の生成(P→G) | G の破壊(G→P) | |
|---|---|---|
| 規模 | 1個ずつ | 連鎖(隣の橋も壊す) |
| 繰り上がり | 0(波及しない) | 1(波及する) |
| 燃料 | Pを消費する | — |
破壊は連鎖するが、生成は連鎖しない。この非対称性は16行の表から読み取れる代数的事実。
Table 5.1 と Table 5.2 を合わせて読むと、最左 G-block の1ステップあたりのネット変化に上限がある:
| フェーズ | 影響 | 根拠 |
|---|---|---|
| Scan | 先頭 G を除去 → −1 | Table 5.1 (Lemma 5.1(b)) |
| Re-pairing | 末尾で最大 +1 伸長 | Table 5.2 (Lemma 5.6) |
| 1ステップ合計 | ≤ 0 | 全ケース、例外なし |
これは平均ではなく最悪ケースの上限。max(X) ≤ 0 であり、E[X] < 0 ではない。net +1 となる配列は存在しない。
§7 で示したのは1回の scan 内の話。しかし re-pairing(Table 5.2)が全部ひっくり返すのでは? この問いに3点で答える。
re-pairing の出力も同じ4種のペア(Table 5.2 で全16ケース確認可能)。スキャン → 除算 → re-pairing → 次のスキャン、どの段階でも5番目の型は現れない。§7 で示した表の性質(G→cout=1、K→G不可能、P→Gはcout=0)は、re-pairing 後の n' にもそのまま適用される。
表とは独立に、剰余算術だけで導ける事実:
成長(d=1)は必ず有限回で止まる。これは GPK とも表とも無関係な算術的事実。
d=1 が持続できないので軌道は発散しない(有界)。閉鎖性により、軌道がどこにいても同じ表・同じ制約が適用される(スケール不変)。有界な軌道が閉じたスケール不変な系の中で取りうる終状態は、サイクルだけ。x=3 では構造的に許容されるサイクルは n=1 の不動点のみ(§8.4)。
論文本体の Proposition 5.4 では、G-block の左端消滅(net ≤ 0)、次元分離、エピソード構造など、表の性質からの詳細な導出を与えている。上の3点はその結論の核心部分。
以下は n = 670,617,279 の全370ステップ(83エピソード)の抜粋。赤行 = pair₀ が G(d=1, 成長)、青行 = pair₀ ≠ G(d≥2, 崩壊)。横線がエピソード境界。
赤帯(d=1 成長バースト)が必ず有限で途切れ、青帯(d≥2 崩壊)に移行するのが全83エピソードで確認できる。先頭Gが「生まれ→消費され→崩壊」を繰り返し、GPK列が短くなりながら n=1 に到達する。§7.5 の議論の実証。
3n+1 = 2n + n + 1(シフト量1ビット < ペア幅2ビット) └→ GPK分類がペアを読むだけで確定する(閉鎖性) └→ 繰り上がり挙動が状態に依存しない ├→ G は無条件に繰り上がりを生む │ └→ その繰り上がりが G 自身を破壊する ├→ K は無条件に繰り上がりを止める │ └→ K が G に戻ることもない └→ 成長の源(G)= 成長の破壊者。逃げ道なし。
n=1 はペア (0,1)=P で、d=2、n'=1。不動点。他の全ての n は上記の制約により、この不動点に向かう以外の構造を持てない。
よくある議論:「3n+1 は平均的に ÷2 の回数が多いから縮む」。しかしこれは確率論なので「運が悪ければ発散するかも」と反論できる。
この論文の議論はそれとは別の層にある:
| 確率的な主張 | この論文の主張 | |
|---|---|---|
| 内容 | 「平均的に d が大きいから縮みやすい」 | 「G は無条件で繰り上がりを出す」 |
| 反論 | 「分散で偏れるかも」→ 有効 | 分散がない。全位置、全n、毎回成立 |
G-block のネット変化(§7)で、この区別は特に明確になる:
| 確率的議論 | ネット ≤ 0(本論文) | |
|---|---|---|
| 主張 | 「平均的に G は減る」 | 「全ケースで最左 G-block の1ステップあたりネット ≤ 0」 |
| 定式化 | E[X] < 0 | max(X) ≤ 0 |
| 反例の可能性 | あり — 分散が外れ値を許容 | なし — 最大値が既に ≤ 0 |
ネット ≤ 0 は G の総量が単調に減ることを意味しない。新しい G-block は生まれうるし(P→G)、÷2d が非 G ペアを除去すれば G 密度は上昇する — 100% に戻ることすらある。ネット ≤ 0 が保証するのは、個々の最左 G-block の寿命が有限であること:各 d=1 連続(成長バースト)は必ず終わり、終わった後に d≥2 の崩壊が来る。
コラッツ予想に対する計算的検証(268 までの全数確認など)は、予想の信頼性を高め、反例の不在を確認する上で不可欠な貢献を果たしてきた。しかしその性質上、各軌道の検証は両端を 1 に囲まれた有限空間の中の帰納的確認であり、全ての n への拡張には原理的な壁がある。
Table 5.1 はその層に位置する。16 行で全ての GPK 配列の全てのペア位置を網羅し、配列の長さにも中身にも依存しない。計算的検証が「個々の n について事実を確認する」のに対し、表の構成は「全ての n に共通する構造を記述する」。両者は対立するものではなく、異なる層で同じ対象に光を当てている。
Table 5.1(スキャン16行)と Table 5.2(再ペアリング16行)が構成された時点で:
| 読み取れること | 方法 |
|---|---|
| G → cout=1(例外なし) | 表から読める |
| K → G は不可能(例外なし) | 表から読める |
| P → G は cout=0(例外なし) | 表から読める |
| G-block が合流しない | 表から読める |
論文の Lemma(補題)や Proposition(命題)は、表に既に書いてあることを言語化しているだけ。
結論:何もしてない!
構造は最初からそこにあった。
この要約を書く過程で、「G-block の世代交代は本当に無限に続かないのか」と自問した瞬間、自分がコラッツ予想の泥沼にそのまま引き戻されていることに気づいた。構造的な説明が「まだ十分でない」という違和感の正体は、実は自分の認識の枠組みがすでに移動していたことの証だった。
構造的に閉じた議論を前にしても、人間は「個々の軌道」に戻ろうとする認知的な傾向がある——そのことに気づいた。「本当にそうなのか」を確かめようとするプロセスそのものが、この問題の複雑さを駆動しているのかもしれない。数学的直感が強い人にとって、これは抗いがたい罠だ。検証できる能力が検証への欲求を生み、軌道が見えるとそれを追いかけずにはいられなくなる。能力そのものが罠になる。この要約を書いている間も、私の思考は何度も軌道の深みに引き戻された。
検証スクリプト: dfst_final.py, dfst_properties.py
構造比較データ: dfst_comparison_record.md
元論文: "Pair Predicate Decomposition of Collatz-type Maps (xn+1)/2d" v5.1 (February 2026)