数学の足元が音もなく崩れた日

Share

数学は確実なものだと信じられていた。論理によって導かれ、矛盾を許さず、人間の感情が入り込む余地のない純粋な体系。その数学が、たった一つの問いで自分自身を疑いはじめた。

「自分自身を含まない集合すべての集合は、自分を含むか」

含むなら、定義により含まないことになる。含まないなら、定義により含むことになる。この問いには答えがない。そして、この問いに答えがないということが、数学の基礎に穴が開いていることを意味していた。

一通の手紙が崩したもの

1901年、バートランド・ラッセルは集合論の内部にこの矛盾を見つけた。集合R、すなわち「自分自身を要素として含まない集合すべてを集めた集合」を定義する。RはRを含むか。含むと仮定すれば、Rは「自分を含まない集合」の条件を満たさないから、含まないはず。含まないと仮定すれば、Rはまさに「自分を含まない集合」なのだから、含むはず。どちらに転んでも矛盾する。

翌1902年6月、ラッセルはゴットロープ・フレーゲに宛てて手紙を書いた。

フレーゲは20年以上をかけて『算術の基本法則(Grundgesetze der Arithmetik)』を書き上げていた。論理学だけから算術を導き出すという壮大な企て。その第二巻が印刷に回されようとしていたまさにそのとき、ラッセルの手紙が届いた。あなたの体系には矛盾がある、と。

フレーゲは第二巻の末尾に急遽付録を加え、こう書いた。「科学者にとって、仕事が完成に近づいたまさにそのとき、その基礎が崩壊するほど望ましくないことはほとんどない」。一人の学者の生涯の仕事が、一通の手紙で根底から揺らいだ。フレーゲはこの打撃から立ち直ることはなかった。

なお、エルンスト・ツェルメロもラッセルとは独立に同じ矛盾を発見していたが、自身の公理体系ではこの矛盾が生じないことを確認していたため、公表はしなかった。

「この文は偽である」の双子

ラッセルのパラドックスには双子がいる。自分のことは何も言えないで扱った嘘つきのパラドックス、「この文は偽である」だ。

構造は同じ。自己言及が矛盾を生む。ある文が自分自身について語ろうとすると壊れる。ある集合が自分自身を定義しようとすると壊れる。

ただし、この二つの間には重大な非対称がある。嘘つきのパラドックスは、日常言語の不完全さとして片づけられてきた。言語とはもともと曖昧で、自然言語に完全な整合性を求めること自体が的外れだ、と。しかしラッセルのパラドックスは数学で起きた。矛盾が許されないはずの、あの数学で。だからこそ、衝撃の桁が違った。

基礎を塞ぐ二つの方法

矛盾が見つかったとき、取りうる戦略は一つしかない。矛盾が生じないように、ルールを書き換える。

ラッセル自身が提案したのは「型の理論(Theory of Types)」だった。集合にレベルを導入する。個体は第0型、個体の集合は第1型、集合の集合は第2型。ある型の集合は、自分より低い型の要素しか含むことができない。自己言及はレベルの壁に阻まれ、そもそも文法的に成立しなくなる。

もう一つの道が、ツェルメロ-フレンケル集合論、いわゆるZFCだ。こちらは「分出公理(Axiom of Specification)」によって、すでに存在する集合の部分集合としてしか新しい集合を定義できないようにした。「すべての集合の集合」のような野放図な定義を、公理のレベルで禁じた。

どちらの戦略も、パラドックスを「解いた」のではない。パラドックスが生じる場所に立ち入り禁止の札を立てた。問題を解消したのではなく、問題の手前で道を封鎖した。

これが、人類が数学の基礎を守るために選んだ方法だった。

壊れやすさの連鎖

ラッセルのパラドックスは孤立した事件ではなかった。この矛盾が開けた穴から、さらに深い亀裂が走った。

1931年、クルト・ゲーデルは不完全性定理を証明した。十分に強い形式体系は、その体系の内部では証明も反証もできない命題を必ず含む。そして、その体系が無矛盾であることを、体系自身が証明することはできない。

ラッセルのパラドックスが示したのは「定義の自己言及が矛盾を生む」ということだった。ゲーデルが示したのは「体系が自分自身について完全に語ることはできない」ということだった。アラン・チューリングの停止問題もまた、同じ構造をなぞる。あるプログラムが自分自身を入力として受け取ったとき、そのプログラムが停止するかどうかを事前に判定するアルゴリズムは存在しない。

自己言及は、どこで試みても壊れる。数学で、論理で、計算で。終わらない議論の果てに立つということで見た無限後退と同じ構造が、ここにもある。定義が定義を要求し、根拠が根拠を要求し、その連鎖はどこにも着地しない。

日常に埋まっている同じ穴

ラッセルのパラドックスは数学の問題だが、その構造は日常にも顔を出す。

図書館のカタログを考える。すべての本を記載したカタログは、カタログ自身を記載するか。カタログは「本」か。Wikipediaの「すべてのリストのリスト」は、自分自身を含むか。「すべてのルールに適用されるルール」は、自分自身に適用されるか。

プログラミングでは、再帰関数が終了条件なく自分自身を呼び出し続けるとスタックオーバーフローを起こす。これもまた、自己言及が制御を失った瞬間だ。

追いつけないで扱ったゼノンのパラドックスは、無限分割が運動の概念を脅かした。ラッセルのパラドックスは、無制限な定義が集合の概念を脅かした。どちらも、日常的には自明に見えるものの基礎が、問い詰めると崩壊する。

線はどこにもなかったで扱った境界の問題とも接続する。「集合に含まれるか、含まれないか」という二分法は、定義が自己言及を含む瞬間に判定不能になる。分類という行為そのものが、ある条件のもとでは不可能になる。

規則は自分を救えない

ラッセルのパラドックスが突きつけた問いを、もう一段押し広げてみる。

数学は、矛盾を回避するために公理を書き換えた。型の理論やZFCは、自己言及を封じるルールだ。しかし、そのルール自体はどこから正当化されるのか。公理を選んだ理由は「矛盾が起きないから」であって、「それが真理だから」ではない。

寛容という名の自壊装置と同じ構造がここにある。寛容が自分自身を守るために不寛容になるように、数学もまた自分自身を守るために自由を制限した。無制限の集合定義を許していた素朴集合論は、その無制限さゆえに壊れた。修復のために導入された制限は、数学を救ったが、同時に「なぜその制限なのか」という問いを永遠に開いたまま残した。

言葉を研ぐほど声は遠くなるで描かれた精密さのジレンマが、ここでも反復する。定義を厳密にすればするほど、定義が自分自身に跳ね返るリスクが増す。精密さは安全を保証しない。むしろ、精密さの極限で体系は自分の穴を発見する。

もうひとつ抽象へ

ラッセルのパラドックスから百年以上が経った。数学はZFCのもとで問題なく機能している。パラドックスは封じ込められた。基礎の穴は塞がれた。

本当にそうだろうか。

塞がれたのは穴ではない。穴を見るための窓が塞がれたのだ。ZFCは矛盾を排除したのではなく、矛盾が生じる問いを立てること自体を禁じた。問いが消えたのではない。問いが許されなくなっただけだ。

「自分自身について完全に語ることはできない」。ゲーデルが証明したこの命題は、数学だけの話ではないのかもしれない。言語は自分自身を完全に記述できない。意識は自分自身を完全に観察できない。あらゆる体系は、自分自身の外部に立つことができない。

私たちが立っている基礎は、最初からなかったのかもしれない。あるいは、基礎とは常に仮設のもので、それ以外の基礎など存在しなかったのかもしれない。

Read more

1Passwordを閉じるボタンが……ねえ!

1Passwordを使っていたら、いつの間にかウィンドウの 閉じる/最小化/最大化ボタンが消えていた。Ctrl+Wでウィンドウ自体は閉じられるので長らく放置していたけれど、調べてみたら原因がしょうもなかったので共有しておく。 💡結論 F11を押してみよう 症状 * ウィンドウ右上の最小化・最大化・閉じるボタンが表示されない * タイトルバーも消えている * Ctrl+W では普通に閉じられる * PC再起動、1Passwordの終了・再起動、アンインストール → 再インストール、いずれも変化なし 原因 ただフルスクリーンモードに入っていただけ。 1Passwordコミュニティの投稿「Lost window minimize buttons top rhc.」で全く同じ症状が報告されていて、コミュニティマネージャーの回答が「F11でフルスクリーンを切り替えてみて」だった。 解決手順 1. 1Passwordのウィンドウをクリックしてフォーカスを当てる 2. F11 を押す これでタイトルバーとボタン類が戻ってくる。ダメな場合は Win + ↓(ウィン

By Sakashita Yasunobu

外字と訓点を compile-time hash で解く

aozora は青空文庫の外字参照 (※[#「魚+師」、第3水準1-94-37] のような形) を約 14,000 件のテーブルで解決する。このテーブルを runtime の HashMap ではなく phf (perfect hash function) で持ち、コンパイル時に static 配列に焼き込んでいる。この記事はその選択の根拠と、JIS X 0213 → Unicode フォールバックの設計をまとめたもの。 handbook の対応章: Shift_JIS + 外字 resolver。 外字テーブルの形 外字エントリには 3 種類の解決結果があり、それぞれに対応する variant を GaijiEntry に持たせている。 static GAIJI_TABLE: phf::Map<

By Sakashita Yasunobu

青空文庫の .txt を HTML に変換する最短手順

青空文庫 で配布されている .txt ファイルを HTML に変換したい、という用途向けの手順。Rust の知識は要らない。コマンド 1 行で済む。 1. CLI バイナリを取ってくる aozora の Releases ページ から自分の OS 向けのアーカイブを落とす。 OS アーカイブ名 Linux x86_64 aozora-vX.Y.Z-x86_64-unknown-linux-gnu.tar.gz macOS arm64 aozora-vX.Y.Z-aarch64-apple-darwin.tar.gz Windows x86_64 aozora-vX.Y.Z-x86_64-pc-windows-msvc.zip SHA256SUMS も同梱されているので、

By Sakashita Yasunobu