De Morgan’s laws ドモルガンの法則

Decrypt history, Encrypt future™

De Morgan’s laws ドモルガンの法則

オーガスタス・ド・モルガン(Augustus De Morgan)が定式化したDe Morgan’s lawsドモルガンの法則は、集合論や論理学において「否定(NOT)」が「かつ(AND)」や「または(OR)」とどのように作用するかを説明する論理です。

1. 法則の2つの形

数式(論理記号)で表すと以下のようになります。

① 「A かつ B」の否定

「AとBの両方が成り立つ」という状態を否定すると、「Aがダメ、またはBがダメ(あるいは両方ダメ)」ということになります。

$$\neg (A \land B) \iff (\neg A) \lor (\neg B)$$

例: 「このケーキはおいしくて(A)、かつ安い(B)」の否定は、

おいしくない($\neg A$)、または安くない($\neg B$)」である。

② 「A または B」の否定

「AかBの少なくとも一方が成り立つ」という状態を否定すると、「AもBも両方ダメ」ということになります。

$$\neg (A \lor B) \iff (\neg A) \land (\neg B)$$

例: 「犯人は男(A)、または女(B)である」の否定は、 「男ではない(¬A)、かつ女でもない(¬B)」である。

2. ベン図による視覚化

集合で考えると、この法則の正しさが一目でわかります。

  • 左辺: AとBが重なった部分(共通部分)以外をすべて塗りつぶす。
  • 右辺: Aの外側とBの外側を合わせた範囲(和集合)を塗りつぶす。結果として、どちらも同じ範囲を指し示すことになります。

3. なぜこの法則が重要なのか

ド・モルガンの法則は、複雑な論理をシンプルに整理するための「翻訳機」のような役割を果たします。

  • プログラミング: if (!(a && b)) という複雑な条件分岐を、if (!a || !b) と書き換えて読みやすくしたり、バグを減らしたりするのに必須です。
  • 電子回路: 論理ゲート(NANDやNORなど)を設計する際、部品の数を減らして効率化するためにこの法則が使われます。
  • 思考の整理: 相手の主張の「否定」が何を意味するのかを正確に捉える、論理的思考の基礎となります。

まとめ:覚え方のコツ

「否定」を入れるとき、「かつ(∧)」と「または(∨)」の向きがひっくり返る、と覚えるのがシンプルです。