前回に引き続き, 論理学について説明します.
今回は, 論理を演算によって処理するための基礎的な内容である, 論理演算と条件命題を学習します.
これを論理演算というのですが, 論理演算ができれば難しい推論を機械的に行えるようになります.
はじめに
前回は命題や推論, 演繹といった論理学の基礎的なことを学びました.
例えば, 推論の例として以下の3段論法を挙げました.
P Q それゆえ, R
具体的な値を入れると次のようになりました
- 前提: P すべての犬は哺乳類である.
- 前提: Q ポチは犬である.
- 結論: R ポチは哺乳類である.
すべての犬は哺乳類である.ポチは犬である. それゆえ, ポチは哺乳類である.
これはP, Qといった前提から, Rという結論を導きだす推論です.
演繹という言葉を用いると, RはP, Qから演繹的に導きだせるというふうにも考えられます.
3段論法程度であれば推論は比較的簡単ですが, 前提が増えたり論理が複雑になると, 頭で考えるには少し難しくなりそうです.
そのような場合には, 論理演算が役に立ちます.
命題の真偽値を基に演算することで, 答えを導き出せるのです.
論理演算
命題に対する演算を論理演算といいます.
論理演算は 選言(or), 連言(and), 否定(not) の3つが基本です.
命題は True と False の2つの値(真偽値)を基に演算されます.
(本記事では, True = 1, False = 0 と表しています)
論理における演算とその値を表にしたものを真理値表といいます.
先ほどの3つの論理演算の真理値表を載せます.
pやqは命題を表し, p ∨ q などは演算の結果を表します.
普段からプログラミングに親しんでいる方であれば, 見慣れた演算結果だと思います.
論理和 (選言, or)
論理積 (連言, and)
論理否定 (否定, not)
条件命題
条件命題とは, 「もし 命題A ならば 命題B である」という形の命題を指します.
つまり, 条件命題自体も命題です.
例を以下に示します.
命題A:「雨が降る」
命題B:「道が濡れる」
条件命題:「もし雨が降れば, 道が濡れる.」
続いて, 条件命題の真理値表は以下のようになります.
ここで, 真理値表について, 上の条件命題の例を参考に考えてみます.
(再掲)
命題A:「雨が降る」
命題B:「道が濡れる」
条件命題:「もし雨が降れば, 道が濡れる.」
最初に, 真理値表の一番下の「pとqが真」の場合を考えてみます.
pが真なので「雨が降る」qも真なので「道が濡れる」. 条件命題は「もし 雨が降る ならば 道が濡れる」となります. これは一般的な感覚としても問題なさそうです. 演算結果の方でも, もちろん真となります.
次に, 真理値表の上から3番目の「pが真で, qが偽」の場合を考えてみます.
pが真なので「雨が降る」qも真なので「道が濡れない」. 条件命題は「もし 雨が降る ならば 道が濡れない」となります. これは少し違和感がありますね. 演算結果は偽となります.
下2つは納得のいく演算結果でした. では, 残りの上2つはどうでしょうか?
先に結論を言っておくと, 条件命題の演算結果は, pが偽の場合にはqの真偽に関わらず真とみなします. これは, 論理学のきまりのようなもので, ひとまずはこういうものなんだろうと覚えておくのがいいと思います. (僕も詳しいところは分かりません... 気になる方は論理学の公理などを調べると分かるかもしれません)
とはいえ, この演算の場合はこうなるという規則さえ知っていれば, 道具として使うことが出来ます.
おわりに
前回は自然言語で論理学を解説しましたが, 今回はそれを真偽値(0と1の数値)で表現したり, 論理記号を用いて演算を行うなど, ややシステマティックで数学らしくなってきたのではないでしょうか.
様々な概念を記号を用いて抽象化することは, その本質を明確にするのに役立ちます. さらにそれが演算可能であれば, 演算によって簡単に答えを導いたり, 場合によっては演算のショートカットが出来る可能性もあります.
例えば恋占いで, 花びらを1つずつちぎって, 意中の相手が自分を好きか嫌いかを言い当てるものがります(今考えると少し残酷ですが...)
幼いうちは花びらを1つずつちぎりながら, 好き, 嫌い と繰り返していきます. 大人になった今では, 恐らくもっと本質的で平和的なアプローチを取るはずです. (様々な方法がありそうですが, 読者の想像にお任せします)
このように記号化と演算を活用することで, 複雑な問題をより効率的に解決することができます.
次回は論理演算を用いて実際に推論を行なってみます.
頭で考えてもなかなか解けないものを, 論理学の力を使って簡単にとくことで, 改めて論理学の力を実感できると思います.