嘘が真実を食い尽くす朝

Share

「この文は嘘である」

この一文を前にして、あなたは立ち往生する。もし真だとすれば、文の内容に従って偽になる。もし偽だとすれば、「嘘である」という主張が間違っていることになり、真になる。真だと仮定しても偽だと仮定しても、反対の結論にたどり着く。出口がない。

これは言葉遊びではない。2300年以上にわたってこの問いに取り組んできた哲学者と論理学者たちは、いまだに合意に至っていない。解決策はいくつも提案されてきた。どれも、別の問題を抱えている。

あなたが自分自身について何かを語ろうとするとき、同じ構造がそこにある。

循環の入口

試しにやってみてほしい。「この文は嘘である」が真か偽か、判定する。

真だと仮定する。この文は「嘘である」と主張しているのだから、偽になる。仮定と矛盾する。

では偽だと仮定する。「嘘である」という主張が偽ということは、嘘ではない。つまり真になる。やはり仮定と矛盾する。

どちらに転んでも矛盾する。そしてこの矛盾は、推論のどこかでミスを犯したから生じたのではない。前提そのものに埋め込まれている。

エピメニデスの不発弾

よく混同されるが、古代ギリシアのエピメニデスが言ったとされる「クレタ人は皆嘘つきだ」は、厳密にはパラドックスにならない。エピメニデス自身がクレタ人だったとしても、他のクレタ人の中に正直者がいれば、エピメニデスはただの嘘つきであり、矛盾は生じない。

嘘つきのパラドックスが厄介なのは、この文が自分自身だけを指しているからだ。他に逃げ場がない。自己言及が完全に閉じている。そしてこの閉じた構造こそが、2000年以上にわたって論理学を悩ませ続けている核心にある。

集合が自分を飲み込むとき

20世紀初頭、バートランド・ラッセルが別の場所で同じ構造に出くわした。「自分自身を要素として含まない集合」をすべて集めた集合を考える。この集合は、自分自身を含むか。含むなら「自分を含まない集合の集まり」という定義に反する。含まないなら、定義に従って含まれるべきだ。

嘘つきのパラドックスと構造が同じだ。そしてラッセルのパラドックスは、当時の数学の基礎そのものを揺るがした。ゴットロープ・フレーゲが長年かけて構築した論理体系は、この一撃で崩壊した。フレーゲはラッセルからの手紙を受け取り、『算術の基本法則』第2巻の付録にこう書いた。「科学者にとって、自分の仕事の基礎が揺らぐほど不快なことはない」と。

言葉遊びが、数学の土台を破壊した。

二値の暴力

なぜこのパラドックスが生じるのか。ひとつの答えは、私たちが「すべての命題は真か偽のどちらかである」という前提を受け入れているからだ。排中律と呼ばれるこの原則は、古典論理学の土台にある。

嘘つきのパラドックスは、この前提を受け入れた瞬間に矛盾を生む。すべてを真か偽に振り分けなければならない世界では、「この文は嘘である」に居場所がない。

驚くかもしれないが、「排中律を疑う」という選択肢が存在する。すべてが白か黒かに分かれるという信念そのものが、もしかしたら世界のありようを正確に捉えていないのかもしれない。世界はそこで終わっているで触れたように、言語の構造が世界の見え方を制約しているとすれば、真と偽の二択もまた、言語が私たちに押しつけた枠組みのひとつにすぎないのかもしれない。

タルスキの禁止令

1930年代、アルフレッド・タルスキはこのパラドックスに対して、ある種の明快な回答を与えた。対象言語とメタ言語を分ける、というものだ。

ある文について「真である」と言うためには、その文が書かれた言語(対象言語)とは別の、一段上の言語(メタ言語)が必要だとタルスキは論じた。「この文は嘘である」が成立するためには、「真」や「偽」という述語が文自身と同じ言語レベルに属していなければならない。タルスキの枠組みでは、それが禁じられる。だからパラドックスは最初から形成できない。

これは解決というよりも、禁止に近い。問題を消したのではなく、問題が生じる場所への立ち入りを禁じたのだ。

タルスキ自身がこの帰結を定理として示している。十分に表現力のある形式言語は、自分自身の真理述語を矛盾なく定義できない。真理の不定義性定理と呼ばれるこの結果は、言語が自分自身について語ることの原理的な限界を突きつけている。

クリプキの猶予

1975年、ソール・クリプキは別の道を選んだ。タルスキが言語を分離したのに対し、クリプキは同じ言語の中で真理述語を扱う方法を提案した。論文「真理の理論の概略」(Outline of a Theory of Truth)で展開された固定点意味論がそれだ。

鍵は、「真でも偽でもない」という第三の状態を許容することにある。クリプキの枠組みでは、まず疑いのない文から真偽を確定し、段階的にその範囲を広げていく。「雪は白い」のような文はすぐに真と確定する。しかし「この文は嘘である」のような文は、どの段階でも真偽が確定しない。未定義のまま残る。

ただし、この解法にも穴がある。「この文は真でないか、もしくは未定義である」という強化された嘘つき文を考えると、クリプキの枠組みでも矛盾が復活する。未定義であると認めた瞬間に、その文の主張が正しくなってしまうからだ。

パラドックスは追い詰められたように見えて、一段先で待ち伏せている。

ゲーデルの変換

1931年、クルト・ゲーデルは嘘つきのパラドックスの構造を数学の内部に翻訳した。ただし、決定的な改変を加えている。

ゲーデル文は「この文は偽である」ではなく、「この文はこの体系の中で証明できない」と主張する。「嘘」を「証明不可能性」に置き換えたのだ。

この一語の置き換えによって、パラドックスは定理に変わる。もしゲーデル文が体系内で証明可能なら、「証明できない」という主張が偽になり、体系は偽なる命題を証明してしまったことになる。つまり体系は不健全だ。体系が健全である限り、ゲーデル文は証明できない。そして証明できないのだから、「証明できない」というゲーデル文の主張は事実として真である。

真なのに証明できない命題が存在する。これがゲーデルの第一不完全性定理の核心だ。十分に強力な形式体系は、その体系が無矛盾である限り、体系内で決定できない命題を含まざるをえない。体系は自分自身について完全に語ることができない。

嘘つきのパラドックスが矛盾を生むのに対し、ゲーデル文は定理を生む。破壊と証明の違いは、たった一語の置き換えにある。

自分について語ろうとした

ここまでの話を、もう少し身近に話そう。

「私は嘘つきだ」と誰かが言う。正直に自己申告しているなら、この人は嘘つきではない。嘘つきなら、この申告自体が嘘になる。日常の中にも、自己言及のねじれは潜んでいる。

もっと身近なところでは、自己紹介や自己分析の構造がある。「私は○○な人間です」と書くとき、書いている主体と書かれている対象が同一人物だ。自分を客観的に記述しようとする試みは、記述する自分がつねに記述される自分から一歩ずれている、という事実によって構造的に不安定になる。どこが私なのかという問いと、ここで合流する。

サルトルは自己欺瞞(mauvaise foi)について論じた。「私は臆病者だ」と断言する人は、その断言によって自分を固定しようとしている。しかしサルトルに言わせれば、人間は自分自身と完全に一致することができない存在だ。「私は○○だ」という文は、モノについては成り立つ。テーブルはテーブルだ。石は石だ。しかし自由な意識を持つ存在については、この形式の文はつねに半分だけ嘘になる。

嘘つきのパラドックスの構造が、ここにも顔を出している。自分について語ろうとすると、語る自分と語られる自分のあいだにずれが生じ、完全な自己記述は原理的に閉じない。タルスキが言語を分離したように、自分を正確に語るためには自分の「外側」に立つ必要がある。しかし自分の外側に出ることは、定義上、できない。

壊れたまま回り続ける

話を広げることだってできる。

大規模言語モデルに「あなたの回答は正確ですか」と尋ねたとき、その回答の正確さは何によって保証されるのか。回答自身がその保証を担うことはできない。自分の出力の信頼性を自分の出力で保証しようとする試みは、嘘つきのパラドックスの構造をそのまま再現している。

SNSで「自分らしく振る舞おう」と意識した瞬間、その振る舞いは「自分らしさの演技」に変わる。自然体であろうとする不自然さ。名前だけが残るで触れたように、名前は人を指し示すと同時に固定する。しかし名前の向こう側にいるはずの「本人」は、名前に収まらない。名前もまた、自己言及の一形態なのかもしれない。

法律の世界にも自己言及は侵入する。「この契約のすべての条項は無効とする」という条項は有効か。有効なら、自分自身を含むすべての条項が無効になるから、この条項も無効だ。無効なら、他の条項の無効化は取り消される。日常の制度設計にまで、このパラドックスの影は伸びている。

答えは出ない

嘘つきのパラドックスに正解はない。タルスキは言語を分けることで問題を回避した。クリプキは第三の値を導入して猶予を与えた。ゲーデルは問いの構造を変えることで定理に変換した。どれも、パラドックスそのものを消したのではなく、パラドックスの周囲を迂回する方法を開発しただけだ。

終わらない議論の果てに立つということで書かれたように、答えにたどり着かない問いにも、それ固有の価値があるのかもしれない。しかし嘘つきのパラドックスについては、「答えがないこと自体に価値がある」と言い切ることすら、もうひとつの自己言及に陥りかねない。

自分について完全に語ることはできない。言語は自分自身の真理を定義できない。体系は自分自身の完全性を証明できない。あなたが自分について何か正しいことを言おうとするたびに、あなたはそこからずれる。

そのずれを埋めることができるか。おそらくできない。ずれを認識すること自体が、さらなるずれを生むからだ。

余白が語りはじめるのように、語れないことの周辺を、ただ迂回し続ける。あなたが自分について知っていると思っていることは、あなたではない何かについての不完全な報告にすぎないのかもしれない。

Read more

Dependabotの対応が面倒なのでRenovateを導入する

Dependabotくんはある程度の依存関係の更新を通知してくれるが、山のようにprojectを抱えているとなんとも痒いところに手が届かない。 ということで、Renovateを使ってみる。 Build software better, togetherGitHub is where people build software. More than 150 million people use GitHub to discover, fork, and contribute to over 420 million projects.GitHub ここからGitHub Appを入れる。 あとは、指示に従ってポチポチするだけで、超かんたんだった。 感想 自動化最高。

By Sakashita Yasunobu

nodejsのバグを見つけたのでPRを投げてみた

概要 要するに、node --testで特定のバイナリを標準出力に書くと、テストランナーが固まったり、異常終了したりするバグです。 バグ自体は既知のものだったようで、修正がされていました。 test_runner: infinite loop in FileTest#drainRawBuffer when child stdout contains FF 0F followed by large size bytes · Issue #62693 · nodejs/nodeVersion v25.9.0 (also reproduced on v24.14.1 LTS, v22.21.0 LTS, v23.4.0) Platform Darwin 25.

By Sakashita Yasunobu
青空文庫のParser

青空文庫のParser

青空文庫のParserを作ってます。 GitHub - P4suta/aozora: Pure-functional Rust parser for 青空文庫記法 (Aozora Bunko notation): ルビ, 傍点, 縦中横, 外字, 返り点, indent containers, page breaks.Pure-functional Rust parser for 青空文庫記法 (Aozora Bunko notation): ルビ, 傍点, 縦中横, 外字, 返り点, indent containers, page breaks. - P4suta/aozoraGitHubP4suta Rustで作ってますが、配布物はcargoのほかにnpm/pypiでも入手できます Documentation * Playground — try it in

By Sakashita Yasunobu