布尔代数是一个集合 a,提供了两个二元运算 <math>land</math> (逻辑与)、<math>lor</math> (逻辑或),一个一元运算 <math>lnot</math> / ~ (逻辑非)和两个元素 0(逻辑假)和 1(逻辑真),此外,对于集合 a 的所有元素 a、b 和 c,下列公理成立:
<math> a lor (b lor c) = (a lor b) lor c </math><math> a land (b land c) = (a land b) land c </math>结合律
<math> a lor b = b lor a </math><math> a land b = b land a </math>交换律
<math> a lor (a land b) = a </math><math> a land (a lor b) = a </math>吸收律
<math> a lor (b land c) = (a lor b) land (a lor c) </math><math> a land (b lor c) = (a land b) lor (a land c) </math>分配律
<math> a lor lnot a = 1 </math><math> a land lnot a = 0 </math>互补律
上面的前三对公理: 结合律、交换律和吸收律,意味着 (a, <math>land</math>, <math>lor</math>) 是一个格。所以布尔代数也可以定义为一个分配的有补格。
从这些公理,你可以展示出最小元素 0、最大元素 1 和任何元素 a 的补 ¬a 都是唯一确定的。对于 a 中的所有的 a 和 b,下列恒等式也成立:
<math> a lor a = a</math><math> a land a = a </math>幂等律
<math> a lor 0 = a </math><math> a land 1 = a </math>有界律
<math> a lor 1 = 1 </math><math> a land 0 = 0 </math>
<math> lnot 0 = 1 </math><math> lnot 1 = 0 </math>0 和 1 是互补的
<math> lnot (a lor b) = lnot a land lnot b</math><math> lnot (a land b) = lnot a lor lnot b</math>de morgan 定律
<math> lnot lnot a = a </math> 对合律
例子
最简单的布尔代数只有两个元素 0 和 1,并通过如下规则定义:
∧01
000
101
∨01
001
111
它应用于逻辑中,解释 0 为假,1 为真,∧ 为与,∨ 为或,¬ 为非。 涉及变量和布尔运算的表达式代表了陈述形式,两个这样的表达式可以使用上面的公理证实为等价的,当且仅当对应的陈述形式是逻辑等价的。
两元素的布尔代数也是在电子工程中用于电路设计;这里的 0 和 1 代表数字电路中一个位的两种不同状态,典型的是高和低电压。电路通过包含变量的表达式来描述,两个这种表达式对这些变量的所有的值是等价的,当且仅当对应的电路有相同的输入-输出行为。此外,所有可能的输入-输出行为都可以使用合适的布尔表达式来建摸。
两元素布尔代数在布尔代数的一般理论中也是重要的,因为涉及多个变量的等式是在所有布尔代数中普遍真实的,当且仅当它在两个元素的布尔代数中是真实的(这总是可以通过平凡的蛮力算法证实)。比如证实下列定律(合意(consensus)定理)在所有布尔代数中是普遍有效的:
(a ∨ b) ∧ (¬a ∨ c) ∧ (b ∨ c) ≡ (a ∨ b) ∧ (¬a ∨ c)
(a ∧ b) ∨ (¬a ∧ c) ∨ (b ∧ c) ≡ (a ∧ b) ∨ (¬a ∧ c)
任何给定集合 s 的幂集(子集的集合)形成有两个运算 ∨ := ∪ (并)和 ∧ := ∩ (交)的布尔代数。最小的元素 0 是空集而最大元素 1 是集合 s 自身。
有限的或者 cofinite 的集合 s 的所有子集的集合是布尔代数。
对于任何自然数 n,n 的所有正约数的集合形成一个分配格,如果我们对 a | b 写 a ≤ b。这个格是布尔代数当且仅当 n 是无平方因子的。这个布尔代数的最小的元素 0 是自然数 1;这个布尔代数的最大元素 1 是自然数 n。
布尔代数的另一个例子来自拓扑空间: 如果 x 是一个拓扑空间,它既是开放的又是闭合的,x 的所有子集的搜集形成有两个运算 ∨ := ∪ (并)和 ∧ := ∩ (交)的布尔代数。
如果 r 是一个任意的环,并且我们定义中心幂等元(central idempotent)的集合为
a = { e ∈ r : e2 = e, ex = xe, ∀x ∈ r }
则集合 a 成为有两个运算 e ∨ f := e + f + ef 和 e ∧ f := ef 的布尔代数。
序理论的性质
image:hasse diagram of powerset of 3.png
子集的布尔格同任何格一样,布尔代数 (a, <math>land</math>, <math>lor</math>) 可以引出偏序集 (a, ≤),通过定义
a ≤ b 当且仅当 a = a <math>land</math> b (它也等价于 b = a <math>lor</math> b)。
事实上你还可以把布尔代数定义为有最小元素 0 和最大元素 1 的分配格 (a, ≤) (考虑为偏序集合),在其中所有的元素 x 都有补 ¬x 满足
x <math>land</math> ¬x = 0 并且 x <math>lor</math> ¬x = 1
这里的 <math>land</math> 和 <math>lor</math> 用来指示两个元素的下确界(交)和上确界(并)。还有,如果上述意义上的补存在,则它们是可唯一确定的。
代数的和序理论的观点通常可以交替的使用,并且二者都是有重要用处的,可从泛代数和序理论引入结果和概念。在很多实际例子中次序关系、合取(逻辑与)、析取(逻辑或)和否定(逻辑非)都是自然的可获得的,所以可直接利用这种联系。
在布尔代数 a 和 b 之间的同态是一个函数 f : a → b,对于在 a 中所有的 a, b 都有:
f(a <math>lor</math> b) = f(a) <math>lor</math> f(b)
f(a <math>land</math> b) = f(a) <math>land</math> f(b)
f(0) = 0
f(1) = 1
接着对于在 a 中所有的 a,f(¬a) = ¬f(a) 同样成立。所有布尔代数的类,和与之在一起的态射(morphism)的概念,形成了一个范畴。从 a 到 b 的同构是双射的从 a 到 b 的同态。同态的逆也是同态,我们称两个布尔代数 a 和 b 为同态的。从布尔代数理论的立场上,它们是不能区分的;它们只在它们的元素的符号上有所不同。
布尔的环、理想和滤子
每个布尔代数 (a, <math>land</math>, <math>lor</math>) 都引出一个环 (a, +, *),通过定义 a + b = (a <math>land</math> ¬b) <math>lor</math> (b <math>land</math> ¬a) (这个运算在集合论中叫做"对称差"在逻辑中叫做xor(异或)) 和 a * b = a <math>land</math> b。这个环的零元素符合布尔代数的 0;环的乘法单位元素是布尔代数的 1。这个环有对于 a 中的所有的 a 保持 a * a = a 的性质;有这种性质的环叫做布尔环。
反过来,如果给出布尔环 a,我们可以把它转换成布尔代数,通过定义 x <math>lor</math> y = x + y + xy 和 x <math>land</math> y = xy。因为这两个运算是互逆的,我们可以说每个布尔环引发一个布尔代数,或反之。此外,映射 f : a → b 是布尔代数的同态,当且仅当它是布尔环的同态。布尔环和代数的范畴是等价的。
布尔代数 a 的理想是一个子集 i,对于在 i 中的所有 x, y 我们有 x <math>lor</math> y 在 i 中,并且对于在 a 中的所有 a 我们有 a <math>land</math> x 在 i 中。理想的概念符合在布尔环 a 中环理想的概念。a 的理想 i 叫做素理想,如果 i ≠ a;并且如果 a <math>land</math> b 在 i 中总是蕴涵 a 在 i 中或 b 在 i 中。a 的理想 i 叫做极大理想,如果 i ≠ a 并且真正包含 i 的唯一的理想是 a 自身。这些概念符合布尔环 a 中的素理想和极大理想的环理论概念。
理想的对偶是滤子。 布尔代数 a 的滤子是子集 p,对于在 p 中的所有 x, y 我们有 x <math>land</math> y 在 p 中,并且对于在 a 中的所有 a,如果 a <math>lor</math> x = a 则 a 在 p 中。
表示布尔代数
可以证实所有的有限的布尔代数都同构于这个有限集合的所有子集的布尔代数。此外,所有的有限的布尔代数的元素数目都是二的幂。
stone 的著名的布尔代数的表示定理陈述了所有的布尔代数 a 都在某个(紧凑的完全不连通的 hausdorff)拓扑空间中同构于所有闭开集的布尔代数。
公理化布尔代数
在 1933 年,美国数学家 edward vermilye huntington (1874-1952) 展示了对布尔代数的如下公理化:
交换律: x + y = y + x。
结合律: (x + y) + z = x + (y + z)。
huntington 等式: n(n(x) + y) + n(n(x) + n(y)) = x。
一元函数符号 n 可以读做'补'。
herbert robbins 接着摆出下列问题: huntington 等式能否缩短为下述的等式,并且这个新等式与结合律和交换律一起成为布尔代数的基础? 通过一组叫做 robbins 代数的公理,问题就变成了: 是否所有的 robbins 代数都是布尔代数?
robbins 代数的公理化:
交换律: x + y = y + x。
结合律: (x + y) + z = x + (y + z)。
robbins 等式: n(n(x + y') + n(x + n(y))) = x。
这个问题自从 1930 年代一直是公开的,并成为 alfred tarski 和他的学生最喜好的问题。
在 1996 年,william mccune 在 argonne 国家实验室,建造在 larry wos、steve winker 和 bob veroff 的工作之上,肯定的回答了这个长期存在的问题: 所有的 robbins 代数都是布尔代数。这项工作是使用 mccune 的自动推理程序 eqp 完成的。
布尔代数是一个集合 A,提供了两个二元运算 land (逻辑与)、lor (逻辑或),一个一元运算 lnot / ~ (逻辑非)和两个元素 0(逻辑假)和 1(逻辑真),此外,对于集合 A 的所有元素 a、b 和 c,下列公理成立:
a lor (b lor c) = (a lor b) lor c a land (b land c) = (a land b) land c 结合律
a lor b = b lor a a land b = b land a 交换律
a lor (a land b) = a a land (a lor b) = a 吸收律
a lor (b land c) = (a lor b) land (a lor c) a land (b lor c) = (a land b) lor (a land c) 分配律
a lor lnot a = 1 a land lnot a = 0 互补律
上面的前三对公理: 结合律、交换律和吸收律,意味着 (A, land, lor) 是一个格。所以布尔代数也可以定义为一个分配的有补格。
从这些公理,你可以展示出最小元素 0、最大元素 1 和任何元素 a 的补 ¬a 都是唯一确定的。对于 A 中的所有的 a 和 b,下列恒等式也成立:
a lor a = a a land a = a 幂等律
a lor 0 = a a land 1 = a 有界律
a lor 1 = 1 a land 0 = 0
lnot 0 = 1 lnot 1 = 0 0 和 1 是互补的
lnot (a lor b) = lnot a land lnot b lnot (a land b) = lnot a lor lnot b de Morgan 定律
lnot lnot a = a 对合律