真理値表の説明
← Back真理値表とは?
真理値表は、論理学で使用される数学的な表で、複合論理式の各構成変数の真理値のあらゆる可能な組み合わせに対する真理値を決定するものです。論理的陳述を分析し、その妥当性を判断する体系的な方法を提供します。
真理値表は、20世紀初頭にルートヴィヒ・ウィトゲンシュタインとエミール・ポストによって命題論理を分析するツールとして開発されました。論理実証主義の礎となり、コンピュータサイエンス、デジタル回路設計、形式論理において今でも不可欠なツールです。
真理値表の主な目的は論理的妥当性を判断することです:引数または論理式が常に真(トートロジー)、常に偽(矛盾)、または時々真で時々偽(偶然的)であるかどうかを判断します。
構築方法
真理値表の構築は、すべての可能なケースを確実に調査する体系的なプロセスに従います:
ステップ1:変数の特定
式内のすべての固有の命題変数を決定します。例えば、'(A ∧ B) → C'には3つの変数があります:A、B、C。
ステップ2:行数の計算
必要な行数は2^nに等しく、nは変数の数です。3つの変数がある場合、すべての可能な組み合わせをカバーするには2³ = 8行が必要です。
ステップ3:変数列の作成
変数のすべての可能な真理値の組み合わせ(真/偽または1/0)をリストアップします。体系的なパターンを使用します:最も右の変数は毎行、次は2行ごと、次は4行ごとに交互に、というように。
ステップ4:中間列の追加
複雑な式の場合、部分式の列を追加します。これにより評価が容易になり、パターンの特定に役立ちます。
ステップ5:式の評価
各行について、その行の真理値を使用して完全な式を評価します。最も内側の演算から外側に向かって作業し、演算子の優先順位に従います。
すべての演算子の真理値表
各論理演算子には独自の特徴的な真理値表パターンがあります:
AND(連言)- ∧
AND演算子は両方の入力が真の場合のみ真を返します。いずれかの入力が偽の場合、結果は偽です。これは両方の条件が満たされなければならない論理的連言を表します。
| A | B | A ∧ B |
|---|---|---|
| ⊥ | ⊥ | ⊥ |
| ⊥ | ⊤ | ⊥ |
| ⊤ | ⊥ | ⊥ |
| ⊤ | ⊤ | ⊤ |
OR(選言)- ∨
OR演算子は少なくとも1つの入力が真の場合に真を返します。両方の入力が偽の場合のみ偽を返します。これは包含的選言を表します。
| A | B | A ∨ B |
|---|---|---|
| ⊥ | ⊥ | ⊥ |
| ⊥ | ⊤ | ⊤ |
| ⊤ | ⊥ | ⊤ |
| ⊤ | ⊤ | ⊤ |
XOR(排他的論理和)- ⊕
XOR演算子は正確に1つの入力が真であるが両方ではない場合に真を返します。入力が異なる必要がある排他的選言を表します。
| A | B | A ⊕ B |
|---|---|---|
| ⊥ | ⊥ | ⊥ |
| ⊥ | ⊤ | ⊤ |
| ⊤ | ⊥ | ⊤ |
| ⊤ | ⊤ | ⊥ |
IMPLIES(条件)- →
含意演算子は「もしPならばQ」を表します。前件(P)が真で後件(Q)が偽の場合のみ偽です。これは直感に反するかもしれません:偽の前提は含意を空虚に真にします。
| A | B | A → B |
|---|---|---|
| ⊥ | ⊥ | ⊤ |
| ⊥ | ⊤ | ⊤ |
| ⊤ | ⊥ | ⊥ |
| ⊤ | ⊤ | ⊤ |
IFF(双条件)- ↔
双条件演算子は両方の入力が同じ真理値(両方とも真または両方とも偽)を持つ場合に真を返します。論理的等価性を示す「…の場合に限り」を表します。
| A | B | A ↔ B |
|---|---|---|
| ⊥ | ⊥ | ⊤ |
| ⊥ | ⊤ | ⊥ |
| ⊤ | ⊥ | ⊥ |
| ⊤ | ⊤ | ⊤ |
NAND(否定論理積)
NANDはANDの否定です。両方の入力が真の場合のみ偽を返します。NANDは万能ゲートです:任意の論理関数はNANDゲートのみを使用して実装できます。
| A | B | A ⊼ B |
|---|---|---|
| ⊥ | ⊥ | ⊤ |
| ⊥ | ⊤ | ⊤ |
| ⊤ | ⊥ | ⊤ |
| ⊤ | ⊤ | ⊥ |
分析技法
真理値表により、論理式を分析するための強力な技法が可能になります:
トートロジー
トートロジーは、すべての可能な真理値の割り当てに対して真である陳述です。真理値表では、最終列は「真」の値のみを含みます。例:P ∨ ¬P(排中律)。
矛盾
矛盾は、すべての可能な真理値の割り当てに対して偽である陳述です。最終列は「偽」の値のみを含みます。例:P ∧ ¬P。
偶然的陳述
偶然的陳述は、一部の割り当てでは真で他の割り当てでは偽である陳述です。ほとんどの日常的な陳述は偶然的です。なぜなら、その真偽は特定の状況に依存するからです。
論理的等価性
2つの式は、すべての可能な割り当てに対して同一の真理値を持つ場合、論理的に等価です。それらの真理値表の列は同一になります。これは論理的簡約化の基本です。
論証の妥当性
すべての前提が真であるときは常に結論も真でなければならない場合、論証は妥当です。妥当性を確認するには、すべての前提が真であるが結論が偽である行を探します:そのような行が存在する場合、論証は妥当ではありません。
簡約化方法
真理値表は論理式を簡約化する出発点として使用できます:
カルノー図(Kマップ)
Kマップは2〜4変数のブール式を簡約化する視覚的方法です。真理値表は、隣接するセルが1つの変数のみで異なるグリッドに再配置され、パターンを見つけて項をグループ化して簡約化することが容易になります。
- 2変数の場合:2×2グリッド
- 3変数の場合:2×4グリッド
- 4変数の場合:4×4グリッド
クワイン・マクラスキー法
これはブール式を体系的に最小化する表形式の方法です。任意の数の変数に対して機能し、Kマップが実用的でなくなった場合(4変数以上)に特に有用です。このアルゴリズムはすべての主項を見つけ、最小式を作成するために本質的主項を選択します。
ブール式の最小化
目標は、論理的等価性を保持しながら項とリテラルの数を減らすことです。これにより回路の複雑さが軽減され、性能が向上し、式が理解しやすくなります。
応用
真理値表は多くの分野で実用的な応用があります:
デジタル回路設計
真理値表は論理ゲート回路に直接マッピングされます。各行は可能な入力の組み合わせを表し、出力列は回路の動作を決定します。エンジニアは実装前にデジタル回路を設計および検証するために真理値表を使用します。
論理ゲートの検証
真理値表がハードウェアに変換される方法を見る
ソフトウェアテスト(決定表)
ソフトウェアテストにおける決定表は、本質的に条件をアクションにマッピングする真理値表です。すべての可能な条件の組み合わせを体系的に調査することで、包括的なテストカバレッジを確保するのに役立ちます。
データベースクエリの最適化
クエリオプティマイザは、WHERE句のブール式を簡約化するために真理値表の原則を使用し、不要な条件を減らすことでクエリのパフォーマンスを向上させます。
インタラクティブな例
計算機を使用してこれらの例を試してください:
例2:ド・モルガンの法則
¬(A ∧ B)と(¬A ∨ ¬B)を比較する - それらは同一の真理値表を生成し、論理的等価性を示します。
| p | q | r | (p ∨ q) → r |
|---|---|---|---|
| ⊥ | ⊥ | ⊥ | ⊤ |
| ⊥ | ⊥ | ⊤ | ⊤ |
| ⊥ | ⊤ | ⊥ | ⊥ |
| ⊥ | ⊤ | ⊤ | ⊤ |
| ⊤ | ⊥ | ⊥ | ⊥ |
| ⊤ | ⊥ | ⊤ | ⊤ |
| ⊤ | ⊤ | ⊥ | ⊥ |
| ⊤ | ⊤ | ⊤ | ⊤ |
一般的なパターンとショートカット
これらのパターンを認識することで、真理値表の構築と分析を加速できます:
- ANDと偽を含む任意の式は常に偽(零化)
- ORと真を含む任意の式は常に真(零化)
- P ∧ P = PおよびP ∨ P = P(冪等性)
- P ∧ ¬Pは常に偽(矛盾)
- P ∨ ¬Pは常に真(トートロジー - 排中律)
- ¬(¬P) = P(二重否定)
練習問題
これらの演習で理解度をテストしてください:
- (A ∨ B) ∧ (¬A ∨ C)の真理値表を構築してください
- (A → B) → CがA → (B → C)と等価かどうかを判定してください
- (A ∧ B) ∨ (A ∧ ¬B)がAに簡約化されることを示してください
- ド・モルガンの法則を検証してください:¬(A ∨ B) ≡ (¬A ∧ ¬B)