【定义】给定代数系统
<
B
,
∗
,
⊕
>
\big<B,*,\oplus\big>
⟨B,∗,⊕⟩,其中
∗
,
⊕
*,\oplus
∗,⊕ 是定义在
B
B
B 上的二元运算,如果对于任意的
a
,
b
,
c
∈
B
a,b,c\in B
a,b,c∈B,都有下面四条性质成立:
a
∗
b
=
b
∗
a
;
a
⊕
b
=
b
⊕
a
a*b=b*a~;~a\oplus b=b\oplus a
a∗b=b∗a ; a⊕b=b⊕a
a
∗
(
b
⊕
c
)
=
(
a
⊕
b
)
∗
(
a
⊕
c
)
;
a
⊕
(
b
∗
c
)
=
(
a
∗
b
)
⊕
(
a
∗
c
)
a*(b\oplus c)=(a\oplus b)*(a\oplus c)~;~a\oplus(b*c)=(a*b)\oplus(a*c)
a∗(b⊕c)=(a⊕b)∗(a⊕c) ; a⊕(b∗c)=(a∗b)⊕(a∗c)
a
∗
1
=
1
;
a
⊕
0
=
a
a*1=1~;~a\oplus0=a
a∗1=1 ; a⊕0=a
∃
a
′
∈
B
,
a
∗
a
′
=
0
;
a
⊕
a
′
=
1
\exist~a'\in B,a*a'=0~;~a\oplus a'=1
∃ a′∈B,a∗a′=0 ; a⊕a′=1那么我们称代数系统
<
B
,
∗
,
⊕
>
\big<B,*,\oplus\big>
⟨B,∗,⊕⟩ 为布尔代数.
【例】给定非空集合
S
S
S,
ρ
(
S
)
\rho(S)
ρ(S) 为其幂集,那么代数
<
ρ
(
S
)
,
⋂
,
⋃
,
¬
,
Φ
,
S
>
\big<\rho(S),\bigcap,\bigcup,\neg,\Phi,S\big>
⟨ρ(S),⋂,⋃,¬,Φ,S⟩ 能够满足布尔代数的定义,基于其特殊性,我们将其命名为集合代数。根据集合与其幂集之间的关系,我们知道如果
∣
S
∣
=
N
\big|S\big|=N
∣∣S∣∣=N,那么
∣
ρ
(
S
)
∣
=
2
N
.
\big|\rho(S)\big|=2^N.
∣∣ρ(S)∣∣=2N. 下图是集合势分别为
1
,
2
,
3
1,2,3
1,2,3 时上述布尔代数的哈斯图,其偏序关系为
⊆
.
\subseteq.
⊆.
稍后我们会看到上述布尔代数对于有限布尔代数的重要意义。
子布尔代数.
布尔代数作为代数系统,可以使用《代数系统》中的抽象代数研究方法进行更多性质的发现,例如给定布尔代数
<
B
,
∗
,
⊕
,
′
,
0
,
1
>
\big<B,*,\oplus,',0,1\big>
⟨B,∗,⊕,′,0,1⟩,如果
S
⊆
B
S\subseteq B
S⊆B、对于运算
∗
,
⊕
,
′
*,\oplus,'
∗,⊕,′ 封闭并且
0
,
1
∈
S
0,1\in S
0,1∈S,那么我们称代数
<
S
,
∗
,
⊕
,
′
,
0
,
1
>
\big<S,*,\oplus,',0,1\big>
⟨S,∗,⊕,′,0,1⟩ 是
<
B
,
∗
,
⊕
,
′
,
0
,
1
>
\big<B,*,\oplus,',0,1\big>
⟨B,∗,⊕,′,0,1⟩ 的子布尔代数.
实际检测子集
S
S
S 对应的代数系统是否为子布尔代数,只需要验证该子集关于运算
{
∗
,
′
}
\{*,'\}
{∗,′} 或
{
⊕
,
′
}
\{\oplus,'\}
{⊕,′} 是否封闭即可。
因为:
a
⊕
b
=
(
a
′
∗
b
′
)
′
a\oplus b = \big(a'*b'\big)'
a⊕b=(a′∗b′)′
a
∗
a
′
=
0
;
(
a
∗
a
′
)
′
=
1
a*a'=0~;~\big(a*a'\big)'=1
a∗a′=0 ; (a∗a′)′=1以
{
∗
,
′
}
\{*,'\}
{∗,′} 封闭为例,
∀
a
,
b
∈
S
\forall~a,b\in S
∀ a,b∈S,则有:
a
′
,
b
′
∈
S
a',b'\in S
a′,b′∈S
a
∗
a
′
=
0
∈
S
;
(
a
∗
a
′
)
′
=
1
∈
S
a*a'=0\in S~;~\big(a*a'\big)'=1\in S
a∗a′=0∈S ; (a∗a′)′=1∈S
(
a
′
∗
b
′
)
′
=
(
a
⊕
b
)
∈
S
\big(a'*b'\big)'=\big(a\oplus b\big)\in S
(a′∗b′)′=(a⊕b)∈S即由
S
S
S 关于
{
∗
,
′
}
\{*,'\}
{∗,′} 封闭能够推导出它关于
⊕
\oplus
⊕ 封闭,并且
0
,
1
∈
S
.
0,1\in S.
0,1∈S.
给定两个布尔代数:
<
A
,
∗
,
⊕
,
′
,
0
,
1
>
,
<
B
,
⋂
,
⋃
,
¬
,
α
,
β
>
\big<A,*,\oplus,',0,1\big>,\big<B,\bigcap,\bigcup,\neg,\alpha,\beta\big>
⟨A,∗,⊕,′,0,1⟩,⟨B,⋂,⋃,¬,α,β⟩,如果存在映射
f
:
A
→
B
f:A\rightarrow B
f:A→B 对
∀
a
,
b
∈
A
\forall~a,b\in A
∀ a,b∈A 满足:
f
(
a
∗
b
)
=
f
(
a
)
⋂
f
(
b
)
f(a*b)=f(a)\bigcap f(b)
f(a∗b)=f(a)⋂f(b)
f
(
a
⊕
b
)
=
f
(
a
)
⋃
f
(
b
)
f\big(a\oplus b\big)=f(a)\bigcup f(b)
f(a⊕b)=f(a)⋃f(b)
f
(
a
′
)
=
¬
f
(
a
)
f(a')=\neg f(a)
f(a′)=¬f(a)
f
(
0
)
=
α
;
f
(
1
)
=
β
f(0)=\alpha~;~f(1)=\beta
f(0)=α ; f(1)=β那么称映射
f
:
A
→
B
f:A\rightarrow B
f:A→B 是一个布尔同态。
基于德●摩根律,
∗
*
∗ 和
⊕
\oplus
⊕ 能够通过
′
'
′ 相互转化,因此实际只要验证了同态函数关于
{
∗
,
′
}
\{*,'\}
{∗,′} 或
{
⊕
,
′
}
\{\oplus ,'\}
{⊕,′} 的性质即可验证前三条。如果函数
h
h
h 只能保持运算
∗
,
⊕
*,\oplus
∗,⊕,那么根据在《格:偏序格与代数格》中所定义的,
h
h
h 是一个格同态,它不一定能够满足
f
(
0
)
=
α
,
f
(
1
)
=
β
f(0)=\alpha,f(1)=\beta
f(0)=α,f(1)=β,但由于格同态是保序的:
∀
a
,
b
∈
A
,
(
a
≤
b
)
⇒
(
f
(
a
)
≤
′
f
(
b
)
)
\forall~a,b\in A,(a\leq b)\Rightarrow\big(f(a)\leq' f(b)\big)
∀ a,b∈A,(a≤b)⇒(f(a)≤′f(b))因此原布尔代数中的上下界被映射到同态象
f
(
A
)
f(A)
f(A) 中的上下界 ——
f
(
0
)
,
f
(
1
)
f(0),f(1)
f(0),f(1),如果根据
f
(
0
)
,
f
(
1
)
f(0),f(1)
f(0),f(1) 定义补运算
¬
\neg
¬,那么代数系统
<
f
(
A
)
,
⋂
,
⋃
,
¬
,
f
(
0
)
,
f
(
1
)
>
\big<f(A),\bigcap,\bigcup,\neg,f(0),f(1)\big>
⟨f(A),⋂,⋃,¬,f(0),f(1)⟩ 是布尔代数,映射
g
:
A
→
f
(
A
)
g:A\rightarrow f(A)
g:A→f(A) 是一个布尔同态,虽然
f
:
A
→
B
f:A\rightarrow B
f:A→B 不是布尔同态。
根据上述分析,如果格同态映射
f
f
f 为满射函数,即对于
B
B
B 中的任意元素
b
b
b 都存在
a
∈
A
a\in A
a∈A 使得
f
(
a
)
=
b
f(a)=b
f(a)=b,再根据其保序性,那么必然有
f
(
0
)
=
α
,
f
(
1
)
=
β
f(0)=\alpha,f(1)=\beta
f(0)=α,f(1)=β,这一定理被称为满同态定理.中南大学徐德智老师2019离散数学授课教案中图示如下:
原子表示.
原子表示针对有限布尔代数而言,即其载体
B
B
B 是有限集合。有限布尔代数的一个重要性质如下:任意有限布尔代数
<
B
,
∗
,
⊕
,
′
,
0
,
1
>
\big<B,*,\oplus,',0,1\big>
⟨B,∗,⊕,′,0,1⟩ 同构于某一集合代数
<
ρ
(
S
)
,
⋂
,
⋃
.
¬
,
Φ
,
S
>
.
\big<\rho(S),\bigcap,\bigcup.\neg,\Phi,S\big>.
⟨ρ(S),⋂,⋃.¬,Φ,S⟩.
这一性质在前面讨论二元素布尔代数与集合代数,以及积代数
A
2
n
A_2^n
A2n 时已经初见端倪,现对其进行形式化表述。
【覆盖】设
a
,
b
a,b
a,b 是格中的两个元素,如果
b
≤
a
b\leq a
b≤a 且
b
≠
a
b\neq a
b=a,并且不存在元素
x
x
x 满足
b
<
x
<
a
b<x<a
b<x<a,那么称元素
a
a
a 覆盖元素
b
.
b.
b.
【原子】给定布尔代数
<
B
,
∗
,
⊕
,
′
,
0
,
1
>
\big<B,*,\oplus,',0,1\big>
⟨B,∗,⊕,′,0,1⟩。如果
a
∈
B
a\in B
a∈B 满足
a
a
a 覆盖
0
0
0,那么称元素
a
a
a 是该布尔代数的一个原子.
【充要条件】元素
a
a
a 是布尔代数的原子,当且仅当在
a
≠
0
a\neq 0
a=0 时(这是显然的),对于任意的
x
∈
B
x\in B
x∈B 有:
(
x
∗
a
=
a
)
∨
(
x
∗
a
=
0
)
\big(x*a=a\big)\vee\big(x*a=0\big)
(x∗a=a)∨(x∗a=0)
【证明】充分性: 因为
a
a
a 是原子,所以
(
0
≤
a
)
∧
(
a
≠
0
)
(0\leq a)\wedge(a\neq0)
(0≤a)∧(a=0),并且
0
,
a
0,a
0,a 之间没有元素,又因为
x
∗
a
≤
a
x*a\leq a
x∗a≤a,所以
(
x
∗
a
=
a
)
∨
(
x
∗
a
=
0
)
.
\big(x*a=a\big)\vee\big(x*a=0\big).
(x∗a=a)∨(x∗a=0).
必要性: 假设满足
(
x
∗
a
=
a
)
∨
(
x
∗
a
=
0
)
,
a
≠
0
\big(x*a=a\big)\vee\big(x*a=0\big),a\neq 0
(x∗a=a)∨(x∗a=0),a=0 时
a
a
a 不是原子,那么存在一个元素
x
x
x 满足
0
<
x
<
a
0<x<a
0<x<a,所以
x
∗
a
=
x
≠
a
≠
0
x*a=x\neq a\neq 0
x∗a=x=a=0,矛盾出现,因此
a
a
a 是原子。
基于上述充要条件可以得出推论:对于任意
x
∈
B
x\in B
x∈B,
a
≤
x
a\leq x
a≤x 和
a
≤
x
′
a\leq x'
a≤x′ 有且仅有一个能成立。这是因为:
(
x
∗
a
=
a
)
⇔
(
a
≤
x
)
(x*a=a)\Leftrightarrow(a\leq x)
(x∗a=a)⇔(a≤x)
(
x
∗
a
=
0
)
⇔
[
(
x
∗
a
)
⊕
x
′
=
x
′
]
⇔
(
a
⊕
x
′
=
x
′
)
⇔
(
a
≤
x
′
)
(x*a=0)\Leftrightarrow\big[(x*a)\oplus x'=x'\big]\Leftrightarrow(a\oplus x'=x')\Leftrightarrow(a\leq x')
(x∗a=0)⇔[(x∗a)⊕x′=x′]⇔(a⊕x′=x′)⇔(a≤x′)
上述推论的意义在于,基于原子
a
a
a 将集合
B
B
B 划分为两块,其中一块中的元素满足
a
≤
x
a\leq x
a≤x(它们与
a
a
a 可比较),另一块中的元素满足
a
≤
x
′
a\leq x'
a≤x′(它们的补元与
a
a
a 可比较). 下面的图中分别以
a
1
a_1
a1 为原子,示意对格中元素的划分:
(
a
)
(a)
(a) 图中仅有两个元素,满足
a
1
≤
a
1
,
a
1
≤
0
′
=
1
a_1\leq a_1,a_1\leq0'=1
a1≤a1,a1≤0′=1;
(
b
)
(b)
(b) 图中有四个元素,满足:
a
1
≤
a
1
,
a
1
≤
1
a_1\leq a_1~,~a_1\leq 1
a1≤a1 , a1≤1
a
1
≤
0
′
=
1
,
a
1
≤
a
2
′
=
a
1
a_1\leq 0'=1~,~a_1\leq a_2'=a_1
a1≤0′=1 , a1≤a2′=a1
(
c
)
(c)
(c) 图中可自行验证。
【保联定理】对于有限布尔代数
<
B
,
∗
,
⊕
,
′
,
0
,
1
>
\big<B,*,\oplus,',0,1\big>
⟨B,∗,⊕,′,0,1⟩ 而言,对于任意非
0
0
0 元素
x
∈
B
x\in B
x∈B,记
a
i
a_i
ai 代表所有满足
a
i
≤
x
a_i\leq x
ai≤x 的原子,那么我们有:
x
=
a
1
⊕
a
2
⊕
⋯
⊕
a
k
(1)
x=a_1\oplus a_2\oplus\cdots\oplus a_k\tag{1}
x=a1⊕a2⊕⋯⊕ak(1)并且表示式
(
1
)
(1)
(1) 是唯一的。
该定理的意义在于说明有限布尔代数中的任意非零元素可以唯一地表示成原子的保联.
【同构定理】给定有限布尔代数
<
B
,
∗
,
⊕
,
′
,
0
,
1
>
\big<B,*,\oplus,',0,1\big>
⟨B,∗,⊕,′,0,1⟩,
S
S
S 是其中所有原子元素构成的集合,那么该布尔代数同构于集合代数
<
ρ
(
S
)
,
⋂
,
⋃
.
¬
,
Φ
,
S
>
.
\big<\rho(S),\bigcap,\bigcup.\neg,\Phi,S\big>.
⟨ρ(S),⋂,⋃.¬,Φ,S⟩. 其同构函数为:
f
:
B
→
ρ
(
S
)
,
f
(
x
)
=
{
Φ
,
x
=
0
{
a
∣
a
∈
S
∧
a
≤
x
}
,
x
≠
0
f:B\rightarrow \rho(S)~,~f(x)=\left\{ \begin{aligned} &\Phi~,~x=0\\ &\{a|a\in S\wedge a\leq x\}~,~x\neq0\\ \end{aligned} \right.
f:B→ρ(S) , f(x)={Φ , x=0{a∣a∈S∧a≤x} , x=0
上述定理的重要的推论有:① 任意布尔代数载体的基数是
2
N
.
2^N.
2N. 这是由集合幂集的基数决定的。
② 元素个数相同(载体基数相同)的布尔代数必定同构. 由于两布尔代数都同构于某个集合代数,可以证明这两个布尔代数同构(实际上同构是等价关系).
布尔函数.
上面的内容都是关于布尔代数
<
B
,
∗
,
⊕
,
′
,
0
,
1
>
\big<B,*,\oplus,',0,1\big>
⟨B,∗,⊕,′,0,1⟩ 的,现考虑从集合
B
n
B^n
Bn 映射到集合
B
B
B 的函数。设
B
=
{
0
,
1
}
B=\{0,1\}
B={0,1},下面分别是从
B
1
→
B
B^1\rightarrow B
B1→B 和
B
2
→
B
B^2\rightarrow B
B2→B 的函数:
<
x
1
>
<x_1>
<x1>
f
f
f
0
1
1
0
<
x
1
,
x
2
>
<x_1,x_2>
<x1,x2>
f
f
f
00
0
01
0
11
1
10
0
定义
B
B
B 中的元素称为布尔常元,取值于
B
B
B 的变量称为布尔变元,布尔表达式的定义如下: ① 单个布尔常元、布尔变元是布尔表达式; ② 若
b
1
,
b
2
b_1,b_2
b1,b2 是布尔表达式,那么
(
b
1
)
∗
(
b
2
)
,
(
b
1
)
⊕
(
b
2
)
,
(
b
1
)
′
(b_1)*(b_2),(b_1)\oplus (b_2),(b_1)'
(b1)∗(b2),(b1)⊕(b2),(b1)′ 是布尔表达式; ③ 除有限步应用 ① 和 ② 得到的表达式是布尔表达式以外,没有其它布尔表达式。
【极小项】《数字电子技术》课程中有过,现定义如下:给定
n
n
n 个布尔变元
x
1
,
x
2
,
⋯
,
x
n
x_1,x_2,\cdots,x_n
x1,x2,⋯,xn,极小项表达式如下:
x
1
~
∗
x
2
~
∗
⋯
∗
x
n
~
\tilde{x_1}*\tilde{x_2}*\cdots*\tilde{x_n}
x1~∗x2~∗⋯∗xn~其中
x
i
~
\tilde{x_i}
xi~ 表示
x
i
x_i
xi 或
x
i
′
x_i'
xi′ 两者之一,显然对于上述极小项表达式,共有
2
n
2^n
2n 种不同的极小项,对其编号为
k
∈
[
0
,
2
n
−
1
]
k\in[0,2^n-1]
k∈[0,2n−1],记作
m
k
.
m_k.
mk. 极小项满足以下性质:
m
i
∗
m
j
=
0
,
i
≠
j
m_i*m_j=0~,~i\neq j
mi∗mj=0 , i=j
⊕
k
m
k
=
1
\oplus_k m_k=1
⊕kmk=1
形如
(
A
0
∗
m
0
)
⊕
(
A
1
∗
m
1
)
⊕
⋯
⊕
(
A
2
n
−
1
∗
m
2
n
−
1
)
(A_0*m_0)\oplus(A_1*m_1)\oplus\cdots\oplus(A_{2^n-1}*m_{2^n-1})
(A0∗m0)⊕(A1∗m1)⊕⋯⊕(A2n−1∗m2n−1) 的布尔表达式称为主析取范式,其中
A
i
A_i
Ai 为布尔常元,因为
A
i
A_i
Ai 的取值有
∣
B
∣
\big|B\big|
∣∣B∣∣ 种,上述主析取范式共
2
n
2^n
2n 项,所以主析取范式共有
∣
B
∣
(
2
n
)
\big|B\big|^{(2^n)}
∣∣B∣∣(2n) 个,任何一个
n
n
n 元布尔表达式可以唯一等价到一个主析取范式。
对应地可以定义极大项:
x
1
~
⊕
x
2
~
⊕
⋯
⊕
x
n
~
\tilde{x_1}\oplus\tilde{x_2}\oplus\cdots\oplus\tilde{x_n}
x1~⊕x2~⊕⋯⊕xn~编号为
[
0
,
2
n
−
1
]
[0,2^n-1]
[0,2n−1],记为
M
i
M_i
Mi,极大项满足:
M
i
⊕
M
j
=
1
,
i
≠
1
M_i\oplus M_j=1~,~i\neq 1
Mi⊕Mj=1 , i=1
∗
k
M
k
=
0
*_kM_k=0
∗kMk=0并且极小项与极大项存在下面的关系:
(
m
i
)
′
=
M
i
,
(
M
i
)
′
=
m
i
(m_i)'=M_i~,~(M_i)'=m_i
(mi)′=Mi , (Mi)′=mi对应地可以定义主合取范式。
【布尔函数】一个从
B
n
→
B
B^n\rightarrow B
Bn→B 的函数如果可以用
n
n
n 元布尔表达式表示,那么称之为布尔函数.
由于布尔表达式唯一等价于主析取范式,主析取范式有
∣
B
∣
(
2
n
)
\big|B\big|^{(2^n)}
∣∣B∣∣(2n) 个,而从
B
n
→
B
B^n\rightarrow B
Bn→B 的函数数量如下:
∣
B
∣
(
∣
B
∣
n
)
\big|B\big|^{\big(|B|^n\big)}
∣∣B∣∣(∣B∣n)这一数字推导如下:前域共
∣
B
∣
n
\big|B\big|^n
∣∣B∣∣n 个元素,每个元素的函数值有
∣
B
∣
\big|B\big|
∣∣B∣∣ 种取值。可以发现,当
∣
B
∣
=
2
|B|=2
∣B∣=2,即
B
=
{
0
,
1
}
B=\{0,1\}
B={0,1} 时,所有的函数都是布尔函数;其它情况下的函数不一定都是布尔函数。
使用最多的布尔代数即为上面
B
=
{
0
,
1
}
B=\{0,1\}
B={0,1} 的情况,在这一情况下,给定
n
n
n 个布尔变元,对应
2
n
2^n
2n 个极小项,有
N
=
2
(
2
n
)
N=2^{(2^n)}
N=2(2n) 个主析取范式,将代数系统
<
B
N
,
∗
,
⊕
,
′
,
0
,
1
>
\big<B_N,*,\oplus,',0,1\big>
⟨BN,∗,⊕,′,0,1⟩ 称为由
n
n
n 个布尔变元
x
i
∣
i
=
1
,
2
,
⋯
,
n
x_i|i=1,2,\cdots,n
xi∣i=1,2,⋯,n 生成的*布尔代数.