跳到正文

一份可以动手读的数学教材

把数学说清楚

用集合说明对象,用逻辑说明条件,用证明说明理由,用函数说明对应。

你已经会算数,也认识自然数、偶数和三角形。这本书从这些熟悉的对象出发,学习怎样把数学的话说得准确。

第一部分 · 集合A = {2, 4, 6}
先说清讨论哪些对象。
第二部分 · 逻辑“是偶数,而且大于3。”
把条件连接成准确的句子。
第三部分 · 数学证明两个偶数相加,
为什么一定还是偶数?
第四部分 · 函数第1项是0.9,第2项是0.99。
让每个编号对应一个数。
图1四个同级部分依次学习对象、条件、理由与对应关系。

适合:掌握整数、分数、小数、简单方程和基本几何的学生。核心路线:10次课,每次约50分钟。编写日期:2026年11月3日。

读完核心内容,你应该能:读懂基本符号;说清一个命题的范围和条件;找出反例;写出有理由的短证明;阅读一个带有多个量词的极限定义。

星号表示“可以以后再读”

标记怎样安排读到什么程度
核心(无星号)两周内完成会解释、会做本课的基本练习
* 选读有余力时,约5—10分钟一段多看一种方法或一个联系
** 挑战课后另选时间处理更长的推理或更抽象的对象
*** 远眺保留问题,今后再学知道更高年级会研究什么

只读无星号部分,后面的核心内容仍然能读懂。星号不是“差生跳过、好学生必须完成”的分组;它表示这条路线上的不同支线。

每课先读例子,再做练习,最后打开答案。答案也说明理由。页面里的按钮和滑块用于观察;写在纸上的解释同样重要。

“展开讲解”是把同一个知识点讲得更慢。这些段落默认折叠,里面有逐步思考、对话、换一个例子和常见错误。需要时点击标题;也可用上方按钮一次展开当前范围的全部讲解。

折叠与星号用途不同:折叠讲解帮助理解本节已经学过的内容;星号表示额外的学习内容。后面的核心学习不要求你读完全部折叠讲解,也不依赖任何星号内容。必要的定义与理由仍放在展开正文中。

主线参考 Richard Hammack 的 Book of Proof,第三版,按“集合—逻辑—证明—函数”分为四部分。节号采用本讲义自己的编号;与原书的对应放在教学说明中。计数与数学归纳法保留为选读。

先知道每一天做什么

两周,走完一条完整的路线

按每周5次课安排。每次约50分钟:回顾5分钟,例子与讲解25分钟,练习15分钟,用一句话复述5分钟。表中的“自检”用于确认是否掌握。目录按知识章节组织,课表说明每次课阅读哪些节。第4课学习真值表与逻辑等价,第5课专门学习谓词与量词,并用全称条件命题练习。

课次阅读位置自检
第1课1.1—1.3 集合与元素、有序对与笛卡尔积、子集能区别2、{2}、{{2}}
第2课1.4—1.6 集合运算与文氏图能用文氏图解释交集、并集与补集
第3课2.1—2.4 命题、逻辑联结词与条件命题能读懂条件,区分充分、必要与充要条件
第4课2.5—2.6 真值表与逻辑等价能检验德摩根律与逆否等价律
第5课2.7—2.8 谓词与量词、全称条件命题能区别全称与存在量词,读懂量词的顺序
第6课2.9—2.12 数学语句的符号表达、命题的否定与逻辑推理能准确表述、否定数学命题,检查简单推理
第7课3.1 直接证明能从偶数定义出发写一段证明
第8课3.2—3.3 逆否证明与反证法能说清两种方法分别假设了什么
第9课3.4—3.6 充要条件与存在唯一性、集合的证明、反例能证明集合包含关系,给出有效反例
第10课4.1、4.2、4.8 关系、函数、数列;数列极限综合示例能识别函数,读懂“任给误差,后面全部满足要求”

四部分的核心课时分别为2课、4课、3课、1课。第10课包括函数部分与独立的极限综合示例,重点是阅读数学定义。计数和数学归纳法都是支线;核心例子不依赖它们。

正文先说明日常意思,再给符号,最后做一个完整例子。只读核心时,按连续节号阅读即可;星号内容不占核心节号。读到陌生词时,先看它第一次出现处的解释,不必先背末尾的概念表。

绪论 · 独立页面 · 课前导读

为什么提前学集合、逻辑与证明?

从方程的解、正方形与长方形、偶数和质数等熟悉问题出发,认识这本书要学习的语言。可以先读绪论,也可以直接进入第一部分。

阅读完整绪论 →

完整绪论保留在独立页面;读完可回到本页的第一部分。

第一部分 · 第1—2课

集合

集合回答“我们讨论哪些对象”。先分清元素与集合,再学习怎样按条件选出元素。后面的关系和函数,都会用到这里的有序对与笛卡尔积。

  1. 1.1—1.3:集合与元素、有序对与笛卡尔积、子集。
  2. 1.4—1.6:交集、并集、差集、补集与文氏图。

1.1 集合与元素

把2、4、6放在一起,可以写成 A = {2, 4, 6}。这就是一个集合。里面的对象叫作元素。

大括号{ }把元素括在一起,逗号把不同的元素隔开;A只是给这个集合起的名字。我们通常用A、B等大写字母给集合命名。写“A={2,4,6}”,就是说明A有哪些元素。

定义 · 属于

2 ∈ A 读作“2属于A”,意思是2是A的一个元素。3 ∉ A 读作“3不属于A”。

集合看的是有哪些元素。调换顺序不会改变集合;重复写同一个元素,也不会得到新元素:

{2, 4, 6} = {6, 2, 4} = {2, 2, 4, 6}

集合相等,意思是它们的元素完全相同;不是只要求元素个数相同。例如{1,2}与{3,4}都有两个元素,却是不同的集合。

集合不一定只有数。一个班的学生、一张纸上的三角形,也能组成集合。前提是说清楚一个对象算不算其中的元素。

空集与“装着空集的集合”

没有元素的集合叫空集,记作 ∅。例如,“大于5而又小于3的整数”组成空集。

∅ 没有元素;{∅} 有一个元素,这个元素恰好是空集。

就像空盒子与“里面放着一个空盒子的盒子”,它们不同。盒子只是帮助理解的图像,数学集合本身没有大小或重量。

展开讲解 · 怎样数元素,为什么空集不等于0?

先把集合想成一份名单。名单中的一个位置,可以放一个数,也可以放一个集合。数元素时,先看最外层大括号直接列出了哪些对象。

例如A={1,{2},∅},最外层列了三个对象:数1、集合{2}、空集∅。所以A有三个元素。数2藏在元素{2}里面,却没有被直接列为A的元素;因此2∉A,而{2}∈A。

再看∅与{∅}。前者的名单是空的;后者的名单上列着一个对象——空集。不能因为那个对象里面没有东西,就把名单上的这一项也抹掉。

0是一个数,用来回答“有多少个”;∅是一个集合,用来表示“没有元素”。可以说“空集有0个元素”,不能因此写∅=0。本书把数与装着数的集合当作不同的对象。

自己试读{0}:它既不等于∅,也不等于{∅}。它有一个元素,这个元素是数0。

认识常用的数集

符号名称本书约定或例子
ℕ自然数集{1, 2, 3, …},跟随参考书,从1开始
ℤ整数集{…, −2, −1, 0, 1, 2, …}
ℚ有理数集能写成两个整数的商,分母不为0,例如 1/2、−3、0.25
ℝ实数集本书先把它理解为数轴上所有点对应的数

有的课本把0也列入自然数。本书为了和参考书一致,使用上面的约定。换一本书时,先看它的约定。

“…”是省略号,表示按已经说明的规律继续。

一个集合的元素总数如果等于某个非负整数(0、1、2、3、……),就叫有限集。例如{1,2,3}的元素总数恰好是3,空集的元素总数是0,所以它们都是有限集。

不是有限集的集合叫无限集。ℕ是无限集:无论列到哪个自然数,后面还有更大的自然数,没有任何一个非负整数等于它的元素总数。

* 展开讲解 · 有限与可数有什么区别?

“元素总数是一个整数”与“元素可以逐个编号”是不同的要求。{1,2,3}的元素总数是3;ℕ的元素也能逐个编号,却不能用某一个整数表示它的元素总数。

一个无限集,如果能与全部自然数1、2、3、……一一配对,既不重复也不遗漏,就叫可数无限集。例如正偶数集{2,4,6,……}:编号1对应2,编号2对应4,编号3对应6,按“编号乘2”的规则继续,每个正偶数都有且只有一个编号。

按照《Book of Proof》的约定,可数集包括有限集和可数无限集。因此{1,2,3}既是有限集,也是可数集;ℕ是可数集,却不是有限集。核心部分只需分清有限与无限,不要求继续学习可数性。

依据:Book of Proof,第14.2节,定义14.2。

后面还会说到“正数”和“正整数”:正数是大于0的数,正整数就是1、2、3、……。实数集ℝ把数轴上的数都包括在内;本书先使用数轴的直观认识,不要求重新建立整个数系。

集合很大,怎样写?

先回顾几个算术词:“能被2整除”表示除以2得到整数;整数能被2整除,就叫偶数,不能被2整除,就叫奇数。“3的倍数”表示3乘某个整数得到的数。这里谈除法时,除数不为0。

可以用条件描述集合。用小写字母n代表一个待检查的数,n可以换成不同的值,这样的字母叫变量。例如:

E = {n ∈ ℤ : n 是偶数}

读作“所有满足‘n是偶数’的整数n组成的集合”。冒号后面是筛选条件。这叫描述法;有的书把冒号写成竖线。

把描述法分成三步读

先看“n∈ℤ”:只从整数里选。再看冒号后面“n是偶数”:检查条件。最后把通过检查的数收集起来。

例如n=4通过,n=3不通过;n=−2与n=0也通过,因为−2=2×(−1),0=2×0。变量的名字也可以换成x,不会改变选出的集合。

{x ∈ ℤ : 1 < x < 5} = {2, 3, 4}。先看范围是整数,再看条件,不能把2.5放进去。

这里1<x<5表示“x大于1,并且小于5”。1和5本身不符合条件。符号≤表示“小于或等于”,≥表示“大于或等于”;有没有等号,会改变边界上的数是否入选。

展开讲解 · 把描述法当作一次完整的筛选

我们来读B={n∈ℤ:−2≤n<3}。别急着抄数字,先读完整句:“从整数中,选出大于或等于−2、并且小于3的数。”

先检查边界:−2满足−2≤n,所以要放进去;3不满足n<3,所以不能放进去。再检查中间的整数−1、0、1、2,它们都符合要求。

B={−2,−1,0,1,2}。

为什么没有2.5?它满足大小条件,却不在整数这个取值范围里。一个对象必须先在范围中,再满足筛选条件,才会成为元素。

为什么没有−3?它是整数,却没有通过后面的大小条件。两个检查缺一不可。

现在把n换成x,写成{x∈ℤ:−2≤x<3},选出的数完全一样。变量是临时名字;范围和条件决定了集合。

1.2 有序对与笛卡尔积

假如我们约定用“第几排、第几个座位”记录位置,(1,2) 就是第1排第2个座位,(2,1) 则是第2排第1个座位。调换顺序,意思会变。

这样的“第一项、第二项”组成的对象叫有序对,用圆括号写。两个有序对相等,要求第一项分别相等,第二项也分别相等。例如(1,2)≠(2,1),符号≠读作“不等于”。

若 A={1,2},B={3,4},把A中的一个数放在前面、B中的一个数放在后面,得到:

A × B = {(1,3), (1,4), (2,3), (2,4)}

这个集合叫笛卡尔积。符号×在这里表示“列出全部配对”,不是把数相乘。最后一课会用有序对记录关系和函数。

列举时先固定第一项1,配上3、4;再固定第一项2,也配上3、4。这样不漏、不重复。注意{1,2}={2,1},但(1,2)≠(2,1):大括号里的集合不记顺序,圆括号里的有序对记顺序。

展开讲解 · 怎样列出全部数对,又不把它们当乘法?

假设第一项记录小组编号,第二项记录座位编号。小组集合A={1,2},座位集合B={3,4}。数对(1,3)读成“第1组的第3号座位”,不计算1×3。

为了列出A×B,可以做两轮。第一轮把第一项固定为1,得到(1,3)、(1,4)。第二轮固定为2,得到(2,3)、(2,4)。所有选择都已列出。

如果改成B×A,第一项必须从3、4中选,于是得到(3,1)、(3,2)、(4,1)、(4,2)。这与前面的集合不同,不是简单地把书写顺序打乱。

判断两个数对是否相同,要逐个位置比较:(1,3)与(1,4)第一项相同,第二项不同,所以不是同一个数对。

第四部分会用第一项记录输入,用第二项记录输出。现在保留顺序,就是在为那时的“谁对应谁”作准备。

1.3 子集

定义 · 子集

如果A的每个元素都属于B,就说A是B的子集,记作 A ⊆ B。如果还知道A与B不相等,就写 A ⊊ B,读作“真子集”。

例如,{2,4} ⊆ {2,4,6}。一个元素也没漏到外面。每个集合也是自己的子集。

“A⊆B”也读作“A包含于B”,方向不能颠倒。这里{2,4,6}不包含于{2,4},因为6在前一个集合里,却不在后一个集合里。这样的6叫作一个反例:它是使所说的包含关系失败的对象。

B = {2, 4, 6} A246
图2A里的每个元素都在B里,所以A ⊆ B。

三个不同的对象

2 是数,{2} 是含有这个数的集合,{{2}} 是含有集合{2}的集合。

例如 2 ∈ {2,4},而 {2} ⊆ {2,4}。选择符号时,先确认左右两边各是什么对象。

空集是任何集合的子集。要反驳“∅ ⊆ A”,必须从空集中拿出一个不在A里的元素,但空集中根本没有元素。这种“找不到任何可能的反例”的结构,后面还会遇到。

展开讲解 · “属于”查一项,“包含于”查整份名单

令A={2,4,6}。检查“2∈A”,是在名单里找数2;检查“{2,4}⊆A”,是在问小名单里的每一个元素,是否都出现在A里。

后一件事可以分两步:2在A里,4也在A里,所以{2,4}⊆A。若改成{2,5},检查到5就失败了。因此一个不合格元素,足以推翻包含关系。

“A⊆A”没有问题:拿出A中的哪个元素,它当然仍在A中。所以⊆允许两边相等;只有⊊才额外要求两边不同。

空集为什么也包含于A?“小名单的每一项都在大名单里”要失败,必须有一项违反要求。小名单没有任何项,就没有违反要求的项。这句话不声称空集里面存在某个神秘元素。

常见误写是“{2}∈A”。A里直接列出的是数2,没有列出集合{2}。如果把大集合改成D={{2},4,6},这时{2}∈D才成立。

第1课练习 · 先在纸上写

  1. 集合 {1,1,2,3} 有几个元素?写出一个与它相等、顺序不同的集合。
  2. 令 A={1, {2}, 3}。判断:2 ∈ A;{2} ∈ A;{1,3} ⊆ A。
  3. 列出 {1,2} × {0,1}。它与 {0,1} × {1,2} 相等吗?
查看答案与理由
  1. 3个。重复的1只算一次,例如 {3,2,1}。
  2. 依次是假、真、真。A里面的是集合{2},不是数2。
  3. {(1,0),(1,1),(2,0),(2,1)}。不相等,例如(2,0)不在第二个笛卡尔积中。

1.4 交集、并集与差集

令 A={2,4,6},B={3,6,9}。下面三个集合回答三个不同的问题。

运算怎么选元素结果
A ∩ B,交集既在A里,又在B里{6}
A ∪ B,并集在A或B里,允许同时在两者里{2,3,4,6,9}
A ∖ B,差集在A里,但不在B里{2,4}

跟着一个元素检查

数6在A里,也在B里,所以进入交集,也进入并集;但差集A∖B要去掉B里的元素,所以6不进入差集。数2只在A里:它进入并集和A∖B,却不进入交集。

并集中的6只写一次。差集中的“减去”表示删掉元素,不是拿集合里的数做减法。

交集和并集交换两个集合,结果不变。差集通常不行:这里 B ∖ A={3,9},与 A ∖ B 不同。

展开讲解 · 对每个元素问两个问题,就能算交、并、差

仍取A={2,4,6},B={3,6,9}。对一个数,只问:“它在A里吗?”“它在B里吗?”然后按运算规则决定是否保留。

对6,答案是“在、在”:交集要它,并集也要它,A∖B却不要它,因为它也在B里。对2,答案是“在、不在”:交集不要,并集和A∖B都要。

对3,答案是“不在、在”:它进入并集,但不进入交集或A∖B。对5,答案是“不在、不在”:三个结果里都没有它。

并集允许同时在两者中的元素入选,这就是数学中“或”的意思。它不要求“只能选其中一个集合”。交集则把“两个条件同时满足”作为要求。

最后把保留下来的不同元素写成集合。6即使在两份名单中都出现,结果中也只保留一个6。

1.5 全集与补集

讨论的整体范围叫全集,这里记作U。求A的补集时,先要求A⊆U,再把U中属于A的元素删掉。剩下的集合叫A在U中的补集,就是 U ∖ A。

若 U={1,2,3,4,5,6},A={2,4,6},那么补集是{1,3,5}。如果把U改成{1,2,…,10},A的补集就还包括7、8、9、10。

所以,补集离不开“在哪个范围里”这个条件。

展开讲解 · 为什么只说“不属于A”还不够?

先固定A={2,4}。如果只讨论U={1,2,3,4},不在A里的对象就是1、3,补集为{1,3}。

再把讨论范围扩大为W={1,2,3,4,5,6},仍然保持A={2,4}不变。这时补集变成{1,3,5,6}。6也要放进去,因为我们没有把A自动改成“W里的全部偶数”。

这个例子有两个独立选择:先选全集,再选它里面的子集。集合一旦给定,就按它实际包含的元素计算,不按名字猜测。

把“补集”读成完整的话:“在当前全集中,不属于A的那些元素。”这样就不会把范围之外的对象也加进来。

后面否定一个关于数的条件时,也要先说清范围。在整数里“不是偶数”就是奇数;在实数里,还会有2.5这样的对象。逻辑中的“不”也离不开讨论范围。

1.6 文氏图(Venn 图)

用一个框表示全集,再用圈表示其中的集合;一个数写在圈里,表示它属于这个集合。这种表示方法叫文氏图(Venn 图,也译作维恩图)。圈的面积不表示元素的个数,主要看元素处在哪个区域。

下面固定 U={1,2,…,12}。A是其中的偶数,B是其中3的倍数。先猜结果,再切换运算。

123456789101112

A ∩ B = {6, 12}

这两个数既是偶数,又是3的倍数。深色方格表示被选中。

图3每一种集合运算,都对应一种选元素的条件。
U A:偶数B:3的倍数 24 810 612 39 两圈外:1,5,7,11
图4同一个元素只出现一次;两圈重叠的部分表示“同时属于”。

我们已经在使用逻辑语言了:“既……又……”对应交集,“至少属于一个”对应并集。第二部分会把这些说法变成精确的符号。

展开讲解 · 不看颜色,怎样读懂文氏图?

把图4中的数6单独拿出来。它在A的边界内,也在B的边界内,所以属于交集。无论画图时用什么颜色,这个判断都不变。

数2只在A圈里,所以它满足“属于A但不属于B”;数3只在B圈里;数1在两个圈外,却仍在全集U的框里。

因此“不同时属于A和B”会选出除了重叠部分以外的所有对象;“既不属于A,也不属于B”只选两个圈外的对象。两句话并不一样,2就是区别它们的例子。

不要通过圈画得大不大来猜元素多少,也不要认为交集必须有元素。交集为空时,可以在文氏图的重叠区域中标出∅;不能仅凭画出了重叠区域,就断定其中有元素。

画图帮助发现关系,文字条件帮助检查每个元素。遇到一个新的集合例子,先说条件,再根据条件确定图中的位置。

第2课练习

  1. 取 U={1,2,3,4,5,6},A={1,2,3},B={3,4}。求 A∩B、A∪B、A∖B、U∖A。
  2. “不同时属于A和B”与“既不属于A,也不属于B”相同吗?用第一题里的2说明。
  3. 若 A⊆B,A∩B 等于谁?A∪B 等于谁?解释理由。
查看答案与理由
  1. 依次是{3}、{1,2,3,4}、{1,2}、{4,5,6}。
  2. 不同。2属于A而不属于B,所以它“不同时属于两者”,却不是“两者都不属于”。
  3. 交集等于A:A的每个元素都在B里,所以A中的元素全被保留;交集也不会多出A以外的元素。并集等于B:A没有在B外面的元素,因此把A并进B不会增加新元素。

离开第一部分前

看到x∈A,要检查一个对象是否入选;看到A⊆B,要检查A的每个元素是否都在B里;看到A×B,要想到全部有序配对。

交、并、补使用的“且、或、不”,将在第二部分写成逻辑符号。没有星号的新知识到这里已经讲全,可以直接进入逻辑。

第二部分 · 第3—6课

逻辑

这一部分有两层。先把一句完整的话当作整体,研究“且、或、非、如果”;再研究句子里面的变量和“每个、存在”。最后用这些语言检查推理。

  1. 2.1—2.6:命题、联结词、真值表与逻辑等价。
  2. 2.7:谓词、量词与量词顺序。
  3. 2.8—2.10:全称条件命题、符号表达、命题的否定。
  4. 2.11—2.12:逻辑推理与数学表达。

2.1 命题

本课目标:分清命题与尚未指定变量的句子;读懂“且、或、非”。

“2是偶数”是真的。“3是偶数”是假的。它们都有确定的真假,都是命题。数学逻辑研究命题之间怎样连接,以及怎样从已知条件得到结论。

我们会反复判断“真”或“假”。一个命题的这个判断结果,叫它的真值。

定义 · 命题

一句话在讨论对象和意思都已经明确时,具有确定的真假,本书就把这样的陈述叫作命题。“具有确定的真假”不要求我们已经知道它是真还是假。这里使用经典逻辑:每个命题不是真,就是假,不能同时既真又假。

“请画一个三角形”是要求,没有真假。“这个三角形是等腰三角形”只有在说清楚“这个”指哪个三角形后,才有确定的真假。这里等腰指至少两边相等,等边指三边都相等。

先回顾“质数”

正整数d能整除整数n,就叫n的一个正因数。例如6的正因数是1、2、3、6。

大于1的整数,如果正因数只有1和它自己,就叫质数。例如2、3、5、7是质数;1不是质数;9也不是,因为它还有正因数3。

有确定的真假,不等于我们已经知道真假。例如“1000001是质数”是命题,即使我们暂时没有检查它的正因数。

“x是偶数”还差什么?

让x在整数中取值。“x是偶数”还没有指定x,取x=2和x=3会得到不同真假,因此它还不是一个对象确定的命题。我们可以先把这个条件记作P(x)。

这里P是给条件起的名字,P(x)读作“关于x的条件P”,不是P乘x。P(2)表示把x换成2,得到完整的命题“2是偶数”。

给x指定取值,便得到命题P(2)、P(3)。本节只要分清这点;2.7节再把这类条件作为谓词,与量词一起学习。

命题与断言

“命题”是我们判断真假的内容;“断言”通常指把某件事作为真事说出来。有些教材也用“断言”指陈述句。这里统一使用“命题”,不另外增加一套分类。

展开讲解 · “我不知道真假”与“这句话还没说完整”有什么不同?

先比较“1000001是质数”和“x是质数”。第一句话已经指定了整数,真假取决于这个数的因数,不取决于我们会不会检查。第二句话却没有指定x,不同取值会得到不同结果。

所以,第一句是我们暂时不知道真假的命题;第二句是关于x的条件,还需要给x取值,或者说明要谈论哪些x。

再换成图形。“是三角形”还没有说清楚谁是三角形;“图a是三角形”在图a已经指定时,才有确定真假。把前一句记成P(x),就是保留一个等待填入对象的位置。

不能因为一句话是假的,就说它不是命题。“3是偶数”虽然假,却是一句完整的命题。也不能因为句子有字母就一律排除:如果上下文已经规定x=3,“x是偶数”也已经有了确定对象。

检查顺序是:它是否在陈述一件事?对象和意思是否确定?最后才判断它为真还是为假。

2.2 逻辑联结词:且、或、非

用字母P、Q代表命题。例如P是“6是偶数”,Q是“6是3的倍数”。

P、Q只是代号,每个例子会说明它们代表什么;换一个例子时可以重新指定。把所有可能的真假组合列成表,叫真值表;2.5节会集中学习怎样使用它。

连接命题的符号叫联结词;连接后得到的新命题叫复合命题。“否定P”表示说“P不成立”,不是换成一个随意的相反说法。

表达式怎么读什么时候为真
P ∧ QP且Q两者都真
P ∨ QP或Q至少一个真,包括两者都真
∼P非P;P的否定P为假

本书跟随参考书用∼表示否定;你也可能见到¬P,它们在这里意思相同。数学中的“或”默认允许两个条件同时成立。

∧、∨分别也叫合取、析取。遇到这些名称时,读成“且”“或”就可以。例如“x>3”的否定是“x≤3”,因为x=3也属于“不大于3”的情况。

例 · 选哪些自然数?

在1到6里,“是偶数且大于3”选出4、6。“是偶数或大于3”选出2、4、5、6。“不是偶数”选出1、3、5。

“不是偶数”在整数范围里就是“是奇数”。如果范围包括2.5,就不能这样换,因为2.5既不是偶数,也不是奇数。

较长的句子要加括号。∼(P ∧ Q) 否定整个“P且Q”;(∼P) ∧ Q 只否定P。这两句话不同。

展开讲解 · “或”为什么允许两者都真?括号又改变了什么?

假设入选条件是“是偶数,或者是3的倍数”。数2靠第一个条件入选,数3靠第二个条件入选,数6同时满足两个条件,也应当入选。数学中的∨就是“至少满足一个”。

如果题目真的要求“恰好满足一个”,就必须另外说清楚:“满足其中一个,但不能同时满足两个。”不能把这个额外要求偷偷加进普通的∨。

现在设P为真、Q为假。∼(P∧Q)先算括号:P∧Q是假,再否定它,得到真。(∼P)∧Q先否定P,得到假;再与假的Q连接,仍是假。

两式用了相同的P、Q和相同的符号,括号不同,结果就不同。这与算术中2×(3+4)和2×3+4不同是同一个阅读习惯:先看结构,再计算。

读较长的逻辑式时,可以先用铅笔圈出最外层的联结词,找出它连接的是哪两块,再分别处理里面的部分。

命题与联结词练习

  1. 判断哪些是命题:“7是质数”;“x>3”;“请计算2+3”;“1000001是质数”。说明理由,不必判断最后一句的真假。
  2. 令P为“9是偶数”,Q为“9是3的倍数”。判断P∧Q、P∨Q、∼P。
  3. 范围是整数。把“n大于0,而且n不是偶数”写成用∧和∼连接的句子。
查看答案与理由
  1. 第1句和第4句是命题。第2句还缺少x的取值或量词;第3句是要求。
  2. P假、Q真,所以依次是假、真、真。
  3. (n>0) ∧ ∼(n是偶数)。也可以写成“n>0且n是奇数”,但这一改写使用了整数范围。

2.3 条件命题与充分、必要条件

本课目标:知道什么情况能推翻条件命题;分清充分条件、必要条件和充要条件。

“如果一个整数能被4整除,那么它是偶数。”这里,“能被4整除”是前件,“是偶数”是后件。前件提出条件,后件给出条件成立时应满足的结论。

P ⇒ Q 读作:如果P,那么Q。

这叫条件命题,也常叫假言命题。在本书使用的经典命题逻辑中,它按下面的真值规则解释,这个联结词也叫实质蕴涵。

条件命题只排除一种情况

P真而Q假时,P⇒Q为假;另外三种情况都为真。

它说的是:“不能出现前件成立、后件却不成立的情况。”

如果有人说“每个满足P的对象都满足Q”,我们找到了一个满足P、却不满足Q的对象,它就叫这句话的反例。反例的“反”,指它违反了这条保证。

令P(n)为“n是偶数”,Q(n)为“n是质数”。质数指大于1且正因数只有1和它自己的整数;1不是质数。

nP(n)Q(n)P(n)⇒Q(n)
2真真真
4真假假 ← 反例
3假真真
1假假真

n=2:前件真,后件真,这个条件命题为真。

图5要反驳“所有偶数都是质数”,4这一行已经足够。

请区分两件事:P(2)⇒Q(2)为真,只是在检查数2;“对所有自然数n,P(n)⇒Q(n)”则要求每个n都通过检查。后一句被n=4推翻了。

为什么前件假时,条件命题为真?

想象我们检查规则:“所有能被4整除的整数都是偶数。”看到6不能被4整除,不应因此判这条规则错误;看到3也一样。真正的反例必须既能被4整除,又不是偶数。

数学用同一张真值表检查每个对象。前件为假,表示这个对象没有违反该条件。这里的“真”不表示前后两件事有因果联系,也不表示后件本身为真。

一次检查通过,不等于找到了一个定理

“4是奇数 ⇒ 4是质数”按真值表为真,因为前件假。可是“4是质数”仍然是假。只有同时知道P为真和P⇒Q为真,才能据此得到Q。

展开讲解 · 用2、4、3、1逐个读完条件命题的四种情况

检查“如果n是偶数,那么n是质数”。我们暂时只检查一个指定的n,记P(n)为前件,Q(n)为后件。

  1. n=2:它是偶数,也是质数。条件提出了要求,结果符合要求,所以这一例为真。
  2. n=4:它是偶数,却不是质数。条件提出了要求,结果违反要求,所以这一例为假。
  3. n=3:它不是偶数,却是质数。前件没有成立,这个对象没有违反“偶数应当怎样”的要求,所以条件命题为真。
  4. n=1:它既不是偶数,也不是质数。同样因为前件没有成立,这个条件命题仍然为真。

第三、四种情况的“真”,都没有告诉我们“n是偶数”。第四种也没有告诉我们“n是质数”。它只是在按定义计算整个条件命题的真值。

再回到“每个偶数都是质数”这个普遍说法:它要求所有n都不能出现第二种情况。4已经使它失败,所以找到再多通过检查的数,也不能挽救这个普遍说法。

充分条件和必要条件一起读

当我们知道在所讨论的范围内P成立就保证Q成立时,可以用下面两种说法描述同一件事:

P是Q的充分条件:有P就够了。
Q是P的必要条件:有P就少不了Q。

例 · 正方形与长方形

本书把“四个角都是直角的四边形”叫长方形。正方形的四个角都是直角,所以正方形也是长方形。“是正方形”足以保证“是长方形”,所以前者是后者的充分条件。

要成为正方形,必须先满足长方形的条件,所以“是长方形”是“是正方形”的必要条件。但长方形还可能长与宽不同,因此必要条件本身不一定够用。

再看整数:“能被4整除”是“是偶数”的充分条件;“是偶数”是“能被4整除”的必要条件。6是偶数却不能被4整除,说明不能倒过来说。

“充分条件”描述两个条件的保证关系;“实质蕴涵”规定条件联结词怎样计算真假。数学中讨论带变量的充分条件,通常要求这种保证对指定范围里的所有对象都成立。

2.4 双条件命题与充要条件

定义 · 双条件与充要条件

P ⇔ Q 读作“P当且仅当Q”,意思是 (P⇒Q) ∧ (Q⇒P)。

两个方向都成立时,P是Q的充分且必要条件,简称充要条件。P⇔Q在P、Q真假相同时为真。

例如,对整数n,“n是偶数”当且仅当“存在一个整数k,使n=2k”。这也是偶数的定义。

这里2k表示2×k,省略了乘号。以后ab表示a×b。k可以是0,也可以是负整数,例如0=2×0,−6=2×(−3)。

认意思,也认教材的约定

本书跟随参考书用⇒写条件,用⇔写双条件。其他书可能使用→、↔。箭头画成单线还是双线,并没有跨教材统一的分工。

先看作者的定义。不要仅凭箭头外形,就认定一个是“蕴涵”、另一个是“证明中的推出”。

展开讲解 · 怎样判断谁充分、谁必要,而不背反方向?

先不要看“充分”“必要”这两个名字,只问一句:“知道前一件事,能不能保证后一件事?”

设P为“这个三角形是等边三角形”,Q为“这个三角形是等腰三角形”。知道P以后,三边相等,当然至少两边相等,所以可以保证Q。

从P这一侧看,P已经够用,因此P是Q的充分条件。从Q这一侧看,如果连Q都没有满足,就不可能满足P,因此Q是P的必要条件。这是同一条保证的两种读法。

可是知道Q不能保证P。边长2、2、3的三角形通过了等腰条件,却没有通过等边条件。它说明Q还不够充分,也说明P不是Q所必需的。

遇到“充要条件”,就重新检查反方向。只有P保证Q、Q也保证P时,才能写“当且仅当”。不要把一个方向的例子重复写两遍,当成两个方向。

第3课练习 · 条件命题与双条件命题

  1. 给“如果n是质数,那么n是奇数”找一个反例。范围是自然数。
  2. “三角形是等边三角形”和“三角形是等腰三角形”,哪个是哪个的充分条件?本书把“至少两边相等”的三角形叫等腰三角形。
  3. 已知P假、Q假。P⇒Q和P⇔Q分别是真是假?能据此说Q为真吗?
查看答案与理由
  1. n=2。前件“是质数”真,后件“是奇数”假。
  2. 等边是等腰的充分条件;等腰是等边的必要条件。边长为2、2、3的三角形说明反向不成立。
  3. 两个都真;不能。这里Q本来就是假的。复合命题为真,不要求其中每个命题都真。

2.5 真值表

本课目标:会制作真值表;理解逻辑等价;用德摩根律和逆否等价律改写命题。

两个命题P、Q各有真、假两种可能,一共四种组合。逐一列出组合,再按规则计算,就得到真值表。

PQP∧QP∨QP⇒QP⇔Q
真真真真真真
真假假真假假
假真假真真假
假假假假真真

不要把这张表当作一排口诀。每一列都能从定义重新算出。例如“且”需要两个都真,“或”只需要至少一个真。

展开讲解 · 怎样为一个稍长的式子制作真值表?

试算(P∨Q)∧(∼P)。它不是一次完成的运算,可以加两个中间栏目:先算P∨Q,再算∼P,最后把它们用∧连接。

PQP∨Q∼P最后结果
真真真假假
真假真假假
假真真真真
假假假真假

只看第三行:P假、Q真,所以“P或Q”为真,“非P”也为真,最后的“且”得到真。其他行至少有一个被连接的部分为假。

算完后,再用语言检查:“至少有一个真,而且P不真”,那就只能是P假、Q真。这个解释与最后一列一致。

中间栏目能保留每一步理由。刚开始时宁可多写两列,也不要凭感觉跳到答案。

2.6 逻辑等价与基本等价律

定义 · 逻辑等价

如果两个表达式在每一种真假组合下都有相同的真值,就说它们逻辑等价。本书用≡表示这种等价。

前面的⇔把P、Q连接成一个命题:检查这一次P、Q的真假是否相同。这里的≡则断言两个表达式在每一种真假组合下都一样。一次都真,不足以说明逻辑等价。

“并非P和Q都成立”是什么意思?只要其中有一个不成立就可以。于是:

∼(P ∧ Q) ≡ (∼P) ∨ (∼Q)
∼(P ∨ Q) ≡ (∼P) ∧ (∼Q)

这两条叫德摩根律。第二条的意思是:“至少有一个成立”这句话为假,就要求两个都不成立,也就是P假并且Q假。

第一条为什么对?逐行检查

PQ∼(P∧Q)(∼P)∨(∼Q)
真真假假
真假真真
假真真真
假假真真

例如第二行:P∧Q是假,否定后为真;∼P是假、∼Q是真,“或”把它们连接后也为真。四行都检查完了,两列完全一致,才得到逻辑等价。

例 · 不是“偶数而且大于5”

在自然数中,否定“n是偶数且n>5”,得到“n不是偶数,或者n≤5”。例如4不满足原条件,却满足否定,因为4≤5。

若改成“n不是偶数,而且n≤5”,就会漏掉4。这正是把“不是两者都……”误读成“两者都不是……”。

另几条常用的等价关系是:

关系意思
∼∼P ≡ P双重否定回到原命题
P⇒Q ≡ (∼P)∨Q条件命题只排除P真Q假
P⇒Q ≡ (∼Q)⇒(∼P)原命题与逆否命题等价
∼(P⇒Q) ≡ P∧(∼Q)否定条件命题:前件真而后件假

以“能被4整除⇒是偶数”为例,逆否命题是“不是偶数⇒不能被4整除”。它换了方向,也否定了两边。只换方向的“是偶数⇒能被4整除”叫逆命题,不保证与原命题等价。

为什么原命题与逆否命题等价?P⇒Q只在P真、Q假时为假。∼Q⇒∼P只在∼Q真、∼P假时为假,也就是Q假、P真。两者恰好在同一种情况下为假,其他情况都真,所以逻辑等价。

对元素x说的话收集这些x得到的集合
x∈A 且 x∈BA∩B
x∈A 或 x∈BA∪B
x∈U,但x∉AU∖A
并非同时属于A、BU∖(A∩B) = (U∖A)∪(U∖B)
图6在固定的全集U中,集合运算记录哪些元素满足逻辑条件。

最后一行正是集合的德摩根律。这里A、B都包含在同一个全集U里。对U中的一个元素x,左边要求它“不同时属于A和B”;根据德摩根律,这就是“不属于A,或者不属于B”,恰好是右边的入选条件。

两边选出完全相同的元素,所以集合相等。这里先把集合问题改写成关于元素的句子,再用逻辑规律改写;第三部分会把这样的说明整理成证明。

展开讲解 · 德摩根律如何同时改变一句话和一个集合?

在U={1,2,3,4,5,6}中,令P(x)表示“x是偶数”,Q(x)表示“x>3”。满足P的集合是A={2,4,6},满足Q的集合是B={4,5,6}。

“P或Q”选出A∪B={2,4,5,6}。否定整个条件后,剩下{1,3}。

换一条路:先否定P,得到不是偶数的{1,3,5};再否定Q,得到不大于3的{1,2,3}。德摩根律告诉我们,这两份名单要取交集,于是同样得到{1,3}。

为什么这里不能取并集?如果取并集,5也会被选进来;可是5满足Q,“P或Q”本来就是真的,它不该被选进整个句子的否定中。

因此,否定“或”要变成“且”,还要分别否定两边。集合里相应地把“并”变成“交”,同时取各自的补集。两种写法做的是同一次筛选。

第4课练习 · 真值表与逻辑等价

  1. 把“并非n大于0且n是偶数”改写成一个不在括号外使用否定的句子。
  2. 列出P、Q的四种情况,验证P⇒Q与(∼P)∨Q逻辑等价。
  3. P∧Q与P∨Q逻辑等价吗?给出一组真假说明。
查看答案与理由
  1. “n≤0,或者n不是偶数。”
  2. 按真真、真假、假真、假假的顺序,两列都是:真、假、真、真。
  3. 不等价。例如P真、Q假时,P∧Q为假,P∨Q为真。

2.7 谓词与量词

本节目标:认识谓词、全称量词与存在量词;分清论域和量词顺序。

谓词与论域

让x在整数中取值。“x是偶数”含有一个尚未指定取值的变量,是一个开语句;也可以把它看作关于x的谓词,记作P(x)。P(2)为真,P(3)为假。

允许变量取值的范围叫论域。给x指定取值,可以得到命题;用“对于每个”或“存在至少一个”说明范围内的对象,也能得到命题。表达这两种要求的词叫量词。

全称量词与存在量词

两个量词

∀x∈A,P(x):对于A中的每个x,P(x)都成立。∀是全称量词。

∃x∈A,P(x):A中至少有一个x,使P(x)成立。∃是存在量词。

“每个对象都满足……”这样的命题叫全称命题;“至少有一个对象满足……”这样的命题叫存在命题。名称提示我们检查的要求不同。

先在一个小集合里检查

取A={2,4,5},P(x)表示“x是偶数”。“∀x∈A,P(x)”为假,因为检查到5就失败了;“∃x∈A,P(x)”为真,因为2已经是一个满足条件的对象。

证明“每个”时不能漏查;证明“存在”时,找到一个合适对象就够了。把有限范围里的这个意思,保留到ℕ、ℤ等无限范围中,量词的意思仍然相同。

例 · 同一句方程,不同范围

方程2x=1两边都除以2,得到x=1/2;反过来代入1/2,也确实使方程成立。

∃x∈ℤ,2x=1 为假,因为唯一可能的值1/2不是整数。

∃x∈ℚ,2x=1 为真,因为1/2是有理数。

方程没变,量词没变;范围变了,真假就可能改变。

“存在”不表示“恰好有一个”。“存在一个偶数”允许找到2、4、6等很多例子。“每个”也不能只检查几个代表,除非已经列完全部对象。

命题逻辑与谓词逻辑怎样接起来?

前面把整句话看成P、Q,研究它们怎样连接,这是命题逻辑的入门。现在打开句子,看到对象x、条件P(x)和量词,进入谓词逻辑的入门。

2.1只区分完整命题与尚未指定变量的句子;本节把谓词和量词放在一起学习。前面学过的“且、或、非、如果”仍然继续使用。

展开讲解 · “所有”与“存在”的检查任务为什么不同?

先把范围固定成A={1,2,3,4,5,6}。如果要说明“所有元素都是偶数”,必须让六个元素全部通过检查。只检查到1,就能知道这个说法失败。

如果要说明“存在一个偶数”,找到2就够了。即使1、3、5不满足,也不会推翻“至少有一个满足”的说法。

反过来,要说明“A中不存在大于10的数”,就不能只看1。这里因为名单有限,我们可以检查全部六个数,确认没有一个满足条件。

如果把范围换成ℕ,只检查前六个数就不够了。11就是一个大于10的自然数。一次检查到底能说明什么,取决于量词和论域。

可以记成两组任务:证明“所有”,要有覆盖整个范围的理由;反驳“所有”,一个失败对象足够。证明“存在”,一个成功对象足够;反驳“存在”,要说明整个范围都找不到。

量词的顺序

看下面两句话。它们都讨论自然数,只调换了量词的顺序。

∀n∈ℕ,∃m∈ℕ,m>n:每给出一个自然数n,都能找到比它大的自然数m。这是真的,可以选m=n+1。

∃m∈ℕ,∀n∈ℕ,m>n:能先找出一个自然数m,它比所有自然数都大。这是假的,取n=m就不满足m>n。

第一句中,m可以随着n改变;第二句要求先固定一个m,再面对所有n。读量词,要从左往右读。

展开讲解 · 把量词顺序读成“谁先给数,谁后选数”

先玩第一个游戏:你给一个自然数n,我再选自然数m,要求m>n。你给5,我选6;你给100,我选101。无论你给什么,我都可以按m=n+1回答。

所以∀n∈ℕ,∃m∈ℕ,m>n成立。m不是一开始就固定好的,它可以依赖你先给的n。

第二个游戏改变顺序:我先写下一个m,之后你可以给任何自然数n,仍要求m>n。不管我把m写得多大,你只要给n=m,我就无法满足严格大于。

所以∃m∈ℕ,∀n∈ℕ,m>n不成立。失败的原因不是我还没找到足够大的数,而是每一个事先固定的m,都能被同样的办法击败。

最后的极限定义也有这种先后次序:先给误差ε,再选界限N,然后检查所有后续编号n。把“谁可以依赖谁”读清楚,长公式就有了行动顺序。

量词练习

n²表示n×n,读作“n的平方”。判断下面三句的真假,并给出理由:

  1. ∀n∈ℕ,n+1>n。
  2. ∃n∈ℕ,n²=9。
  3. ∀n∈ℕ,n²=9。
查看答案与理由
  1. 真。任何自然数加1都会变大,这个理由对任意n适用。
  2. 真。取n=3即可。
  3. 假。取n=1,1²不等于9。

2.8 全称条件命题

本节在2.3的条件命题中补出全称量词,再用子集关系表达同一个数学事实。

“如果n能被4整除,那么n是偶数。”在讨论整数的一段数学文字中,这通常不是只说一个未指定的n,而是对任意整数n都作保证。把隐藏的量词写出:

∀n∈ℤ,(n能被4整除 ⇒ n是偶数)。

所以,证明这句话不能只列举4、8、12。要给出对任意整数n都适用的理由。3.1节会完成这个证明。

集合包含关系也有相同的形式:

A⊆B 意思是 ∀x∈U,(x∈A ⇒ x∈B)。

这里A、B都是U的子集。左边说集合怎样包含,右边说每个元素应当满足什么。这是集合语言与逻辑语言之间的一座桥。

集合与逻辑的对应

用三角形的条件与包含关系,比较逻辑语言和集合语言怎样表达同一个意思。

先固定范围U:我们正在讨论的平面图形。令P(x)表示“x是等边三角形”,Q(x)表示“x是三角形”。这里的x还没指定,所以P(x)、Q(x)是谓词。指定一个图形a以后,P(a)、Q(a)才成为可以判断真假的命题。

现在收集使条件成立的对象:

E = {x∈U : x是等边三角形}
I = {x∈U : x是等腰三角形}
T = {x∈U : x是三角形}。

等边三角形三边相等,当然至少两边相等,所以每个等边三角形都是等腰三角形;每个等腰三角形又都是三角形。因此:

E ⊆ I ⊆ T ⊆ U。
U:讨论的平面图形 T:三角形 I:等腰三角形 E:等边三角形 三边互不相等 不是三角形
图7加上条件,符合条件的对象不会增多;集合包含关系对应条件之间的保证关系。图中只画了几个例子。

例如,“x是等边三角形”足以保证“x是三角形”,用两种语言写,就是同一件事:

集合语言:E⊆T。
逻辑语言:∀x∈U,(P(x)⇒Q(x))。

如果E里有一个对象不在T里,它就使P真、Q假,成为条件命题的反例。反过来,只要没有这样的对象,E中的每个元素就都在T里,所以E⊆T。子集关系对应的是“对所有x都成立”的保证,不能只检查某一个图形。

“是等边三角形”比“是三角形”要求更多,所以前者是后者的充分条件,选出的集合更小。“是三角形”是“是等边三角形”的必要条件;三边不等的三角形说明它本身还不够。

“是全等三角形”要先说明与谁全等

两个图形经过平移、旋转或翻转后,能够完全重合,就叫全等。不允许把图形放大或缩小。全等说的是两个图形之间的关系,单独说“这个三角形是全等三角形”还缺少比较对象。

“等边”比较一个三角形自己的三条边;“全等”比较两个图形。它们不是同一个条件。

先固定一个三角形T0,下标0只是给它起的名字。令C收集与T0全等的图形:

C = {x∈U : x与T0全等}。

能与一个三角形完全重合的图形,也必然是三角形,所以C⊆T。这个包含关系说的正是:“对于每个x,如果x与T0全等,那么x是三角形。”固定比较对象后,这就成为关于x的一个条件。

用一张表总结对应关系

在同一个范围U内,令A={x∈U:P(x)},B={x∈U:Q(x)}。下面每一行都可以从“检查一个x是否入选”来理解。

逻辑中说什么集合中怎样记录
P(x)成立x∈A
P(x)且Q(x)x∈A∩B
P(x)或Q(x)x∈A∪B
P(x)不成立x∈U∖A
对每个x,P(x)⇒Q(x)A⊆B
对每个x,P(x)⇔Q(x)A=B

这里不是把一句命题直接当成集合,而是把使条件成立的对象收集成集合。逻辑说条件怎样组合,集合记录哪些对象通过了这些条件。

展开讲解 · 从一个三角形的判断,走到整个集合的包含

先选一个等边三角形a。“a是等边三角形”为真,“a是三角形”也为真。换成集合语言,就是a∈E且a∈T。到这里,我们只检查了a这一个对象。

为了说明E⊆T,必须把理由推广到E里的任意对象:只要x是等边三角形,它按定义首先就是一个三角形,所以x∈T。这个理由没有使用a特有的位置、大小或颜色,因此对E里的每个x都适用。

再检查反方向。取一个三边互不相等的三角形b,b∈T,但b∉E。因此T⊆E不成立。“等边”能保证“三角形”,而“三角形”不能保证“等边”。

这也解释了条件强弱与集合大小的方向:要求越严格,留下的对象不会更多。P是Q的充分条件时,满足P的对象集合包含于满足Q的对象集合。

并不是“充分条件的集合更大”。它保证结论,通常正是因为已经满足了更严格的要求。若两个条件对范围内所有对象都互相保证,选出的集合才相等。

展开讲解 · 一个条件命题的成立范围,为什么不直接等于子集关系?

取U={1,2,3,4,5,6,7,8}。令P(n)为“n是偶数”,Q(n)为“n能被4整除”。于是A={2,4,6,8},B={4,8}。

对某一个n,P(n)⇒Q(n)只在“n∈A却n∉B”时为假。所以2、6检查失败,其他数都使这个条件命题为真。其中1、3、5、7通过,是因为前件为假。

使P(n)⇒Q(n)为真的数组成
(U∖A)∪B = {1,3,4,5,7,8}。

这个“成立范围”是一个集合;“A⊆B”则是关于两个集合的一句话。它要求A中一个违规对象都没有,也就是要求上面的成立范围等于整个U。

本例中2、6是反例,所以A⊆B为假。虽然P(4)⇒Q(4)为真,我们仍然不能从这一个例子推出A⊆B。

因此要牢记完整的对应:A⊆B,对应∀x∈U,P(x)⇒Q(x)。那个“对于每个x”不能省掉意思。

展开讲解 · 等边、全等、同一个图形,分别在比较什么?

拿一块三角形纸片作为T0,再剪一块与它形状和大小完全相同的纸片。把第二块移动或翻转后,能够与第一块重合,它们就是全等的。

两块纸片可以放在不同位置,分别记成a、b。它们是两个对象;全等说明它们能够重合,不是说名单中的a和b自动变成同一个元素。

如果把原纸片放大后再剪一块,形状看起来相同,大小却不同,不再与原纸片全等。若T0本身三边互不相等,与它全等的三角形也不可能是等边三角形。

所以“等边”不是“全等”的简称。集合E检查每个三角形自己的边;集合C检查它与固定的T0能否重合。这里T是全部三角形组成的集合,T0则是其中一个指定的图形。

如果不固定T0,就要同时记录两个三角形。这会自然引出第四部分的关系:把满足全等条件的有序对收集起来。

展开讲解 · 怎样用集合表达“存在”与“所有”?

可以。固定U={1,2,3,4,5,6},令A收集使P(x)成立的对象。

说“存在一个x使P(x)成立”,就是A里面至少有一个元素,也就是A≠∅。说“每个x都使P(x)成立”,就是U的全部对象都被选中,也就是A=U。

例如P(x)为“x²=4”时,A={2}。它不是空集,因此“存在”是真的;它又不是整个U,因此“所有”是假的。

若条件改成“x>0”,A=U,所以对这个范围内的所有对象都成立。若条件改成“x>6”,A=∅,就没有满足条件的对象。

这样看量词,重点仍是先固定U。把U换成全部自然数后,“x>6”就会选出7、8、9、……,存在命题的真假也会改变。

2.9 用逻辑符号表述数学语句

这一节练习同一句数学话的两种写法:先用中文说完整,再用集合、量词和联结词写出它的结构。符号写法必须保留原句的意思,不能多加条件,也不能漏掉条件。

例1 · 每个偶数都能写成2乘一个整数

先确定范围:讨论整数n。再找条件:“n是偶数”。最后找结论:“存在整数k,使n=2k”。

∀n∈ℤ,((n是偶数) ⇒ (∃k∈ℤ,n=2k))。

从左往右读:对于每个整数n,如果n是偶数,那么存在一个整数k,使n=2k。这里k可以随着n改变;n=6时选k=3,n=−4时选k=−2。

例2 · 存在一个偶数,它也是质数

∃n∈ℕ,((n是偶数) ∧ (n是质数))。

我们要找的同一个n必须同时满足两个条件,所以用“且”。取n=2就能验证这句话。

不能改写成“∃n∈ℕ,((n是偶数)⇒(n是质数))”。后一句连n=1也能满足,因为前件假;它没有保证找到了一个偶数。

例3 · 两个数中至少有一个是偶数

设a、b是已经给定的整数。“a和b中至少有一个是偶数”应写成:

(a是偶数) ∨ (b是偶数)。

句子虽然出现“和”字,表达的要求却是至少满足一个条件,因而用∨。不能只按某个汉字机械替换符号。

展开讲解 · 写好符号以后,怎样检查有没有改掉原意?

做三次检查。第一,字母能取哪些对象?第二,要求“每个”还是“存在”?第三,两个条件之间是“且”“或”,还是“如果……那么……”?

写完后,把式子从左到右读回中文。例如∃n∈ℕ,(n>5且n是偶数),读回“存在一个大于5的偶数”,可用6检查。若写成∀n,读回就变成“每个自然数都大于5并且是偶数”,原意已经改变。

符号表达不等于证明。准确写出一句话,只是明确了要判断或证明的内容;要说明它是真的,仍然需要理由。

2.10 命题的否定

∼(∀x∈A,P(x)) 等价于 ∃x∈A,∼P(x)。
∼(∃x∈A,P(x)) 等价于 ∀x∈A,∼P(x)。

“不是所有自然数都是偶数”只要求有一个自然数不是偶数;不要求每一个都不是。“不存在偶数质数”则说每一个偶数都不是质数,它被2推翻。

例 · 怎样否定一个带条件的全称命题?

原句:“每一个质数都是奇数。”

第一步,把“每一个”换成“存在一个”。第二步,要求该对象使条件命题失败:它是质数,却不是奇数。

所以否定是:“存在一个质数,它不是奇数。”不是“每一个质数都不是奇数”。

展开讲解 · 否定时,怎样避免把一句话改得过头?

要否定“所有三角形都是等腰三角形”,只需要有一个三角形不是等腰的。边长3、4、5的三角形已经足够;不需要证明所有三角形都不等腰。

如果把否定写成“所有三角形都不是等腰三角形”,就把要求改强了。原句失败时,这个过强的句子仍可能失败,因此它不是准确的否定。

再看“存在一个偶数是质数”。准确否定是“不存在这样的偶数”,也就是“每个偶数都不是质数”。取2检查,原句为真,否定为假,两者确实相反。

处理“对于每个x,如果P(x),那么Q(x)”时,先把“每个”改成“存在”,再让条件命题失败。得到的是“存在x,P(x)为真且Q(x)为假”。

不要把失败的对象放到前件之外。反驳“质数都是奇数”时,4不是合适对象,因为它根本不是质数;2才同时满足前件并违反后件。

2.11 逻辑推理

前提是推理所依据的已知条件,结论是要从这些条件得到的话。把前提到结论的关系说清楚,就是在作推理。

有效的推理

如果不可能出现“前提全部为真,结论却为假”,这就是一个有效推理。检查有效性,要看推理形式是否保证结论。

推理例子与判断
已知P⇒Q,又已知P,所以Q能被4整除的整数都是偶数;12能被4整除;所以12是偶数。有效。
已知P⇒Q,又已知∼Q,所以∼P能被4整除的整数都是偶数;7不是偶数;所以7不能被4整除。有效。
已知P⇒Q,又已知Q,所以P?6是偶数,不代表6能被4整除。这叫“肯定后件”,形式无效。

结论碰巧正确,也不表示推理有效。例如把最后一行的6换成8,结论恰好对了,那个推理形式仍然不能保证结论。

推理有效,也不保证前提真的符合事实。要得到可靠的数学结论,需要正确的前提,加上有效的推理。

例如P⇒Q与P同时为真时,Q不可能为假:否则就出现P真Q假,会让前提P⇒Q为假,与“两个前提都真”冲突。这说明第一种推理确实有保证。

展开讲解 · 结论碰巧正确,为什么还可能推理错误?

已知“能被4整除的整数都是偶数”。如果又知道8能被4整除,得到8是偶数,这条推理有保证:它使用了前件。

如果反过来说“8是偶数,所以8能被4整除”,结论也碰巧为真,但使用的是另一个推理形式。用6替换8,同样的前提“6是偶数”为真,结论却变成假的。

我们据此知道:仅仅满足“偶数”这一后件,不能保证满足“能被4整除”这一前件。这就是肯定后件的问题。

另一个错误是:“6不能被4整除,所以6不是偶数。”没有满足前件,并不说明后件也不成立;6正好是偶数。

检查一段推理时,可以问:“能否保留前提全真,却让结论变假?”如果能找到这样的情况,这个推理形式就没有给出保证。

2.12 数学表达中的符号与文字

数学证明通常把自然语言和符号放在一起。写清“任取”“设”“由定义”“因此”,能让读者知道每一步正在做什么。

例如只写“4k⇒2k⇒偶数”是不清楚的:4k、2k是数的表达式,不是命题。可以写:“设n=4k,其中k是整数。因为n=2(2k),且2k是整数,所以n是偶数。”

展开讲解 · 把一串符号改写成别人能检查的话

假设草稿上只写着“4k→2→偶数”。读者不知道4k是什么,也不知道箭头表示代换、除法,还是某个命题推出另一个命题。

先补对象:“设n是能被4整除的整数。”再展开条件:“于是n=4k,其中k是整数。”这两句话说明了n和k的来源。

接着写等式:“n=4k=2(2k)。”等号连接的是相等的数的表达式。最后补理由:“因为2k也是整数,所以n满足偶数的定义。”

这段文字中,n=4k与n=2(2k)各自都是可以判断真假的等式;4k单独出现,只是一个表示数的式子。不要把对象与关于对象的话混用。

写证明不是尽量把中文删光。恰当的“设”“由定义”“因为”“所以”,会告诉读者当前的对象、依据和目标。

第6课练习

  1. 否定“所有三角形都是等腰三角形”。
  2. 把“每个整数都有一个比它大的整数”写成量词语句,并给出怎样选择那个更大整数。
  3. 小林说:“等边三角形都是等腰三角形;这个三角形是等腰三角形,所以它是等边三角形。”指出问题,给出边长作为反例。
查看答案与理由
  1. 存在一个三角形,它不是等腰三角形。例如边长3、4、5的三角形。
  2. ∀n∈ℤ,∃m∈ℤ,m>n。选m=n+1即可;这里m依赖n。
  3. 肯定后件。边长2、2、3的三角形是等腰而非等边,且满足两边之和大于第三边,确实能组成三角形。

离开第二部分前

先问范围,再看量词;先分清条件,再判断推理。“每个”命题的反驳要找一个失败对象,“存在”命题的证明要找一个成功对象。

第三部分会用这些规则写证明。所需的否定、逆否、量词和有效推理都已在核心正文中说明,不需要先读任何星号内容。

补充章一 · * 选读 · 逻辑的应用

辩论中的逻辑

学过条件命题、量词和逻辑推理后,用校园讨论练习区分前提与结论,澄清主张,找出有效的反驳。

阅读《把理由讲清楚》→

整章选读,不计入两周核心课时。也可直接继续第三部分:数学证明。

第三部分 · 第7—9课

数学证明

第二部分教我们看清一句话的形式。这一部分学习怎样为它给出理由:先说明任意对象都满足什么,再根据目标选择证明方法。

  1. 3.1—3.3:直接证明、逆否证明与反证法。
  2. 3.4—3.6:充要条件与存在唯一性的证明、集合的证明、反例与反驳。

3.1 直接证明

例子让人猜想,证明给出保证

第7课
本课目标:分清例子与证明;用定义写出一段对任意对象都适用的理由。

2+4=6,6+8=14,10+12=22。我们可能猜想:“两个偶数的和还是偶数。”可是偶数有无限多个,列举不能检查完。怎样一次说明所有情况?

数学证明是从定义、已接受的基本事实或已经证明的结论出发,用有效推理说明一个命题成立。证明里的每一步都应有理由。

定义约定一个词的准确意思,例如“偶数”是什么意思;定理是已经证明为真的命题,例如“两个偶数的和是偶数”。尚待证明、也没有被反例推翻的判断,可以作为猜想来研究。定义不靠举例证明,定理却需要理由。

演绎、归纳与证明方法的层次

从条件和规则得到有保证的结论,叫演绎推理。从若干例子猜测一般规律,常叫归纳推测,它可能猜错。

本书的直接证明、逆否证明、反证法都属于演绎推理。直接证明可以叫“直接的演绎证明”,但不能把全部演绎证明都叫直接证明。

选读节里的数学归纳法也能给出严格证明:它需要起点和完整的递推理由,不是只检查几个例子。后面的核心证明不用这种方法。

先把定义摆在手边

术语定义或本书使用的基本事实
偶数n存在整数k,使n=2k。0和负偶数也包括在内。
奇数n存在整数k,使n=2k+1。每个整数恰好是偶数、奇数中的一种。
a整除b,记作a∣b存在整数k,使b=ak。本书在这里约定a、b是整数,且a≠0。
质数pp是大于1的整数,正因数只有1和p。

我们沿用已经学过的算术:整数的和、差、积仍是整数;相等的量可以互相代换。还会用到分配律:a(b+c)=ab+ac,例如2(3+4)=2×3+2×4。反过来把ab+ac写成a(b+c),也是同一条规律。

任意整数都能写成2k或2k+1,且两种不能同时发生,这就是奇偶分类。负数也包括在内,例如−3=2×(−2)+1。下面沿用这个已经学过的整数事实。

直接证明的四个动作

  1. 读清范围和条件:要证明的是哪一类对象?
  2. 任取一个满足条件的对象,不指定特殊数值。
  3. 展开定义,逐步推算,每一步说明理由。
  4. 检查结果是否正好满足结论的定义。

“任取”和“展开定义”分别做什么?

“任取一个偶数a”表示:不指定它是2、6还是别的偶数,后面的理由只使用“它是偶数”这个条件。若从a=6开始算,就只检查了一个特殊例子。

“展开定义”就是把名称换成定义中的条件:a是偶数,所以可以写a=2k,其中k是某个整数。k不固定,才能保留任意偶数的可能。

证明开头的“设”用来说明对象和假设;结尾的“证毕”表示证明完成。检查时要问:我是否偷偷使用了题目没有给出的额外条件?

完整例题 · 两个偶数的和是偶数

命题:对于任意整数a、b,如果a和b都是偶数,那么a+b是偶数。

证明:任取两个偶数a、b。由偶数的定义,存在整数k、l,使a=2k,b=2l。因此

a+b = 2k+2l = 2(k+l)。

因为k+l是整数,所以a+b是某个整数的2倍。由偶数定义,a+b是偶数。证毕。

这里用不同字母k、l,因为两个偶数不必相等。若写a=2k、b=2k,就偷偷增加了a=b这个条件,证明不了原来的全部情况。

完整例题 · 能被4整除的整数是偶数

任取能被4整除的整数n。由整除的定义,n=4k,其中k是整数。于是n=2(2k),而2k是整数,所以n是偶数。证毕。

证明不必很长。它的完整性来自“覆盖任意对象”和“每一步都有根据”,不来自符号多。

展开讲解 · 不看现成答案,怎样自己搭起一个直接证明?

试着证明“偶数与奇数的和是奇数”。先看目标:要说明一个数是奇数,最后最好把它写成“某个整数的2倍加1”。这给出了终点的样子。

再看起点。任取偶数a和奇数b,由定义写a=2k,b=2l+1,其中k、l都是整数。不要都用同一个k,因为题目没有要求两数之间还有别的关系。

a+b=2k+(2l+1)=2(k+l)+1。

式子已经接近终点,但还差一句:k+l是整数。补上这句,才确认a+b确实满足奇数的定义。于是任意一个这样的和都是奇数。

如果草稿中先试了2+3=5,这很有帮助,它让我们猜到结论。但正式证明用的是任意a、b,推理中没有依赖2、3这两个特殊值。

可以用三个问题检查成稿:字母从哪里来?每次变形用了什么?最后一句是否正好回答了题目?

第7课练习

  1. 补全证明:若a、b为奇数,写a=2k+1,b=2l+1,其中k、l∈ℤ。则a+b=______,所以a+b是______。
  2. 证明:偶数与任意整数的积是偶数。
  3. “我检查了前100个正偶数,它们的平方都为偶数,所以所有偶数的平方都为偶数。”结论是否正确?这段话是否构成证明?补出证明。
查看答案与理由
  1. 2(k+l+1);偶数。k+l+1是整数,这句话需要写出来。
  2. 设a=2k,k∈ℤ,b∈ℤ。则ab=2(kb),且kb∈ℤ,所以ab是偶数。
  3. 结论正确,但检查有限例子不是这个全称命题的证明。设n=2k,k∈ℤ,则n²=4k²=2(2k²),且2k²是整数,所以n²为偶数。

3.2 逆否证明

证明“非Q⇒非P”

第8课 · 前半
本课先学逆否证明,再学反证法。要能说清:每种方法开始时假设了什么,结束时说明了什么。

2.6节已经说明,P⇒Q与∼Q⇒∼P逻辑等价。如果原方向不好走,可以直接证明它的逆否命题。

完整例题 · 平方是偶数,原数也是偶数

命题:对整数n,如果n²是偶数,那么n是偶数。

原句的逆否命题是:“如果n不是偶数,那么n²不是偶数。”n和n²都是整数,所以“不是偶数”可以换成“是奇数”。要证的就是“如果n是奇数,那么n²是奇数”。

证明:设n是奇数,则n=2k+1,其中k∈ℤ。两次使用分配律,

n² = (2k+1)(2k+1)
= (2k)(2k)+(2k)×1+1×(2k)+1×1
= 4k²+2k+2k+1
= 2(2k²+2k)+1。

2k²+2k是整数,最后一行正好是“某个整数的2倍,再加1”,因此n²是奇数。逆否命题成立,所以原命题成立。证毕。

第二行把两个括号中的每一项分别相乘,第三行把这些乘法算出;最后把4k²+4k写成2(2k²+2k)。每一步只用已知的乘法和分配律。

别把逆命题当作逆否命题

原命题“n²是偶数⇒n是偶数”的逆命题是“n是偶数⇒n²是偶数”。虽然这个例子里的逆命题也是真的,但证明它不能替代证明原命题。

展开讲解 · 为什么换成奇数,反而更容易证明?

原问题告诉我们n²是偶数,要得到n是偶数。若直接写n²=2k,接下来怎样让n出现“2乘某个整数”的样子,并不立刻清楚。

换成逆否方向以后,起点是n为奇数,可以马上展开成n=2k+1。把它代入n²,做熟悉的乘法,就能得到2(2k²+2k)+1。因此选逆否方向,是为了让起点更容易使用。

这个方法之所以有效,不是因为“反过来差不多”,而是2.6节已经检查过:P⇒Q与∼Q⇒∼P在每一种真假组合下都相同。

原命题的逆命题只交换两边,没有否定两边。逻辑并不保证它与原命题相同。本例中逆命题也为真,需要另一段证明;它不能充当原命题的理由。

写证明前先把逆否命题完整写成中文,再展开定义,能减少“换了方向却忘记否定”的错误。

第8课练习A

  1. 写出“如果一个整数能被6整除,那么它能被3整除”的逆否命题。
  2. 若a+b是奇数,证明a、b不可能都是偶数。尝试用逆否方向。
查看答案与理由
  1. 如果一个整数不能被3整除,那么它不能被6整除。
  2. 把“a+b是奇数”记作P,“a、b都是偶数”记作R,原句是P⇒∼R,逆否命题是R⇒∼P。也就是:如果a、b都是偶数,那么a+b不是奇数。3.1节已经证明两个偶数的和是偶数,因此不是奇数,原命题也就成立。

3.3 反证法

让相反的假设接受检查

第8课 · 后半

要证明命题S,可以先假设∼S成立。如果结合已知事实,会得到互相矛盾的结果,就说明这个假设不能成立,因此S成立。这叫反证法。

什么叫“得到矛盾”?

得到两件不能同时为真的事,例如同一个数既大于3,又不大于3;或者一面说r最小,一面找到同一范围中比r更小的数。必须能指出这样的冲突,“看起来很奇怪”还不够。

前面的每一步仍要有理由。若矛盾是一次算错造成的,就不能用来否定原来的假设。

完整例题 · 没有最小的正有理数

证明:假设存在最小的正有理数r。取s=r/2,也就是取它的一半。

因为r是有理数,可以写成r=p/q,其中p、q是整数,q≠0。于是s=p/(2q),仍是两个整数的商,分母不为0,所以s也是有理数。

正数的一半仍然为正,而且比原数小,所以0<s<r。于是s是比r还小的正有理数。

这与“r是最小的正有理数”矛盾。因此不存在最小的正有理数。证毕。

为什么没有偷偷换对象?我们讨论的是全部正有理数,r/2仍在这个范围中。如果讨论正整数,1/2不在范围内,这个论证就不能照搬。

方法开始假设什么完成什么
直接证明P⇒Q假设P得到Q
逆否证明P⇒Q假设∼Q得到∼P
反证法证明S假设∼S得到矛盾

如果用反证法证明P⇒Q,否定整个条件命题后,开始时就是假设P真且Q假。实际证明中,逆否与反证有时很相似;区分它们时,先检查开头的假设和最后的目标。

展开讲解 · 一段反证中,哪句话是假设,哪两句话互相冲突?

要证明“没有最大的整数”。反证先暂时假设它的否定:“存在一个最大的整数m。”这里m不是我们已经找到的数,而是相反假设声称存在的对象。

“最大”意味着任何整数都不大于m。我们现在构造m+1:它仍是整数,因为整数加1仍然是整数;它又严格大于m。

冲突的两句话就是:“所有整数都不大于m”和“这个整数m+1大于m”。它们不可能同时为真。

所以出问题的是开始的“存在最大整数”这个假设,而不是整数加法。否定了这个假设,就得到原来要证明的话。

反证法没有允许我们把任意错误计算当作理由。每一步仍要正确;只有从相反假设和已知事实正确推导出的矛盾,才能完成证明。

第8课练习B

  1. 反证法证明“不存在最大的整数”:假设最大整数是m,接下来怎样做?
  2. 小林说:“没有最小的正有理数,所以没有最小的正整数。”哪里错了?
查看答案与理由
  1. m+1仍是整数且比m大,与m最大矛盾。因此不存在最大的整数。
  2. 讨论范围变了。正整数确实有最小值1;把它除以2会离开正整数范围。不同范围里的命题不能直接互换。

3.4 充要条件、存在性与唯一性的证明

“当且仅当”要走两个方向

第9课 · 3.4—3.6合读
本课目标:根据命题的形式,选择要做的事情。集合命题和反例也使用同一套逻辑。

要证明P⇔Q,就要证明P⇒Q与Q⇒P。可以把两个方向分开写,避免漏掉一半。

完整例题 · n是偶数,当且仅当n+1是奇数

范围是整数n。

正向:若n是偶数,n=2k,其中k∈ℤ。那么n+1=2k+1,是奇数。

反向:若n+1是奇数,n+1=2l+1,其中l∈ℤ。那么n=2l,是偶数。

两个方向都成立,因此原命题成立。证毕。

“存在”要给出对象,“唯一”要排除第二个

要证明存在一个对象满足条件,可以把它找出来并检查。要证明只有一个,还需要说明任意满足条件的对象都只能是它。

下面用方程作例子。把一个数代入后,能让等号左右相等,这个数就叫方程的一个解。

完整例题 · 方程2x+1=7有且只有一个有理数解

存在:x=3是有理数,代入得2×3+1=7,所以它确实是解。

唯一:任取满足2x+1=7的有理数x,两边减1,再除以2,得到x=3。所以不可能有不同于3的解。

仅仅代入3检查,只完成“存在”这一步。例如方程x²=9里,代入3成功,仍然还有另一个有理数解−3。

展开讲解 · 题目中的几个词,怎样决定你的证明任务?

“存在”要求交出一个符合条件的对象。例如说方程x²=9有有理数解,交出x=3并验证3²=9,就已经完成任务;不需要声称它是唯一的。

“唯一”多出另一个任务:证明任何符合条件的对象都只能是你给出的那个。对x²=9,−3也符合,所以“有解”可以成立,“只有解3”却不成立。

“当且仅当”要求两个方向。证明“n是偶数时n+1是奇数”,没有自动完成“n+1是奇数时n是偶数”。需要另起一个假设,再走一次。

“对于每个”要求理由覆盖全部对象。写出一个成功例子,完成的是存在任务,不能拿来替代全称任务。

读题时先把这些词圈出来,再写一份短清单:我要给对象,还是处理任意对象?我要一个方向,还是两个方向?证明是否完整,就按这份清单检查。

3.5 集合的证明

证明A⊆B

根据子集定义,任取x∈A,说明x∈B即可。不是随便找一个共同元素,而是让理由适用于A里的每个元素。

完整例题 · A∩B⊆A

任取x∈A∩B。由交集定义,x∈A且x∈B,因此x∈A。因为x是任取的,所以A∩B⊆A。证毕。

“任取x∈A∩B”并没有断言交集里一定有元素;它表示只要有这样的x,以上理由就对它适用。若交集为空,第一部分已经说明空集是任何集合的子集,结论同样成立。

证明两个集合相等

两个集合相等,就是它们有完全相同的元素。通常先证明A⊆B,再证明B⊆A;两个方向都不能漏。

完整例题 · A∩B=B∩A

任取x∈A∩B,则x∈A且x∈B,因此x∈B∩A。所以A∩B⊆B∩A。

反过来,任取x∈B∩A,则x∈B且x∈A,因此x∈A∩B。所以B∩A⊆A∩B。

两个方向的包含都成立,因此A∩B=B∩A。证毕。

集合示意图帮助我们看出结论。上面的文字说明它对任意集合都成立,包括空集或一个集合包含另一个的情况。

展开讲解 · 已知A⊆B,怎样证明A∪B=B?

看图容易觉得“把小集合并进大集合,还是大集合”。要写证明,就把这句话改成关于任意元素的说明,并检查两个包含方向。

先证A∪B⊆B。任取x∈A∪B,则x∈A或x∈B。如果x∈A,由已知A⊆B得到x∈B;如果它本来就在B里,当然也得到x∈B。两种情况都进入B。

再证B⊆A∪B。任取x∈B,它已经满足“在A或B中至少一个”的要求,因此x∈A∪B。

两个方向都成立,说明两边的元素完全相同,所以A∪B=B。这里“任取x”没有指定某一个数,因此论证也适用于学生、图形等对象组成的集合。

再回到三角形例子:已知等边三角形集E⊆三角形集T,同样的证明就给出E∪T=T。不需要为了换成图形,再发明一套规则。

3.6 反例与反驳

反例必须击中条件

反驳“每个质数都是奇数”,给出2即可:它是质数,但不是奇数。给出4不行,因为4不是质数,没满足原命题的前件。

这就是全称命题的否定:存在一个对象,让原来的条件失败。找到它之后,要明确写出它满足什么、违反什么。

不是每种反驳都能只举一个例子

反驳“存在一个整数n,使n²=−1”,不能说“我试了0和1,都不行”。必须说明所有整数都不行。

任取整数n。若n>0,n×n为正;若n=0,n×n=0;若n<0,负数乘负数为正。所以无论哪一种情况,n²都不小于0,不能等于−1。

因此这样的整数不存在。这是用覆盖所有情况的理由反驳存在命题,与用一个反例反驳全称命题不同。

第9课练习 · 合用3.4—3.6节

  1. 证明“2x+1=9有且只有一个有理数解”。分别写出存在与唯一。
  2. 证明A⊆A∪B。第一句话应当从哪里任取元素?
  3. 反驳:“如果一个自然数是奇数,那么它是质数。”给出反例并说明两个条件。
查看答案与理由
  1. 存在:x=4使等式成立。唯一:任意解x满足2x=8,因此x=4。
  2. 任取x∈A。由于x∈A或x∈B成立,根据并集定义,x∈A∪B。因此A⊆A∪B。
  3. 例如9是奇数,但9有正因数3,不是质数;1也是有效反例,因为1是奇数却不是质数。

离开第三部分前

先认出要证的是“如果”“当且仅当”“存在”还是“对每个”。再确定起点和目标,写清范围与理由。下一部分只会使用已经学过的集合、量词和这些基本推理。

* 证明选读 · 原书第10章

数学归纳法:起点与每一步

本节是选读。跳过它仍然可以完成第四部分。不要把数学归纳法与“试了几个例子,所以猜想都对”混淆。

为什么两项任务能覆盖所有自然数?

要证明命题P(n)对所有自然数n≥1成立,数学归纳法要求完成:

  1. 起点:证明P(1)成立。
  2. 递推:任取k≥1,假设P(k)成立,证明P(k+1)成立。

第一步给出P(1)。第二步于是给出P(2),再给出P(3),如此继续。任意一个自然数都能从1经过有限次加1到达,所以这一结构覆盖所有自然数。

完整例题 · 前n个正奇数的和是n²

1+3+5+⋯+(2n−1)=n²。

起点:n=1时,左边是1,右边是1²,相等。

递推:任取k≥1,假设前k项之和为k²。第k+1个奇数是2k+1,加入它得到

k²+(2k+1)=k²+2k+1=(k+1)²。

因此P(k)成立时P(k+1)也成立。根据数学归纳法,命题对所有n≥1成立。证毕。

递推里暂时假设P(k),并不是循环证明。我们证明的是一个条件:“如果第k步成立,那么下一步成立。”起点让这条规则能够开始使用。

思考:只有递推,没有起点,会怎样?

错误命题“n>100对所有自然数n成立”也满足“如果k>100,那么k+1>100”。但n=1不成立。只有递推,不能保证从起点开始的全部命题为真。

补充章二 · * 选读 · 集合、逻辑与证明的应用

抽屉原理、计数与概率

用月份、袜子颜色和整数分类练习抽屉原理,再用两个骰子的有序结果理解计数与概率。读本含18道抽屉原理题、8道概率题,配有提示与完整解答。

阅读《为什么一定会重复?》→

整章选读,不计入两周核心课时。标有函数视角的内容可在第四部分后再读;现在也可继续第四部分:函数。

补充章三 · *** 高级选读 · 交互式形式化证明

交互式形式化证明

把一段证明分成可以逐步检查的任务:目前有哪些已知条件?还要证明什么?使用一条推理规则后,目标怎样改变?在“证明闯关”中亲手选择步骤,再把完成的证明读成中文。

进入《证明闯关》→

建议先学过2.11 逻辑推理与3.1 直接证明。整章为高级选读,不计入两周核心课时;后续正文不依赖它。也可直接继续第四部分:函数。

第四部分 · 第10课

函数

核心路线依次学习关系、函数和数列。关系是有序对组成的集合,函数是一种满足特定要求的关系,数列则是以正整数为定义域的函数。

  1. 4.1:关系。
  2. 4.2:函数、定义域、陪域和值域。
  3. *** 4.3—4.7:映射的语言;单射、满射与双射;复合映射;逆映射;集合的像与原像。
  4. 4.8:数列。

两周核心课只读4.1、4.2和4.8。中间的高级选读不计入核心课时,也不是数列与极限示例的前提。

4.1 关系

本部分目标:用有序对表示关系;检查一个关系是否为函数;分清定义域、陪域和值域;把数列看作一种函数。

回想有序对。取A={1,2,3},A×A就是把这三个数分别放在第一项、第二项,得到的全部9个配对。现在按条件筛选,只保留“前面的数小于后面的数”的配对:

R = {(1,2), (1,3), (2,3)} ⊆ A×A。

(1,3)属于R,记录1<3;(3,1)不属于R,记录3<1不成立。把选中的数对收集起来,就能记录一种关系。

检查第一项1,可以配2、3;检查2,只能配3;检查3,在A里已经没有比它大的数,所以没有配对。这就解释了为什么R里恰好是上面三个有序对。

定义 · 关系

从集合A到集合B的一个关系,是笛卡尔积A×B的一个子集。每个被选中的数对(a,b),记录a与b之间具有该关系。

例如,把“学生”和“他参加的社团”配成对,也得到关系。一名学生可以参加多个社团,也可以一个都不参加。一般关系没有规定每个第一项必须出现几次。

展开讲解 · 不固定比较对象时,“全等”怎样成为数对的集合?

取三个三角形组成的集合T={a,b,c}。设a、b全等,而c与它们都不全等。现在同时选择两个图形,检查前一个与后一个是否全等。

所有可能的选择在T×T中。只保留全等的配对,会得到:

R={(a,a),(a,b),(b,a),(b,b),(c,c)}。

每个图形都能与自己重合,所以有(a,a)、(b,b)、(c,c)。a、b能互相重合,所以有(a,b)、(b,a)。c与另两个不全等,所以没有那些交叉配对。

这里R是T×T的子集,元素是数对。若改成固定比较对象a,收集“与a全等的图形”,就得到C={a,b},它是T的子集,元素是图形。

两种写法都正确,但记录的对象不同:一个记录“两者之间的关系”,一个记录“与指定对象有这种关系的那些图形”。这正是有序对在集合语言中的用处。

4.2 函数

定义 · 函数

从A到B的函数,是满足下面规则的关系:A中的每个元素,都恰好配到B中的一个元素。

记作f:A→B。若a配到b,就写f(a)=b。这里→说明函数从哪个集合到哪个集合,不是连接两个命题。

在配对(a,b)中,a叫输入,b叫对应的输出。f(a)读作“f在a处的值”,表示这个输出,不是f乘a。例如f(1)=2,记录的就是配对(1,2)。

“每个”不允许漏掉输入;“恰好一个”不允许同一个输入同时给出两个不同输出。不同输入可以得到同一个输出。

把两条要求分别检查

设A={1,2},B={3,4}。关系{(1,3)}漏掉输入2,不是从A到B的函数;关系{(1,3),(1,4),(2,3)}让输入1有两个输出,也不是。

关系{(1,3),(2,3)}则通过检查:1、2各有一个输出。它们都输出3没有关系,规则只限制同一个输入不能有两个不同输出。

A=B={1,2,3}。把数对看成“输入、输出”。

f = {(1,2), (2,2), (3,2)}

是函数:每个输入都有且只有一个输出。

输入1:1个输出;输入2:1个输出;输入3:1个输出。

图8检查每个输入有几个输出,就能判断一个关系是否是函数。

在图8的初始例子中,A叫定义域,B叫陪域。实际出现的输出组成值域,这里是{2}。值域包含在陪域中,但不必等于陪域。

也就是说:定义域A告诉我们必须给哪些输入安排输出;陪域B给出允许使用的输出范围;值域只收集实际用到的输出。例子中的1和3属于陪域,却没有实际输出过,所以不在值域里。

另一个例子是f:ℕ→ℕ,f(n)=n+1。它把1配到2、2配到3,依次继续。函数可以用公式描述,也可以直接列出配对;关键是满足“每个输入恰好一个输出”的规则。

展开讲解 · 怎样检查一个规则是不是函数?

先读定义域A,明确哪些输入必须被处理;再读陪域B,明确输出必须落在哪里。离开这两个范围,单独看一张配对表,可能看不出它是否满足题目要求。

例如A={1,2},B={3,4},f={(1,3),(2,3)}。输入1有一个输出3,输入2也有一个输出3,所以它是函数。陪域里的4没人输出,没有违反函数定义。

如果把定义域改成{1,2,5},却保持这张表不变,就漏掉了输入5;它不再是从新定义域到B的函数。同一张配对表,要连同指定的范围一起检查。

不同输入得到相同输出也允许。例如g:ℤ→ℤ,g(n)=n²,输入2和−2都输出4。每个输入自己仍只有一个输出,所以没有问题。

真正不允许的是同一个输入同时对应不同输出。例如同时列出(1,3)和(1,4),就不能再把这两个输出都叫作同一个函数的f(1)。

核心路线:接着读4.8 数列。

*** 4.3 映射的语言

4.3—4.7均为高级选读。可以整段跳过,直接读4.8 数列。

函数也叫映射

本书把函数与映射作为同一概念的两个名称:从集合A到集合B,给A中的每个元素恰好指定B中的一个元素。

说“映射”时,我们特别留意集合之间的对应。集合里的对象可以是数,也可以是三角形、学生或其他对象。

例如,T是两个三角形组成的集合,把每个三角形配到它的边数3,得到一个映射s:T→{3}。两个不同的三角形都配到3,仍然符合定义。因此映射不一定是一一对应。

两个箭头,分别说明范围和去向

取A={1,2},B={2,4,6},规定f(1)=2、f(2)=4。可以简写成:

f:A→B,x↦2x。

→的两边是集合,说明映射从A到B;↦读作“映到”,这里说明元素x被配到2x。式子里的x只从A中取值。

2是1在f下的像,4是2在f下的像;也就是它们的输出。所有输出组成{2,4},记作f(A),它就是值域。

展开讲解 · 为什么只写“乘2”还不够?

“乘2”说明计算规则,却没有说允许输入什么,也没有指定陪域。上面的f:{1,2}→{2,4,6}只处理1和2。

另设g:ℕ→ℕ,g(n)=2n。它还要处理3、4、5,等等,因而与f的定义域不同。

再设h:{1,2}→{2,4},h(1)=2、h(2)=4。h与f的配对相同,但指定的陪域不同。接下来会看到,这会影响“是不是满射”的判断。

阅读一个映射,要一起看定义域、陪域、对应规则。不能因为公式相同,就忽略题目指定的范围。

*** 4.4 单射、满射与双射

先确认f:A→B是映射:左侧A中的每个元素都恰好发出一支箭头。接下来改看右侧B中的元素:每个元素收到几支箭头?

A={1,2},B={2,4,6};f={(1,2),(2,4)}。

从A到B的映射箭头图1配到2,2配到4。右侧6没有收到箭头。 A:定义域B:陪域 配到配到 12246

是单射:不同输入的输出不同。不是满射:6没有对应的输入。

右侧2收到1支箭头;4收到1支箭头;6收到0支箭头。

图9左侧每个元素恰好发出一支箭头;右侧收到箭头的情况决定它是否为单射、满射或双射。

三个定义,都以“已经是映射”为前提

单射:不同的输入,总有不同的输出。也就是说,右侧每个元素至多收到一支箭头,可以一支也没有。

满射:陪域B中的每个元素,都实际成为某个输入的输出。也就是说,右侧每个元素至少收到一支箭头,可以收到多支。此时值域f(A)=B。

双射:既是单射,又是满射。右侧每个元素恰好收到一支箭头;A与B之间形成一一对应。

检查什么从哪一侧检查每个元素的箭头数
是不是映射定义域A:发出恰好一支
是不是单射陪域B:收到至多一支
是不是满射陪域B:收到至少一支
是不是双射陪域B:收到恰好一支

比较图9中的第一个和第三个例子:配对始终是1↦2、2↦4。陪域是{2,4,6}时,6没有被用到,不是满射;陪域是{2,4}时,每个元素都被用到了,就是满射。判断满射,必须知道陪域。

展开讲解 · 把单射和满射写成量词句子

单射可以写成:对任意x₁、x₂∈A,只要x₁≠x₂,就有f(x₁)≠f(x₂)。下标1、2只是用来区分这两个输入。

利用逆否命题,还可以写成:

∀x₁,x₂∈A,f(x₁)=f(x₂) ⇒ x₁=x₂。

意思是:若两个输出相同,那么它们原来就是同一个输入。这种写法很适合证明单射。

满射则写成:

∀y∈B,∃x∈A,f(x)=y。

先任取一个希望得到的输出y,再去A中找输入x。不同的y可以选择不同的x。满射没有要求这个x唯一;加上单射后才保证唯一。

展开讲解 · 完整证明:自然数与正偶数一一对应

设E={2,4,6,…}是正偶数集,定义f:ℕ→E,f(n)=2n。每个自然数都得到唯一的正偶数,所以它是映射。

证明单射。任取m,n∈ℕ,假设f(m)=f(n)。那么2m=2n,两边除以2,得到m=n。按照上一段的条件,f是单射。

证明满射。任取y∈E。因为y是正偶数,所以y=2k,其中k是某个自然数。取输入n=k,就有f(n)=2k=y。这对每个y∈E都行,所以f是满射。

两个条件都满足,f是双射。这也解释了为什么1↔2、2↔4、3↔6、……能把两边逐个配起来。无限集合能和自己的真子集一一对应;这里不要套用“有限集合少取一些元素就会变少”的判断。

选读练习 · 给理由,不能只报名称

  1. A={1,2,3},B={2,4};1↦2、2↦2、3↦4。它是单射吗?是满射吗?
  2. f:ℕ→ℕ,f(n)=n+1。它是单射吗?是满射吗?
  3. A、B都有三个元素。仅凭这一点,能断定任意映射f:A→B都是双射吗?
参考答案

1. 不是单射,因为1、2两个不同输入都输出2;是满射,因为2、4都收到箭头。

2. 是单射:m+1=n+1能推出m=n。不是满射:本书ℕ从1开始,陪域中的1不可能等于n+1。

3. 不能。例如把A中三个元素都配到B中的同一个元素,就既不是单射,也不是满射。“存在一个双射”与“这个映射是双射”是两句话。

进一步应用:抽屉原理的函数视角说明,有限集合中输入比可用输出多时,不可能是单射。

*** 4.5 复合映射

一次映射的输出,可以接着作为另一次映射的输入。设f:A→B,g:B→C。先用f,再用g,得到从A到C的复合映射,记作g∘f。

(g∘f)(x)=g(f(x))。

符号∘读作“复合”。读式子时先看里面的f(x):g∘f先做右边的f,再做左边的g。这里的∘不是乘号。

取f:ℕ→ℕ,f(n)=n+1;g:ℕ→ℕ,g(n)=2n。

先加1再乘2与先乘2再加1,输入2得到不同结果g∘f:先f,再g236f:加1g:乘2f∘g:先g,再f245g:乘2f:加1
图10同样从2出发,交换映射的先后顺序,结果可能改变。

这里(g∘f)(2)=2×(2+1)=6,而(f∘g)(2)=2×2+1=5。因此一般不能交换复合的顺序。

展开讲解 · 怎样检查两个映射能不能接起来?

写f:A→B、g:B→C时,f的每个输出都在B里,正好能作为g的输入,所以对A里的每个元素都能完成两步。

例如f把1、2分别配到2、4,而g只接受2、3作为输入。输入1时,f(1)=2还能交给g;输入2时,f(2)=4却不能交给g。这样就没有定义出在整个{1,2}上的g∘f。

更一般地,只要f的所有实际输出都在g的定义域中,就能连接。关键是每个输入都要能走完整个过程。

选读练习

仍用上面的f与g,分别算出(g∘f)(3)和(f∘g)(3)。

参考答案

先f再g:3先变为4,再变为8,所以(g∘f)(3)=8。先g再f:3先变为6,再变为7,所以(f∘g)(3)=7。

*** 4.6 逆映射

设f:{1,2,3}→{2,4,6},把1配到2、2配到4、3配到6。现在把所有箭头反过来:

2↦1,4↦2,6↦3。

原来右侧的每个元素恰好收到一支箭头,反过来后,每个新输入就恰好有一个输出。因此仍是映射。

定义 · 逆映射

若f:A→B是双射,把每个配对(x,y)改成(y,x),就得到从B到A的逆映射,也叫逆函数,记作f−1。

f−1:B→A;f−1(y)=x,当且仅当f(x)=y。

上面的例子中,f−1(4)=2。这里的上标−1是逆映射的记号,不是取倒数,不能读成1/f(y)。

为什么需要双射?若不是满射,B里有元素没有来路,反向时就没有输出;若不是单射,B里有元素收到两支或更多箭头,反向时就会有多个输出。两者都满足,才可以在整个B上把箭头反过来而仍得到映射。

展开讲解 · “做完再撤回”与恒等映射

把A中每个元素都配回它自己的映射,叫恒等映射,记作idA:idA(x)=x。id是名称,下标A说明它作用在哪个集合上。

f和它的逆映射接在一起,就把输入送回原处:

f−1(f(x))=x(x∈A),
f(f−1(y))=y(y∈B)。

用上一节的复合记号,就是f−1∘f=idA,f∘f−1=idB。例如2经f变为4,再经f−1变回2。

如果一个映射是单射但不是满射,可以先把陪域缩小到值域,再讨论逆映射。必须明确这个范围变化,不能直接说原映射在整个陪域上有逆映射。

选读练习

A={1,2},B={2,4},f(1)=4、f(2)=2。写出逆映射的两个配对,并求f−1(4)。

参考答案

两个输出各出现一次,f是双射。逆映射是{(4,1),(2,2)},所以f−1(4)=1。

*** 4.7 集合的像与原像

映射也能把一个集合里的元素一起处理。下面固定g:{1,2,3}→{2,4,6},其中1↦2、2↦2、3↦4。

像:先选输入,再收集输出

设S⊆A。S在f下的像,记作f(S),是S中所有元素的输出组成的集合:

f(S)={f(x):x∈S}。

例如取S={1,3},在上面的g中,1输出2,3输出4,所以g({1,3})={2,4}。取整个定义域A时,f(A)就是值域。

原像:先选输出范围,再找符合条件的输入

设T⊆B。T在f下的原像,记作f−1(T),是所有输出落在T里的输入组成的集合:

f−1(T)={x∈A:f(x)∈T}。

例如g−1({2})={1,2},因为1、2都输出2;g−1({6})=∅,因为没有输入输出6。

原像与逆映射要分清

上面的g不是双射,没有从整个{2,4,6}回到{1,2,3}的逆映射;但寻找集合的原像仍然完全可以做。

f−1(T)在这里表示一个集合,可能有多个元素,也可能为空;它不要求f有逆映射。读记号时,要看括号里是元素,还是输出范围组成的集合。

展开讲解 · 原像为什么把交集与“且”联系起来?

设U、V都是陪域B的子集,任取x∈A。x属于f−1(U∩V),按定义就是f(x)属于U∩V。

按照交集的定义,这等于说f(x)∈U且f(x)∈V。再按原像的定义,就是x∈f−1(U)且x∈f−1(V)。

因此,左边和右边选出的输入完全一样,得到:

f−1(U∩V)=f−1(U)∩f−1(V)。

这里把函数条件、命题中的“且”、集合的交集串在了一起。每一步只是在展开已经学过的定义。

选读练习

仍用本节的g,求g({1,2})和g−1({2,6})。

参考答案

g({1,2})={2}。两个输入都输出2,但集合里重复的元素只记一次。

g−1({2,6})={1,2}。1、2的输出2属于{2,6};3的输出4不属于它。6没有对应输入,不会额外增加元素。

这一组选读的概念次序参照Book of Proof第12章目录:12.1函数、12.2单射与满射、12.4复合、12.5逆函数、12.6像与原像。12.3抽屉原理在独立读本中展开。这里的中文例子、图示与分级针对初中学生重新编写。

高级选读到这里结束。下面回到核心路线:用函数理解数列。

4.8 数列

我们熟悉的一串小数

0.9,0.99,0.999,0.9999,……

可以看作函数a:ℕ→ℝ:输入第几项的编号n,输出对应的小数a(n)。通常把a(n)简写成an,叫数列的第n项。

n写在右下角,叫下标,这里专门用来表示编号:a1是第1项,a2是第2项。an不是a乘n;写(an)时,通常指这一整个数列。

an = 1−0.1n = 1−10−n。

0.1n表示n个0.1相乘;10−n是同一个数,也就是1/10n。这些小数都是有限小数:第n项的小数点后恰好有n个9。

编号nan距离1还差多少
10.90.1
20.990.01
30.9990.001
40.99990.0001
n1−10−n10−n

数列有顺序,也允许重复。例如把“1,2”反复循环,得到1,2,1,2,1,2,…;把“1,1,2,2”反复循环,得到1,1,2,2,1,1,2,2,…。它们的输出集合都是{1,2},但第2项不同,所以是不同的数列。

只记输出组成的集合,会丢掉编号。用配对(n,an)记录函数,才能同时保留“第几项”和“这一项是多少”。

展开讲解 · 从公式算出前三项,并分清“项的值”和“误差”

公式an=1−0.1n里的n,是输入的编号。算第1项就代入n=1,得到a1=1−0.1=0.9。

算第2项时,先做乘法0.1²=0.1×0.1=0.01,再做减法,得到a2=0.99。算第3项,0.1³=0.1×0.1×0.1=0.001,所以a3=0.999。

“第3项是多少”的答案是0.999;“第3项距离1多远”的答案是0.001。这是两个不同的问题,不能把越来越小的误差当作越来越大的项值。

0.1n不是0.1×n。上标n表示连续相乘的次数;下标n只是给数列的项编号。两个n都与第几项有关,但在式子里承担的任务不同。

每一个实际编号n都是有限的自然数,因此算出的an也是有限小数。极限要讨论的是整串项的关系,不是在公式里偷偷代入一个“最后编号”。

第四部分小结

关系记录两个对象的配对;函数要求每个输入恰好对应一个输出;数列是定义在正整数上的函数。接下来的综合示例使用这些概念阅读一个数学分析中的定义。

综合示例 · 第10课后半 · 展示数学语言

读懂数列极限的定义

本示例用an=1−10−n,也就是0.9、0.99、0.999、……,练习读懂定义中的范围、量词和条件。数列已经在4.8节介绍;现在用它阅读数学分析中的极限定义,只要求理解这段数学语言。

例.1 数列极限的定义

“小数越来越长,看起来接近1”还不够精确。我们换一种问法:你给我一个正的误差要求,我能否找到一个位置,使后面所有项都达标?

例如要求距离1小于0.001。第三项的距离恰好等于0.001,还不达标;第四项开始,距离分别是0.0001、0.00001、……,全都达标。

a₄ = 0.9999

与1的距离 = 0.0001;要求距离 < 0.001。

第4项达标。可选N=3,所有n>3的项都达标。

1 未达标2 未达标3 未达标4 达标5 达标6 达标7 达标8 达标9 达标10 达标11 达标12 达标

可以先选很严格的误差,再移动项数。显示的小数按位生成,不把有限小数四舍五入成1。

图11“从某处起全部达标”比“偶尔有一项很近”要求更强。

数学用字母ε表示允许的正误差,用自然数N表示一个编号界限。ε只是给误差要求起的名字,它的值可以是0.1、0.001,也可以是其他任何正实数。再用L表示希望接近的数;本例中L=1。

先读懂距离记号

数的绝对值是它在数轴上离0的距离,记作|x|。例如|−0.1|=0.1,|0.1|=0.1。

两个数x、L之间的距离可以写成|x−L|。例如|0.9−1|=|−0.1|=0.1;|1.1−1|=|0.1|=0.1。从左边接近或从右边接近,都用同一个距离记号。

于是|an−L|<ε就表示“第n项与L的距离,小于这次给定的正误差”。

展示一个数学分析的定义 · 数列极限

对于实数数列(an)和实数L,如果

∀ε>0,∃N∈ℕ,∀n∈ℕ,
(n>N ⇒ |an−L|<ε),

就说数列(an)的极限是L,写作 limn→∞ an = L。这里ε在正实数中取值;n→∞表示考察编号越来越大时的情况,不是把∞当作某一个自然数代进去。

从左到右读这一步允许什么
∀ε>0不论正的误差要求多小
∃N∈ℕ都能选一个界限N;N可以随ε改变
∀n∈ℕ然后要检查每一个编号n
n>N ⇒ |an−L|<ε只要编号超过N,就必须达标

不能先挑一个n,再为它临时换一个N来逃避检查。顺序是:先收到ε,选定N,然后对所有n作出保证。n≤N的早期项不受这次误差要求约束。

这里还用到了条件命题的规则:n≤N时,前件“n>N”为假,这个条件命题就为真,不需要这一项满足后面的误差要求。定义真正要求的是超过界限的所有项。

按定义说明本例的极限是1

本例每一项都小于1,所以距离为1−an=10−n;每往后一项,距离就变为原来的十分之一。

我们使用实数的一条基本性质:任给正实数ε,0.1、0.01、0.001、……中总有一个数小于ε。这条性质在本课作为已知事实使用;我们不在这里从头建立实数理论。

给定任意ε>0后,按这条性质选一个N,使10−N<ε。再任取n>N,它的距离比第N项更小,所以

|an−1| = 10−n < 10−N < ε。

这就按顺序完成了“给ε、选N、检查全部n>N”的要求,因此极限是1。只在滑块中试几个误差不能代替这个说明;保证任意正误差都可行的,是上面明确使用的实数性质。

若ε恰好是10−k,也可取N=k:因为只检查n>N,所以之后的距离严格小于ε。这个选择允许第N项的距离恰好等于ε,与上面选得更靠后的N并不冲突。N不必是最小可用值。

展开讲解 · 误差不是0.001这样的整齐小数时,怎样选N?

先给误差ε=0.003。第2项的距离0.01还不够小,第3项的距离0.001已经小于0.003。由于这一个数列的距离每次都会缩小到十分之一,后面的项也都会满足要求。

因此可以选N=2:所有n>2的项,从第3项开始都达标。也可以选N=3、4等更大的界限;定义没有要求最早的那个界限。

再给ε=0.00004。第4项距离0.0001,仍然太大;第5项距离0.00001,已经够小,所以可选N=4。若误选N=3,第4项就是一个仍在界限之后、却不达标的反例。

这说明N可以随ε改变。不能事先选定一个N,就宣称它能应付所有正误差:固定N后,第N+1项还有正的距离d,只要要求ε=d/2,这一项就会失败。

对本例,我们能从一项达标推出以后全部达标,是因为已经知道距离持续缩小。对任意数列,偶尔有一项很近并不够;定义始终要求后面全部符合。

例.2 有限小数与无限小数0.999…

有限小数:0.99999只有5个9,它等于1−0.00001,因此严格小于1。

无限小数:0.999…表示9无限重复。只取前1位、前2位、前3位,依次得到0.9、0.99、0.999;这些有限小数叫它的有限截断。无限小数的值,按这些有限截断的极限来定义。刚才说明这个极限是1,所以

0.999… = 1。

这不是说“到了某个足够大的n,an忽然等于1”。每个有限编号n都满足an<1;但是整个数列的极限等于1。这两句话谈论的对象不同,没有矛盾。

也不存在“最后一个9后面还剩一丁点差距”。无限小数没有最后一位9。在实数中,一个正的差距总能被更严格的误差要求检测到。

展开讲解 · “每一步都差一点”为什么没有推翻0.999…=1?

先确认“每一步”说的对象。第1步是0.9,第2步是0.99,第3步是0.999。对每一个有限编号n,an<1完全正确,这句话没有被否定。

但0.999…不是这串数中某一个编号特别大的项,也不是某个还没写完的有限小数。它是一个无限小数记号,它的数值按这串有限截断的极限来确定。

要确定极限是否为1,检查的是:任给正误差,是否能找到一个界限,让后面的项全部进入误差范围。前面已经逐步完成了这个检查,因此这个无限小数的值就是1。

这里没有要求“找到一个恰好等于1的有限项”,也没有要求“执行完无限多次书写后再看结果”。定义用对每个误差的保证,表达这串数与1的关系。

所以0.99999<1和0.999…=1可以同时成立。有限小数的省略号不能随手加上或删掉,它会改变我们正在谈论的对象。

例.3 用集合包含关系表述极限

“距离1小于ε的数”组成一个集合:

Vε = {x∈ℝ : |x−1|<ε}。

Vε是集合的名字,下标ε提醒我们这个集合随误差要求改变。它就是数轴上1−ε与1+ε之间的部分,不包括两个端点。例如ε=0.01时,它收集所有满足0.99<x<1.01的实数。

再看 {an : n∈ℕ 且 n>N}:冒号后面选出编号,冒号前面说明收集这些编号对应的输出。例如N=3时,得到{a4,a5,…},也就是{0.9999,0.99999,…}。

于是,极限条件也可以说成:

∀ε>0,∃N∈ℕ,{an : n∈ℕ 且 n>N} ⊆ Vε。

左边的集合收集第N项之后的全部输出。这个包含关系说:后面的全部输出,都落在指定的误差范围里。集合、函数、量词和条件命题,在同一句话中各有作用。

展开讲解 · 把极限里的量词,一步步变成集合包含

先取ε=0.01。这次允许的输出范围是Vε={x∈ℝ:0.99<x<1.01}。0.99恰好在端点上,不满足严格小于误差的要求;0.999在范围里面。

本例可以选N=2。界限之后的输出组成W={a3,a4,…}={0.999,0.9999,…}。每个输出都大于0.99、小于1,所以也小于1.01。

因此W⊆Vε。这句话已经把“对于所有n>2,每一项都满足误差要求”合并成一个集合包含关系。

如果改用更小的ε,允许范围Vε会变窄,我们可能需要选择更靠后的N,让新的后续输出集合仍然全部落在里面。

完整定义把这种事情要求到每一个正误差:先给ε,再选N,然后保证包含关系。集合记录对象,量词记录选择顺序,函数记录每个编号对应哪个数。

第10课练习 · 会读定义即可

  1. A={1,2},B={3,4}。关系{(1,3),(2,3)}是从A到B的函数吗?加入(1,4)后呢?
  2. 对an=1−10−n,要求距离1小于0.0001。可否取N=4,使所有n>N都达标?第4项本身达标吗?
  3. 判断:“每一项都不等于1,因此极限不可能等于1。”解释哪里出了问题。
查看答案与理由
  1. 原关系是函数,两个输入各有一个输出,允许都输出3。加入(1,4)后不是函数,因为输入1有两个不同输出。
  2. 可以。n>4时10−n<0.0001。第4项距离恰好等于0.0001,不满足严格小于。
  3. 错误。极限定义要求后面各项能全部进入任意给定的正误差范围,不要求某一项等于极限。本例所有有限项都小于1,极限仍然是1。

四部分在这里合起来

有序对组成关系;“每个输入恰好一个输出”选出函数;自然数给数列编号;量词与条件命题规定极限;集合包含关系表达后面的输出全部落在误差范围里。

核心学习到这里结束。你需要会读定义的结构,不要求学习星号中的极限否定式或实数基础。

核心路线的出口

结课小测:用自己的话说清楚

建议用10分钟完成。可以查符号表,先不看答案。重点不是背定义,而是把范围、条件和理由说完整。

  1. 令A={1,2,3},B={2,3,4}。写出A∩B,并判断{2}⊆A与{2}∈A。
  2. “每个偶数都能被4整除”是真是假?给出理由,并用一句话写出它的否定。
  3. 补全一句完整的证明:设a=2k,b=2l+1,k、l是整数,则a+b=______,所以______。
  4. 把“没有最大的自然数”写成“对于每个……都存在……”的句子。给出选择后一个数的方法。
  5. A={1,2},B={0,1}。关系{(1,0),(2,0)}是否是函数?写出它的定义域、陪域和值域。
  6. 对数列an=1−10−n,要求距离1小于0.01。选一个N,保证所有n>N都满足要求。再解释0.99与0.999…是否都小于1。
小测答案与复习位置
  1. A∩B={2,3}。{2}⊆A真,{2}∈A假:A的元素是数1、2、3,没有集合{2}。回看1.3、1.4。
  2. 假。6是偶数,但不能被4整除。否定是“存在一个偶数,它不能被4整除”。回看2.3、2.10。
  3. a+b=2(k+l)+1。k+l是整数,所以a+b是奇数。回看3.1。
  4. 对于每个自然数n,都存在自然数m,使m>n。选m=n+1。回看2.7的量词顺序、3.3。
  5. 是函数,每个输入恰好有一个输出。定义域{1,2},陪域{0,1},值域{0}。回看4.2。
  6. 可选N=2,n>2时10−n<0.01;选更大的N也可以。0.99<1,而0.999…=1,后者表示有限截断数列的极限。回看综合示例第1—2节。

若某题不会,回到对应的例题,换一个数再做。能解释自己的选择,比只写出“真”“假”更能说明理解了。

随时查,不要求一次背完

概念与符号表

概念记号或英文一句话提醒
集合、元素set,element;x∈A先问讨论什么对象,再问它是否在集合中
变量、描述法x;{x∈A : 条件}用字母代表待检查对象,再按条件选元素
集合相等、有限集、无限集A=B;finite / infinite set相等看元素是否完全相同;有限集的元素总数是某个非负整数;其余是无限集
空集∅;empty set没有元素;与{∅}不同
子集、真子集A⊆B,A⊊BA的元素全在B里;真子集还要求A≠B
条件与集合的对应A={x∈U:P(x)}收集使P(x)成立的对象;普遍的条件保证对应子集关系
全等两个图形之间的关系平移、旋转或翻转后能完全重合;不允许放大或缩小
有序对、笛卡尔积(a,b),A×B数对有顺序;笛卡尔积收集全部配对
交、并、差、补∩,∪,∖,U∖A同时、至少一个、去掉、全集内剩下的
全集、文氏图U;Venn diagram先定范围,再用区域表示元素是否属于集合
常见数集ℕ,ℤ,ℚ,ℝ本书自然数从1开始;然后是整数、有理数、实数
命题statement / proposition在语境中有确定真假的陈述
真值、联结词、复合命题truth value,connective真假结果;连接命题的符号;连接后得到的命题
谓词、论域P(x),domain of discourse关于对象的条件;变量取值的范围
合取、析取、否定∧,∨,∼且、或、非;¬也是常见的否定符号
条件命题、假言命题P⇒Q;conditional如果P,那么Q;这里用实质蕴涵解释
实质蕴涵material implication只在前件真、后件假时为假
充分条件、必要条件sufficient / necessary conditionP保证Q:P对Q充分,Q对P必要
双条件、充要条件P⇔Q;if and only ifP⇒Q与Q⇒P两个方向都成立
逻辑等价≡;logical equivalence在所有真假组合下真值相同
德摩根律De Morgan’s laws否定“且”变“或”;否定“或”变“且”,各项也否定
全称、存在量词∀,∃每个;至少一个。量词顺序影响意思
逆命题、逆否命题Q⇒P;∼Q⇒∼P只有逆否命题一定与P⇒Q逻辑等价
前提、结论、有效推理premise,conclusion由已知条件推向目标;不允许前提全真而结论假
整除、正因数a∣b;divides本书取a≠0且a、b为整数;b=ak,k为整数;正的除数a是正因数
演绎推理deductive reasoning用有效规则从前提得到有保证的结论
定义、定理、猜想definition,theorem,conjecture约定意思;已证明的命题;尚待解决的判断
直接证明direct proof假设条件,展开定义,走到结论
逆否证明proof by contrapositive改证原条件命题的逆否命题
反证法proof by contradiction假设要证命题为假,推出矛盾
任取、矛盾arbitrary,contradiction理由适用于任意符合条件的对象;得到不能同时为真的说法
反例counterexample满足论域及前件,却使结论失败的对象
关系R⊆A×B;relation把有关系的配对收集起来
函数f:A→B;functionA中每个输入,恰好配到B中一个输出
输入、输出f(a)=b给定a,函数把它配到b;f(a)是b的记号
定义域、陪域、值域domain,codomain,range输入范围、预先指定的输出范围、实际输出集合
数列a:ℕ→ℝ;sequence用自然数作编号的实数函数
下标、整列记号an,(an)前者是第n项;后者通常表示整个数列
绝对值、距离、误差|x|,|x−L|,ε>0离0的距离;两个数的距离;给定的正误差要求
有限截断finite truncation只取无限小数的前面有限位,例如先取前3个9
数列极限limit;limn→∞an=L任给正误差,从某处起的全部项都达标
* 幂集℘(A);power setA的全部子集组成的集合
* 可数、可数无限countable,countably infinite本书约定:可数包括有限和可数无限;可数无限集能与ℕ一一对应
* 排中律、重言式P∨∼P;tautology排中律是一个重言式;重言式在每种赋值下都真
* 数学归纳法mathematical induction起点成立,加上每一步都能传到下一步
* 公理、引理、推论axiom,lemma,corollary理论的起点;辅助命题;由已有结论得到的结果
*** 映射、元素的像map / mapping;x↦f(x)本书中映射与函数同义;f(x)是x的像,也就是输出
*** 单射injection;injective不同输入的输出不同;陪域中每个元素至多收到一支箭头
*** 满射surjection;surjective陪域中每个元素都被用到;值域等于陪域
*** 双射、一一对应bijection;bijective同时是单射与满射;陪域中每个元素恰好收到一支箭头
*** 复合映射g∘f;composition先f后g,(g∘f)(x)=g(f(x));先检查输出能否作为下一步输入
*** 逆映射、恒等映射f−1,idA双射可把所有配对反过来;恒等映射把每个元素配回自身
*** 集合的像与原像f(S),f−1(T);image,preimage收集S的输出;找出输出落在T里的输入。原像不要求存在逆映射
*** 语义后承、形式推导⊨,⊢在解释中保持真;在证明系统中按规则得到
*** 可靠性、完备性soundness,completeness联系形式推导与语义后承的性质

箭头、自然数是否含0、补集的写法等,可能因教材而异。概念表记录的是这本讲义的约定。

* 给家长与教师 · 学生可跳过

教学说明:把两周用于核心能力

保留内容主线,采用四部分层级

集合、逻辑、数学证明、函数是四个同级部分。证明方法放在第三部分内部,不再与整块集合、逻辑并列。节号的第一位直接标明所属部分;原书章号只出现在参考说明中。

目录按知识名称列节,每一节链接到对应标题;课时表另外说明一次课阅读哪些节。核心内容保留《Book of Proof》中集合、逻辑、证明方法、关系与函数的先后次序。计数移到集合的选读部分,数学归纳法放在证明的选读部分;两处都不占核心节号。四部分之后单列数列极限综合示例,展示数学语言;它不改变函数一章的概念边界。

逻辑部分参照原书2.1—2.12的概念顺序,采用中文知识名称作为节标题。2.1只区分命题与尚未指定变量的句子;2.7集中讲谓词、量词与量词顺序;2.9练习用逻辑符号表述数学语句。充分条件、必要条件紧随2.3的条件命题,避免在学生尚不理解条件真值时单独记术语。

本讲义原书位置取舍
第一部分:集合第1章 Sets;选读取自第3章 Counting核心讲对象、描述法、配对、包含与运算;幂集、计数等分级选读
第二部分:逻辑第2章 Logic量词独立成节;2.9补全符号表达训练;集合与逻辑的对应作为2.8的教学补充
第三部分:数学证明第4—9章证明方法;选读取自第10章归纳法保留方法次序,每种以短证明为主;任取与矛盾的解释属于核心
第四部分:函数第11章关系、第12章函数、13.7节数列核心读4.1、4.2、4.8;4.3—4.7按映射、单射与满射、复合、逆映射、像与原像组织高级选读

结构核对依据:Book of Proof目录,第2章各节;原书第11章先讲关系,第12章讲函数,第13章另讲分析中的证明。这里保留这一区分,将数列极限安排为独立综合示例。

怎样把核心控制在10次课

每课的正文包含可在课前或课后回看的解释,不要求教师逐句朗读。课堂优先完成“本课目标”、完整例题和基本练习;不从星号内容出题。

新增的折叠讲解是课堂和自学的解释材料,不是额外的必学目录。课堂上可根据学生卡住的位置选择一两段;学生也可以在课后展开重读。全部不展开时,核心定义、例题、集合与逻辑的对应以及极限定义仍然完整。

第5课在学习量词后,可把三角形例子用于联系全称条件命题与子集:先判断一个指定图形,再把满足条件的图形收集起来,最后把子集关系读成带全称量词的条件句。“等边”是一个图形的性质;“全等”原本比较两个图形,固定其中一个以后才形成关于另一个图形的条件。

第1—6课每次约50分钟,按开头的课表安排。第3课用少量完整例子认识命题与联结词,第4课再用真值表系统检查;第5课学习谓词与量词,第6课学习符号表达、命题的否定与逻辑推理。第7课用两个完整证明练习“展开定义”。第8课各用一个例子区分逆否与反证。第9课以命题形式为线索,合读3.4—3.6节。

第10课可分配为:关系与函数10分钟;数列与误差8分钟;读极限定义12分钟;解释0.999…及集合改写5分钟;小测10分钟;复述5分钟。本课练习可作为小测前的口头提问,也可留作课后回看。

函数的4.3—4.7均标为***,安排在核心函数定义之后、数列之前。它们参考原书第12章的概念次序,先用有限集合的箭头图区分单射、满射和双射,再处理复合、逆映射以及集合的像与原像。可以另用课外时间选讲;跳过它们时,从4.2直接进入4.8,不增加第10课负担。

综合示例不要求学生自行发现ε—N证明,也不要求推导实数的基本性质。达标要求是:知道ε先给、N后选、后面全部项要满足要求;能区分有限小数与无限小数。

怎样确认没有被符号淹没

每引入一个符号,都先让学生读成一句话,再换一个熟悉的例子。若学生会算表却说不清“前件真、后件假”,先回到4这个反例;若学生混淆量词顺序,就回到“每个数都有更大的数”。

证明批改看四件事:范围有没有交代;假设有没有多加;每步是否有理由;结果是否恰好对应目标。对刚开始学习的学生,先用完整自然语言,再逐渐缩短表达。

星号只表示课程依赖关系与抽象程度,不表示学生等级。核心路径不调用幂集、计数公式、归纳法、⊨、⊢、单射或满射。最后一课关于实数的基础性质已在正文明确交代。

跳过全部星号后,后面的知识从哪里来?

后面要用的东西前面的核心准备核对结果
用集合表达条件与关系1.1描述法;1.2有序对与笛卡尔积;1.3包含;1.4—1.6运算不需要幂集、计数或指标集合
直接、逆否与反证2.6等价;2.7量词;2.10否定;2.11推理;3.1任取与整数定义不需要形式证明系统或数学归纳法
把数列当作函数4.1配对;4.2每个输入恰好一个输出;4.8编号与下标不需要4.3—4.7的映射进阶内容,也不需要集合编号的选读
读取极限定义2.7量词顺序;综合示例先解释绝对值、L、ε、N,再读公式“任意误差可达到”的实数性质在核心中明确作为已知事实使用;其基础说明是选读

参考与使用说明

这本讲义从哪里出发

主要参考 Richard Hammack,Book of Proof 官方页面及第三版3.4版次 PDF。核心内容的先后次序与主要定义参考原书;四部分层级、节号、中文讲解、课堂安排和交互练习由本讲义重新组织,不是原书逐段翻译。

条件联结词的补充阅读:Open Logic Project,forall x,第13章:真值逻辑的局限。这部分用于教师了解日常“如果”与真值联结词之间的区别。

本页可离线阅读。阅读范围和完成课次只保存在当前浏览器;不同浏览器或更换文件位置时可能需要重新选择。详细讲解默认折叠,“展开讲解”只影响讲解,不打开练习答案。打印使用当前阅读范围,可分别选择是否附上答案和讲解。关闭脚本时仍可点击各个标题展开内容,交互区保留静态例子。