僕の知らない論理

いつも通りのある日のこと、彼は突然声高に言った。嫌だ!は充分に論理的だと。*1
彼が主張し心理学者がまさにまさにと肯定*2した僕の知らない論理に僕は興味を持った。
それはこういう理屈なのだろうか?と考えた仮説を書いたら*3ある人が解説をしてくれた。
僕の知っている論理学とは随分と違うその論理学の名を知らない。*4

僕の知ってる論理

中学校の数学で「命題」について習っているはずだ。「対偶」という言葉に覚えはないかい?なんかややこしい話だったと記憶しているかもしれない。ああいうジャンルの話題だと思ってくれればいい。

命題「AならばB」の対偶は「BでないならAでない」である。

対偶 (論理学) - Wikipedia

真っ当なプログラマなら論理演算はよく知ってる。日々の日常だし、基礎の基礎だ。真と偽の組合せでプログラムは動いている。

だいたいどのプログラム言語でもboolean値(真偽値)は扱える。真偽値はtrue(真)とfalse(偽)の2通りの値をとる。2つの真偽値に対していくつかの演算ができる。そう難しいことではない。and演算を例にしよう。日本語では「かつ」という。「且つ」だ。A and Bという演算は、Aがtrue 且つBがtrue の場合だけtrue となる。論理演算 - WikipediaにはAND(論理積)の他にもいろいろな論理演算が乗っている。なんのことなく、主にAとBの2つがtrueとfalseのどういう組合せなのかという話だ。

プログラム言語では扱われないが、元になってる数学の論理演算には「ならば」というものがある(論理包含参照)。AならばBの演算結果は表のようになる。

A:true A:false
B:true true true
B:false false true

これは日常生活でつかう「ならば」の直感とはちょっとはずれるが、その点の解説はwikipedia論理包含の項にまかせよう。

「ならば」の使い方として有名なのは「AならばB」「BならばC」のとき「AならばC」とする三段論法というやつだ。このような推論を僕らは「論理的」という。僕らは「論理的帰結」のことを略して「論理的」と言っているわけだ。

数学あるいはプログラム言語は真偽値を抽象的に扱った。抽象的にtrueとfalseの組合せを扱う限りは誤りを起こしにくい。この論理演算を自然言語にはどう応用するのか?ここで命題というのが出てくる。

真か偽に定まる問いを命題という。「全ての人間は死ぬ」「ソクラテスは人間である」といったものだ*5.。ここで真偽値に変換してしまえば、あとは数学的な論理演算で厳密に推論を行うことが出来る。命題は論理的帰結への入り口ということになる。

論理学における最も基本的な概念であり、複数の文(または命題)の集合と1つの文(命題)の間が「〜だから、当然〜」という繋がり方をする関係を指す。例えば、「カーミットは緑色だ」という文は、「全てのカエルは緑色だ」と「カーミットはカエルだ」の論理的帰結である。

論理的帰結 - Wikipedia

なお、ここでいう「文」とは

現在では、論争や存在論的な含みを持つこと避けるため、ある解釈の下で(真か偽のいずれであるかという)真理の担い手となる記号列自体について述べる時は、「命題」という代わりに「文 (sentence)」という術語を用いる。ストローソンは「言明 ("statement")」 という術語を用いることを提唱した。

命題 - Wikipedia

ということのなので、日常生活で用いる「文」という用語より狭い。

命題は抽象的な論理演算にのせるためのステップだ。命題は論理的帰結の大事なパーツではあるが、命題そのものは論理的帰結ではない。複数の命題から単一の命題を導くことが論理的帰結だった。

論理ではときに前提条件を定めることがある。前提条件もまた真偽値を定めることができるので命題でもある。この特殊な命題を公理とよぶ。

公理(こうり、Axiom)とは、その他の命題を導きだすための前提として導入される最も基本的な仮定のことである。一つの形式体系における議論の前提として置かれる一連の公理の集まりを公理系という。公理を前提として演繹手続きによって導きだされる命題は定理とよばれる。多くの文脈で「公理」と同じ概念をさすものとして仮定や前提という言葉も並列して用いられている。

公理 - Wikipedia

広く一般に言われる「数学は何でもかんでも証明する学問である」という考えは間違いである。 AはBから証明でき、BはCから証明でき、CはDから証明でき…と原因をさかのぼっていくとき、どこまでも無限にさかのぼる事はできない。 なぜなら人間は有限時間しか生きる事ができないので、無限に長い証明を全て読む事はできないからである。(有限の立場)。

この為さかのぼるのをどこかであきらめ、幾つかの命題を無批判に認めざるをえない。 この無批判に認める命題が「公理」である。

公理 - Wikipedia

当然ながら公理そのものもまた論理的帰結ではない。しかしそして論理的帰結の大事なパーツである。

これが、僕の知ってる論理。

僕の知らない論理

さて、そんなわけで僕の知ってる論理では「嫌だ!」のどこが論理的なのだ!?ということになる。「論理的」とは「論理的帰結」のことをイメージしているのだから、命題や公理そのものは「論理的」ではないし、そもそも「嫌だ」は命題ですらないのではないのか?

僕の知らない論理では

  • 「発せられた言葉と言葉の間の関係に矛盾がないこと」

を論理的というらしい。なので

  • 「怒っている人が『私は怒っている』というのは明らかに論理的」

ということらしい。

このことから僕は前稿で次の仮説を立てた。

1 命題そのもの
2 命題を正しく論理演算した推論
のいずれかであれば「論理的」

「嫌だ!」が論理的という話 - プログラマーの脳みそ

先に述べたように僕は「論理的」とは「論理的帰結」であることを表現する言葉だと思っている。でも僕の知らない論理では「論理的帰結」ではなく「命題」そのものも指して「論理・的」と表現するのかもしれない。そう仮説を立ててみた。

ところが、その稿にコメントをくれた人(彼はこの僕の知らない論理を理解しているようだった)と会話をしたところ*6、どうもこの仮説は誤りであるように思えたので僕は仮説を放棄した。謎はより深まった。

この一連のやりとりから

  • 「XXが嫌だ」というのは命題ではないらしい。
  • 公理というものはそもそも真偽を問うことができない(絶対である) *7

私の知っている論理では公理もまた命題だった。命題のうち前提とするものが公理とされる。なので公理は絶対だ。公理が絶対であることは僕の知らない論理でもまた同じようだ。ただ、公理は命題ではないとのことだ。とにかくこの「公理」そのものを指して「論理・的」と表現するのかもしれない

僕の知らない論理では

  • 背景に理由があるものは公理にはならない

というルールがあるらしい。

背景に理由があるものは公理ではないようなので、「理由」を無限に辿ることができてしまう。そのため公理は定めることができない。

この僕の知らない論理の奇妙なルールは非常に不合理であると僕は思う。僕の知ってる論理ではこの点を回避している。先に引用している部分だが再度引用しよう。

広く一般に言われる「数学は何でもかんでも証明する学問である」という考えは間違いである。 AはBから証明でき、BはCから証明でき、CはDから証明でき…と原因をさかのぼっていくとき、どこまでも無限にさかのぼる事はできない。 なぜなら人間は有限時間しか生きる事ができないので、無限に長い証明を全て読む事はできないからである。(有限の立場)。

この為さかのぼるのをどこかであきらめ、幾つかの命題を無批判に認めざるをえない。 この無批判に認める命題が「公理」である。

公理 - Wikipedia

もっとも、僕の知らない論理では公理は命題ではないらしいし、根本的に立脚点が違うのは明らかだ。

この問いに対しては答えてもらえていないが、僕の知らない論理では「XXは嫌だ→廃止する」は妥当な推論とされる。このときの→(ならば)は先程解説した僕の知ってる論理の論理演算の「ならば」とは違う。

嫌いであるからといって必ず廃止するわけではない。嫌いだけど廃止まではしなくてもいいと考える人もいれば、自分が嫌いな物から遠ざかることで解決しようという人もいる。いわば真偽値がいずれかに定まるわけではなく答えは不定である。「XXを嫌い/好き」という命題(?)と「XXを廃止する/しない」の間に論理演算の「ならば(論理包含)」は成り立たない。

どうも、僕の知らない論理では論理演算のルールにも違いがあるように思われる。

相違点のまとめ

僕の知ってる論理

  • 「論理的」とは「論理的帰結」のことをさす
  • 「命題そのもの」や「公理そのもの」は論理的とは言わない
  • 公理は命題 (公理⊂命題)
  • 「有限の立場」により理由を遡るのを防ぐために無批判に認める命題が公理
  • 「XXが嫌い」→「廃止する」は誤った推論。「ならば(論理包含)」が成り立たない。

僕の知らない論理

  • 「論理的」とは「発せられた言葉と言葉の間の関係に矛盾がないこと」
  • 「命題そのもの」や「公理そのもの」を「論理的」と表現するらしい
  • 公理は命題ではない (※集合として含まれないという意味ではないかもしれない)
  • 理由があるものは公理ではなく、公理は無限に遡れるので定めることができない
  • 「XXが嫌い」→「廃止する」は妥当な推論

よく読んでない人むけQ&A

Q.「原発が嫌い」は命題だから論理的じゃないの
A.本文を読むべき。命題そのものを「論理的」とは言わないんじゃないの

Q.「XXが嫌い」→「廃止する」は妥当だろ
A.「→」は論理では「ならば」という論理演算のことで「論理包含」という。このベン図をまず見よう。PであるのにQではない(ベン図の白い部分)が存在する場合、論理包含は成立しない。「XXが嫌い」だけども「廃止する」までしなくてもいいんじゃないの、というケースもあるわけだから「ならば」は成立しない。論理的帰結にはならない。つまり論理的ではない。

*1:

 http://twitter.com/noiehoie/status/108749370647789568 この言葉が発せられた文脈は http://togetter.com/li/181614 で読み取れる

*2:

http://twitter.com/ynabe39/status/108749539950854144

*3:http://d.hatena.ne.jp/Nagise/20110831/1314802345

*4:複数人が同調していることからするとそのように捉える論理学がジャンルとして成立しているのかもしれないが論理学の分野のいずれなのかさっぱり検討がつかない

*5:命題 - Wikipedia

*6:http://togetter.com/li/184210

*7:これは真偽値を採らないという意味ではなく、公理は絶対であるということを言っていると思われる。私は真偽値を採らないということか?と問うたので問いの認識に齟齬がある