文氏图,展示A AND B(紫罗兰色)的集合交集,A OR B(所有着色区域)的集合并集,和A XOR B的集合(除了紫罗兰色的所有着色区域)。方框表示
设X是一个集合:
元素是一个集合的成员。表示为。如果它不是这个集合的元素,表示为
。
全集是集合X,有时表示为1。注意使用全集这个词意味着“虑及的所有元素”,不必然的同“现有的所有元素”一样。
空集或null集合是没有元素的集合,表示为,有时表示为0。
一元算符应用于一个单一的集合。有一个一元算符叫做逻辑非(NOT)。它的作用是采用补集。
二元算符应用于两个集合。基本的二元算符是逻辑或(OR)和逻辑与(AND)。它们进行集合的并集和交集。还有其他衍生的二元算符,比如逻辑异或(XOR,排他的或)。
子集表示为A B,意味这在集合A中所有元素都在集合B中。
真子集表示为A B,意味着在集合A中的所有元素都在集合B中,并且两个集合不等同。
超集表示为A B,意味着在集合B中的所有元素都在集合A中。
真超集表示为A B,意味着在集合B中的所有元素都在集合A中,并且两个集合不等同。
设图像为集合A包含"全集"中所有偶数(二的倍数),集合B包含"全集"中所有三的倍数。则两个集合的交集(在集合A AND B中所有的元素)将是"全集"中所有六的倍数。
集合A的补集(所有不在集合A中的元素)是"全集"中所有的奇数。
尽管在任何布尔运算中都最多有两个集合参与,从这个运算所形成的新集合可以接着与其他集合联合起来实现另外的布尔运算。使用前面的例子,我们可以定义一个新集合C作为"全集"中所有五的倍数的集合。所以"集合A AND B AND C"将是"全集"中所有30的倍数。如果为了更方便,我们可以把集合AB当作集合A和B的交集,或者说"全集"中所有六的倍数的集合。那么我们可以称"集合AB AND C"是"全集"中所有30的倍数的集合。我们接着进一步的把这个结果叫做集合ABC。
使用圆括号
尽管任何数目的逻辑AND(或任何数目的逻辑OR)可以被连接在一起而没有歧义,AND和OR和NOT的组合可以导致歧义的情况。在这种情况情况下,可以使用圆括号来分清运算的次序。永远是最内的括号内的运算先进行,随后是外层的括号以此类推,直到在所有的括号内运算都完成。接着进行括号外的运算。
为两个主要的二元运算的符号定义为(逻辑与/交集)和
(逻辑或/并集),把单一的一元运算的符号定义为
/ ~(逻辑非/补集)。我们还使用值0(逻辑假/空集)和1(逻辑真/全集)。下列性质适用于布尔代数和布尔逻辑二者:
结合律 | ||
交换律 | ||
吸收律 | ||
分配律 | ||
互补律 | ||
幂等律 | ||
有界律 | ||
0和1是互补的 | ||
德·摩根定律 | ||
对合律 |
结合律 | ||
交换律 | ||
吸收律 | ||
分配律 | ||
互补律 | ||
幂等律 | ||
有界律 | ||
0和1是互补的 | ||
德·摩根定律 | ||
对合律 |
布尔逻辑只使用两个值0和1,这两个值的交集和并集可以使用真值表定义如下:
|
|
也可以建立涉及多个输入和其他布尔运算的更复杂的真值表。
真值表应用在逻辑中,解释0为假,1为真,为与,
为或,而¬为非。
|
|
也可以建立涉及多个输入和其他布尔运算的更复杂的真值表。
真值表应用在逻辑中,解释0为假,1为真,为与,
为或,而¬为非。
0 | 1 | |
---|---|---|
0 | 0 | 1 |
1 | 1 | 1 |
可以使用各种样式的基本算符来表达布尔逻辑。AND(与)、OR(或)、NOT(非)是最直觉的。数学家、工程师和程序员经常使用 +表示或,表示与(因为在某些方面这些运算类似于在其他代数结构中的加法和乘法,并且这种记号使熟悉普通代数的人易于得到积之和范式)。非也表示为在要否定的表达式顶上的一个横线。
另一种记号使用"交"表示与使用"并"表示或。但是这会导致混淆,因为术语"并"也经常用于合并集合的另一个布尔运算,它包括了与和或二者。
在联立方程的情况下,被联立的方程暗含逻辑与:
x + y = 2
AND
x - y = 2
同样适用于联立不等式:
x + y < 2
AND
x - y < 2
大于等于号()和小于等于号(
),可以认为是暗含逻辑或的一对等式与不等式的联立:
X < 2
OR
X = 2
加/减号(),在表示“平方根的解”情况下,可以被看作暗含逻辑或的一对联立等式:
WIDTH = 3
OR
WIDTH = -3
在把英语句子转换成形式的布尔语句的时候要小心。很多英语词语不精确的意义可能导致多种逻辑结果,例如英语单词NOT(非):“所有闪光的东西不是金子。”可以解析为以下不同的逻辑表达:
“没有闪光的东西是金子”
“有些闪光的东西不是金子”
作为英语单词的AND(与)和OR(或)在特定情况下是可以互换使用的:
"在下雨与下雪的时候我总是带伞。"
"在下雨或下雪的时候我总是带伞。"
还要注意在英语中单词OR(或)可以分别对应于逻辑表达中的或(OR)(此亦彼亦)和异或(XOR)(此即彼非),具体意思要依赖于上下文进行判断:
"我在潮湿或高温的时候出汗。"(此亦彼亦,判定为逻辑或)
"我午饭打算吃鸡肉或牛肉。"(此即彼非,判定为逻辑异或)
在规定计算机程序或者电子电路时,如何使用英语准确描述其功能逻辑是个关键问题。例如,对于功能“程序应校验申请者已经选择取了男性或女性单选框”,应当被当作一个异或(非此即彼)逻辑(即“程序应校验申请者已经选择取了男性或女性选项,并且此二选项互相排他”),则程序语句须特别限定“二者之间只有一个能被选择”来确保校验功能的实现;假如将其混为或逻辑(此亦彼亦),则该校验功能有可能被错误地实现,造成申请者同时选择两个选项、而校验依然通过。
在其他非技术语言的情况下,对于一段英语文字的解释可能包含更多的不确定性,可能需要深入探讨、以确保明晰该段文字背后所含的逻辑意义的多种可能性。