命題論理
命題論理(数学の論理)は、数学で考えを表すための道具です。さまざまな用語や、あらゆる数学の定理の中に出てきます。
論理は何の役に立つか
論理学は、推論や、ものごとが真であるかどうか、証明できるかどうか、反証できるかどうかを扱う学問です。論理学で問題にするのは文の形だけで、具体的に何が述べられているかは問いません。心理的な解釈なども同じく扱いません。
例えば「2 は偶数であり、かつ奇数である」という文があるとします。2 は奇数ではないので、この文全体は偽だと判断できます。このようなことを一般的に扱うのが論理学です。
命題
命題論理の土台は、もちろん命題です。真か偽かがはっきり決まる平叙文を命題といいます。簡単な命題の例を挙げます。
- 富士山は日本でいちばん高い山である。
- 自然数の5は奇数である。
- HTMLはプログラミング言語である。
- 2たす3は6である。
これらはすべて命題です。最初の二つは真で、最後の二つは偽ですが、どちらも命題であることに変わりはありません。一方、疑問文や、真か偽かをはっきり決められない文は命題ではありません。例を見てみましょう。
- 100年後も富士山は日本でいちばん高い山だろうか?
- 緑はいちばん美しい色である。
一つ目の文は疑問文なので命題になりません。二つ目の文は、真の命題か偽の命題かを決められません。このような文は仮説(推測)とよばれます。
古典的な数学の論理は、「太郎さんは背が高い」や「この歌手は歌がうまい」のようなあいまいな文をうまく扱えません。こうした文は、あいまいさを扱えるように作られたファジィ論理などのほうが向いています。
原子命題
最初の節で「2 は偶数であり、かつ奇数である」という命題を例に挙げました。この命題は、実は「2 は偶数である」と「2 は奇数である」という二つの短い命題を結びつけたものなので、複合命題とよぶことができます。二つの命題は「かつ」という論理結合子で結ばれています。
それ以上分けられない命題を原子命題といいます。ある意味で、いちばん単純な主張です。先ほどの命題の例は、実はすべて原子命題でした。
- 富士山は日本でいちばん高い山である。
- 自然数の5は奇数である。
- HTMLはプログラミング言語である。
- 2たす3は6である。
以下では、原子命題をアルファベットの小文字で表します。ふつうは p, q, r, … を使い、これらを命題変数とよびます。
論理結合子
数学の論理では、決まった論理結合子の組を使います。基本となるのは、二つの命題を結ぶ次の四つの結合子です。
- p ∧ q は命題の論理積で、「p かつ q」と読みます。
- p ∨ q は命題の論理和で、「p または q」と読みます。
- p ⇒ q は含意で、「p ならば q」と読みます。
- p ⇔ q は同値で、「p と q は同値」、または「p であるのは q であるとき、かつそのときに限る」と読みます。
論理結合子を使った具体的な例です。
- 札幌の中心部で雨が降っていて、かつ日が照っている。(論理積)
- 札幌の中心部で雨が降っている、または日が照っている。(論理和)
- このラーメン店は日本一で、かつ店長は世界一の料理人だ。(論理積)
- もしアイスを食べすぎたならば、おなかをこわす。(含意)
- x が4で割り切れるならば、2でも割り切れる。(含意)
- 美咲さんは足が速くて、かつ頭がよい。(論理積)
- 歌手が成功するのは、歌がうまいとき、かつそのときに限る。(同値)
- 雨が降らなければ、ぬれない。(含意)
- もしカラスが白いならば、ぼくは月の王様だ。(含意)
よく使われる論理結合子がもう一つあります。否定です。否定はダッシュを使って p′ と書くか、記号を使って ¬p と書きます。日本の高校の教科書では、上に横線を引いた「p バー」で否定を表すのがふつうです。
論理式
命題変数(原子命題)と論理結合子を組み合わせると、もっと複雑な命題を作れます。これを論理式とよびます。前の例文はどれも、実は論理式でした。例えば「札幌の中心部で雨が降っている」と「日が照っている」という二つの原子論理式を、論理結合子で結んだものだからです。一つ目の例では「かつ」で結んで「札幌の中心部で雨が降っていて、かつ日が照っている」という論理式を作り、二つ目の例では「または」を使って「札幌の中心部で雨が降っている、または日が照っている」という論理式を作りました。
論理式は、形式的には次のように定義します。
- 命題変数(原子命題)はどれも論理式です(より正確には、原子論理式といいます)。
- A と B が論理式ならば、¬A、(A ∧ B)、(A ∨ B)、(A ⇒ B)、(A ⇔ B) も論理式です。
この定義は理にかなっています。一つ目の項目では、原子命題はどれも論理式でもあるといっています。そのため、例えば「札幌の中心部で雨が降っている」と「日が照っている」という二つの原子命題があれば、論理式も二つあることになります。ここで二つ目の項目を使うと、例えば次のような、より複雑な論理式を作れます。
- 札幌の中心部で雨が降っていて、かつ日が照っている。
- 札幌の中心部で雨が降っている、または日が照っている。
- 札幌の中心部で日が照っているならば、雨が降っている。
- 札幌の中心部で日が照っているのは、雨が降っているとき、かつそのときに限る。
もちろん、論理式が真であるとは限りません。これで新しい論理式の組ができたので、さらに複雑な論理式を組み立てられます。A を「札幌の中心部で日が照っている、または雨が降っている」(これが論理式であることはすでにわかっています)、B を「虹が見える」(毎回くり返さずに済むよう、これも札幌の中心部での話とします)とすると、さらに次のような論理式を作れます。文中のかっこは、結合子がどの部分にかかるかを示すためのものです。
- A ∧ B:(札幌の中心部で日が照っている、または雨が降っている)かつ(虹が見える)。
- A ∨ B:(札幌の中心部で日が照っている、または雨が降っている)または(虹が見える)。
- A ⇒ B:(札幌の中心部で日が照っている、または雨が降っている)ならば(虹が見える)。
- A ⇔ B:(札幌の中心部で日が照っている、または雨が降っている)のは、(虹が見える)とき、かつそのときに限る。
これらはすべて論理式です。ですから、このうちの一つを選んで、さらに別の論理式とつなぐこともできます。例えば「札幌の中心部で日が照っている、または雨が降っている、または虹が見えるならば、日が照っているか雨が降っているのは、虹が見えるとき、かつそのときに限る」のような、奇妙な文も作れます。
次の記事では、論理式の真偽を調べます。