パラドックス

【世界のパラドックス】カリーのパラドックス ─ たった一文であらゆる主張を証明できる

【世界のパラドックス】カリーのパラドックス ─ たった一文であらゆる主張を証明できる

当サイトを閲覧いただきありがとうございます。 本記事は「カリーのパラドックス」について解説します。

「この文が真であるならば、サンタクロースは実在する」という一文を用意します。たったこれだけの材料から、サンタクロースが実在するという結論が形式的に導けてしまいます。しかも結論部分は何に差し替えても構いません。嘘つきのパラドックスと違って否定をまったく使わないところが、この問題の恐ろしさになっているという感じでしょうか。

図解

サンタの実在を証明する一文

まず、次の文を用意します。これをCと呼ぶことにします。

C:この文が真であるならば、サンタクロースは実在する。

一見すると、何も主張していない空虚な文に見えます。条件が付いているだけで、サンタがいるとは言っていません。

ただ、この文が指している「この文」とはC自身のことです。つまりCは「Cが真ならば、サンタは実在する」という内容を持つことになります。

自分自身について語る文なので、意味が確定するまでに一周する構造を持っています。ここから何が出てくるのかを追いかけてみます。

証明を追ってみる

段階を踏んで進めます。

まずCが真だと仮定します

Cが真であるということは、Cの内容が成り立つということです。Cの内容は「Cが真ならばサンタは実在する」でした。

いま仮定によってCは真なので、この条件文の前提部分が満たされています。よってサンタクロースは実在するという結論が出ます。

ここまでで示せたのは「Cが真だと仮定すると、サンタは実在する」ということかと思います。

ここが仕掛けの核心です。いま示したこの内容は、C自身が言っていることとまったく同じです。つまり私たちはCの内容を証明したことになり、Cは真だと言えます。仮定なしで、Cの真理が手に入りました。

最後の一手です。Cは真であり、そしてCは「Cが真ならばサンタは実在する」と言っています。前提が満たされているので、結論が出ます。

サンタクロースは実在する。証明終わりです。

否定をまったく使っていない

奇妙なのは、この推論のどこにも無理がないように見えることです。

使ったのは、条件文の前提が成り立てば結論も成り立つという規則と、仮定から導けたことは条件文として書き直せるという規則だけです。どちらも論理学の最も基本的な道具です。

そして注目すべきは、否定という概念が一度も出てこないことです。

嘘つきのパラドックスは「この文は偽である」という形で、否定が本質的な役割を果たしています。だからこそ「真でも偽でもない第三の値を認めればよい」といった対処法が考えられてきました。

カリーのパラドックスにはその手が通用しません。否定がないので、否定の扱いをいじっても何も解決しないからです。

さらに深刻なのは、結論部分を何にでも差し替えられることです。「1は2に等しい」でも「私は不老不死である」でも、まったく同じ手順で証明できてしまいます。体系があらゆる主張を証明できるなら、その体系は完全に無意味になります。

発見者ハスケル・カリー

このパラドックスを1942年の論文で指摘したのが、アメリカの論理学者ハスケル・カリーです。

彼は当時、いくつかの形式体系が矛盾を含んでいることを示す研究をしており、その過程でこの構造を取り出しました。ほぼ同じ内容は数学者マルティン・レープも独立に扱っており、レープのパラドックスと呼ばれることもあります。

なおカリーの名前は、プログラミングを学んだ人にはおなじみかもしれません。関数の引数を1つずつ受け取る形に変換するカリー化という技法や、関数型言語Haskellの名前は、いずれも彼にちなんだものだと思います。

どの規則を捨てるか

矛盾が出た以上、どこかの前提を捨てなければなりません。候補は主に3つあります。

ひとつは自己言及を禁じる方針です。文が自分自身を指せないように、言語に階層を設けます。タルスキが真理の定義について採った道と同じ考え方になります。

ふたつめは真理述語の扱いを制限する方針です。「Cは真である」「Cの内容」を自由に行き来できることが矛盾の材料になっているので、その行き来に条件を付けます。

そして三つめが、論理学者にとって最も刺激的な選択肢でした。縮約規則を捨てるという道です。

縮約規則とは、「AならばAならばB」という形が出てきたときに、これを「AならばB」にまとめてよい、という規則です。上の証明では、Cを2回使うところでこの規則が働いています。

「同じ前提を何度使っても1回使ったのと同じ」という、あまりに当たり前に見える規則ですが、これを認めない論理体系も作れます。線形論理や関連論理と呼ばれるものがそれで、前提を資源のように数えて扱います。カリーのパラドックスは、こうした部分構造論理が真剣に研究される大きな動機のひとつになりました。

前提を資源として数える論理

縮約規則を捨てるという選択は、当初こそ突飛に見えましたが、その後まったく別の方向から支持を得ることになりました。

体系ごとの扱いの違い

論理体系縮約規則前提の扱いカリーの矛盾
古典論理認める何度でも使い回せる発生する
直観主義論理認める何度でも使い回せる発生する
線形論理認めない1回使うと消費される発生しない
関連論理制限する結論と関連がなければ使えない発生しない

1987年にジャン=イヴ・ジラールが提唱した線形論理は、前提を情報ではなく資源として扱います

自動販売機を思い浮かべると分かりやすいと思います。100円硬貨があればジュースが買える、という前提から、同じ100円で2本買うことはできません。硬貨は使えば消えるからです。

古典論理は前提をいくらでも複製できる情報として扱うので、この当たり前の制約を表現できませんでした。

現代の言語設計にまで届いている

この発想は、いまではプログラミング言語の設計に組み込まれています。

線形型:値を一度しか使えないように型で縛り、資源の二重利用を防ぐ ・Rustの所有権:ある値の持ち主は常に1人。渡した側は使えなくなる ・並行処理の安全性:同じ資源に複数から触れないことをコンパイル時に保証する

ファイルを閉じたあとにもう一度書き込む、といった誤りを設計段階で潰せるのは、この考え方があるからです。

サンタの実在を防ぐために提案された規則の削除が、40年後にメモリ安全性の道具になったというのは、なかなか予想しにくい展開だったと思います。

集合論でも同じことが起きる

この構造は、言葉の話にとどまりません。

素朴な集合論では、条件を書けばそれを満たすもの全体の集合が作れるとされていました。そこで「自分自身を要素として含むならば、サンタが実在する」という条件を満たすものの集合を考えます。

すると、この集合が自分自身を含むかどうかを検討する過程で、まったく同じ推論が動き出し、サンタの実在が導けてしまいます。

ラッセルのパラドックスと並んで、素朴な集合の作り方が危険であることを示す例になっているということになります。私はこの問題を知ったとき、当たり前すぎて疑う対象にすらなっていなかった規則が犯人だったという展開に、かなり驚かされました。

嘘つきより厄介だと言われる理由

最後に、この問題が論理学者にとってなぜ深刻なのかを整理しておきます。

否定を使わない:真偽の値を増やす、といった否定まわりの対処が効かない ・結論を自由に選べる:任意の主張を証明できるので、体系が完全に無意味になる ・使う規則が少ない:条件文の扱いだけで成立し、削れる部分がほとんどない ・直観主義論理でも起きる:排中律を捨てても回避できない

3つめが特に厳しい点です。嘘つきのパラドックスなら「真でも偽でもない値を認める」という手が使えますが、カリーの場合はそもそも真偽の話をしていないので、その逃げ道が最初から存在しません。

残された選択肢は、自己言及を禁じるか、真理述語を制限するか、縮約規則を捨てるかの3つだけです。どれを選んでも何かを失います。

論理学の道具箱の中で、いちばん疑われにくかった規則に手をかけさせたという点で、この一文の破壊力は際立っていると思います。

自己言及の関連パラドックス

自分自身について語ろうとした途端に、意味が定まらなくなる関連パラドックスです。

まとめ

本記事は「カリーのパラドックス」について解説しました。如何だったでしょうか。

否定を使わずに、たった一文からあらゆる主張が証明できてしまう。嘘つきのパラドックスより射程が広く、しかも同じ前提は何度使っても同じ、という規則を疑わせるところまで議論を押し進めました。

疑いようがないと思っていたものほど、実は一度も検査されていない。論理学の土台にもそういう場所があったのだと思うと、なかなか味わい深い問題です。

パラドックスの一覧に戻りたい方は以下のリンクからどうぞ。

それでは次の記事も閲覧いただけると幸いです。

【世界のパラドックス一覧】哲学・数学・物理・経済まで有名パラドックスを完全解説senkohome.com/paradox-list/