✖

論理式の真偽

いくつかの原子命題を組み合わせて論理式を作ったとき、その論理式全体が真か偽かを判定してみましょう。

命題の真偽

まず、命題の真理値とは何かをはっきりさせておきます。命題 p があれば、それが真か偽かを判定できるはずです。真の命題の真理値を 1、偽の命題の真理値を 0 とします。

真理値の割り当てとは規則 e のことで、それぞれの命題に 0 か 1 のどちらかを対応させます。e(p) は、命題 p の真理値を表します。p が「2かける2は4である」という命題なら、これは真の命題なので e(p) = 1 です。q が「富士山は海の中にある」という命題なら、富士山は海の中にはないので e(q) = 0 です。このように、e は命題が真かどうかを表す関数です。

ここで注意したいのは、e は世の中のことを何でも知っている魔法の関数ではない、という点です。こちらが指示したとおりにはたらくだけで、富士山がどこにあるかを知っているわけではありません。計算を始める前に、真理値の割り当てがどうはたらくかを決めておく必要があります。「富士山は海の中にある」が真だと指示すれば、e(q) = 1 になります。

論理結合子の真偽

論理式の真偽を決めるには、論理結合子の真偽の求め方を知っておく必要があります。割り当て e(p) と e(q) がわかっているとき、論理式 p ∧ q や p ⇒ q などの真理値はどうなるでしょうか。

論理結合子はそれぞれはたらきも使いみちも違うので、一つずつ見ていきましょう。

論理積の真偽

論理積は p ∧ q と書き、「p かつ q」と読みます。例として、「日本はアジアにあり、かつ日本でいちばん大きい湖は琵琶湖である」という論理式を考えます。この文全体が真になるのは、どんなときでしょうか。

真偽を決める手がかりは、「かつ」という結合子そのものにあります。「かつ」は、左右の命題がどちらも真であることをはっきり求めています。命題 p と q がどちらも真、つまり e(p) = 1 かつ e(q) = 1 ならば、論理積全体も真です。それ以外の場合、つまりどちらか一方の命題が偽であるか、両方とも偽である場合は、論理式全体が偽になります。

真にならない論理積の例として、「信濃川は川であり、かつ信濃川はロシアを流れている」が挙げられます。信濃川が川であることは正しいのですが、ロシアを流れてはいないので、この論理積全体は真ではありません。

次の表にまとめます。

pqp∧q111100010000

最初の二つの列は命題 p と q の真理値で、3列目は論理式 p ∧ q の真理値です。

論理和の真偽

論理和は p ∨ q と書き、「p または q」と読みます。例を挙げます。「ロシアはヨーロッパにある、またはアジアにある。」この文全体が真になるのは、どんなときでしょうか。

論理和は、少なくとも一方が真であれば真になります。「または」はどちらかを選ばせる結合子で、左側か右側のどちらかが真ならよいのです。日常の言葉と少しだけ違うのは、論理の「または」は、両方の命題が同時に成り立つときにも真になる点です。日常会話ではそうとは限りません。「または」を「…か…のどちらか一方」という、片方だけを選ぶ意味で使うことがよくあります。

これをよく表す有名な笑い話があります。ある家族が中古車店で新しい車を選んでいます。父親が店員に「青い車または赤い車を買うことに決めました」と言うと、店員は2台とも売りました。これが論理の「または」と話し言葉の「または」の違いです。父親はおそらく、どちらか1台だけを選ぶつもりでしたが、店員は2台とも売ることも正しい選択肢の一つだと考えたのです。

先ほどのロシアの文は、二つの命題がどちらも真なので真です。「7 は 3 で割り切れる、または 7 は素数である」という文も、7が素数なので真です。7は3で割り切れませんが、それはもう問題になりません。真理値表は次のとおりです。

pqp∨q111101011000

含意の真偽

含意は p ⇒ q と書き、「p ならば q」と読みます。含意の例として、「アイスを食べすぎたら、おなかをこわす」という文を考えます。この文が真になるのは、どんなときでしょうか。

含意は、論理結合子の中でいちばん誤解されやすいものです。日常の言葉でもよく取り違えられ、同値と混同されます。その逆 q ⇒ p も同時に成り立つかどうかを考えてみましょう。

アイスを食べすぎたら、おなかをこわすことはわかっています。では、おなかをこわしたら、アイスを食べすぎたといえるでしょうか。そうとはいえません。アイスではなく、まったく別の冷たいものを口にしておなかをこわしたのかもしれませんし、まったく関係のない原因かもしれません。このように、逆が自動的に成り立つとは限りません。p ⇒ q が成り立ち、同時に q ⇒ p も成り立つ場合は同値になります。これについては後で説明します。

別の例です。「明日雨が降るならば、健太くんは傘を持っていく。」さて、健太くんが傘を持っていったことがわかったとします。その日、雨は降ったでしょうか。多くの人は「もちろん降った。雨が降りそうだったから、健太くんは傘を持っていったのだ」と答えたくなります。しかし、もとの文はそういう形にはなっていません。

健太くんは、こちらの知らない別の理由で傘を持っていったのかもしれません。例えば、出かけるときはいつも傘を持ち歩く習慣があるのかもしれませんし、新しい傘を買うことにして、古い傘を捨てようとしていたのかもしれません。どれも、雨が降らなかったとしても健太くんが傘を持っていった理由として、十分にありえます。

これで、含意が真になるのはどんなときかがわかります。二つの命題がどちらも真なら、含意は必ず真です。例えば「42 が自然数ならば、正の数である」は、二つの命題がどちらも真なので、含意全体も真です。一方、「42 が自然数ならば、負の数である」という含意は真ではありません。真の命題から、正しくないことを導こうとしているからです。

最後に残るのは、一つ目の命題が偽の場合です。このとき、二つ目の命題の真偽はもう関係ありません。偽の前提から出発すれば、その先はどんなでたらめを言ってもかまわないのです。「1 が負の数ならば、ぼくは月の王様だ」や「ペンギンが有名な建設会社ならば、太陽は青い」のような文がこれにあたります。このような場合、含意は偽の前提から出発しているので、自動的に真になります。真理値表は次のとおりです。

pqp⇒q111100011001

同値の真偽

同値は p ⇔ q と書き、「p であるのは q であるとき、かつそのときに限る」と読みます(「p と q は同値である」ともいいます)。同値の例として、「x が2で割り切れるのは、偶数であるとき、かつそのときに限る」が挙げられます。この文全体が真になるのは、どんなときでしょうか。

同値では、二つの命題が強く結びついていて、両方とも成り立つか、どちらも成り立たないかのどちらかになることを求めます。つまり、x が偶数でもあり2で割り切れもするか、どちらでもないかのどちらかです。x が偶数なのに2で割り切れない、ということは起こりえません。

例を挙げます。「翔太くんが本を読むのは、トイレにいるとき、かつそのときに限る。」この同値が成り立つためには、翔太くんはトイレにいるときは必ず本を読んでいなければなりません。そして同時に、本を読んでいるときは必ずトイレにいなければなりません。例えばベッドで本を読む、ということはありえないのです。

同値は、二つの含意で表せます。つまり、p ⇔ q は「p ⇒ q かつ q ⇒ p」と書き直せます。真理値表は次のとおりです。

pqp⇔q111100010001

否定

否定は一つの命題に対してはたらく演算で、ダッシュを使って p' と書くか、次の記号で ¬p と書きます(日本の高校の教科書では、p の上に横線を引いて否定を表すのがふつうです)。否定は、もとの主張を打ち消します。「花子さんは歌手である」という命題を否定すると、「花子さんは歌手である、というのは正しくない」、短くいえば「花子さんは歌手ではない」という命題になります。ほとんどの場合、命題の前に「…というのは正しくない」をつければ否定を作れます。

否定は真理値を反対にします。つまり、0 を 1 に、1 を 0 にします。そこで、¬0 = 1、¬1 = 0 と書けます。

まちがえやすい点に注意しましょう。「このチョークは白い」という主張があるとします。その否定は何でしょうか。「このチョークは黒い」と考える人がいるかもしれませんが、それは正しくありません。先ほどの方法を使うと、否定は「このチョークは白い、というのは正しくない」になります。これは、チョークが黒いことを意味するでしょうか。そうではありません。例えば、きれいなピンク色かもしれません。

すべての論理結合子の真理値表

pqp∧qp∨qp⇒qp⇔q111111100100010110000011

論理式全体の真偽

これで、論理結合子で結ばれた二つの命題の真偽を判定できるようになりました。論理式全体も、まったく同じように判定します。論理式 (p ⇒ q) ∧ r で、(p ⇒ q) の値が例えば 1 になったとすると、論理積 1 ∧ r が残ります。これはもう判定できます。

いちばん単純な論理結合子を順に当てはめていけば、論理式全体の真理値にたどり着きます。そのためによく使われるのが、次に説明する真理値表を使う方法です。

真理値表を使う方法

真理値表を使う方法は、複雑な論理式の真偽を判定するときに使います。最初の n 列には、論理式に出てくる n 個の命題変数を書き、その先の列には、論理式に含まれる部分的な論理式を順に並べます。例で見るとわかりやすいでしょう。

論理式 (p ∨ q) ∧ (q ⇒ p) を考えます。まず表に、すべての命題変数、つまり p と q を書き、その真理値の割り当ての組合せをすべて書きます。

pq11100100

次に、部分的な論理式 p ∨ q と q ⇒ p の列を書き加えます。

pqp∨qq⇒p11100100

今度はこれらの論理式の値を求めて、列に0か1を書き込みます。必要な情報はすべて表にあります。1行目の p ∨ q を求めるときは、p に 1、q にも 1 を代入します。すると 1 ∨ 1 という式になります。この式の値は 1 なので、表に1を書き込みます。

pqp∨qq⇒p111100100

同じようにして、表全体をうめます。

pqp∨qq⇒p1111101101100001

あとは論理式全体の値を求めるだけです。この論理式を、例えば φ = (p ∨ q) ∧ (q ⇒ p) とおきます。表に φ の列を加えて、その値を求めます。このとき、直前の二つの列を使います。

pqp∨qq⇒pφ11111101110110000010

これで表は完成です。この表から、考えられるすべての割り当てについて論理式の真理値がわかります。例えば、e(p) = 1 かつ e(q) = 1 のとき、論理式は真です。e(p) = 0 で e(q) = 1 のときは、論理式は真ではありません。

ここで、単に「論理式は真である」とはいえないことに注意しましょう。論理式が真であるというには、どの割り当てで真になるのかを言わなければならないので、この文には意味がありません。いえるのは、例えば「論理式 φ は割り当て e1 では真で、割り当て e2 では真ではない」のような文です。

単に「論理式は真である」といえるのは、考えられるすべての割り当てで真になる場合だけです。例えば論理式 p ∨ ¬p はすべての割り当てで真なので、この論理式は真であるといえます。すべての割り当てで偽になる論理式についても同じです。

このような論理式には、特別な名前がついています。すべての割り当てで真になる論理式を恒真命題(トートロジー、恒真式)といいます。どの割り当てでも真にならない論理式を矛盾(恒偽命題)といいます。

章: 命題論理, 論理式の真偽, 命題論理の例題