論理演算子と真理値表
注意!
高校の学習指導要領外の記事です!
上の記事で,集合の厳密な証明についてお話ししましたが,証明のときに使えると便利なものが論理演算子です.論理演算子には,「かつ」「または」「ならば」「〜でない(否定)」などがあり,それぞれ「\land」「\lor」「\to」「\lnot」で表します.
また,命題をAやBといった記号で表し,それぞれの命題の真偽の組み合わせと,論理演算の結果をまとめた表を真理値表といいます.
本記事では,命題が真であることをT(True),偽であることをF(false)で表します.目的によっては,真を「1」,偽を「0」で表すこともあります.
A \land B(AかつB)
AかつBをA \land Bと書きます.真理値表は以下のようになります.
A | B | A \land B |
T | T | T |
T | F | F |
F | T | F |
F | F | F |
真理値表は横方向に読みます.例えば,1行目1見出しを除くの場合,Aは真(T),Bは真のとき(T),A \land Bは真(T)であることを表しています.
命題Aと命題Bが共に真であるときのみ,A \land Bは真になります.
試しに,命題Aを「xは3の倍数である」,命題Bを「xは4の倍数である」としてみましょう.A \land Bは「xは3の倍数である」かつ「xは4の倍数である」となるので,その両方を満たす12の倍数の時だけ真となり,それ以外は偽となります.
A \lor B(AまたはB)
日本語の「または」には2つの意味があります.
「英語のテストが60点以下,または,数学のテストが60点以下であれば,1ヶ月間ゲームは禁止です.」
「福引で5等が出たら,ポケットティッシュ,または,ボールペンを差し上げます」
この2つの文章の「または」の意味は異なります.前者は,「少なくともどちらか一方」という意味です.英語と数学,両方のテストで60点以下を取ると,ゲームを禁止されてしまうでしょう.後者は「どちらか一方のみ」という意味です.福引で5等を1回出した後に,ポケットティッシュとボールペンを両方持って帰ろうとすると,警備員か警察のお世話になってしまうかと思います.
数学,特に論理において「または」と言えば,前者の「少なくともどちらか一方」という意味になります.論理演算子では「\lor」と書きます.
A \lor Bの真理値表は以下の通りです.
A | B | A \lor B |
T | T | T |
T | F | T |
F | T | T |
F | F | F |
A \to B(AならばB)
A \to B(AならばB)の真理値表は以下の通りです.
A | B | A \to B |
T | T | T |
T | F | F |
F | T | T |
F | F | T |
この真理値表の下の2行を見て,少し意外に思う方がいるかもしれません.
納得が難しい場合は「宝くじで100万円以上が当たったら,君に10万円あげるよ」と言った人間が,嘘つきか否かを考えると良いでしょう.
ケース1.宝くじで100万円以上があたり,10万円を渡した.
この場合,「宝くじで100万円以上が当たったら,君に10万円あげるよ」という発言は真実になります.
ケース2.宝くじで100万円以上があたり,10万円を渡さなかった.
このケースは,前述の発言が嘘になります.
ケース3.宝くじで100万円以上が当たらなかったが,10万円を渡した.
宝くじが外れたにも関わらず,10万円をくれました.なんだか変な行動をしていますが,このケースにおいて,前述の発言は嘘にはなりません.やさしい.
ケース4.宝くじで100万円以上が当たらず,10万円を渡さなかった.
自然なことです.当然,発言は嘘にはなりません.
\lnot A(Aでない)
A | \lnot A |
T | F |
F | T |
否定すると真偽が反対になります.
「1は奇数である」は真ですが,否定の「1は奇数ではない」は偽となります.
逆に「2は奇数である」は偽ですが,「2は奇数ではない」は真です.
否定は他の論理演算子と組み合わせると面白くなります.
A | B | \lnot A | \lnot B | A \land B | \lnot (A \land B) | \lnot A \lor \lnot B |
T | T | F | F | T | F | F |
T | F | F | T | F | T | T |
F | T | T | F | F | T | T |
F | F | T | T | F | T | T |
\lnot (A \land B) = \lnot A \lor \lnot B が成り立つことが分かります.
演習.
真理値表を用いて\lnot (A \lor B) = \lnot A \land \lnot B が成り立つことを示しましょう.
集合の証明に使ってみよう!
ここまで論理演算子について解説してきました.これらの論理演算子を実際の証明で使ってみます.de Morganの法則\overline{A \cup B} = \overline{A} \cap \overline{B}を証明します.
\begin{aligned} x \in \overline{A \cup B} &\Leftrightarrow \lnot (x \in A \lor x \in B) \\ &\Leftrightarrow \lnot (x \in A) \land \lnot (x \in B) \\ &\Leftrightarrow x \in \overline{A} \cap \overline{B} \end{aligned}
演習.
\overline{A \cap B} = \overline{A} \cup \overline{B}を証明してみましょう.
論理演算子の種類を減らす
ここまで,論理演算子について解説してきましたが,いかがだったでしょうか.
え?論理演算子の種類が多すぎますか?
安心してください.そんな人のために,「\to (ならば)」を使わずに済む方法をお教えしましょう.
A | B | \lnot A | A \to B | \lnot A \lor B |
T | T | F | T | T |
T | F | F | F | F |
F | T | T | T | T |
F | F | T | T | T |
なんとA \to B =\lnot A \lor Bが成り立ちます.これで\to を使う必要がなくなりました.
え?まだ多いですか?
仕方ありません.もう少し演算子を減らしましょう.
A | B | \lnot A | \lnot B | \lnot A \lor \lnot B | \lnot (\lnot A \lor \lnot B) | A \land B |
T | T | F | F | F | T | T |
T | F | F | T | T | F | F |
F | T | T | F | T | F | F |
F | F | T | T | T | F | F |
はい,\lnot (\lnot A \lor \lnot B) = A \land Bが成り立ちました.これで「 \land 」を使わなくても,同等の演算が可能です.
ん?まだ多いですか?
そんな人にオススメなのがこちら!
“|”
「シェファーの縦棒」です!
シェファーの縦棒は,命題のうち少なくともひとつが偽であれば真を返します.
シェファーの縦棒1種類のみで,これまでに紹介した全ての論理演算子と同等の演算を行うことが可能です.
A | B | A|B | A|A | B|B | (A|B)|(A|B) | (A|A)|(B|B) |
T | T | F | F | F | T | T |
T | F | T | F | T | F | T |
F | T | T | T | F | F | T |
F | F | T | T | T | F | F |
\lnot Aと同じ演算をA|A,A \land Bと同じ演算を(A|B)|(A|B),A \lor Bと同じ演算を(A|A)|(B|B)と表すことができます.
可読性が悪すぎる……
考えた人はすごいですね.