添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
发现
英国 数学家为了研究思维规律( 逻辑学 数理逻辑 )于1847和1854年提出的 数学模型 。此后R.戴德金把它作为一种特殊的格。由于缺乏 物理 背景,所以研究缓慢,到了20世纪30~40年代才有了新的进展,大约在 1935年, M.H.斯通首先指出布尔代数与环之间有明确的联系,这使布尔代数在理论上有了一定的发展。布尔代数在代 数学 代数结构 )、 逻辑演算 集合论 、拓扑空间理论、测度论、 概率论 、泛函分析等数学分支中均有应用;1967年后,在数理逻辑的分支之一的公理化集合论以及 模型论 的理论研究中,也起着一定的作用。近几十年来,布尔代数在自动化技术、电子计算机的逻辑设计等工程技术领域中有重要的应用。
1835年,20岁的 乔治·布尔 开办了一所私人授课学校。为了给学生们开设必要的数学课程,他兴趣浓厚地读起了当时一些介绍数学知识的教科书。不久,他就感到惊讶,这些东西就是数学吗?实在令人难以置信。于是,这位只受过初步 数学训练 的青年自学了艰深的《 天体力学 》和很抽象的《分析力学》。由于他对代数关系的对称和美有很强的感觉,在孤独的研究中,他首先发现了不变量,并把这一成果写成论文发表。这篇高质量的论文发表后,布尔仍然留在小学教书,但是他开始和许多第一流的英国数学家交往或通信,其中有数学家、 逻辑学家 德·摩根 。摩根在19世纪前半叶卷入了一场著名的争论,布尔知道摩根是对的,于是在1848年出版了一本薄薄的小册子来为朋友辩护。这本书是他6年后更伟大的东西的预告,它一问世,立即激起了摩根的赞扬,肯定他开辟了新的、棘手的研究 科目 。布尔此时已经在研究 逻辑代数 ,即布尔代数。他把逻辑简化成极为容易和简单的一种代数。在这种代数中,适当的材料上的“ 推理 ”,成了公式的初等运算的事情,这些公式比过去在中学代数第二年级课程中所运用的大多数公式要简单得多。这样,就使逻辑本身受数学的支配。为了使自己的研究工作趋于完善,布尔在此后6年的漫长时间里,又付出了不同寻常的努力。1854年,他发表了《思维规律》这部杰作,当时他已39岁,布尔代数问世了, 数学史 上树起了一座新的里程碑。几乎像所有的新生事物一样,布尔代数发明后没有受到人们的重视。欧洲大陆著名的数学家蔑视地称它为没有数学意义的、 哲学 上稀奇古怪的东西,他们怀疑 英伦 岛国的数学家能在数学上做出独特贡献。布尔在他的杰作出版后不久就去世了。20世纪初, 罗素 在《数学原理》中认为,“纯数学是布尔在一部他称之为《思维规律》的著作中发现的。”此说一出,立刻引起世人对布尔代数的注意。今天,布尔发明的逻辑代数已经发展成为纯数学的一个主要分支。
离散数学 中,布尔代数(有时叫 布尔格 )是有补分配格(可参考格的定义)可以按各种方式去认为元素是什么;最常见的是把它们当作一般化的真值。作为一个简单的例子,假设有三个条件是独立的为真或为假。布尔代数的元素可以接着精确指定那些为真;那么布尔代数自身将是所有八种可能性的一个搜集,和与之在一起的组合它们的方式。
有时也被称为布尔代数的一个相关主题是 布尔逻辑 ,它可以被定义为是所有布尔代数所公有的东西。它由在布尔代数的元素间永远成立的关系组成,而不管你具体的那个布尔代数。因为 逻辑门 和某些电子电路的代数在形式上也是这样的,所以同在数理逻辑中一样,布尔逻辑也在工程和计算机科学中研究。

布尔代数 基本理论

在布尔代数上的运算被称为AND(与)、OR(或)和NOT(非)。 代数结构 要是布尔代数,这些运算的行为就必须和两元素的布尔代数一样(这两个元素是TRUE(真)和FALSE(假))。亦称逻辑代数.布尔(Boole,G.)为研究思维规律(逻辑学)于1847年提出的 数学工具 .布尔代数是指 代数系统 B=〈B,+,·,′〉
它包含集合B连同在其上定义的两个 二元运算 +,·和一个 一元运算 ′,布尔代数具有下列性质:对B中任意元素a,b,c,有:
1.a+b=b+a, a·b=b·a.
2.a·(b+c)=a·b+a·c,
a+(b·c)=(a+b)·(a+c).
3.a+0=a,  a·1=a.
4.a+a′=1, a·a′=0.
布尔代数也可简记为B=〈B,+,·,′〉.在不致混淆的情况下,也将集合B称作布尔代数.布尔代数B的集合B称为布尔集,亦称布尔代数的论域或 定义域 ,它是代数B所研究对象的全体.一般要求布尔集至少有两个不同的元素0和1,而且其元素对三种运算+,·,′ 都封闭,因此并非任何集合都能成为布尔集.在有限集合的情形,布尔集的元素个数只能是2n,n=0,1,2,…二元运算+称为布尔加法,布尔和,布尔并,布尔析取等;二元运算·称为布尔乘法,布尔积,布尔交,布尔合取等;一元运算 ′ 称为布尔补,布尔否定,布尔代数的余运算等.布尔代数的运算符号也有别种记法,如∪,∩,-;∨,∧,?等.由于只含一个元的布尔代数实用价值不大,通常假定0≠1,称0为布尔代数的零元素或最小元,称1为布尔代数的单位元素或最大元.布尔代数通常用亨廷顿公理系统来定义,但也有用比恩公理系统或具有0与1的有补分配格等来定义的。

布尔代数 例子

最简单的布尔代数只有两个元素 0 和 1,并通过如下规则(真值表)定义:
0
1
0
0
0
1
0
1
0
1
0
0
1
1
1
1
¬
0
1

1
0
它应用于逻辑中,解释 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 的所有子集的搜集形成有两个运算 ∨ := ∪ (并)和 ∧ := ∩ (交)的布尔代数。

布尔代数 序理论

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 都有补 &not;x 满足
x <math>\land</math> &not;x = 0 并且 x <math>\lor</math> &not;x = 1
这里的 <math>\land</math> 和 <math>\lor</math> 用来指示两个元素的 下确界 (交)和 上确界 (并)。还有,如果上述意义上的补存在,则它们是可唯一确定的。
代数的和 序理论 的观点通常可以交替的使用,并且二者都是有重要用处的,可从泛代数和序理论引入结果和概念。在很多实际例子中次序关系、 合取 (逻辑与)、 析取 (逻辑或)和否定(逻辑非)都是自然的可获得的,所以可直接利用这种联系。

布尔代数 其他记号

布尔代数的运算符可以用各种方式表示。它们经常简单写成 AND、OR 和 NOT。在描述电路时,还可以使用 NAND (NOT AND)、NOR (NOT OR) 和 XOR (排斥的 OR)。数学家、工程师和程序员经常使用 + 表示 OR 和 · 表示 AND (因为在某些方面这些运算类似于在其他 代数结构 中的加法和乘法,并且这种运算易于对普通代数熟悉的人得到积之和范式),和把 NOT 表示为在要否定的表达式顶上画一条横线。
这里我们使用另一种常见记号,"交" <math>\land</math> 表示 AND,"并" <math>\lor</math> 表示 OR,和 &not; 表示 NOT。(使用只有文本的 浏览器 的读者将见到 LaTeX 代码而不是他们表示的楔形符号。)

布尔代数 同态和同构

在布尔代数 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(&not;a) = &not;f(a) 同样成立。所有布尔代数的类,和与之在一起的 态射 (morphism)的概念,形成了一个范畴。从 A 到 B 的同构是 双射 的从 A 到 B 的 同态 同态 的逆也是同态,我们称两个布尔代数 A 和 B 为同态的。从布尔代数理论的立场上,它们是不能区分的;它们只在它们的元素的符号上有所不同。

布尔代数 布尔环

每个布尔代数 (A,<math>\land</math>,<math>\lor</math>) 都引出一个环 (A,+,*),通过定义 a + b = (a <math>\land</math> &not;b) <math>\lor</math> (b <math>\land</math> &not;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 中。

布尔代数 公理化

在 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,都可用另一个函数Z代替,等式仍然成立。
对偶法则 它可描述为对任何一个逻辑表达式F,如果将其中的“+”换成“*”,“*”换成“+”,“1”换成“0”,“0”换成“1”,仍保持原来的逻辑优先级,则可得到原函数F的对偶式G,而且F与G互为对偶式。我们可以看出基本公式是成对出现的,二都互为 对偶式
反演 法则 有原函数求反函数就称为反演(利用 摩根定律 ),
我们可以把反演法则这样描述:将原函数F中的“*”换成“+”,“+”换成“*”,“0”换成“1”,“1”换成“0”;原变量换成反变量,反变量换成原变量,长非号即两个或两个以上变量的非号不变,就得到 原函数 反函数

布尔代数 定律

互补律:
第一互补律:若A=0,则~A=1,若A=1,则~A=0 注:~A =NOT A
第二互补律:A*~A=0
第三互补律:A+~A=1
双重互补律:/<~A>=//A=A
交换律:
AND交换律:A*B=B*A
OR 交换律 : A+B=B+A
结合律:
AND结合律:A<B*C>=C*<A*B>
OR结合律: A+<B+C>=C+<A+B>
分配律:
第一分配律: A*<B+C>=<A*B>+<A*C>
第二分配律: A+<B*C>=<A+B>*<A+C>
重言律:
第一重言律: A*A=A 若A=1,则A*A=1;若A=0,则A*A=0。因此表达式简化为A
第二重言律: A+A=A 若A=1,则1+1=1;若A=0,则0+0=0。因此表达式简化为A
带常数的重言律:
A+1=1
A*1=A
A*0=0
A+0=A
第一吸收律: A*<A+B>=A
第二吸收律: A+<A*B>=A
子集的布尔格的哈斯图
在{0,1}上的运算可以用 真值表 展出,选取0和1为真值 。它们可以按统一和不依赖应用的方式列出,允许我们命名或至少单独列出它们。这些名字对布尔运算提供方便的简写。 n 元运算的名字是2位的二进制数。有2个这种运算,你不能得到更简明的命名法了!
下面展示元数从0到2的所有运算的这种格局和关联的名字。
直到2元的布尔运算的真值表
常量
f 0
f 1
0
1
一元运算
x 0

f 0
f 1
f 2
f 3
0

0
1
0
1
1

0
0
1
1
二元运算
x 0
x 1

f 0
f 1
f 2
f 3
f 4
f 5
f 6
f 7
f 8
f 9
f 10
f 11
f 12
f 13
f 14
f 15
0
0

0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
1
0

0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
1

0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
1
1

0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
这些表格继续到更高元数上,对 n 元有2行,每个行给出 n 个变量 x 0,… xn −1的一个求值或绑定,而每列都有表头 fi ,它们给出第 i n 元运算 fi ( x 0,…, xn −1)在这个求值下的值。运算包括变量本身,例如 f 2是 x 0而 f 10是 x 0 (作为它的一元对应者的两个复件)而 f 12是 x 1 (没有一元对应者)。否定或补¬ x 0出现为 f 1再次出现为 f 5,连同 f 3 (¬ x 1在1元时没有出现),析取或并 x 0∨ x 1出现为 f 14,合取或交 x 0∧ x 1出现为 f 8,蕴涵 x 0→ x 1出现为 f 13,异或或对称差 x 0⊕ x 1出现为 f 6,差集 x 0− x 1出现为 f 2等等。对布尔函数的其他命名或表示可参见零阶逻辑。
作为关于它的形式而非内容的次要详情,一个代数的运算传统上组织为一个列表。我们这里通过在{0,1}上有限运算索引了布尔代数的运算,上述真值表表示的排序首先按元数,其次为每个元数运算的列出表格。给定元数的列表次序是如下两个规则确定的。
  • (i)表格左半部分的第 i 行是 i 的二进制表示,最低有效位或第0位在最左(“小端”次序,最初由 艾伦·图灵 提议,所以可不无合理的叫做图灵序)。
  • (ii)表格的右半部分的第 j 列是 j 的二进制表示,还是按小端次序。在效果上运算的下标就是这个运算的真值表。