1 論理演算の真理値表
三つの演算は、真理値表によって完全に定まります。
定義 1.1 (論理積・論理和・否定). 命題P、Qに対し、論理積 (conjunction)P∧Q(かつ)、論理和 (disjunction)P∨Q(または)、否定 (negation)¬P(でない)の真理値を次で定める。
| P |
Q |
P∧Q |
P∨Q |
¬P |
| T |
T |
T |
T |
F |
| T |
F |
F |
T |
F |
| F |
T |
F |
T |
T |
| F |
F |
F |
F |
T |
- かつ(∧) は、PとQの両方が真である場合にかぎり真になります。
- または(∨) は、PとQの少なくとも一方が真であれば真になります。
- 否定(¬) は、真理値を入れ替えます。
日常語の「または」は、「コーヒーまたは紅茶をお選びください」のように、どちらか一方だけを選ぶという意味で使われることがあります。数学の「または」に、その意味はありません。両方が成り立つ場合を含めるかどうかで結論が変わる場面では、「少なくとも一方」「ちょうど一方」のように、文章で範囲を明示します。
2 ド・モルガン則
二つの論理式が、含まれる命題の真偽の組合せのすべてについて同じ真理値をとるとき、二つの論理式は同値であるといい、≡で結びます。
定理 2.1 (ド・モルガン則). 任意の命題P、Qについて、次の二つが成り立つ。¬(P∧Q)≡¬P∨¬Q,¬(P∨Q)≡¬P∧¬Q
証明.P、Qの真偽の4通りの組合せについて、各式の真理値は次のようになる。
| P |
Q |
P∧Q |
¬(P∧Q) |
¬P |
¬Q |
¬P∨¬Q |
| T |
T |
T |
F |
F |
F |
F |
| T |
F |
F |
T |
F |
T |
T |
| F |
T |
F |
T |
T |
F |
T |
| F |
F |
F |
T |
T |
T |
T |
¬(P∧Q)と¬P∨¬Qの列は、すべての行で一致する。
| P |
Q |
P∨Q |
¬(P∨Q) |
¬P |
¬Q |
¬P∧¬Q |
| T |
T |
T |
F |
F |
F |
F |
| T |
F |
T |
F |
F |
T |
F |
| F |
T |
T |
F |
T |
F |
F |
| F |
F |
F |
T |
T |
T |
T |
¬(P∨Q)と¬P∧¬Qの列も、すべての行で一致する。二つの表はP、Qの真偽の組合せを尽くしているので、二式とも成り立つ。▨
複合命題全体の否定を各命題の否定へ書き換えるとき、「かつ」と「または」が入れ替わります。
3 分配法則とブール代数
∧を掛け算、∨を足し算に対応させると、数の計算と同じ形の規則が成り立ちます。
どちらの分配法則も、P、Q、Rの真偽の8通りの組合せについて、定義 1.1の真理値表から両辺の真理値を書き出せば確かめることができます。真を1、偽を0とみなして真理値を計算する体系をブール代数と呼びます。
閑話休題:1種類の演算による論理演算の構成 「かつ」「または」「でない」の3種類すべてを、基本の演算として置く必要はありません。ド・モルガン則によってP∨Q≡¬(¬P∧¬Q)が成り立つので、「または」は「かつ」と「でない」から組み立てることができます。したがって、基本の演算は「かつ」と「でない」の2種類で足ります。さらに、1種類の演算でも足ります。「どちらも真ではない」を表す演算(NOR。P↓Q≡¬(P∨Q))を考えると、P↓P≡¬Pとなるので否定を作ることができ、否定を作ることができれば、∧も∨も順に組み立てることができます。NOR という1種類の演算だけで、あらゆる真理値の計算を表すことができます(この事実は1913年にシェファーが示しました。「両方が真ではない」を表す NAND でも同じことができます)。
1種類の演算であらゆる真理値の計算を表すことができるという事実は、回路の設計に用いられています。前の記事の閑話休題で見たとおり、論理演算は電子回路として実装することができます。回路の部品を1種類に統一することができれば、製造と検証のうえで大きな利点があります。実際、1960年代のアポロ宇宙船の誘導コンピュータの論理部分は、NOR 回路を中心とした少数種の集積回路で組み上げられていました。設計者は、信頼することができる少数の部品へ設計を絞りました。
4 例題
次の論理式を、ド・モルガン則・分配則・吸収則を使ってできるだけ簡単な形に簡約せよ。
解法の型否定は内側へ押し込む(∧と∨が入れ替わる)/共通因数をくくり出す/p∨¬pは真、p∧¬pは偽
次の論理式をできるだけ簡単な形に簡約せよ。
例 4.1.
(q∧p)∨(¬q∧p)答p
注意 分配則で p をくくり出すと p∧(q∨¬q)。括弧の中は常に真なので、全体は p と同値。
例 4.2.
p∨(¬p∧r)答p∨r
注意 分配則で (p∨¬p)∧(p∨r)。前半は常に真なので p∨r。
例 4.3.
q∨(¬q∧p)答q∨p
注意 分配則で (q∨¬q)∧(q∨p)。前半は常に真なので q∨p。
例 4.4.
p∧(p∨r)答p
注意 吸収則(∧と∨を入れ替えた双対形)。p が偽なら全体は偽、p が真なら p∨r も真で全体は真。よって p と同値。
例 4.5.
(q∧r)∨(q∧¬r)答q
注意 分配則で q をくくり出すと q∧(r∨¬r)。r∨¬rは常に真なので、全体は q と同値。
例 4.6.
(q∧r)∨(q∧r∧p)答q∧r
注意 X=q∧r とおくと X∨(X∧p) で、吸収則により X。すなわち q∧r。
例 4.7.
p∧(¬p∨r)答p∧r
注意 分配則で (p∧¬p)∨(p∧r)。前半は常に偽なので p∧r。
例 4.8.
(r∧p)∨(¬r∧p)答p
注意 分配則で p をくくり出すと p∧(r∨¬r)。括弧の中は常に真なので、全体は p と同値。
例 4.9.
(r∨q)∧(r∨¬q)∧p答r∧p
注意 前2項は分配則で r∨(q∧¬q)=r。残りと合わせて r∧p。
例 4.10.
¬(p∧¬q)答¬p∨q
注意 ド・モルガン則で¬p∨¬(¬q)、二重否定を外して¬p∨q。(これは p⇒q と同値な形でもある。)
5 演習
次の論理式を、ド・モルガン則・分配則・吸収則を使ってできるだけ簡単な形に簡約せよ。
解法の型否定は内側へ押し込む(∧と∨が入れ替わる)/共通因数をくくり出す/p∨¬pは真、p∧¬pは偽
次の論理式をできるだけ簡単な形に簡約せよ。
問題 5.1.
¬(r∨(p∧¬r))解答.
答¬r∧¬p
注意 まず内側を簡約: r∨(¬r∧p)=r∨p。これを否定してド・モルガン則で¬r∧¬p。▨
問題 5.2.
¬(¬r∨p)解答.
答r∧¬p
注意 ド・モルガン則で否定を内側に押し込むと¬(¬r)∧¬p。二重否定¬(¬r)=r を使って r∧¬p。▨
問題 5.3.
(r∨q)∧(r∨¬q)解答.
答r
注意 分配則(∨側)で r をくくり出すと r∨(q∧¬q)。q∧¬qは常に偽なので、全体は r と同値。▨
問題 5.4.
¬(p∨q)∨(¬p∧q)解答.
答¬p
注意 ド・モルガン則で第1項は¬p∧¬q。すると(¬p∧¬q)∨(¬p∧q)=¬p∧(¬q∨q)=¬p。▨
問題 5.5.
¬(¬q∨r)解答.
答q∧¬r
注意 ド・モルガン則で否定を内側に押し込むと¬(¬q)∧¬r。二重否定¬(¬q)=q を使って q∧¬r。▨
問題 5.6.
(q∨p)∧(q∨¬p)∧r解答.
答q∧r
注意 前2項は分配則で q∨(p∧¬p)=q。残りと合わせて q∧r。▨
問題 5.7.
(q∧p)∨(q∧p∧r)解答.
答q∧p
注意 X=q∧p とおくと X∨(X∧r) で、吸収則により X。すなわち q∧p。▨
問題 5.8.
(p∧r)∨(p∧¬r)解答.
答p
注意 分配則で p をくくり出すと p∧(r∨¬r)。r∨¬rは常に真なので、全体は p と同値。▨
問題 5.9.
¬(p∧¬r)解答.
答¬p∨r
注意 ド・モルガン則で¬p∨¬(¬r)、二重否定を外して¬p∨r。(これは p⇒r と同値な形でもある。)▨
問題 5.10.
(q∨p)∧(q∨¬p)解答.
答q
注意 分配則(∨側)で q をくくり出すと q∨(p∧¬p)。p∧¬pは常に偽なので、全体は q と同値。▨
問題 5.11.
q∨(q∧p)解答.
答q
注意 吸収則。q が真なら全体は真、q が偽なら q∧p も偽で全体は偽。結局この式の真偽は q だけで決まる。▨
問題 5.12.
p∧(¬p∨r)解答.
答p∧r
注意 分配則で (p∧¬p)∨(p∧r)。前半は常に偽なので p∧r。▨
問題 5.13.
¬(q∧¬r)解答.
答¬q∨r
注意 ド・モルガン則で¬q∨¬(¬r)、二重否定を外して¬q∨r。(これは q⇒r と同値な形でもある。)▨
問題 5.14.
r∧(r∨q)解答.
答r
注意 吸収則(∧と∨を入れ替えた双対形)。r が偽なら全体は偽、r が真なら r∨q も真で全体は真。よって r と同値。▨
問題 5.15.
¬(p∧q)∧p解答.
答p∧¬q
注意 ド・モルガン則で(¬p∨¬q)∧p。分配則で(¬p∧p)∨(¬q∧p)。前半は常に偽なので p∧¬q。▨