离散数学及其应用(第2版)
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.1.2 联结词

定义1.1.4 p是一个命题,表示一个新命题“非p”。“”是否定联结词,命题称为p否定。当且仅当p为假时,为真。

真值表给出命题真值之间的关系。表1.1.1给出命题变元p及其否定的所有可能的真值,称为否定联结词“”的真值表

表1.1.1 的真值表

例如,p表示“今天是晴天”,则表示“今天不是晴天”。注意,不能理解为“今天是雨天”,因为“今天是晴天”的否定并不是“今天是雨天”,还可能是“今天是阴天”“今天是下雪天”等。

自然语言中表示否定的连词“非”“不”“没有”“无”“并非”等都可用来表示。

定义1.1.5 pq表示任意两个命题,pq可表示复合命题“p并且q”。“∧”称为合取联结词。命题pq称为pq的合取。当且仅当pq同时为真时,pq为真。真值表见表1.1.2。

表1.1.2 pq的真值表

例如,p表示“今天是晴天”,q表示“今天去公园”。则pq表示“今天是晴天并且今天去公园”。

自然语言中的“和”“与”“也”“并且”“既……又……”“不仅……而且……”“虽然……但是……”等表示同时的连词都可用∧来表示。假设p表示“小李聪明”;q表示“小李用功”,则“小李既聪明又用功”和“小李不仅聪明而且用功”均可符号化为pq

定义1.1.6 pq是任意两个命题,pq可表示复合命题“pq”,“∨”称为析取联结词。命题pq称为pq的析取。当且仅当pq都为假时,pq为假。真值表见表1.1.3。

表1.1.3 pq的真值表

例如,p表示“电灯不亮是灯泡有问题所致”,q表示“电灯不亮是线路有问题所致”,则pq表示电灯不亮是灯泡或线路有问题所致。

析取联结词可表示自然语言中的“或”“可能……可能……”“或者……或者……”等。自然语言中的“或”具有二义性,有时表示兼容性或,有时表示不兼容性或。由定义可以看出,pq表示的是兼容性或,即容许pq的真值中一个为真,或pq的真值都为真。而对于命题“派小王或小李中的一人去开会”,其中的“或”表达的是不兼容性或(又称排斥或)。假设p表示命题“派小王去开会”,q表示命题“派小李去开会”,该句不能符号化为pq的形式,而应符号化为。在命题逻辑中,将不兼容性或称为异或

定义1.1.7 pq为任意两个命题,pq可表示复合命题“如果p,则q”,“→”称为蕴涵联结词。命题pq称为pq的蕴涵式。当且仅当p为真、q为假时,pq为假。真值表见表1.1.4。

表1.1.4 pq的真值表

例如,p表示“今天天气晴朗”,q表示“我们去海滩”,则pq表示“如果今天天气晴朗,我们就去海滩”。

蕴涵式pq表示的逻辑关系是:pq的充分条件,qp的必要条件。因此形如“如果p,则q”“如果p,那么q”“当pq”“p仅当q”等复合命题都可以符号化为pq的形式。形如pq的蕴涵式中,称p蕴涵前件q蕴涵后件

例1.1.2 将下列命题符号化。

1)如果天气晴朗,我们去海滩。

2)仅当天气晴朗,我们去海滩。

假设p表示“天气晴朗”,q表示“我们去海滩”。

1)可符号化为pq,因为“天气晴朗”是“我们去海滩”的充分条件。

2)可符号化为qp,这句的“天气晴朗”是“我们去海滩”的必要条件。

注意,只有p的真值为真而q的真值为假时,pq的真值才为假;当pq的真值都为真或p的真值为假(无论q的真值为真还是假)时,pq的真值都为真。蕴涵式的前件的真值为假、后件的真值为任何值时,蕴涵式的真值都为真,对此,可以理解为当规定的前提条件不成立时,得出任何结论都是有效的。例如,命题“如果2+3=6,则太阳从东方升起”和“如果2+3=6,则太阳从西方升起”的真值都为真。

这两个命题的假设和结论之间没有什么联系,在自然语言中,我们不会使用这样的条件句。在数学推理中,条件语句作为一个数学概念不依赖于假设和结论之间的语义关系。

定义1.1.8 pq为任意两个命题,pq可表示命题“p当且仅当q”。“↔”称为等价联结词,命题pq称为等值式。当且仅当pq同时为真或同时为假时,pq为真。真值表见表1.1.5。

表1.1.5 pq的真值表

等值式pq表示pq互为充分必要条件的逻辑关系,也就是表示形如“p当且仅当q”“如果p,那么q,反之亦然”等的命题。

例如,p表示“两个三角形是全等的”,q表示“两个三角形的三条对应边相等”,则pq表示“两个三角形是全等的当且仅当它们的三条对应边相等”。

也可以用一个英文字母来表示复合命题,但在推理问题的研究中有时是不适合的。对于一个复合命题,通常先分析出其中包含的简单命题及它们之间的关系,分别用英文字母表示每一个简单命题,选用合适的联结词表示命题间的关系,然后用联结词联结表示简单命题的字母,组成复合命题的表示式。

例1.1.3 将下列命题符号化。

1)虽然天气很冷,老王还是来了。

2)小王和小李是好朋友。

3)小王和小李是好学生。

4)小王或小李中的一个人是游泳冠军。

5)只有学过微积分或数学系的学生,才可以选修这门课。

6)如果明天早晨6点不下雨,我就去跑步。

7)今天下雨与3+3=6。

8)登录服务器必须输入一个有效的口令。

9)2+3=5的充要条件是加拿大位于亚洲。

1)设p表示“天气很冷”,q表示“老王来了”,则1)可符号化为pq

2)这句虽然有连词“和”,但是一个简单句,可用p表示“小王和小李是好朋友”。

3)这句中的连词“和”连接两个简单句“小王是好学生”和“小李是好学生”,分别用pq表示这两个简单命题,则可符号化为pq

4)这句中的“或”是不兼容性或,因此应符号化为,其中p表示“小王是游泳冠军”,q表示“小李是游泳冠军”。

5)这句含有3个简单命题,可分别用pqr来表示,设p表示“学过微积分的学生”,q表示“数学系的学生”,r表示“你可以选修这门课”。这句中含有的“或”是兼容性或,“只有……才……”的表达方式表示“你学过微积分或是数学系的学生”是“你可以选修这门课”的必要条件,所以,这个命题可以符号化为r→(pq)。

6)设p表示“明天早晨6点下雨”,q表示“我去跑步”,则6)可符号化为,或者也可以符号化为

7)设p表示“今天下雨”,q表示“3+3=6”,则7)可符号化为pq

8)设p表示“登录服务器”,q表示“输入一个有效的口令”,则8)可符号化为pq

9)设p表示“2+3=5”,q表示“加拿大位于亚洲”,则9)可符号化为pq

有些命题在自然语言中可能是没有意义的,如上例中的命题7),其中包含的两个简单句语义上没有联系,逻辑上是合取关系。在数理逻辑中,pqpqpqpq中的pq可以没有语义上的联系。

这里定义了5个主要联结词:,∧,∨,→,↔。其中是一元联结词,∧、∨、→、↔是二元联结词。与普通运算符一样,可以规定运算的优先级,优先顺序为、∧、∨、→、↔。例如,pqr等同于(pq)→r。若有括号,先进行括号中内容的运算。括号有时被省略,如q的合取,这里是省略了的括号,即,而不是pq的合取的否定,即。合取运算符的优先级高于析取运算符,但这个规则不好记,所以可使用括号来区别合取运算符和析取运算符的顺序。对于条件运算符和双条件运算符,也可使用括号区分它们的运算顺序。

例1.1.4 将下列命题符号化,并指出它们的真值。

1)1+1=2和2+3=6。

2)1+1=2或猴子是飞禽。

3)若2+3=6,则猴子是飞禽。

4)若猴子不是飞禽,则1+1=2和2+3=6。

5)若2+3=6或猴子是飞禽,则1+1=2。

6)2+3=6当且仅当猴子不是飞禽。

p表示“1+1=2”,q表示“2+3=6”,r表示“猴子是飞禽”,则p表示的命题真值为1,q表示的命题真值为0,r表示的命题真值也为0。因而命题符号化为:

1)pq,真值为0,因为pq中有一个为0。

2)pq,真值为1,因为pq中有一个为1。

3)qr,真值为1,因为这个条件蕴涵式的前件为0,当条件蕴涵式的前件为0时,无论它的后件的真值为1还是0,这个条件蕴涵式的真值都为1。

4),真值为0,因为这个条件蕴涵式的前件为1,后件为0。

5)qrp,真值为1,原因同3)。

6),真值为0,因为q为0,为1。

除了这5个联结词外,还定义了一些表示其他逻辑关系的联结词。常用的有与非联结词、或非联结词和异或联结词等。下面给出它们的定义。

定义1.1.9 pq是任意两个命题,pq可表示复合命题“pq的与非”,“↑”称为与非联结词。命题pq称为pq与非式。当且仅当pq同时为真时,pq为假。真值表见表1.1.6。可以看出,与非式pq等值。

表1.1.6 pq的真值表

定义1.1.10 pq是任意两个命题,pq可表示复合命题“pq的或非”,“↓”称为或非联结词。命题pq称为pq或非式。当且仅当pq同时为假时,pq为真。真值表见表1.1.7。可以看出,或非式pq等值。

表1.1.7 pq的真值表

定义1.1.11 pq是任意两个命题,pq可表示复合命题“pq之中恰有一个成立”,“⊕”称为异或(不兼容性或)联结词。命题pq称为pq异或式。当且仅当pq恰有一个为真时,pq为真。真值表见表1.1.8。可以看出,异或式pq等值。

表1.1.8 pq的真值表

在计算机中,这些联结词表示的逻辑关系可以用数字电路中的门电路实现,例如,表示“非”逻辑关系的否定联结词用数字电路中的“非门”实现,∧联结词用“与门”实现,∨联结词用“或门”实现,→和↔实际上可以用、∧和∨三个联结词来表示,所以可以用非门、与门和或门组合的电路来实现。图1.1.1是非门、与门和或门的电路符号。

图1.1.1 逻辑门电路符号

非门有一个输入端和一个输出端,与门和或门有两个或两个以上的输入端和一个输出端。与非、或非和异或逻辑关系可用与非门、或非门和异或门实现。在计算机电路中经常用到这些门电路。

例1.1.5 用逻辑电路实现命题公式

可以用图1.1.2所示的逻辑电路实现命题公式

图1.1.2 例1.1.5逻辑电路

逻辑联结词广泛应用于信息检索中,例如,大部分网络搜索引擎支持布尔检索技术。在布尔检索中,联结词AND用于匹配同时包含两个检索项的记录,联结词OR用于匹配至少包含一个检索项的记录,而联结词NOT用于排除某个特定的检索项。采用布尔检索时,细心安排逻辑联结词的使用有助于有效找到特定主题的网页和信息。

使用逻辑运算符可以把自然语言表示的命题翻译成由命题变元和逻辑联结词组成的表达式,例如,在说明计算机硬件系统和软件系统时,将自然语言翻译成逻辑表达式是很重要的部分。对于一些逻辑难题,可以用逻辑表达式表示,然后推理求解。

例1.1.6 将下面的系统规范说明翻译成逻辑表达式,并确定这些系统规范说明是否一致。

“当且仅当系统正常操作时,系统处于多用户状态。”

“如果系统正常操作,则它的核心程序正在运行。”

“核心程序没有正常运行,或者系统处于中断模式。”

“系统不处于中断模式。”

p表示“系统正常操作”,q表示“系统处于多用户状态”,r表示“核心程序正在运行”,s表示“系统处于中断模式”,则上述规范说明可以表示为

系统和软件工程师从自然语言中提取需求,生成精确、无歧义性的规范说明,这些规范说明可作为软件开发的基础。系统规范说明应该是一致的,不应该包含有冲突的需求。当规范说明不一致时,无法开发出满足所有规范说明的系统。

为真,则s需为假。当s为假时,为真则r必须为假,这时p必须为假,才能使pr为真。当p为假时,q必须为假,才有pq为真。因此,当srpq都为假时,上述规范说明的逻辑表达式的真值都为真,这4个规范说明是一致的。

如果在上述规范说明中增加“如果系统不处于多用户状态,它就处于中断状态”,表示为逻辑表达式。当qs都为假时,为假。因此,这5个规范说明就是不一致的。

例1.1.7 三个客人坐在餐馆,服务生问:“每个人都要咖啡吗?”第一位客人回答:“我不知道。”接着第二位客人也回答:“我不知道。”最后,第三位客人回答:“不是每个人都要咖啡。”一会儿,服务生回来,将咖啡递给需要的客人。请问服务生是如何判断哪位客人需要咖啡的?

根据三位客人的回答,服务生给第一位客人和第二位客人送来咖啡。

pqr分别表示第一、二、三位客人要咖啡。如果每个人都要咖啡,则pqr为真。如果第一位客人不要咖啡,则p为假,这时pqr为假,可以说“不是每个人都要咖啡”。第一个客人的回答是“我不知道”,服务生可以判断p不为假。根据第二个人的回答可以判断q为真,因为q为假时,第二个客人就知道“不是每个人都要咖啡”。第三位客人的回答说明r为假,因为这时已知pq都为真,只有r为假,pqr才为假,也就是“不是每个人都要咖啡”。因此,服务员可以断定第一位和第二位客人要咖啡,第三位客人不要咖啡。