『論理学をつくる』戸田山和久-第3章読書メモ3

しばし更新が滞ったけど、ここらへんからかなり抽象度が高くなって、付いていくのやっとである。証明問題は理解するのがやっと。とけねえよ!まあ、とりあえず自分が理解した限りにおいてメモしていこう。ところで論理学の記号出すにはATOKよりもIMEの方がいいよね。やっぱATOKは日本語に特化したソフトなんかな。

真理表と関数、集合論

さて人工言語Lをもてあそび、トートロジーや論理的同値性、真理値分析ってのを理解してきた。ここからは更にこれを一般化した話になるので抽象度が高い。そして論理学が数学にかなり接近してくる。
とりあえず真理表の操作や真理値分析ができたけど、どのような論理式についても真理表で真理値分析できるのはなぜ、とか、結合子の意味が何で真理表なのかといったことは、もっと厳密に追求されるべきだ。詳述するとややこしいけど、要するに真理表を書くとは、原子式(PとかQ)への真理値の割り当て(例えばPに0、Qに1)を複合的な論理式(P→Qは0とかP∧Qは0とか)への真理割り当てへと拡張することである。LではA,Bという図式文字を使って、結合子の意味を割り当てたから、繰り返し論理式に結合子で結びつけることができ、拡張される。まとめると

  1. 真理値分析とは、原子式への真理値割り当てを元にして、それを拡張して複合的論理式への真理値割り当てを作り出す作業である。
  2. なぞそのような拡張ができるかというと、結合子の意味の定義を、どのような論理式にも何度でも適用できるような形で与えておいたからである。

以上のことを、より一般化して書くと

《定義》
Lの原子式からなる或る集合Fとする。Fに対する真理値割り当て(truth assignment)Vを次のような関数とする。
V:F→{1,0}

いきなりわけの分からん話だが、まあもちつけ。ここらへんのことを理解するには巻末付録についている数学のまとめを参照する必要があるが、ここでは割愛。数学の関数についてはhttp://ja.wikipedia.org/wiki/%E9%96%A2%E6%95%B0_%28%E6%95%B0%E5%AD%A6%29でも参照してくれ。でも関数ってのは別に数学に限ったものではない。昔、私は関数とは自動販売機のようなものだと教わった。つまり、あるインプットをしたらあるアウトプットが返ってくるものだ。まあ簡単に定義は以下にまとめる。

《関数の定義》
集合AとBがあり、Aの各要素にBの各要素を割り当てる対応づけfで、次の条件を満たすものがあるとき、fを集合AからBへの関数functionとか写像mappingと言う。

  1. fはAに含まれるどの要素にもBの何らかの要素を割り当てる。
  2. fはAのどの要素にも、それぞれただ1つずつのBの要素を割り当てる。

《各用語の定義》

  1. AからBへの関数fがAの要素aに割り当てるBの要素をf(a)と書き、関数fによるaの像imageと言う。
  2. またfが集合AからBへの関数であることを、f:A→Bと書く。集合Aをfの定義域domain、Bをfの値域rangeと言う。
  3. また、次の集合をAからBへの関数fによるAの像と言い、f(A)と書く。

f(A)={b|f(a)=bとなるa∈A}
つまりBの要素のうち、Aの何らかの要素のfによる像になっているものだけをすべて集めて作った集合がf(A)である。もちろんf(A)⊆Bが成り立つ。

全単射とか双射とかはまあ置いといて、何が関数であって、何が関数でないかだけはしっかり分かっておこう。戸田山先生の本では、「人とその母親との対応付け」と「人とその子供の対応付け」という例において、前者が関数であって、後者が関数でないと述べられている。先ほどの定義からなぜそうなるかを考えてみよう。


さて話は関数の方に脱線したけど先ほどの真理値割り当ての定義に戻ろう。これはVはFに含まれる原子式のすべてに対して、それぞれ1か0を割り当てることである。F={P,Q,R}とすると、Vは何種類かあり、審理表の1行1行がそれに対応する。こういうVを付置関数valuation functionと呼ぶ。
以上から真理値分析とは何かを一般化して述べると次のようになる。

Fに含まれる原子式からスタートして帰納的に定義される論理式のすべてからなる集合をF'とする。我々の目標は、Fへの真理値割り当てVを拡張して、このこのF’に含まれる各論理式に1か0を割り当てる拡大版の真理値割り当てV':F'→{1,0}をつくることである。

要するに真理表を使った真理値分析でやっていたことは、原子式への真理値割り当てVを、その結合子の意味論に従って計算したわけであるが、その全体を一般化すると上のような記述になるんだと思う。ってか自分で書いていてもなんだかわかんなくなってきますね。それでこのF'に対する拡張版真理値割り当てV'の満たすべき条件として、結合氏の意味を集合論的に記述するんだけど、めんどくさいから割愛。
重要なことは、この論理式の真理値割り当ての拡大が論理式の帰納的定義と並行しているために、関数的につじつまがあうといことだ。つまり、「真理値の割り当ても、まず原子式に割り当て(Vによる)、そこから次第に複雑な論理式が形成されて行くのに従って、規則正しくそれらの複合的論理式にも真理値が割り振られていく、という条件を満たすように論理式全体に対する真理値割り当てV'を構成した」ということになる。さらに、条件(結合子の関数的な意味)を満たすようにVを拡張してV'をつkったら、V'はすべての論理式にかならず1か0のいづれかの真理値を割り当てる、真理値割り当ての一意性というものがある。これは帰納法で証明するけど割愛。
一意性が確かめられたたら、Vから派生するV’は一通りに決まるということだから、VとV’を区別せず以下のように定義する。

原子式への真理値割り当てVが論理式Aを充足する⇔V’(A)=1

このへん戸田山先生も飛ばしていいとおっしゃっていますから、まあ深く考えることないでしょう。というか、わかんないです。関数と集合論の知識が無ければ、話が抽象的すぎて・・・。

矛盾

前節で述べられたことは、要するに論理式の集まりに対して、我々は好き勝手に真理値を割り当てることは出来なくて、結合子の意味によって構成しなければいけない。例えば、¬Pと¬¬Pを同時に真(1)とするような真理値割り当ては存在しない。では、P、P→Q、¬Q∨R、R→¬Rみたいな4つの式を同時に真とするような、原子式(P,Q,R)真理値割り当ては存在するのか。真理表を書いてみれば分かるとおり、この場合、すべてを真とするような真理値割り当ては存在しない。このとき、これらの式は、互いに矛盾しているinconsistentと言う(注意!以前出てきた矛盾式と、この論理式の集合における矛盾を混同しないこと。前者はP∧¬Pのような論理式自体の矛盾であり、後者はP、¬Pという論理式の集合に関する矛盾である)。
以上のように矛盾とは矛盾は論理式の集合に言われることである。集合の記述には、Γ、Δ、Θのようなギリシア文字を使う。一般に、論理式の集合の矛盾は次のように定義される。

論理式Γが矛盾している⇔Γに含まれるすべての論理式を同時に真にするような真理値割り当てが存在しない。

逆にΓが矛盾していない、つまりΓに含まれるすべての論理式を同時に真にするような真理値割り当てVが1つでもあるとき、VはΓを充足する、充足可能satisfiableあるいは整合的consistentであると言う。日常的には矛盾とは、語源の由来にある通り、「わが盾の堅きこと、よくとほすものなきなり。」と「わが矛の利なること、物においてとほさざることなきなり。」という二つの文章について論理的におかしいことを言うが、論理学においては2つ以上の命題の集合に適用される。このように論理式を集合として捉えると、無限な論理式を扱える。
ここらへんでも、巻末付録の集合のところを少し抑えたほうがいいように思われるけど、めんどいので割愛。http://ja.wikipedia.org/wiki/%E9%9B%86%E5%90%88などを参照。


次にこれまでの応用で「騎士と悪党」Knight and Knaveという有名な論理パズルの解き方が説明される。騎士は必ず真実を言い、悪党は必ず嘘を付くという条件のもと、人物の発言を手がかりに、騎士か悪党かを見抜くパズルだ。まあこの辺は論理学の応用として、ゲームとしても面白いけどそんなに重要じゃないから、詳述しない。ちなみにhttp://www.hku.hk/cgi-bin/philodep/knight/puzzleという面白いサイトを発見した。これはこの「騎士と悪党」パズルを382題から適当に出してくれるサイトである。数が大きくなるほど難しい。ちょっと練習のために、一問解いて見よう。出題番号は俺の年齢で。

A very special island is inhabited only by knights and knaves. Knights always tell the truth, and knaves always lie. You meet two inhabitants: Bozo and Marge. Bozo tells you, `Marge and I are different.' Marge says that only a knave would say that Bozo is a knave.

「Bozoが騎士である」をB、「Margeが騎士である」をMとする。(この場合当然、騎士ではない=悪党である)
Bozoの発言「Marge and I are different」は¬(B←→M)と表記できる。
Margeの発言「only a knave would say that Bozo is a knave」は直接論理式に表すのはちょっと分からないので、文意から判断しよう。「悪党だけが、Bozoが悪党であるというだろう」であり、悪党は嘘しか付かないので、これは実質「Bozoが悪党ではない、つまり騎士である」と言っているのに等しい。つまりBと表記できる。
さらに発言者の騎士/悪党と発言内容の真/偽からB←→¬(B←→M)とM←→Bが成り立つ。
以上を真理表として書く。

B M ¬(B←→M) B←→¬(B←→M) M←→B
1 1 0 0 1
1 0 1 1 0
0 1 1 0 0
0 0 0 1 1

以上の表からB、Mの発言が成り立つのはBが0、Mが0のときのみ。よって BozoもMargeも悪党である。
これはかなり形式的に解いたけど、この程度のレベルならちょっと勘がいい人はすぐに解るだろう。しかしながら、真理表を書くとどんな問題でも解けるから、形式的なやり方を練習するとよい。

論証の正しさの定義

さて真理値分析や矛盾というものを関数や集合的に捉えてきたが、ここで論証の正しさもそのように捉えることにする。まず論証が正しくない場合ってのは、いわゆる反例がある場合であるということからはじめる。では反例とは何か?

《定義》
論証の前提がすべて真になるが、結論は偽になるような場合をその論証の反例counterexampleと呼ぶ。

これは直観的にも分かる気がするが、戸田山先生は「a=1ならばa×a=1、a×a=1、従ってa=1」という推論に対するa=-1という反例によって説明している。a=-1のとき、最初の条件方(a=1ならばa×a=1)は前件が偽だから命題としては真、次のa×a=1も真であるが、a=1ではない。反例を上げるとその推論が妥当ではないことになるといことは、妥当な論証とは反例の存在しないような論証である。
真理表を書くと分かりやすいが、要するに妥当な論証とは、前提のところに1が横に並んでいながら、結論が0であることが無いような推論である。より一般的に言うと

前提A1,…,Anから結論Cを導く論証が妥当である⇔A1,…,An,Cを構成している原子式への真理割り当てのうち、A1,…,Anを同時に1とし、Cを0とするようなもの(すなわち反例)が存在しない。

具体的に問題を解いてみると分かりやすいので、戸田山先生のウィットが聞いた練習問題14の2を取り上げよう。

冷蔵庫を開けたら楽しみにしていたビールが消えていた。
「こんなことするのは兄貴かパパだわ。でも、もし兄貴が飲んじゃったんだったら必ずエダマメをおつまみにするはずだし、パパが飲んだのならマメは嫌いだからエダマメは残っているハズ。キャッ!エダマメもなくなっている。ということは兄貴が犯人ね!」

なんだか「それ町」の歩鳥のような推理でなんだかニヤニヤしてしまうけど(っていうか「キャっ」て戸田山先生もカワイイこと考えるなw)、これも論証の一つであるのは確か。まず論理式に直すことからはじめる。
「こんなことするのは兄貴」をA、「こんなことするのはパパ」をP、「エダマメが残っている」Eとすると、

前提
A∨P
A→¬E
P→E
¬E
結論

「でも」とかの接続詞に騙されないように注意すれば、こんなのお茶の子さいさいである。次にこれらを真理表に書く。

A P E A∨P A→¬E P→E ¬E A
1 1 1 1 0 1 0 1
1 1 0 1 1 0 1 1
1 0 1 1 0 1 0 1
1 0 0 1 1 1 1 1
0 1 1 1 1 1 0 0
0 1 0 1 1 0 1 0
0 0 1 0 1 1 0 0
0 0 0 0 1 1 1 0

この表で前提のA∨P、A→¬E、P→E、¬Eがすべて1になっている4行目に注目しよう。4行目の結論Aの真理値割り当ては0である。ほかに前提がすべて1になっている場合はない。よってこの論証は妥当なものである。
練習問題14には古代から知られている妥当な推論にも触れられる。妥当性の証明はしないが、一応書いておく。

  • 肯定式modus ponens:A→B、A。したがって、B
  • 選言的三段論法disujunctive syllogism:A∨B、¬A。したがって、B
  • 否定律modus tollens:A→B、¬B、したがって、¬A
  • 推移律transitive law:A→B、B→C。したがって、A→C

さらに、我々が良くやる論法に構成的両刀論法constructive dilemmaってのがある。これはA→C、B→C、A∨B。よってCという妥当な論証であり、一般的にはジレンマと呼んでいる自体である。要するに、ああしてもダメだ、こうしてもダメだ、ああするか、こうするかどちらかだ。ってことはダメなんだなっていう論法(笑)。実はこの構成的両刀論法は数学の問題なんかを解くときに良く使われる。それは、場合分けによる証明proof by caseってやつである。忘れた人は高校の数学の教科書を引っ張り出すこと。

めんどくさくなったので続きはまたこんど。