少年少女のための論理のルール

 私たち人間は言葉を使って考える生き物です。考える時には好き勝手にではなく、ルールに従って考えています。あなたも私も同じルールを使っているため、お互いに相手の考えが理解でき、わかり合えるのです。では、どんなルールを使って考えているのか、それを探ってみましょう。

(1)
 私たちは言葉を使って考えます(言葉を使わないと考えることができないことを今自分で試してみてください)。その言葉は文法(grammar)というルールをもっています。また、私たちの思考は論理(logic)のルールを使っていて、私たちはそれを使わないと考えることさえできません。ですから、私たちが考える時には、言葉のルールと思考のルール、つまり文法と論理という二つの違うルールを使っていることになります。言葉が違うと文法は異なるのですが、言葉が違っても論理は同じです。では、どうして言葉のルールと思考のルールは同じではなく、異なっているのでしょうか。この問いはとても深遠だなどと痺れる前に、物理のルールや経済のルールも言葉や思考のルールと違っていることを知れば、平静に対応できる筈です。
 文法は退屈なので、言葉のルールの例として定型詩の俳句を考えてみましょう。俳句は季語を入れて作るものですが、一句に入れる季語の数は一つにしておくという原則があります。なぜなら、握り寿司のネタがなかったり、逆に重ねたりすれば、誰も食べないように、俳句の季語はネタにあたる最も重要な句の構成要素だからです。なければ駄目で、むやみやたらに重ねるのも駄目で、寿司を食べる側は、ネタ(つまり、季語)を楽しむことができなくなってしまいます。この月並みな説明に対して、ちらしずしや海鮮丼、パエリアは色んなネタを使っていて、それで寿司とは違う美味しさを生み出しています。寿司はそれぞれの季語が互いに持ち味を打ち消しあい、一句を台無しにしてしまう喩えになりますが、パエリヤはこの反対に、互いに旨味を出し合い、味を深める例になっています。一句に一季語という原則を寛容に捉え、例外を認めると考えた方がよさそうです。つまり、例外を許すだけでなく、時代や状況に応じてルールを変える可能性をもっているのです。これに対して、論理のルールはもっとずっと厳格です。
 私たちは論理のルールを使って何かを考え、話し、互いに意思の疎通を図っています。その際、どのような論理のルールを使っているかなど意識していません。そのためか、どんなルールを使ったかと問われたり、論理のルールそのものを挙げるように言われたりすると、大抵の人はまごつくだけで、うまく答えることができません。例えば、「Aの必要十分条件がBなら、Bの必要十分条件はAである」ことを論理ルールだけを使って説明(証明)せよと言われると、ほとんどの人はまごつき、右往左往するのです。ところが、私たちはその論理ルールを使いこなすことに関してはまず間違うことがありません。ルールを明示的に挙げたり、説明したりできなくても、ルールを正しく使いことに関しては正確に、しかも迅速にできるのです。
 ルールのこのような実践的な学習と習得は母国語についても同じです。日本人は日本語を巧みに使いこなせますが、日本語の文法は学校で習わないとまるでわかりません。子供たちは文法のルールを明示的に知らなくても、正しい日本語を容易につくることができ、流暢に話せるのです。幼児の母国語の使用は暗黙知(tacit knowledge)と言ってもいいのかも知れません。
 このように、論理と言語のルールは使うことができるように習得されているのですが、何がルールかを明確に表現できないというのでは、例えば推論の仕組みをコンピューターでプログラムしたい、他の言語に、あるいは他の言語から翻訳したい場合、困ってしまいます。そこで、まずは論理や言語のルールをはっきり知ることが第一歩になる訳です。では、もっとも基本的な論理のルールに焦点を当てるとどうなるでしょうか。
 論理には直観主義論理、量子論理、多値論理と呼ばれるような、通常の論理ルールとは違うルールからなる論理システムが存在します。これらは、適用される状況が数学的対象の構成、量子世界での粒子の振舞い、真偽以外の値をもつ状況と言ったように、通常の世界や状況とは違った、独特の状況で成り立つ論理システムです。このようなとても特殊な状況は日常生活ではまず登場せず、日常世界では伝統的な古典論理(classical logic)が通用しています。非古典的な論理システムも古典論理とは僅かな違いしかありません。
 ルールを知ることとルールを使うことは表面上はとても異なると述べましたが、論理のルールが何かを初めて明瞭な仕方で表現したのはアリストテレスです。それが三段論法(syllogism)のシステムで、彼の『分析論前書』に述べられています。彼の三段論法のシステムは20世紀の中葉まで大学で「形式論理学」として講義名で教えられていました。それは正しく推論するための技術なのですが、大抵の人は学ばなくても無意識的に習得しているため、退屈極まりない講義の代名詞にさえなっていました。大学に入学したばかりの新入生に日本語の文法を教えるのであれば、まだ少しは意味があるのですが、日本語の文法の現在形の一部だけ教えるとなったら、誰も見向きもしない筈です。アリストテレスの三段論法のシステムは論理のルールの中の(一項述語だけからなる)簡単な代数ルールの集まりで、私たちが既に小学生時代にマスターし、無意識のうちに使っていたものだったのです。
 私が大学に入学したのは東京オリンピックの後でしたが、1年生の時に「形式論理学」を履修した経験があります。数回出席し、あとはつまらなくて放棄したのですが、翌年「記号論理学」を履修し、こちらは記号列の計算で結構楽しかった思い出があります。私のこの経験を落語のように語ると二つの論理学が扱う論理システムの違いが明瞭になってきます(是非、一度は高座で話してみたいものです)。現在の古典論理のシステムは「第1階の述語論理(first-order predicate logic)」と呼ばれ、19世紀末から20世紀にかけてフレーゲラッセルらによって構築されました。アリストテレスのシステムはこの述語論理のシステムの僅かな一部分で、今でも通用する正しいシステムです。さすがアリストテレスで、彼は誤っていなかったのです。でも、適用される範囲が狭すぎ、わざわざ三段論法のシステムを意識的に適用しなくても、常識でことは済むのです。ですから、多くの人がつまらないと感じたのです。
 論理のルールとその使い方を問うような問題を出して今日の話は終了にしましょう。

(1)Aの必要十分条件がBならば、「AかつB」はBの必要条件だろうか。
(2)「どんな人にも嫌いなものがある」から、「誰からも嫌われるものがある」は導き出せるか。

(2)
<代数ルールと量化ルールからなる論理システム>
 論理ルールの具体的な説明。数式を変形し、計算し、答えを出すのと同じように、記号化された言明(論理式、logical formula)を変形し、別の言明を導き出す、これが論理的な推論の一般的なプロセスです。「計算する、証明する、推論する、思考する」といった述語はみな同じ事柄を指すと考えることができ、かつてアリストテレスが述べた、理性的動物である人間の「理性的思考」とはつまるところ、コンピューターの計算機能と同じということになります。これは大いに驚くべきことなのです。長い間、理性や合理性は人間の人間たる所以だと考えられてきましたし、西欧の学問の特徴の一つが合理主義にあったのですが、それは結局のところ計算(computation)がもつ特徴だということになったのです。
 「計算」についての具体的な研究は19世紀にイギリスを中心に始まります。ベンやブールという名前を聞いたことがある人が多い筈ですが、いずれも数学者で、推論の代数的な構造を明瞭にしようとしました。代数的な操作は文と文をつなげたり、分離したりするときの操作で、接続語句がそのカギを握っています。主な接続語句となれば、「…でない」、「…かつ…」、「…あるいは…」、「もし…なら、…である」の四つが代表的なものです。これはどんな自然言語でもほぼ共通のものです。そして、肝心な点は、これら接続語句は四則演算(加減乗除)と真偽(1と0)の計算に関して同じ振舞いをする、ということです。
 アリストテレスは二つの名辞(名詞、項、term)がbe動詞(…である)で結ばれている文を4通り挙げて、それを基本文型にして正しい三段論法(二つの基本文型から別の基本文型を導出する)を分類してみせました。その四つの文型を挙げてみましょう。AとBは共に名辞で、ここに一般名詞を代入すれば、具体的な言明をつくることができます。
(1)全称肯定型:すべてのAはBである。
(2)全称否定型:すべてのAはBでない。
(3)特称肯定型:あるAはBである。
(4)特称否定型:あるAはBでない。
(1)を否定すると(4)に、(2)を否定すると(3)に、(3)を否定すると(2)に、(4)を否定すると(1)になります。これを説明するのが量化(quantification)のルールです。主語の量について否定記号とどのような関係にあるかのルールが量化のルールです。「すべてのxはFである」を否定すると、「あるxはFでない」になると言ったルールで、次のように表現できます。∀は普遍量化記号、∃は存在量化記号、⏋は否定記号と呼ばれます。
∀xF(x) ⇔ ⏋∃x⏋F(x)
∃xF(x) ⇔ ⏋∀x⏋F(x)
⏋∀xF(x) ⇔ ∃x⏋F(x)
⏋∃xF(x) ⇔ ∀x⏋F(x)
例えば、最後のルールは、「Fであるxは存在しない」は「どんなxについてもFでない」と同値である、となります。主語の量的な表現が否定記号と規則的な関係になっているのがわかります。
 四つの基本文型の相互関係を洗い出し、それらを使って正しい三段論法を抽出したのがアリストテレスです。彼はこの正しい三段論法を組み合わせれば普通の長い推論が再構成できると考えたのです。現在の言葉を使えば、一項述語だけからなる言語で表現された推論はアリストテレスのシステムで説明できる、ということになります。一般に述語は何項でも構いませんから、これはとても大きな制約ということになります。例えば、「2は5より大きい」は普通は「2 < 5」と表現され、一般的にはF(2,5)という二項の述語です。「関係」と呼ばれるものは、さらに「AはBとCの兄である」のように三項のもの、さらにはn項の関係が一般的な形です。
 こうして、関係を表現するn項の述語はn個の論理的な主語をもった述語ということになりますが、「一つの文の中には主語は一つ」という文法の鉄則が見事に崩れることになります。論理的な主語と文法的な主語は違っていて、思考、推論するには論理的な主語を信用すべきだということになります。自然言語の文法を信用してはダメだということの教訓そのものなのですが、自然言語を信じてシステムを考えたのがアリストテレスですから、アリストテレスも推論の仕組みを知るには言語表現が大切だと眼をつけた点は見事なのですが、残念なことにそれが自然言語ギリシャ語)だったため、一部しか成功させることができなかったのです。
 日本語は英語、フランス語、中国語などと並んで自然言語の一つで、しかも他の言語との系統関係がわからず、世界で孤立した言語と言われています。ですから、かつては「象は鼻が長い」という文の中に「象」と「鼻」の二つの主語があり、文法さえ脆弱だと馬鹿にされたのですが、複数の主語が一つの文の中にないと関係を表現できないことを考えると、一概に日本語の文法はいい加減だなどと結論できないのです。
 少し難しいことを言うと、第1階の述語論理ではゲーデル不完全性定理が成り立っていて、自らのシステムが矛盾していないことを自ら証明することができませんが、アリストテレスのシステムではこれが可能です。適用範囲は狭くても、その推論の仕方は完全だということになります。
 ここで主語と述語はどんなものか考えてみましょう。これは論理学の仕事というより、解釈や意味論の問題になります。自然数論や実数論に登場する変数x、yは任意のもので構いません。敢えてそれが何かわからなくても計算はできますし、定理の証明には何の支障もありません。でも、私たちの好奇心は「数とはないか」という問いに誘惑されて、その答えを探したくなるのです。主語は、私たちの住む世界の中の物理的な対象で指で指すことができるもの、というのが大方の人が認めるものです。その結果、心的な対象、概念や意識は排除されます。これを少々エレガントに述べると、論理的な主語は代名詞「これ」、「それ」で指すことが容易にでき、確認できるものということになります。ですから、「日本人は日本語を話す」という文の文法的な主語は「日本人」ですが、言い換えると、「どんなものについても、それが日本人なら、それは日本語を話す」となって、「それ」が主語になります。そしてこの「それ」は変数、変項と呼ばれてきたものなのです。数学でお馴染みの変数とは実は代名詞のことなのです。ですから、「実数という集合の中を動くもの」というとんでもない表現はこの際捨て去るのがいいでしょう。
 これで記号言語、人工言語の説明は終わりです。この言語によって私たちの世界についての基本的な表現がすべてでき、言明の間の推論、計算を自動化することも可能です。つまり、私たちの外部世界についての知識を表現し、それを使って推論することができる信頼できる人工言語なのです。この言語を使って数学理論、物理学理論を形式化し、それが実験や観測結果と合うかどうかチェックするという研究のアウトラインが描けることになります。
 誰もが受け入れ、拒絶することができないルールが論理ルールです。人間として何かを考える際、論理ルールを拒絶することは考えることを放棄することと同じことです。私たちは論理のルールを土台にして言語や科学、倫理や宗教の規則をその上に整合的に設けようとします。でも、どの規則も取り換えが可能という点では心底信じることができるという訳にはいかないのです。論理ルールは普遍的でも、他のルールは局所的なのです。そこに人間がこの世界について生み出す理論や思想、宗教や倫理の特徴が滲み出ているのです。でも、そこがスリリングで、私たちを惹きつけるのです。私たちは自由にこのルールが駄目なら、別のどんなルールにするか、こんな議論に熱中する経験を誰ももったはずです。

(3)
<「計算する」ことの意義:思考と計算>
 思考、特に理性的な思考と言われると、誰もが似たような錯覚に陥るようです。理性的な思考こそが人間の人間たる所以だと昔から繰り返されてきて、それが伝統として長く定着していたからかも知れません。そのような理性神話が壊れ去ったのは19世紀末であり、20世紀は理性の新版をつくり、それを具体的に展開する時代でした。
 「計算する(compute)」という述語はほぼ誰もが知っていて、実際に私たちは計算することができます。計算するとは、もしチューリング・マシーンを使うのであれば、左右に限りなく伸ばすことのできるテープの上の一つのマス目に0か1の数字、あるいは空白をつくる操作を繰り返すことによって遂行されます。これは子供の頃に習わされた算盤よりずっと単純な操作の集まりからなっています。計算がこれほど単純な動きの集まりに過ぎないと割り切る人は少なくても、「算術(arithmetic)」は理論というより実用的な技、習得すべき技術だと思われてきました。それに対して、「考える」、「思考する」、「知る」といった述語は人間の誇るべき本性だと受け取られ、それを強調あるいは象徴するかのように「理性」などという概念がつくられ、人間は理性的な動物だと理解(誤解)されてきました。また、「感じる」、「感覚する」は感覚器官を働かせる動作として、理性とは異なることを強調して「感性」という概念がつくられました。そして、感性は動物ももつが、理性は人間だけがもつという(人間中心的な)博物学的区別はギリシャ以来の(科学的な根拠など無視した)伝統的な分類でした。
 人工知能(AI)の典型的なモデルは人間です。ペットでもいいのですが、私たちの関心は圧倒的に私たち自身にあります。人間と同じように感じ、知り、同じように考え、判断する機械の仕組みは単純な計算の組み合わせから成り立っています。人工知能には感性、悟性、理性と言った区別は本質的な区別ではなく、それら機能の違いは同じ計算からなる異なるシステムに過ぎないのです。
 「何かを計算する」という謂い回しは計算にはそぐわない表現です。計算自体は盲目的で十分。計算結果が何を計算したかを明らかにしてくれます。一方、「何かを知る」という表現の「何か」は不可欠で、単に知ることは無意味に等しいのです。ですから、考える、感じる、意識するといった述語は「志向的(intentional)」と言われてきました。それは考える対象、感じる対象、意識する対象がないと意味不明だからです。あるいは、それが私たちに備えつけられた能力で、外の世界との関わりを保持するための工夫なのだと考えることができなくもないのですが、「計算する」は志向的ではなく、外界を必要としません(この自己完結性は計算の利点であるとともに、欠点でもあります)。
 私たちはAIにどう対処すべきか戸惑っています。その理由をかいつまんで言えば、同じものなのに違った説明、理解がなされているからです。「私たちは何なのか」についてのギリシャ以来の説明は迷走だらけでしたが、それでも人間を知りたいという点では一致していました。その結果、人間は心をもち、理性をもち、自由意志をもち、責任と権利をもつもので、単なる機械ではないという考えに強い反対はありませんでした。
 AIは機械であり、人間がつくります。そのAIがチューリング・テストをクリアーし、人間と同じように振舞うことができるのは直ぐ先のことです。その基本は計算であり、単純で盲目的な計算がAIを人間並みにしているのです。
 さて、ここからが哲学的な思索。「計算する」というのは一体どのような述語なのでしょうか。むろん、それは最終的には数論に帰着するのですが、哲学者は明らかに「計算する」ことをバカにしてきました。カントもヘーゲルも計算に特段の関心を寄せたとは思えません。でも、19世紀末から数学の基礎に関する議論は一変します。フレーゲラッセルらの論理学の研究はゲーデルチューリングの数学の基礎に関する研究、つまり、計算理論へと結びつくのです(算術化)。
 ゲーデル不完全性定理や万能チューリングマシーンは「考えることが計算する」ことであることを説得的に説明するだけでなく、カントのアンチノミーのような推論を数学的に昇華し、人間の合理的思考のシステム(算術を含む論理システム)の不完全性を計算によって証明することになりました。
 感じ、考え、決断することは、基本的に計算することです。これがAIという考えの基本中の基本です。これほど明晰にして判明な結論を20世紀になるまで私たちは知りませんでし。人間の本性はかつて合理性に求められたのですが、計算に求めるべきなのです。人間とは計算する生き物なのです。

*これまでの話の中に登場した哲学者、論理学者、数学者の名前は以下の通りで、本文中では一切説明がありません。ですから、彼らについてWebで検索してみてください。
アリストテレス、カント、ゲーデルチューリングフレーゲ、ブール、ヘーゲル、ベン、ラッセ