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

2章は長くなったので二回に分けて、後半を書くとしよう。前半は日本語の命題を論理式に書き直すことを勉強したが、後半からはいよいよ人工言語を0から作っていく試みになる。
この教科書で作るのは「人工言語L」と呼ぶことなる。Lはもちろんロジックのエルですね。人工言語を作るためには、語彙と文法(つまり意味論と統語論ってことでいいのかな?)を設定する必要がある。語彙と文法は自然言語にもあるからこれは当然だろう。しかし、何であらためて定義するのか?日本語を前回やったように論理式に翻訳するだけじゃだめなのか?

人工言語の必要性

これは確かにまっとうな疑問であり、日常的な会話の論理について考える人にとってはそれで十分だ。論理が通っているとか、論理が分かっているというレベルではたしかに、日本語を論理式に変換して論証の妥当性を求めるだけでも十分だ。私もこの程度には論理を分かっていたが、人工言語なんて厄介なものを持ち出して、論理について追求したことがない。つまり、我々の現実に行っている論証について日本語を論理式に翻訳するだけでOKだ。
しかしながら、ある特定言語の、それも有限個の論証の妥当・非妥当を判断するのが論理学の役目じゃない。論理学の目標はもっと崇高であるのだ!つまり、それは普遍的な研究じゃなきゃだめで、よって原理的に可能な論証全てを対象とする。つまり無限の論証を相手にしているのである。まさに「敵は無量大数!」(でも無限と無量大数はぜんぜん別物ですよ)。しかもそれを気合で乗り切るのではなく、一歩一歩積み重ねて突破しなければならばい(笑)。
要するに論理学は「任意の論証が与えられたときにそれが妥当であるかどうかを判定する手続き」を見い出す必要が課せられている。この論理学の目標は数学に似ている。現代の数学も無限の対象、任意の対象を扱えなければならない。つまり、論理学は原理的に可能な推論・論理式の全体という抽象的な対象を扱う
さてその崇高かつ途方も無い目的を果たすためには、まずその抽象的全体像を掴む必要がある。そのための条件として以下の二点を満たす必要がある。

  1. 基準は曖昧であってはならない
  2. すべての論理式について様々な事実を証明することを可能にしてくれるようなものであることが望ましい

1は例えば、ある式が論理式か否かを完全に白黒つけられなければならない。それこそPの前に¬が無量大数あったとき、それは論理式と言ってよいかなどを完全に明らかにする必要がある。2は論理式は原理上無限に作れるわけだが、その無限個の中の組み合わせにある様々な事実(要するに定理みたいなもんだろうか?)を明らかにするように、人工言語Lを設定する必要がある。

人工言語

さていよいよ人工言語Lの定義に入る。まず先ほど言ったとおり、語彙と文法を設定しよう。

《Lの語彙》Lで用いられる語彙は、3つのグループに分かれる。

  1. 原子式 P,Q,R,…
  2. 結合子 →,∨,∧,¬
  3. 補助記号 (,)

定義

《Lの文法,すなわち論理式の定義》

  1. 原子式,すなわちP,Q,R,…は論理式である。
  2. A,Bを論理式とすると,(A∧B),(A∨B),(A→B),(¬A)はおのおの論理式である。
  3. 1、2によって論理式とされるもののみが論理式である。

ちなみP1とかの下付きの記号は表記がメンドイからはぶいた。たぶん問題ないと思う…。
ちょっと考えれば分かるとおり、この定義は無限の論理式を作ることが可能だ。Aの中にはどんな論理式も入るため、P∨QをAとすれば、それに¬や∧を加える形でさらに長い論理式を作ることが可能だ。要するに言語学で言うところの再帰性ってのがあるということだと思う。
このような繰り返し使って無限に増やせる定義を帰納的定義inductive definitionとか回帰的定義recursive definitionと呼ぶ。
ところで(¬((P∨Q)→R))のような論理式があったとして、これをどのように読めばいいのだろうか?要するに日本語的にはどう考えればいいのってこと。「でない、PまたはQならばR」などといってもなにやなんだら分からない。
そのためには括弧をどう扱うかを考える必要があり、形成の木formation treeと呼ばれるものを書いてみると良い。図を描くのはメンドイ。言語学を知っている人ならば、文法構造を明らかにするときのツリーにほぼ相当するものだと考えてよいだろう。まあ要するに、どんな論理式がでてきても、それが論理式かどうかを理解でき、それを読む必要がある。これは単にちょっと訓練すれば誰でもできる。
さてここでちょっと引っかかるのは定義にでてきたAやBである。これらは語彙に含まれてない以上、何なのかよく分からない。端的にいって、AはBは変数記号variableであり、Lの語彙ではない。メタ論理的定項meta-logical variableとか図式文字schematic letterとか呼ばれるものである。でも細かいところは置いて次に行こう。

帰納法による証明

このLの帰納的定義を眺めて数学に似ていると思った人はカンが良い。実は帰納的定義とは数列の漸化式にあたるものである。高校数学で習うレベルなどで特に書かないが、要するに1、1、2、3、5…のような数列を定義するとき、その一般項から定義するのではなく、基礎となる最初の数と、各項の間の関係によって定義するやり方である。ちなみにこれはフィボナッチ数列http://ja.wikipedia.org/wiki/%E3%83%95%E3%82%A3%E3%83%9C%E3%83%8A%E3%83%83%E3%83%81%E6%95%B0%E5%88%97)。これなどは漸化式だと理解しやすいが、一般項はかなり複雑だ。
このように漸化式、つまり帰納的な定義は直感的に理解しやすいという利点も持つ。さらに、ここで重要なのは、帰納的に定義された対象には、独特な証明方法が常に可能なのだ。受験勉強では等差数列とか等比数列とか数列の種類によって一般項を求める訓練をさせられるが、数学の漸化式は必ずしも一般項を求めて考える必要はない。数学的帰納法によって証明できる。
数学的帰納法も同じく高校教育でちゃんと教えられているはずだ。でもどうも数列などに関して帰納法の解放は嫌われがちである。まあともかく、ここで数学的帰納法を詳述する必要はないと思うが、機能的に定義された人工言語Lにも同じ証明法が使えるのである。
ここで例としてある定理の証明が紹介されている。

《定理1》すべての論理式は同じ個数の右カッコ「)」と左カッコ「(」を持つ。

なんだか馬鹿げた定理だが、定理は定理だ。これを帰納法で証明すると以下のようになる。練習のために引用ではなく自分で再構成してみよう。

《定理1の証明》
[Basis]原子式はカッコをもたないから、左カッコの数も右のカッコの数も同数である。(数0ってことね。)
[Induction step]A、Bを論理式とする。

  1. A、Bが左右に同数のカッコを持っていると仮定する。そうするとこれらの論理式から作られる論理式は(¬A)、(A∨B)、(A∧B)、(A→B)である。
  2. (¬A)の左右のカッコの数は、Aの左右同数のカッコに、等しく1を加えているので、同数である。
  3. (A∨B)の左右のカッコの数は、Aの左カッコの数+Bの左カッコの数+1とAの右カッコの数+Bの右カッコの数+1である。そしてA、Bが左右に同数のカッコを持っている仮定により、(A∨B)はやはり左右に同数のカッコを持っている。
  4. (A∧B)、(A→B)についても同様。
  5. 以上により、定理1は証明された。

QED

ちょっと端折ったところがあると思われるが、多分、証明としては問題がないと思う。これがなんで証明になっているか分からない人は、高校で数学的帰納法について勉強しなおしたほうがよいだろう。
このような帰納的に定義されたLの証明を、式の長さ(または結合子の数)についての帰納法による証明と言うらしい。そしてこのような帰納的な証明が可能であるのは、Lの定義3「1、2によって論理式とされるもののみが論理式である」によって、1、2の規則から作られるものによって、すべての論理式が尽くされており、それ以外の論理式はないと言っているからである。この制限がなければ、「))P(→(」のようなものも論理式になる可能性があり、それは定理1に当てはまってしまうが、帰納法では証明することはできなくなってしまうのだ(正直、ここの部分の意味は自分的にはピンとこない。帰納法的な定義においてその定義が閉じたものにしなければ、定義域からはずれた例は数学的帰納法において証明不可能ってことなのか…)。
さて、この結合子の数についての帰納法による証明によって、この後いろんな定理の証明をしていくわけなんだけど、細かい証明はめんどくさいし、書いてても面白くないので書かない。論理学とか英米の哲学は、例文とかで説明するのなら、面白い例文で楽しめるんだけど、形式な証明は面白くしようがない…。というか論理学とか分析哲学とか言語哲学の面白さの半分は例文で出来ていると思う。

unique readability theorem

ともかく次にさっきの定理1よりももうちょっとありがたい定理を証明することになる。それはunique readability theoremと呼ばれるもので、定義された論理式がそれぞれただ一通りにしか読めないことを保証してくれるものだ。だがいきなりそれを証明することはできないので、足がかりとなる二つの定理を証明することになる。

《定理2》いかなる論理式Aについても次のことが成り立つ。Aのどの始切片も右カッコより多数の左カッコを含んでいる。

《定理3》論理式の始切片は論理式ではない。

いきなり「始切片」などという新しい概念が出てきて何のことか分からないが、始切片initial segmentとは1つの論理式Aの左端から途中までの記号を残し、右側にある記号をすべて切り捨てて作られる記号列である。ただし記号は最低1つは捨てるものとする。つまり、A自身はAの始切片ではない。具体的には(¬((P∨Q)→R))の始切片とは、右側の)、)、R…という記号を切り捨てた余りの部分である。そう考えると定理2はなんとなく理解できるし、定理3もなんとなくそうだなーって思う。ちゃんとした証明があるのだが、とてもめんどくさくて書きたくないとりあえず飛ばす。(定理2は帰納法で証明。定理3は定理1と定理2より導かれる。)
さて問題はunique readability theoremを証明することだ。しかし、そもそもどういう風に言えばこのunique readability theorem証明したことになるのかが分からない。これは定理の逆を考えて、まず「一通りに読めない(つまり多数の読み方がある)記号列」を考えて、その構造を取り出す。そしてそのような記号列が、Lの定義から外れることを示せばよいということになる。具体的には「(P∨Q→¬P)」のような記号列は読み方が複数ある(つまりどこにカッコを入れるかによって変わる)。ただし左右のカッコは同じだから定理1は当てはまる。
この証明は部分論理式を結合子で結合する場合分けすることによって達成するものだけど、なかなかテクニカルで説明するのが難しい。証明方法としては定理3を使いつつ、背理法によって解くのだが、まあいいや。なんにしろこのunique readability theoremによって与えられた論理式は、必ず一意に読めるため、日本語のような自然言語(つまり解釈の多様性がある)とは違うことが良く分かる。「ねえちゃんとふろはいっている?」のようなことがないのである(笑)

カッコの省略といくつかの用語

さて人工言語Lはなかなかうまく出来ているが、もうちょっと書き方を簡素にできないかと考えると、どうもカッコの量を減らすことができるようだ。そのためにカッコを省略する取り決めをする。

《取り決め》

  1. 一番外側、つまり定義に従ってつくったとき、最後につけるべきカッコは省略してよい。
  2. (¬A)のようなのは¬Aとしてよい。

なんとなく直感的に分かると思うけど、でもこれって証明とかせずに言っていいのかなと思う。だいたい省略って概念はなんだ!戸田山先生は何にも書いてないけど、またあとで出てくるのかな?
まあいい。あとこの教科書で使われる様々な用語が導入される。端折って書いておく。

《定義》

  1. 部分論理式subformula:論理式Aの中にある部分の論理式
  2. 主結合子main connective:形成の木の最後に出てくる結合子(自然言語でいう主動詞みたいなもんだよね、多分)
  3. 主部分論理式main subformula:主結合子で結び付けられる部分論理式(これまた主部、述部みたいなもんだと思う)
  4. 選言肢disjunct:A∨Bの部分論理式A、Bのこと
  5. 連言肢conjunct:A∧Bの部分論理式A、Bのこと
  6. 前件antecedentと後件consequent:A→Bの部分論理式AとB
  7. リテラルliteral:原子式と一つだけ¬をつけてつくらえる論理式、つまりP、¬P、Q、¬Qとか。
  8. リテラルpositive literalと負リテラルnegative literal:¬のついてない方と付いている方

何のために使う用語か、まだ分からないけど、とりあえず覚えとおく。
このあと日本語の論証をLに書き換える練習問題があるがとりあえず飛ばしておく。

シンタクスとセマンティクス

こうしてLと戯れてきたわけだけど、ほとんど記号的な操作だけど、良く考えると∧が日本語でいう「かつ」であるとは一言も言っていない。つまりここまでやってきたことは、Lの語彙と文法定めて、そこから引き出される規則(定理)を調べてきただけだ。つまり、記号の意味を無視して、言語を純粋に図形の連なりとして捉える立場であり、これをシンタクスsyntax(統語論、構文論)という。それに対して「P∧Q」が日本語で言うところの「PかつQである」を意味するという立場をセマンティクスsemantics(意味論)と呼ぶ。この区別は言語哲学や様々なところで非常に重要な分類なので、英米哲学を勉強したい人は常に頭に入れること。とはいっても、言語哲学ではほとんど話題が意味論に集中する。統語論を勉強したい人はチョムスキーに関する入門書をちょっとでもかじっておくべきだ。
ちなみに最初に人工言語の語彙と文法を、私は意味論と統語論と捉えていいのかなって言ったが、これは間違い。文法は統語論と考えてよいが、語彙だけでは意味論ではない。そしてLの意味論は次の章で扱う。
はー、つかれた。予想以上に詳述してしまうのだが、俺のメモ以外に役立っているといいが。それなりにネタをはさんで書いているつもりなんだけど、内容と形式が不一致しているから誰も突っ込んでくれないよねー。