見出し画像

プログラミングと論理学

プログラミングと言えば、論理学に関連してきますので、現代論理学の創始者として、また、それを基にした言語哲学の祖として知られているゴットロープ・フレーゲを古田徹也共著『経験論から言語哲学へ』から学びます。

アリストテレス以来の伝統的論理学は「名辞論理」とも呼ばれている。というのは、推論を構成する命題の基本型は、ーー例えば「動物は生物である」のようにーー、「主語+述語」とし、主語も述語も名辞として理解するからです。

名辞論理がカバーできる推論の範囲は、次に述べるように狭いと古田氏は述べる。

しかし、名辞論理がカバーできる推論の範囲は狭く、たとえば, 「す べての人間は誰か (ある人間) を愛している」 といった命題を用いた推 論を扱うことができない。 なぜなら、名辞論理では,「愛している」といった関係性自体を自然に表現することが難しいうえに. 「すべて (all)」や 「誰か・ある(some)」という量を複数含む命題これを多重量化さ れた命題と呼ぶがもつ論理的構造を表現することが不可能だからで ある。

『経験論から言語哲学へ』P173

一方、フレーゲの構築した新しい論理学は、名辞論理学が陥っている範囲を超えて、多重量化 の論理的構造を表現できる豊かさをもつ、と古田氏は指摘する。

具体的に表現すると、伝統的論理学では名辞として捉えた「動物」や「猫」等の概念を、それ自体命題として理解し、「xは猫である」のように動物をxという記号の形で示すということです。つまり、概念を名辞ではなく、xのような関数として理解しているということになります。

さらに拡張して、「xはyを愛している」の関係性も関数とみなして、これをGxyのように記号化することができる。

そしてこのとき、事項xとyの値を人間に限定すれば、多重量化を含んだ命題「すべての人間は誰か(ある人間)を愛している」は、
  「すべてのxについて、Gxyであるyが存在する」
という関数として、その論理構造を明晰に表現することができるのである。

さらにまた「すべてのxについて」という全量を与えることを下図にような記号で表し

「・・・であるyが存在する」という不定量を与えることを下図の記号とする。

そうすると、「すべてのxについて、Gxyであるyが存在する」は、全て下図のように記号のみで表現できるようになる。

フレーゲは、上記の記号だけではなく、他にも彼独自に案出した人工言語があり、それを「概念記法」と呼んでいる。

こうした名辞ではなく命題に基づいた論理学の体系自体は、古代のストア学派なども開発していたが、フレーゲの功績は、下記の通りである、と古田氏は言う。

フレーゲの功績は、名辞論理と命題論理を統合するシンプルな公理体系 を構築し、さらにそれを含む包括的な公理体系として、多重量化された 題をも扱える非常に表現能力の高い論理学を築き上げた点にある。 こ の新しい論理学は、一般に 「述語論理」 と呼ばれている。 (「述語」 とい うのはこの場合、「xは人間である」 といった命題関数の別名である。 他方、名辞論理における 「述語」 とは、先に触れた通り, 主語となる名 辞に対して繋辞 「である」 によって結合する名辞のことを指す。 つまり、述語論理における 「述語」 と名辞論理における 「述語」 は意味が異なる ので注意してほしい。)

『経験論から言語哲学へ』P175

こうした論理学の革新をフレーゲが進めたのは,算 術 (数学のうちで幾何学と大別されるもの)の基礎づけ、という課題で あった、と言う。

算術の基礎づけとは、算術で用いられる概念 (基数 1や2といった 個別の数やーといった演算子など) を定義し、定理などの算術的命 題の厳密性 (矛盾がないこと) を証明することである。 フレーゲは,算 術が実は論理学の一部であることを示すことができれば、この課題を達 成できると考えた。 この立場を 「論理主義」 と言う。

同上

ところが、彼の構想は、ラッセルにより矛盾を指摘されて、挫折した。しかし、彼の試みの過程で、現代論理学が創始され、さらに道具立てを用いた言語哲学を誕生させたことが重要である、と言うのです。

ラッセルが指摘した矛盾は「ラッセルのパラドックス」と称されているが、その後、このパラドックスを回避することを試みられている。その回避方法については、本書の範囲を超えているので、省かれています。

フレーゲが構築した新しい論理学が、現在のプログラミングやAI人工知能に貢献しているということでしょう。


この記事が気に入ったらサポートをしてみませんか?