2001年12月16日 作成 ブール 代数 (その 1) >> 目次 (作成日順)
2007年 2月16日 補遺  



 順序集合 L の メンバー x と y に対して、{x, y} の上限と下限があれば、上限を 「結び (join)」 といい、下限を 「交わり (meet)」 という。「結び」 は 「a ∩ b」 と記述し、「交わり」 は 「a ∩ b」 と記述する。

 命題変数の変域を T (真) と F (偽) の 2値であるとすれば、1つの論理式が走る値域は T と F の 2値である。したがって、真理関数は 2値変数の 2値関数と考えることができる。この命題変数を ブール 変数といい、真理関数を ブール 関数という。

 真理関数を f を使って表現すれば、命題変数 p について、以下の 2つが成立する。

 (1) p が T (真) ならば、f (p) = T [ あるいは、f (p) = 1. ]
 (2) p が F (偽) ならば、f (p) = F [ あるいは、f (p) = 0. ]

 したがって、真理関数 「p ∧ q」 の真偽値は、以下のように、f (p) の真偽値と f (q) の真偽値に対応する真偽値となる。

 f (p) = 1 かつ f (q) = 1 のとき、f (p ∧ q) = 1.
 f (p) = 1 かつ f (q) = 0 のとき、f (p ∧ q) = 0.
 f (p) = 0 かつ f (q) = 1 のとき、f (p ∧ q) = 0.
 f (p) = 0 かつ f (q) = 0 のとき、f (p ∧ q) = 0.

 この関数 f を、式を使って表現すれば、以下の式になる。

   f (p ∧ q) = f (p)・f(q).

 また、¬q の ブール 関数は、f (p) の真偽値と f (¬q) の真偽値を比べれば、以下の式になる。

   f (¬p) = 1 − f (p).

 以下に、様々な ブール 関数の式を記載する [ ただし、f (p) = a, f (q) = b とする。]

 (1) f (¬p) = 1 − f (p) = 1 − a.
 (2) f (p ∧ q) = f (p)・f (q) = ab.
 (3) f (p ∨ q) = f (p) + f (q) − f (p)・f (q) = a + b − ab.
 (4) f (p ⇒ q) = 1 − f (p) + f (p)・f (q) = 1 − a + ab.
 (5) f (p)・f(q) = f (p) a2= a. (*)

 ブール 関数を使えば、真理関数の恒真性を検証することができる。恒真 (常に真となる、という意味) の値を 1 とすれば、真理関数 f (p, q, r,...) が恒真ならば [ φ (A) = 1 の A に f (p, q, r,...) を代入すれば ]、以下のように記述される。

 φ { f (p, q, r,...) } = 1.  [恒偽ならば、φ { f (p, q, r,...)} = 0.]

 たとえば、以下の論理式を、ブール 関数を使って、恒真であることを証明する。

  A ∧ B ⇒ A.

 証明:
 f (A ∧ B ⇒ A) = 1 − f (A ∧ B) + f (A ∧ B)・f (A) = 1 − ab + ab・a = 1 − ab + a2b = 1 − ab + ab = 1.
 したがって、恒真である。

 f (p ∧ q) が f (p)・f (q) になることはわかっても、f (p ∨ q) が f (p) + f (q) − f (p)・f (q) になる 「からくり」 がわかりにくいかもしれない。その ヒント は、ド・モルガン の法則と f (¬p) = 1 − f (p) を使えばよいのだが、自ら、考えてほしい。
 次回は、f (p ∨ q) が f (p) + f (q) − f (p)・f (q) になることを証明する。

 (*) 論理式の演算体系と算術の演算体系は、ほとんど同じになるのだが、「a2 = a」 は、論理式の演算と算術の四則演算の式がちがう典型的な例である。□

 



[ 補遺 ] (2007年 2月16日)

 たぶん、どの学問も そうだと思うのですが、学問体系は、「既知の ものごと」 を起点にして 「未知の ものごと」 を説き明かして、次第に、「既知の ものごと」 を拡大した体系なので、体系のなかで基礎となる知識がなければ、体系のなかの任意の情報を選んで読んでも理解できないでしょうね。そして、この現象は、基礎となる公理から定理を証明して、証明された定理が応用される数学では、なおいっそう、いちじるしいかもしれないですね。

 本 エッセー で示した ブール 代数の考えかたを読んでも、数学上の話であって、ふだんの生活のなかで使う訳ではないし、数学などは、あくまで、「思考力を養う」 ための教養として学習すれば良いと思っている人たちが多いかもしれないけれど、ブール 代数や ド・モルガン の法則は、logic とか モデル を学習するときには、基本知識として学習していなければ、モデル を理解することはできないでしょう。そして、プログラム のなかの演算では、ブール 代数は a must でしょう。ブール 代数を知らないで、モデル を学習することはできないでしょうね。
 本 エッセー を衒学趣味のために綴った訳ではないのです。

 数学では、古代から 19世紀に至るまで、主たる対象は、数と量と図形でした。しかし、負数や虚数や複素数や ベクトル などの概念が導入されてきて、それらの性質が ギリシア 数学流の やりかた では対応できなくなってきました。それらの概念に対応するために、モデル を与える可能性が論じられるようになってきました。そして、感覚的な 「解釈」 を付与されない対象について推論することが正当であるという考えかたが広まって、ブール は、1854年に、「数や量の観念について専念することは、数学の本質ではない」 と言い切っています。かれは、1847年に、演算それ自体は、(その演算が適用される様々な) 対象から独立して取り扱う」 としています。

 さて、本 エッセー では、「f (p ∨ q) が f (p) + f (q) − f (p)・f (q) は、ド・モルガン の法則と f (¬p) = 1 − f (p) を使えばよいのだが、自ら、考えてほしい」 と綴りましたが、以下に証明を示します。

 まず、ド・モルガン の法則を使って、両辺の否定を作ります。

 ¬ (p ∨ q) ≡ ¬p ∧ ¬q ⇒ ¬ { ¬ (p ∨ q) } ≡ ¬ (¬p ∧ q)
 ⇒ p ∨ q ≡ ¬ (¬p ∧ ¬q).

 次に、f (¬p) = 1 − f (p) と f (p ∧ q) = f (p)・f (q) を使います。

 f (p ∨ q) = f { ¬ (¬p ∧ ¬q) } = 1 − f (¬p ∧ ¬q)
 = 1 − f (¬p)・f (¬q) = 1 − { 1 − f (p) }・{ 1 − f (q) }
 = f (p) + f (q) − f (p)・f (q).

 したがって、f (p ∧ q) = f (p) + f (q) − f (p)・f (q).




  << もどる HOME すすむ >>
  ベーシックス