布尔把逻辑变成代数
乔治·布尔的艰辛岁月
布尔的许多早期研究数学文献的工作见证了莱布尼茨对恰当的数学符号系统的力量的信念,符号似乎无需什么帮助就能奇迹般地产生出问题的正确答案。
在英国,当布尔开始自己的工作时,人们已经渐渐认识到代数的力量来自于这样一个事实,即代表着量和运算的符号服从不多的几条基本规则或定律。这就暗示着,同样的力量也可适用于形形色色的对象和运算,只要它们也服从某些同样的定律。
在布尔的早期著作中,他把代数方式应用于那些被数学家称为算子的对象上。它们对普通代数的表达式进行“运算”,以形成新的表达式。布尔对微分算子特别感兴趣,之所以有这样的称呼,是因为它们包含着前一章所提到的微积分的微分运算。这些算子被认为具有特殊的重要性,因为物理世界的许多基本定律都具有微分方程(即包含微分算子)的形式。布尔说明了某些微分方程如何可能通过把普通代数方法应用于微分算子而得到解决。
正是苏格兰哲学家威廉·汉密尔顿爵士与布尔的朋友奥古斯都·德摩根之间的一场争论,才把布尔的思想带回到了他很久以前的那次灵光闪现,即逻辑关系也许可以表示成一种代数。
曾令年轻的莱布尼茨如此着迷的亚里士多德的古典逻辑包括这样一些句子,如:
- 所有的植物都是有生命的
- 没有河马是聪明的
- 有些人说英语
布尔逐渐认识到,在逻辑推理中国,像“有生命的”,“河马”或“人”这样一些词的重要之处在于它所描述的所有个体的类(class)或群体(collection):有生命事物的类,河马的类,人的类,这些句子中的大类。
不仅如此,他还认识到这种类型的推理可以用一种类于这些类的代数来表达。布尔用字母来表示类,就像字母以前曾被用来表示数或算子一样。如果字母x和y表示两种特定的类,那么布尔就说,xy表示既在x又在y中的事物的类。
布尔认为这种类的运算类似于数的乘法运算。然而,一个重要的区别:即当x表示一个类时,方程xx=x总是为真。
乔治·布尔的逻辑代数
这使布尔提出了一个问题:在x表示一个数的普通代数中,什么时候方程xx=x为真?
答案很显然:仅当x为0或1时方程才为真。于是布尔得出了一条原理:如果只限于0和1两个值,那么逻辑代数就成为普通代数。
然而,要说明这一点,就必须把符号0和1解释成类。0和1在普通乘法中的运算分别为此提供了线索:0乘以任何数都等于0;1乘以任何数都等于那个数。用符号来表示就是:
0x=0,1x=x
对于类而言,如果我们把0解释成一个没有任何东西属于它的类,那么对于任何x,0x都将等于0;用现代的术语来说,0为空集。类似地,如果1包含我们所考虑的每一个对象,那么对于任何x,1x都将等于x,或者说,1是我们所要言说的全体。
普通代数处理的是加减法和乘法。如果布尔要把逻辑代数解释为遵守特殊规则xx=x的普通代数,那么他就需要对+和-作出解释。
如果x和y表示两个类,布尔就用x+y来表示,或者在x中或者在y中的所有事物和类,今天它被称为x和y的并集。
布尔还用x-y表示,在x中但不在y中的事物的类。
特别地,1-x将表示不在x中的事物的类,从而
x+(1-x)=1
让我们看看布尔的代数是如何工作的。我们用普通代数的记号把xx记作x^2。于是布尔的基本规则可以写成x^2=x或x-x^2=0.根据通常的代数规则把这个方程因式分解,得到
x(1-x)=0
用语言来描述就是:没有任何东西可以既属于又不属于一个给定的类x。
正如他引用亚里士多德的《形而上学》中的话所说,这个方程精确地表达了曾被亚里士多德说成是一切哲学的基本公理的“矛盾论”。“同一种性质既属于又不属于同一个东西,这是不可能的。”这是一切原理中最确定无疑的。因此,那些作论证的人把这看成一条最终的意见。因为它依其本性就是其他一切公理的来源。
亚里士多德所研究的那部分逻辑处理的是一种被称为三段论的非常特殊的受限推理。这些推理从一对被称为前提的命题出发,得出另一个被称为结论的命题。前提he结论都必须用下列四种类型之一的句子来表示:
句子类型 | 例子 |
---|---|
所有X都是Y | 所有的马都是动物 |
没有X是Y | 没有树是动物 |
有些X是Y | 有些马是纯种马 |
有些X不是Y | 有些马不是纯种马 |
下面是一个有效的三段论的例子:
所有X都是Y
所有Y都是Z
-----
所有X都是Z
我们可以很容易地用布尔的代数方法来证明这个三段论是有效的。说X中的每一个东西也属于Y,就等于说没有任何东西是属于X不属于Y的,也就是说X(1-Y)=0,或者X=XY。类似地,第二个前提可以被写成Y=YZ。利用这些方程我们得到
X=XY=X(YZ)=(XY)Z=XZ
即我们所想要得到的结论。
布尔不认为亚里士多德的三段论推理构成了逻辑的全部。他指出,许多日常生活推理都涉及他所谓的二级命题,即表达其他命题之间的关系的命题。
据一个这种推理的简单例子。让我们听一下乔和苏珊之间的一场对话。乔找不到他的支票本了,苏珊正在帮他。
苏珊:你是不是在买东西时把它忘在超市了?
乔:没有,我给他们打过电话,他们没有找到。如果我把它忘在那了,他们肯定就能找到。
苏珊:等一等!你昨天晚上在饭馆开过一张支票,我看见你把支票本放在夹克口袋里了,如果你从那时起就没有再用过它,那么它肯定还在那里。
乔:你说对了。我没有用过它。它就在我的夹克口袋里。
在他们的推理中,乔和苏珊处理的是如下命题(每一个命题都用一个字母表示):
L=乔把支票本忘在超市
F=乔的支票本在超市找到了
W=乔昨晚在饭馆开了一张支票
P=昨晚开了支票后,乔把支票本放在他的夹克口袋里
H=乔从昨晚起就没有再用过他的支票本
S=乔的支票本仍然在他的夹克口袋里
他们用了如下推理形式:
前提:
如果L,那么F
非F
W且P
如果W且P且H,那么S
H
结论:
非L
S
就像亚里士多德的三段论一样,这一形式构成了一个有效推理。因为如任何有效的推理,被称为结论的句子的真可以从其他被称为前提的句子的真推理出来。
布尔发现,适用于类的同一种代数也可以适用于这种推理。
他用一个方程,比如X=1,来表示命题X为真。于是,他会用方程X=0来表示“非X”,而用方程XY=1表示“X且Y”。之所以如此,是因为恰恰当X和Y均为真时,X且Y才为真;而在代数上,如果X=Y=1,则XY=1,但如果X=0或Y=0(或者两者都等于0),那么XY=0.
最后,“如果X,那么Y”这一陈述可以用以下方程来表示:
X(1-Y)=0
为了理解这一点,把这条陈述当成是在断言
如果X=1,那么Y=1.
而事实上,把X=1代入这一方程,便可得到1-Y=0,即Y=1.
利用这些思想,乔和苏珊的前提就可以用以下方程来表示:
L(1-F)=0
F=0
WP=1
WPH(1-S)=0
H=1
把第二个方程代入第一个,我们即可得到L=0,即所要得到的第一个结论。
把第三个方程和第五个方程代入第四个,我们就得到1-S=0,即所要得到的另一个结论S=1.
现在我们回头看一看塞谬尔·克拉克对上帝存在的证明。
前提是:
第一,某种东西存在
第二,如果某种东西存在,那么或者某种东西一直存在,或者现存的东西是从无中产生的
第三,如果某种东西存在,那么它或者是依其自身本性的必然性而存在,或者凭借另一个存在者的意志而存在。
第四,如果它是依其自身本性的必然性而存在的,那么就有某种东西是一直存在的。
第五,如果它是凭借另一个存在者的意志而存在的,那么现存的东西是从无中产生的假说就为假。
我们现在必须用符号表达上述命题。
设
x=某种东西存在
y=某种东西一直存在
z=现存的东西是从无中产生的
p=它依其自身本性的必然性而存在
q=它通过另一个存在着的意志而存在
布尔接着由前提获得了以下方程:
1-x=0
x{yz+(1-y)(1-z)}=0
x{pq+(1-p)(1-q)}=0
p(1-y)=0
qz=0