ここで皆さんが学ぶのは、論理学の最も初歩的な内容です。何故、情報処理という授業で、論理学の基礎について勉強する必要があるのか、疑問に思う方もいるかもしれません。しかし、ここでの主眼は、単にコンピュータの使い方を習得することにあるのではなく、コンピュータやネットワークなどの仕組みを理解することによって、コンピュータには何ができ、何ができないかということを理解することにあります。これは、コンピュータを用いて創造的な仕事、研究を行うための基本的素養を養うことに他なりません。
これから学ぶ真理関数と呼ばれるものは、1か0(命題の真偽)を入力して、1か0を出力する関数です。コンピュータにとって全ての情報が1と0(つまり、電源のONとOFF)の組み合わせであることを考えれば、両者の関係が少しづつ見えてくると思います。コンピュータは1と0であらわされる全ての情報を、論理的に処理する機械です。つまり、論理学を学ぶことは、「コンピュータの考え方」を学ぶことでもあるのです。実際に、人工知能などの分野では、論理学を用いて研究が進められています。また、皆さんがプログラミングを行う際にも、論理的な思考(=コンピュータの思考)が求められます。
現代論理学はごく最近になって急発展した分野であるにも関わらず、その影響はコンピュータを含む情報処理分野だけでなく、他の様々な学問分野に浸透しています。何より、論理学はそれ自身、非常に面白い学問です。今回は、論理学の中でも命題論理という分野のごく初歩について扱いますが、これを機会に論理学について勉強してみることをお勧めします。
命題論理の「命題」とは、簡単に言えば記述文のことです。
ここでいう記述文とは、その真偽が問題となりうるような文のことで、命令文や疑問文は含まれません。例えば、次のような文が命題です。
「犬は四つ足である」、「昨日学校は休講だった」、「鯨は哺乳類である」、などなど
では、次のような2つの推論を行ったとします。
今日1sの授業があるならば、今日は月曜日である
今日は月曜日ではない
(ゆえに)今日1sの授業がない
小田急線がストでとまったならば、学校は休講である
学校は休講ではない
(ゆえに)小田急線はストライキを起こしていない
この2つの推論を比べてみた時、気づくことがあります。この2つの推論にはそれぞれ、「今日1sの授業がある」「今日は月曜日である」、「小田急線がストでとまる」「学校は休講である」という命題が存在します。そして、よく見てみると命題以外の部分、すなわち「ならば」、「ではない」という部分は共通しているということに気づくはずです。そこで、これら2つの推論を次のように記述してみます。
PならばQ
Qではない
(ゆえに)Pではない
これは、推論1と推論2の置き換え可能な部分=命題を記号化して表したものです。実は、後でみるようにこれら2つの推論の中で、PやQの記号によって表した部分は推論自体には関係していません。推論自体に関わっている言葉は「ならば」や「ではない」という言葉だけであって、PやQにどのような命題が入ろうとも、「ならば」や「ではない」という言葉の意味のみによって、この推論の正誤は決定されます(ちなみに、この推論は正しい推論です。どのような命題をP,Qに代入しようとも、推論に矛盾はありません)。
「ならば」や「ではない」という接続詞及び否定詞は、このように推論の骨組みを形作るものです。上のように、推論に本質的に関わっている言葉だけを残して推論の骨組みを取り出すことを、推論の形式化と呼びます。そして、命題論理とは、命題と命題を結合する「接続詞」(ならば、または、など)と命題自身を否定する「否定詞」を扱う論理学なのです。
命題論理とは、接続詞と否定詞を扱う、と述べました。接続詞及び否定詞は、関数として捉えることができます。例えば、次のような命題を考えてみます。
太郎は独身である
この命題を否定すると、「太郎は独身ではない」となります。「太郎は独身である」という命題と、その否定である「太郎は独身ではない」という命題の間には、どのような真偽関係が成立しているのでしょうか。ここで、次のような表を作ってみます。
太郎は独身である | 太郎は独身ではない |
真 | 偽 |
偽 | 真 |
当たり前と言えば当たり前ですが、ここで「ではない」という否定詞を含んだ「太郎は独身ではない」という命題は、「太郎は独身である」という命題の関数となっていることに注目して下さい。次に、以下の命題を考えてみます。
太郎は部屋にいる、かつ、次郎も部屋にいる
(上の例やこの例のように、接続詞や否定詞を含む命題を分子命題と呼びます。また、「太郎は部屋にいる」などのように接続詞や否定詞を含まない命題を原子命題と呼びます)
上の命題は、「太郎は部屋にいる」「次郎は部屋にいる」という2つの原子命題を「かつ」という接続詞によって結合した分子命題です。ここで、同じように2つの原子命題とそれらを接続詞によって結合した分子命題との間の真偽関係について表を作って考えてみましょう。
太郎は部屋にいる | 次郎は部屋にいる | 太郎は部屋にいる、かつ、次郎は部屋にいる |
真 | 真 | 真 |
真 | 偽 | 偽 |
偽 | 真 | 偽 |
偽 | 偽 | 偽 |
「太郎は部屋にいる、かつ、次郎も部屋にいる」という命題が真であるのは、「太郎は部屋にいる」「次郎は部屋にいる」という2つの原子命題が共に真である場合に限られます。太郎と次郎のどちらか一方でも部屋にいない場合、分子命題は偽ということになります。これも当たり前の話で、次郎が部屋にいないのに、「太郎は部屋にいる、かつ、次郎も部屋にいる」などという世界が成立することは不可能です。ここでも、「かつ」という接続詞を含んだ分子命題は、原子命題の関数となっていることがわかります。分かりやすく、「太郎は部屋にいる」をP,「次郎は部屋にいる」をQとし、真偽をそれぞれ1と0で表すことにします。そうすると、上の表は次のように表すことができます。
P | Q | PかつQ |
1 | 1 | 1 |
1 | 0 | 0 |
0 | 1 | 0 |
0 | 0 | 0 |
これは、分子命題の真偽はそれを構成する原子命題の真偽に応じて一通りに決まっていることをより直截的に表しています。すなわち、分子命題の真偽は原子命題の真偽の関数になっているということに他なりません。そこで、これを真偽に対する関数ということで、「真理関数」と呼ぶことにします。また、このような表を「真理表」と呼びます。ここでは、基本とされる真理関数をその真理表とともに5つ紹介します。なお、授業では+、×といった記号を使用しましたが、ここでは他の授業などとの互換性を考えて、以下のような記号を使用します。
「Pではない」という否定を表す。
P | ¬P |
0 | 1 |
1 | 0 |
「PかつQ」という連言を表す。
P | Q | P∧Q |
1 | 1 | 1 |
1 | 0 | 0 |
0 | 1 | 0 |
0 | 0 | 0 |
「PまたはQ」という選言を表す。ただし、これは両立的選言と呼ばれ、P、Qともに真の場合でも、真となるので注意。
P | Q | P∨Q |
1 | 1 | 1 |
1 | 0 | 1 |
0 | 1 | 1 |
0 | 0 | 0 |
「PならばQ」という条件方を表す。P⊃Qは、Pという条件が満たされているのにQという帰結が満たされていない場合、つまりPが真でありながらQが偽の場合に、偽となる。それ以外の場合は全て真とされる。
P | Q | P⊃Q |
1 | 1 | 1 |
1 | 0 | 0 |
0 | 1 | 1 |
0 | 0 | 1 |
P⊃QとQ⊃Pが両方成り立つ時、「PはQと同値である」と言われる。それゆえに、P≡Qは(P⊃Q)∧(Q⊃P)に等しい。
P | Q | P≡Q |
1 | 1 | 1 |
1 | 0 | 0 |
0 | 1 | 0 |
0 | 0 | 1 |
P,Qなど命題を表す記号(命題記号)と否定詞や接続詞を表す記号(論理記号)によって、表される式を論理式と呼びます。例えば次のような命題を論理式で表すとどのようになるでしょうか。
「小田急線がストでとまるか、または東海道線がストでとまるならば、学校は休講になる」
まず、原子命題を取り出します。
「小田急線がストでとまる」……P 「東海道線がストでとまる」……Q
「学校は休講になる」……R
すると、与えられた命題はとりあえず次のように書くことができます。
(PまたはQ)ならばR
小田急線と東海道線が共にストでとまることも考えられるので、この「または」は両立的選言です。そこで、次のような論理式として記述することができます。
(P∨Q)⊃R
このような論理式について、この論理式がいかなる真理関数になっているかを調べるにはどのようにすればよいでしょうか。基本的な原則として、全ての命題は1か0(この値を真理値という)の必ずどちらかをとる(つまり、命題は真が偽のどちらかである)という二値原理に則っていることを前提とします。簡単な例として、¬P∨Qという論理式について考えてみましょう。仮に、P、Qともに真である場合、¬P∨Qは次のように分析されます。
P | Q | ¬P | ¬P∨Q |
1 | 1 | 0 | 1 |
¬PはPの否定なので、Pが真、つまり1の時、偽、つまり0の値をとります。次に、¬PとQの選言について見てみると、¬Pは0ですがQは1なので、¬P∨Qの真理値は1ということになります。このようにして、順次PとQの真理値の組み合わせについて当該の論理式の真偽を全て調べれば、その論理式がどのような真理関数であるかを明らかにすることができます。このような作業を与えられた論理式に対する「真理知分析」と呼びます。¬P∨Qを真理値分析すると次のようになります。
P | Q | ¬P | ¬P∨Q |
1 | 1 | 0 | 1 |
1 | 0 | 0 | 0 |
0 | 1 | 1 | 1 |
0 | 0 | 1 | 1 |
例題 真理値分析によって次が同じ真理関数であることを確かめよ
(1)¬(P∨Q)と¬P∧¬Q (2)¬(P∧Q)と¬P∨¬Q
ともに、有名なド・モルガンの法則と呼ばれるものです。真理値分析は次のようになります。
(1)
P | Q | P∨Q | ¬(P∨Q) |
1 | 1 | 1 | 0 |
1 | 0 | 1 | 0 |
0 | 1 | 1 | 0 |
0 | 0 | 0 | 1 |
P | Q | ¬P | ¬Q | ¬P∧¬Q |
1 | 1 | 0 | 0 | 0 |
1 | 0 | 0 | 1 | 0 |
0 | 1 | 1 | 0 | 0 |
0 | 0 | 1 | 1 | 1 |
よって、¬(P∨Q)と¬P∧¬Qは同じ真理関数であると言えます。
(2)は各自で真理値表を作成してみて下さい。
授業の内容はここまでですが、最後にトートロジーについて説明します。トートロジーとは、原子式にどのような値を入れても常に結果が1となるような関数のことを言います(反対に、常に結果が0となるような式を、矛盾式と呼びます)。例えば、P∨¬Pという式を真理値分析してみると、次のようになります。
P | ¬P | P∨¬P |
1 | 0 | 1 |
0 | 1 | 1 |
仮に、Pを「マオは犬である」という命題であるとします。すると、P∨¬Pは「マオは犬であるか、犬でないかのどちらかである」という命題になります。このような命題はトートロジーですが、トートロジーは命題論理において「論理的真理」とされています。しかし、ここで真理であるというのはトートロジーが世界の絶対的な真理について述べているからではなく、逆に、世界の在り方について何も言及していないからに他なりません。
さて、2−1で例にあげた推論をもう一度思い返してみましょう。次のような推論でした。
PならばQ
Qではない
(ゆえに)Pではない
推論の正しさは、その推論を表す論理式がトートロジーか否かによって調べることができます。この推論を論理式で表すと、
((P⊃Q)∧¬Q)⊃¬P
となります。これを真理値分析すると次のようになります。
P | Q | P⊃Q | ¬Q | (P⊃Q)∧¬Q | ¬P | ((P⊃Q)∧¬Q)⊃¬P |
1 | 1 | 1 | 0 | 0 | 0 | 1 |
1 | 0 | 0 | 1 | 0 | 0 | 1 |
0 | 1 | 1 | 0 | 0 | 1 | 1 |
0 | 0 | 1 | 1 | 1 | 1 | 1 |
よって、この推論はP,Qの真偽に関わらず結果として1を出力するトートロジーであり、この推論は正しいと言えます。
問題 ド・モルガンの法則¬(P∨Q)≡¬P∧¬Q 、¬(P∧Q)≡¬P∨¬Qがトートロジーであることを調べなさい