lecture/information/discrete-math/論理と真理値表の基本-講義.n.md
論理と真理値表の基本
informationdiscrete-mathundergraduatelecture
導入
この講義で最重要なのは、条件文の意味を自然言語の雰囲気で読まず、真か偽かの表で確定することです。
プログラムの if 文や仕様書の条件で誤解が起きやすいのは、「または」が排他的なのか、「ならば」が日常語の因果なのかを曖昧に読んでしまうからです。真理値表は、その曖昧さを消す道具です。
用語と定義
否定 とは、命題 P の真偽を反転した \neg P です。
論理積 とは、P と Q がどちらも真のときだけ真になる P\land Q です。
論理和 とは、P と Q のどちらか、または両方が真なら真になる P\lor Q です。
真理値表 とは、命題の真偽をすべて表にしたものです。
方針
まず命題を短い記号 P,Q に置き換えます。そのあと、真と偽の組み合わせを全部 表にして、論理式の意味を確定します。
直感的な説明
「A か B のどちらかが成り立てばよい」という条件では、A だけでも B だけでも、A と B の両方でもよいはずです。この「両方も含むのか」を言葉だけでなく表にして確認するのが真理値表です。
厳密な説明
1. 論理積
P\land Q は、P,Q がどちらも真のときだけ真です。
2. 論理和
P\lor Q は、P,Q の少なくとも一方が真なら真です。
3. 真理値表
P\lor Q の真理値表は
\begin{array}{c|c|c}
P & Q & P\lor Q \\
\hline
\mathrm{T} & \mathrm{T} & \mathrm{T} \\
\mathrm{T} & \mathrm{F} & \mathrm{T} \\
\mathrm{F} & \mathrm{T} & \mathrm{T} \\
\mathrm{F} & \mathrm{F} & \mathrm{F}
\end{array}\begin{array}{c|c|c}
P & Q & P\lor Q \\
\hline
\mathrm{T} & \mathrm{T} & \mathrm{T} \\
\mathrm{T} & \mathrm{F} & \mathrm{T} \\
\mathrm{F} & \mathrm{T} & \mathrm{T} \\
\mathrm{F} & \mathrm{F} & \mathrm{F}
\end{array}
です。
見分け方
- 条件の意味が曖昧なら、まず命題を 2 つか 3 つに分けて真理値表を作ります。
- プログラムの if 文でバグが出やすいときは、論理積と論理和の使い分けを疑います。
- 「または」を排他的に読んでしまうのが典型的な誤りです。
最終形
\boxed{P\land Q:\ \text{両方が真}}
\boxed{P\lor Q:\ \text{少なくとも一方が真}}
一言でいうと
- 真理値表は、条件文の意味を曖昧さなく確定するための表です。