离散数学

第一章 逻辑和证明


第一章 逻辑和证明

命题

[TOC]

命题

定义: 命题是一个陈述句(即陈述一个事实的句子),它不是真就是假,但不是两者都是假。

示例 以下都是命题

1、华盛顿特区是美利坚合众国的首都. 真命题

2、多伦多是加拿大的首都。 否命题

3、1 + 1 = 2 真命题

4、2+2=3. 否命题

考虑下面的句子

1、现在几点了?

2、清仔细看这个短片。

3、$x+1=2$

4、$x+y=z$


解析

注意,如果我们给变量赋值,第3句和第4句都可以变成一个命题。我们还将在第1.4节中讨论将这些句子转化为命题的其他方法。


在逻辑学中,命题(proposition)是陈述句的一种,它可以被判断为真(true)或假(false)。当我们说一个命题的“否定”(negation)时,我们是指创建一个新的命题,这个新命题的真假性正好与原命题相反。

给定一个命题p,它的否定表示为¬p(有时也用~p表示)。这个否定命题的陈述是“不是p的情况”,或者说“非p”。换句话说,如果p为真,那么¬p就为假;如果p为假,那么¬p就为真。

这里的关键点是理解否定如何影响命题的真假性:

如果p是真命题,那么$¬p$(非p)就是假命题。

如果p是假命题,那么$¬p$(非p)就是真命题。

这种关系确保了逻辑上的一致性和完整性,因为否定操作提供了一种精确的方式来反转命题的真假性。

举个例子,假设命题p是“今天下雨”。那么$¬p$(非p)就是“今天不下雨”。如果今天确实下雨了,那么p为真,而¬p为假。相反,如果今天没有下雨,那么p为假,而¬p为真。

例 1.1.2

找出命题的否定“ Michael 's PC运行Linux ”用简单的英语表达

答:Michael 's PC运行的不是Linux或Michael 's PC没有运行Linux。

例 1.1.3

找出命题的否定“Vandana的智能手机至少有32gb的内存”,用简单的语言表达出来

答:Vandana的智能手机并没有至少32gb的内存

Vandana的智能手机不超过32gb的内存

Vandana的智能手机不足32gb的内存


真值表

$p$ $¬p$
T F
F T

在逻辑学中,命题(proposition)是可以判断真假的陈述句。对于任何命题p,它都有两种可能的真值(truth values):真(True)或假(False)。当我们对命题p进行否定(negation)操作时,我们使用符号¬(读作“非”)来表示,得到的新命题¬p的真值与p的真值相反。

具体来说:

如果p为真(True),则¬p为假(False

如果p为假(False),则¬p为真(True)

这个表格说明了否定运算符如何从一个命题构造出一个新的命题,且这个新命题的真值与原命题的真值相反。

接下来,逻辑学中还有其他逻辑运算符(也称为连接词或联结词),它们允许我们从两个或多个现有命题中形成新的命题。这些运算符包括但不限于:

$p$ $q$ $p \land q$ $p \lor q$ $p \oplus q$ $p \to q$
T F F T T F
F T F T T T
T T T T F T
F F F F F T

例 1.1.4 找出命题“Vandana的智能手机至少有32gb的内存”和命题“ Vandana 's PC运行Linux ”的合取。

解:$p \land q$: Vandana的智能手机至少有32gb的内存且 Vandana 的 PC运行Linux;

例 1.1.5 将陈述“已经学习过微积分或基础计算机科学的学生可以选修这门课程”翻译成使用命题逻辑表示的语句,

其中命题p表示“已经学习过微积分的学生可以选修这门课程”,

命题q表示“已经学习过基础计算机科学的学生可以选修这门课程”。

解:$p \lor q$

定义 4 : 设p和q为命题。p和q的异或(记作$p \oplus q$,或p XOR q)是一个命题,当且仅当p和q中恰好有一个为真时,该命题为真;否则为假。

例 1.1.5 设p和q分别为命题“一个学生晚餐可以吃沙拉”和“一个学生晚餐可以喝汤”。那么$p \oplus q$,即p和q的异或(exclusive or),表示什么?

解 $p \oplus q$ 表示一个学生晚餐可以吃沙拉或喝汤,但不能同时吃沙拉和喝汤,而没有明确说明不能同时吃两者。因为由异或的定义当且仅当p和q中恰好有一个为真时,该命题为真,否者为假。

例 1.1.6 用命题逻辑表达“我将用我所有的积蓄去欧洲旅行或买一辆电动汽车”,用命题p:“我将用我所有的积蓄去欧洲旅行”和命题q:“我将用我所有的积蓄买一辆电动汽车。”

我们首先注意到这句话中的or必须是一个排他性的or,因为这个学生可以用他或她所有的积蓄去欧洲旅行,或者用所有的积蓄买一辆电动汽车,但不能既去欧洲又买一辆电动汽车。(这很明显,因为两种选择都需要他所有的积蓄。)因此,这个命题可以表示为 **$p \oplus q$**

1.1.3条件语句

我们将讨论命题可以组合的其他几种重要方式。

定义5 :设p和q是命,条件语句 $p \to q$是命题“如果p,则q”。当p为真且q为假时,条件语句$p \to q$为假,否则为真。在条件命题$p \to q$中,p被称为假设(或前提或前提),而q被称为结论(或推论)

备注:命题p → q被称为条件命题,因为p → q断言:当条件p成立时,q为真。条件命题也被称为蕴含命题。请注意,当p和q都为真,或者当p为假时(无论q的真值如何),命题p → q都为真

$p$ $q$ $p \to q$
T T T
T F F
F T T
F F T

充要条件

充要条件的定义

在逻辑学中,充要条件(sufficient and necessary condition)是指两个命题 $P$ 和 $Q$ 之间的一种特殊关系,满足以下两个条件:

  1. 充分性:如果 $P$ 为真,则 $Q$ 也必定为真。用逻辑符号表示即: $$ P \rightarrow Q $$ 这意味着 $P$ 是 $Q$ 的充分条件。

  2. 必要性:如果 $Q$ 为真,则 $P$ 也必定为真。用逻辑符号表示即: $$ Q \rightarrow P $$ 这意味着 $P$ 是 $Q$ 的必要条件。

当且仅当这两个条件同时满足时,我们称 $P$ 是 $Q$ 的充要条件,或者 $Q$ 是 $P$ 的充要条件。用逻辑符号表示这一等价关系为: $$ P \leftrightarrow Q $$

换句话说,充要条件是指两个命题在逻辑上相互蕴含,即一个命题的真值完全决定了另一个命题的真值。

在逻辑学中,"充要条件"描述了两个命题之间的等价关系。

  1. 充分条件:如果命题 $P$ 是命题 $Q$ 的充分条件,那么当 $P$ 为真时,$Q$ 必定为真。用逻辑符号表示即: $$ [ P \rightarrow Q ]$$

  2. 必要条件:如果命题 $P$ 是命题 $Q$ 的必要条件,那么当 $Q$ 为真时,$P$ 必定为真。用逻辑符号表示即: $$[ Q \rightarrow P \quad \text{(或者等价地表示为 } \neg P \rightarrow \neg Q \text{)} ]$$

  3. 充要条件:如果命题 $P$ 是命题 $Q$ 的充要条件,那么 $P$ 既是 $Q$ 的充分条件也是必要条件。即当 $P$ 为真时,$Q$ 必定为真;当 $Q$ 为真时,$P$ 也必定为真。用逻辑符号表示即: $$ P \leftrightarrow Q $$

实例分析

由于条件语句在数学推理中起着至关重要的作用,因此使用了各种术语来表示p→q。您将遇到大多数(如果不是全部的话)表示该条件语句的方法:

理解条件语句真值的一个有用方法是考虑义务或契约。例如,许多政治家在竞选公职时所作的承诺是

“如果我当选,我会降低税收。”

如果这位政治家当选,选民会期望这位政治家降低税收。此外,如果政治家没有当选,那么选民就不会期望这个人会降低税收,尽管这个人可能有足够的影响力来促使当权者降低税收。

只有当政治家当选但没有降低税收时,选民才会说政治家违背了竞选承诺。最后一个场景对应于p→q中p为真而q为假的情况。

类似地,考虑一个教授可能会说的话:

“如果你期末考100%,那你就得a。”

如果你在期末考试中拿到100%,那么你可能会得到A。如果你没有得到100%,你可能会得到A,也可能不会得到A,这取决于其他因素。然而,如果你得到100%,但是教授没有给你A,你会觉得被骗了。

备注:由于表达p暗示q的一些不同方式可能令人困惑,我们将提供一些额外的指导。要记住“ p only if q ”和“ if p, then q ”表达的是一样的东西,注意“ p only if q ”说的是当q不为真时p不可能为真。也就是说,如果p为真,但q为假,则陈述为假。当p为假时,q可能为真也可能为假,因为该陈述没有说明q的真值。

例如,假设你的教授告诉你

“只有期末成绩达到90%以上,这门课才能得A。”

然后,如果你在这门课上得了A,那么你就知道你在期末考试中的分数至少是90%。如果你没有得到A,你可能在期末考试中得到至少90%的分数,也可能没有。注意不要用“q only if p”来表示p→q,因为这是不正确的。这个词“only”在这里起着重要的作用。

当p和q具有不同的真值时,p→q是不同的。要明白为什么“q是p的必要条件”等价于“如果p,则q”,请注意“q是p的必要条件”意味着除非q为真,否则p不可能为真,或者如果q为假,则p为假。这就等于说如果p为真,那么q也为真。要明白为什么“p对q是充分的”等价于“如果p,那么q”,注意“p对q是充分的”意味着如果p为真,那么q也必须为真。如果p为真,则q也为真。

q 除非 ¬p 读法:除非p为假(即非p为真)

要记住“ q除非$\neg p$”(除非p为假) 表达的条件语句与“如果p,则q ”表达的条件语句相同,请注意“ q除非¬p ”意味着如果¬p为假,则q必须为真。也就是说,当p为真但q为假时,命题“ q除非$\neg p$ ”为假,否则命题为真。因此,“ q除非$\neg p$ ”和p→q总是有相同的真值。

例 1.1.7 设p代表“Maria学习离散数学”,q代表“Maria会找到一份好工作”。用英语表达语句p→q。

解 $p \to q$ 表示 如果p 则 q。 那么可表示为“如果Maria学习离散数学,那么就会找到一份好工作。”

这里,“如果...那么...”是条件语句的标准形式,其中“如果”后面跟着的是前提(p),“那么”后面跟着的是结论(q)。条件语句p → q的含义是:当p为真时,q也必然为真。但需要注意的是,这并不意味着当q为真时,p也一定为真;也就是说,这个条件语句并不逆向成立。

在英语中还有很多其他表达这个条件句的方法。其中最自然的是

“玛丽亚学习离散数学后会找到一份好工作。”

“玛丽亚要想找到一份好工作,学习离散数学就足够了。”,

“玛利亚会找到一份好工作,除非她不学习离散数学。”

“除非Maria不学习离散数学,否则她会找到一份好工作。”

形式化条件命题的特性说明

需特别注意:我们在数理逻辑中定义的蕴含式 $p \to q$,其语义范畴显著宽泛于自然语言中的条件句。例如:

“例1.1.7所述条件命题

日常陈述"若天晴,则我们去海滩"。”

在自然语言中,这类陈述通常隐含着前件与后件之间的语义关联。然而在离散数学框架下,蕴含式的真值仅由命题真值表决定,与其实际语义关联性无关。。

形式化验证:

关键差异

数理逻辑蕴含式⊃自然语言条件句

在真值函数语义下,$p \to q$ 的有效性独立于:

另一方面,声明

“如果Juan有智能手机,那么2 + 3 = 5”

从条件语句的定义来看是真的,因为它的结论是真的。(此时,假设的真值并不重要。)

条件语句 “如果胡安有智能手机,那么2 + 3 = 6” 是正确的, 如果Juan没有智能手机,即使2 + 3 = 6是假的,我们不会在自然语言中使用最后这两个条件语句(或许讽刺时除外),因为这两个语句中的前提与结论之间没有任何关系。在数学推理中,我们考虑的条件语句类型比英语中使用的更为广泛。数学中的条件语句概念独立于前提与结论之间的因果关系。我们对条件语句的定义明确了其真值;它不是基于英语用法的。命题语言是一种人工语言;我们只是将英语的用法与之平行,使之易于使用和记忆。

许多编程语言中使用的if-then结构与逻辑中使用的结构不同。大多数编程语言都包含类似if p then S这样的语句,其中p是一个命题,S是一个程序段(要执行的一条或多条语句)。(虽然这看起来像是一个条件语句,但S不是一个命题,而是一组可执行指令。)当程序的执行遇到这样的语句时,如果p为真则执行S,但如果p为假则不执行S,如

例1.1.8 如果2 + 2 = 4,那么x:= x + 1,语句后变量x的值是多少?如果x = 0之前遇到这个语句?

解 2+2=4 为true,所以 x:= x + 1 = 0 + 1 = 1

我们可以从一个条件语句 p→q 出发,形成一些新的条件语句。特别是,有三种相关的条件语句出现得非常频繁,以至于它们有了特殊的名称。命题 q→p 被称为 p→q 的逆命题。p→q 的逆否命题是 ¬q→¬p。命题 ¬p→¬q 被称为 p→q 的否命题。我们将看到,在这三个由 p→q 形成的条件语句中,只有逆否命题总是与 p→q 具有相同的真值。

当两个复合命题无论其命题变量的真假如何,总是具有相同的真假值时,我们称它们为等价命题。因此,一个条件命题与其逆否命题是等价的。读者可以验证,一个条件命题的逆命题和否命题也是等价的,但它们都不等同于原条件命题。(我们将在1.3节中研究等价命题。)请注意,最常见的逻辑错误之一就是认为一个条件命题的逆命题或否命题与该条件命题是等价的。

例 1.1.8 找到条件命题“只要下雨,主队就会赢”的逆否命题、逆命题和否命题。

解:逆命题:如果条件命题是“如果P,则Q”,那么它的逆命题是“如果Q,则P”。

逆否命题:如果条件命题是“如果P,则Q”,那么它的逆否命题是“如果非Q,则非P”。

否命题:如果条件命题是“如果P,则Q”,那么它的否命题是“如果P,则非Q”。然而,更常见的否命题形式是针对整个条件命题的否定,即“非(如果P,则Q)”,这等价于“P且非Q”。

定义6:设p和q是命题。双条件语句$p \leftrightarrow q$是命题“ p当且仅当q ”。当p和q有相同的真值时$p \leftrightarrow q$为真,否则为假。双条件命题也被称为双向蕴含。

表六

$p$ $q$ $p \leftrightarrow q $
T T T
T F F
F T F
F F T

表6显示了p↔q的真值表。注意,当条件语句p→q和q→p都为真时,语句p↔q为真,否则为假。这就是为什么我们使用“当且仅当”来表达这个逻辑连接词,以及为什么它是通过组合符号→和←来象征性地书写的。还有一些其它常见的表示p↔q的方法:

例 1.1.9 设p表示“你可以乘坐这趟航班”,设q表示“你买张票”。则p↔q是语句

解:只要你买张票,你就可以乘坐这趟航班。或 你可以乘坐这趟航班但是你要买张票。

该命题在以下情况下为真:p和q要么都为真,要么都为假。也就是说,如果你买了机票并且能乘坐飞机,或者你没买机票并且不能乘坐飞机,那么这个命题就是真的。当p和q的真值相反时,该命题为假。也就是说,如果你没买机票,但你却能乘坐飞机(比如你获得了免费旅行的机会),或者你买了机票却不能乘坐飞机(比如航空公司将你拒载),那么这个命题就是假的。

你应该意识到,在自然语言中,双条件句(biconditionals)并不总是明确表达的。特别是,双条件句中使用的“当且仅当”(if and only if)结构在日常语言中很少使用。相反,双条件句通常使用“如果,那么”(if, then)或“只有”(only if)结构来表达,而“当且仅当”的另一部分则是隐含的。也就是说,逆命题是隐含的,但没有明确陈述。例如,考虑这个英语语句

实际上,它的意思是“你可以吃甜点当且仅当你吃完饭。”这个最后的句子在逻辑上等价于两个陈述:“如果你吃完饭,那么你可以吃甜点”和“你只有吃完饭才能吃甜点。”由于自然语言中的这种不精确性,我们需要假设自然语言中的条件句是否隐含了其逆命题。由于数学和逻辑需要精确性,我们将始终区分条件句 p → q 和双条件句 p ↔ q。

$ \S $ 1.1.4 复合命题真值表

到目前为止,我们已经介绍了五种重要的逻辑联结词——合取、析取、异或、蕴含和双条件运算符,以及否定。我们可以使用这些逻辑联结词来构建涉及任意数量命题变量的复杂复合命题。我们可以使用真值表来确定这些复合命题的真值,正如示例14所展示的那样。在构建复合命题时,我们使用单独的列来查找每个出现的复合表达式的真值。复合命题在每个命题变量真值组合下的真值可以在真值表的最后一列中找到。

构造复合命题的真值表$(p \lor \neg q)\to(p \land q)$