MathLabs

10年生

命題と論理的推論

命題とは真か偽かのどちらかが定まる文であり、両方であることはない。¬P\neg P、P∧QP \wedge Q、P∨QP \vee Q、P→QP \to Q などの結合子で複合命題を作り、真理値表を使えば ¬(P∧Q)≡(¬P)∨(¬Q)\neg(P \wedge Q) \equiv (\neg P) \vee (\neg Q) のような同値関係を確実に検証できる。

直観真か偽かが定まる文

照明のスイッチは「オン」か「オフ」のどちらかであり、中間状態はない。数学でも同じ発想を使う。命題 とは、真理値がちょうど一つ、11(真)か00(偽)のどちらかに定まる平叙文である。「2+2=42+2=4」は命題である(11)。「x+1=5x+1=5」は xx が固定されるまでは命題ではない。真偽が未知数に依存するからだ。

配線でつながれた論理ゲートのインタラクティブなグラフ。真理値の伝播を示す。
PP、QQ、含意 P→QP\to Q、対偶 ¬Q→¬P\neg Q\to\neg P、連言 P∧QP\wedge Q の真理値表:nn を動かして4通りの真理値割当を順に強調表示する。

中高結合子と真理値表

定義: 論理結合子

命題 PP、QQ について、否定 ¬P\neg P は PP が偽のときに限り真。連言 P∧QP \wedge Q(「PP かつ QQ」)は両方が真のときに限り真。選言 P∨QP \vee Q(「PP または QQ」)は少なくとも一方が真のとき真。条件 P→QP \to Q(「もし PP ならば QQ」)は PP が真で QQ が偽のときのみ偽。双条件 P↔QP \leftrightarrow Q は PP と QQ の真理値が一致するときに限り真。

¬(P∧Q)≡(¬P)∨(¬Q)\neg(P \wedge Q) \equiv (\neg P) \vee (\neg Q)

これはド・モルガンの法則の一つである。「PP かつ QQ」の否定は「PP でない、または QQ でない」に等しい。対をなす法則 ¬(P∨Q)≡(¬P)∧(¬Q)\neg(P \vee Q) \equiv (\neg P) \wedge (\neg Q) は選言の否定を否定の連言に変える。

(P→Q)≡(¬Q→¬P)(P \to Q) \equiv (\neg Q \to \neg P)
5つの結合子の真理値表
PPQQ¬P\neg PP∧QP \wedge QP∨QP \vee QP→QP \to QP↔QP \leftrightarrow Q
11110011111111
11000000110000
00111100111100
00001100001111

大学同値法則と妥当な推論規則

任意の命題 P,QP, Q について: ¬(P∧Q)≡(¬P)∨(¬Q)\neg(P \wedge Q) \equiv (\neg P) \vee (\neg Q) かつ ¬(P∨Q)≡(¬P)∧(¬Q)\neg(P \vee Q) \equiv (\neg P) \wedge (\neg Q)。

なぜ正しいのか?

「両方ではない」は常に「少なくとも一方が偽」という2つの網羅的な場合に分かれ、これはまさに否定の選言である。これは「すべての」文を否定する論理的骨格であり、ANDゲートを反転入力のORゲートに変換するデジタル回路(NAND/NOR の等価性)の裏にある考え方でもある。

証明

真理値表によって命題論理式は完全に決まるので、PP と QQ の真理値の4通りの組み合わせをすべて調べて ¬(P∧Q)≡(¬P)∨(¬Q)\neg(P \wedge Q) \equiv (\neg P) \vee (\neg Q) を証明する。

場合 P=1,Q=1P=1, Q=1: P∧Q=1P \wedge Q = 1 なので ¬(P∧Q)=0\neg(P\wedge Q)=0。また ¬P=0\neg P=0、¬Q=0\neg Q=0 なので (¬P)∨(¬Q)=0(\neg P)\vee(\neg Q)=0。両辺とも 00 で一致する。

場合 P=1,Q=0P=1, Q=0: P∧Q=0P\wedge Q=0 なので ¬(P∧Q)=1\neg(P\wedge Q)=1。また ¬P=0\neg P=0、¬Q=1\neg Q=1 なので (¬P)∨(¬Q)=1(\neg P)\vee(\neg Q)=1。両辺とも 11 で一致する。

場合 P=0,Q=1P=0, Q=1: 先の場合と対称なので ¬(P∧Q)=1\neg(P\wedge Q)=1、(¬P)∨(¬Q)=1(\neg P)\vee(\neg Q)=1。両辺一致する。

場合 P=0,Q=0P=0, Q=0: P∧Q=0P\wedge Q=0 なので ¬(P∧Q)=1\neg(P\wedge Q)=1。また ¬P=1\neg P=1、¬Q=1\neg Q=1 なので (¬P)∨(¬Q)=1(\neg P)\vee(\neg Q)=1。両辺一致する。

真理値表の4行すべてが一致するので、¬(P∧Q)≡(¬P)∨(¬Q)\neg(P \wedge Q) \equiv (\neg P) \vee (\neg Q) はトートロジー(すべての割り当てで真になる恒真式)として成り立つ。第二法則 ¬(P∨Q)≡(¬P)∧(¬Q)\neg(P \vee Q) \equiv (\neg P) \wedge (\neg Q) も同様に4行を調べれば得られるし、あるいは第一法則で P,QP, Q を ¬P,¬Q\neg P, \neg Q に置き換えて両辺を否定し ¬¬X≡X\neg\neg X \equiv X を使う代数的方法でも得られる。

任意の命題 P,QP, Q について: (P→Q)≡(¬Q→¬P)(P \to Q) \equiv (\neg Q \to \neg P)。

なぜ正しいのか?

条件文とその対偶は常に同じ情報を持つ——「雨が降れば地面が濡れる」は「地面が濡れていなければ雨は降っていない」とまったく同じ真理値を持つ。この同値性は、間接証明の2大手法の一つである対偶証明法(もう一つは背理法)の論理的根拠である。

証明

(P→Q)≡(¬Q→¬P)(P \to Q) \equiv (\neg Q \to \neg P) を、P→QP\to Q と ¬Q→¬P\neg Q\to\neg P の真理値表を4通りの割り当てすべてで比較して証明する。

場合 P=1,Q=1P=1, Q=1: P→Q=1P\to Q=1(仮定真、結論真)。また ¬Q=0\neg Q=0 なので ¬Q→¬P\neg Q\to\neg P は仮定が偽となり、¬P\neg P の値によらず条件文全体は 11 になる。両辺とも 11。

場合 P=1,Q=0P=1, Q=0: P→Q=0P\to Q=0(仮定真・結論偽が条件文を偽にする唯一の場合)。また ¬Q=1\neg Q=1、¬P=0\neg P=0 なので ¬Q→¬P\neg Q\to\neg P は仮定真・結論偽となり 00。両辺とも 00。

場合 P=0,Q=1P=0, Q=1: P→Q=1P\to Q=1(仮定が偽なら条件文は常に真)。また ¬Q=0\neg Q=0 なので ¬Q→¬P=1\neg Q\to\neg P=1 が自動的に成り立つ。両辺とも 11。

場合 P=0,Q=0P=0, Q=0: P→Q=1P\to Q=1(仮定偽)。また ¬Q=1\neg Q=1、¬P=1\neg P=1 なので ¬Q→¬P=1\neg Q\to\neg P=1(仮定真・結論真)。両辺とも 11。

4行すべてが一致するので、P→QP\to Q と ¬Q→¬P\neg Q\to\neg P は真理値表が同一であり、論理的に同値である。これは 逆 Q→PQ\to P や 裏 ¬P→¬Q\neg P\to\neg Q とは異なる点に注意。これらは互いに同値だが、一般には元の条件文とは同値ではない——よくある誤った論証の原因である。

大学実世界での応用と具体例

デジタル回路は命題論理の物理的実現である。ANDゲートは P∧QP \wedge Q を計算し、ORゲートは P∨QP \vee Q を計算し、インバータは ¬P\neg P を計算する。技術者はド・モルガンの法則を使って回路をNANDゲートのみで再設計し(製造コストが安い)、モーダスポネンス(P, P→Q⊢QP,\ P \to Q \vdash Q)やモーダストレンス(¬Q, P→Q⊢¬P\neg Q,\ P \to Q \vdash \neg P)型の推論を使って、すべての入力の組み合わせで回路の出力が仕様に合っているか検証する。同じ結合子はSQLの `WHERE` 句、表計算ソフトの数式、検索エンジンのクエリ構文の裏にもある。

例: 回路仕様の簡単化

ドアが閉まっていて、かつ窓が閉まっていない限り警報が鳴るとする。連言の前に否定を置かない形でトリガー条件を書け。すなわち ¬(P∧Q)\neg(P \wedge Q) を簡単化し、等価なゲート構成を述べよ。

解答

PP = 「ドアが閉まっている」、QQ = 「窓が閉まっている」とする。トリガー条件は ¬(P∧Q)\neg(P \wedge Q)。

ド・モルガンの法則より ¬(P∧Q)≡(¬P)∨(¬Q)\neg(P \wedge Q) \equiv (\neg P) \vee (\neg Q)。

よって警報はドアが閉まって「いない」、または窓が閉まって「いない」ときにちょうど鳴る——回路的にはドアと窓のセンサー信号をインバータに通してからORゲートで合成する。あるいは、(ドア閉、窓閉)に直接1個のNANDゲートを適用すれば、別途インバータなしで同じ出力が得られる。これがNANDが「万能ゲート」と呼ばれる理由である。

例: デバッグにおけるモーダストレンス

あるプログラマは「キャッシュが古ければ、ページは古いデータを表示する」(P→QP \to Q)ことを知っている。再読み込みすると、ページは最新データを表示していた(¬Q\neg Q)。何を結論でき、どの推論規則がそれを正当化するか。

解答

PP = 「キャッシュが古い」、QQ = 「ページが古いデータを表示する」とする。P→QP \to Q と観測 ¬Q\neg Q(ページは最新データを表示)が与えられている。

モーダストレンスは ¬Q, P→Q⊢¬P\neg Q,\ P \to Q \vdash \neg P と述べる:¬Q\neg Q と P→QP \to Q から、妥当に ¬P\neg P を推論できる。

よって彼女はキャッシュが古く「ない」と結論できる。避けるべき罠に注意:QQ が真だと分かっても PP を結論することはできない(それは不当な「後件肯定」の誤謬である)——古そうなデータには他にも多くの原因がありうる。

PP が真、QQ が偽のとき、P→QP \to Q の真理値は?

¬(P∨Q)\neg(P \vee Q) と論理的に同値な文はどれか?

P→QP \to Q が真、PP が真のとき、モーダスポネンス(P, P→Q⊢QP,\ P \to Q \vdash Q)により結論できるのは:

NANDゲートは連言に対してどの単一の結合子を直接実装するか?

参考文献

  1. Kenneth H. Rosen (2018). Discrete Mathematics and Its Applications
  2. George Boole (1854). An Investigation of the Laws of Thought