離散数学ブール代数

落合 秀也

前回の復習： 命題計算
• キーワード• 文、複合文、結合子、命題、恒真、矛盾、論理同値、条
件文、重条件文、論法、論理含意• 記号• P(p,q,r, …), ∨, ∧, ￢, →, ↔, ⊢, ⇒2

今日のテーマ： ブール代数• ブール代数• ブール代数と束、そして、順序• 加法標準形 と カルノー図

3

今日のテーマ： ブール代数• ブール代数• ブール代数と束、そして、順序• 加法標準形 と カルノー図

4

ブール代数の法則 (公理)
< B, +, *, ’, 0, 1 >• 交換律
1a. a+b= b+a

1b. a*b=b*a• 分配律
2a. a+(b*c)=(a+b)*(a+c)

2b. a*(b+c)=(a*b)+(a*c)• 同一律
3a. a+0=a3b. a*1=a• 補元律
4a. a+a’=14b. a*a’=05

ブール代数の演算、要素•+和•*
積• a’aの補元•0
最小元, 零元•1最大元, 単位元
6

演算の優先順序’ > * > +(*) ただし、括弧内の演算の方がさらに優先される• 例1： a+b’*c は、 a+((b’)*c)である• (a+b)’*c ではない
• (a+b’)*c ではない

• 例2： a’+b*c’ は、 (a’)+(b*(c’))である• a’+(b*c)’ ではない
• (a’+b)*c’ ではない
• ((a’+b)*c)’ ではない

7

ブール代数の例1:• Bを2つの要素からなる集合{0,1} とし、以下で、定められる、2項演算+, * と単項演算’ を持つとする• 演算 +0+0 = 0,

0+1 = 1,

1+0 = 1,1+1 = 10*1 = 0,1*0 = 0,1*1 = 1• 演算 *0*0 = 0,

• 演算 ’0’ = 1,1’=0

このとき、Bはブール代数である。
8

ブール代数の例2:• Cを和集合、積集合、補集合を取る各演算で閉じている集合の集まり（=類）とする。
• Φを最小元、全体集合Uを最大元とすると、Cはブール代数となる。

（確認） ブール代数 <C, ∪, ∩, c, Φ, U> においてa, b, c ∈ Cとすると、• 交換律 a+b= b+a ・・・ a∪b=b∪a• 分配律 a+(b*c)=(a+b)*(a+c) ・・・ a∪(b∩c)=(a∪b)∩(a∪c)• 同一律 a+0=a ・・・ a∪Φ=a, a*1=a ・・・ a∩U=a• 補元律 a+a’=1 ・・・ a∪ac=U, a*a’=0 ・・・ a∩ac=Φは成立している。

9ブール代数の法則 (定理)
(公理から次を導出可能)• べき等律5a. a+a=a5b. a*a=a• 有界律
6a. a+1=16b. a*0=0• 吸収律
7a. a+a*b=a

7b. a*(a+b)=a• 結合律
8a. (a+b)+c=a+(b+c)

8b. (a*b)*c=a*(b*c)
10ブール代数の法則 (定理)
(公理から次を導出可能)• 対合律
8. (a’)’ =a• 補元律 (2)9a. 0’ =1

9b. 1’=0• ド・モルガンの法則
10a. (a+b)’=a’ * b’

10b. (a*b)’ =a’+b’11

練習： 補元の一意性
a+x=1 かつ a*x=0 ならば x=a’ である証明)

同一律

同一律

x=x+0
補元律
=x+(a*a’) 分配律=(x+a)*(x+a’)=1*(x+a’) 仮定から
=x+a’ 同一律

a’=a’+0
仮定から=a’+(a*x)
分配律=(a’+a)*(a’+x)=1*(a’+x) 補元律=a’+x 同一律

x=x+a’

a’+x=a’
x=x+a’=a’+x =a’

交換律
12今日のテーマ： ブール代数• ブール代数• ブール代数と束、そして、順序• 加法標準形 と カルノー図

13

ブール代数<B, +, *, ’, 0,1>は束<B, +, * >である
• Bがブール代数であれば、以下の性質を持つ。

• 交換律
1a. a+b= b+a1b. a*b=b*a• 結合律
8a. (a+b)+c=a+(b+c)

8b. (a*b)*c=a*(b*c)• 吸収律
7a. a+a*b=a

これは束に他ならない。

7b. a*(a+b)=a14

復習：束(Lattice)の代数的な定義• 集合Lを、 交わり(meet)、結び(join)と呼ぶ、2項演算子∧ と ∨のもとで閉じている、空でない集合とする。
このとき、Lが束であるのは、∀a, b, c ∈ L に対して、• 交換律(1a) a∧b = b∧a(1b) a∨b = b∨a• 結合律(2a) (a∧b)∧c = a∧(b∧c)(2b) (a∨b)∨c = a∨(b∨c)• 吸収律(3a) a∧(a∨b) = a(3b) a∨(a∧b) = aが成り立つときである（そして、これを束の公理とする）。
• 束Lのことを、(L, ∧,∨)と表すことがある。

15

ブール代数は有界な束(∀a ∈B, 0 ≲ a ≲ 1)
• Bは束である、と

6a. a+1=16b. a*0=0 （有界律）が成り立つ、から、

ちょっとここで、束の上の順序

a+1=1 は、a≲1a+b=b ならば a≲b6b’. 0*a=0 は、0≲aである、と言える。

a*b=a ならば a≲b6a.

• 0を最小元、1を最大元と呼ぶ理由は、上記にある。
16

復習： 束の上の順序• 束Lに対しては、
a+b=b ならば a≲ba∨b = b ならば a≲bという順序を定義することができる。
• これは束Lに対しては、a*b=a ならば a≲ba∧b = a ならば a≲bという順序を定義することができる。と言い換えてもよい(ことは示した)17

ブール代数 = 束, 有界, 分配, 相補• 交換律 : a+b= b+a• 結合律 : (a+b)+c=a+(b+c)• 吸収律 : a+a*b=a• 有界律 : a+1 =1• 分配律 : a+(b*c)=(a+b)*(a+c)• 補元律 : a+a’=1束であるための条件(*) 双対の関係にある法則は省略する• 上記の性質を満たす束を、特にブール束と呼ぶ
18

ブール代数の半順序• ブール代数において、以下の各式は同値である：(1) a+b=b, (2) a*b=a(3) a’+b=1, (4) a*b’=0
これらは、すべて、a ≲ bであることを意味している。

(1), (2) の同値関係は、束であれば明らか(3日目の講義で説明済み)。
(1), (2)に、有界律、分配律、補元律を適用すれば、(3), (4)が同値関係にあることを示せる。
19

練習:
a+b=b と a’+b=1 が同値であることを証明せよ
1. a+b=bであると仮定する
このとき、a’+b=a’+(a+b)=(a’+a)+b=1+b=1である。

2. a’+b=1であると仮定する
このとき、
a+b=1*(a+b)=(a’+b)*(a+b)=(a’*a)+b=0+b=bである。

以上から、 a+b=b と a’+b=1は同値である
20

例： 命題計算の含意 (P⇒Q)
によって作られる順序• 命題計算のブール代数を考える。
• 選言∨、連言∧、否定￢の各演算で閉じている命題の集まりを考え、Fを零元、Tを単位元とすると、これはブール代数となる。

• PがQを含むとは、Pが真であればQが真であることであり、P⇒Qと書くが、これは、

P∨Q=Q

a+b=b は a≲bである。
これは、つまり、 P ≲ Q であることを意味している。
21

今日のテーマ： ブール代数• ブール代数• ブール代数と束、そして、順序• 加法標準形 と カルノー図22

加法標準形 (2変数の場合)• ブール代数において、変数x, yによって作られるブール式E(x,y)は、変数x, yおよびその補元で作られる積の和、つまり、

E(x,y)=axy+bx’y+cxy’+dx’y’(ただし、a, b, c, d は 0 または 1 の定数)で表現可能である
なお、ここでは、x*y を xy と表現している(*は省略)。
• a, b, c, dは0か1の定数であるが、通常は、0であればその項は表記せず、1のときにその項を表記する。
• 上記の表現を(完全)加法標準形と呼ぶ。
23

練習(確認のため)• E(x,y)=xyx+y を加法標準形で表せ•解E(x,y)=xyx+y=xxy+y=xy+(x+x’)y=xy+xy+x’y=xy+x’y
よって、E(x,y)= xy+x’y24

加法標準形 と 論理回路
加法標準形のブール式

E(x,y)=xy+x’y+xy’+x’y’は、以下の論理回路で実装できる
xxyyx’yE(x,y)=xy+x’y+xy’+x’y’
xy’x’y’
任意のブール式を加法標準形で表現できる事実は、任意のブール式を上記形式の論理回路に実装できることを意味する。

25

リテラル、基本積、加法標準形• リテラル• 変数 または 補変数のこと• 例: x, y, z, x’, y’, z’• 基本積• リテラル自身または2つ以上のリテラルの積• ただし同じ変数を含まない• 例: xy, xy’, xz, y’zw
• 基本積ではないもの ・・・ xx’yz, xyzx

• （完全）加法標準形• 基本積の和で表現されたブール式で、各基本積が変数をすべて含んでいるもの。
26

カルノー図による表現
例： E(x,y) = xy’ + x’y’ の表現
xyyxy’✔
またはx’✔

式に含まれている基本積に✔をつける

xy’

✔

x’y’

✔

x’y
隣接している27(ちょうど一つのリテラルが異なる)

ブール式の簡略化
E(x,y) = xy’ + x’y’ のようにブール式が与えられた場合：
E(x,y)=xy’+x’y’ = (x+x’)y’ = y’ と、まとめる演算を行うことで、より簡易に表現することができる。

yxx’y’✔
✔

カルノー図を描き、隣接して✔がある正方形をグループ化することで、視覚的に発見できる。
カルノー図から式を起こすことも可能

y’

E(x,y)=y’28E(x,y)=xy+xy’+x’y’の場合• カルノー図で次のように表現できる

xx’yy’✔

✔
✔

• 従って、E(x,y) = x + y’ と簡略化できる。
29

応用: 3変数の場合• 加法標準形で表現された以下のブール式E(x,y,z)の簡略化を試みる

E(x,y,z) = xyz + xyz’+xy’z+x’yz+x’y’z+xy’z’+x’y’z’

xyzz’

✔

✔

xy’ ✔ ✔
x’y’ ✔ ✔
x’y ✔

カルノー図を描いてみると左図のようになる。
従って、

E(x,y,z) = x + y’ + z30

簡略化前後での回路の違い
E(x,y,z) = xyz + xyz’+xy’z+x’yz+x’y’z+xy’z’+x’y’z’xyzy

簡略化後

xz

E(x,y,z)=x+y’+z31

問題： 7セグメントLEDドライブ回路
x,y,z,w をそれぞれブール代数の変数とする。
いま、xをビット0、yをビット1、zをビット2、wをビット3を表すこととし、その状態に応じ、7セグメントLEDを以下のように点灯させたい、とする。
このときに、セグメントgへの出力を(完全)加法標準形で表せ。
そして、カルノー図を用いて簡略化し、(余力があれば)論理回路に実装せよ。
例: (w, z, y, x) = (0,1,0,1) は 5 を意味する。この場合、セグメントgは、1である。

引用： http://lecture.ecc.u-tokyo.ac.jp/johzu/joho/Y2008/SevenSegmentsLED/SevenSegmentsLED/sevenSegmentsLED.bmp32

解答 (1/2)• 求める出力をYg(w,z,y,x)とする。
Yg(0,0,0,0)=0, Yg(0,0,0,1)=0, Yg(0,0,1,0)=1,Yg(0,0,1,1)=1, Yg(0,1,0,0)=1, Yg(0,1,0,1)=1, …などであるから、Yg(w,z,y,x)=x’yz’w’+xyz’w’+x’y’zw’+xy’zw’+x’yzw’+x’y’z’w+xy’z’w+x’yz’w+xyz’w+x’y’zw+xy’zw+x’yzw+xyzwとなる・・・ これが加法標準形である
33

解答 (2/2)• Yg(w,z,y,x)をカルノー図で表現すると以下の通り

zw zw’ z’w’ z’wxy✔

✔

✔

xy’ ✔ ✔

✔

x’y’ ✔ ✔

✔

x’y✔

✔

✔

✔

従って、Yg(w,z,y,x)=w+x’y+y’z+xyz’
論理回路はxyzYgw34