一份可以动手读的数学教材
把数学说清楚
用集合说明对象,用逻辑说明条件,用证明说明理由,用函数说明对应。
你已经会算数,也认识自然数、偶数和三角形。这本书从这些熟悉的对象出发,学习怎样把数学的话说得准确。
先说清讨论哪些对象。
把条件连接成准确的句子。
为什么一定还是偶数?
让每个编号对应一个数。
星号表示“可以以后再读”
| 标记 | 怎样安排 | 读到什么程度 |
|---|---|---|
| 核心(无星号) | 两周内完成 | 会解释、会做本课的基本练习 |
| * 选读 | 有余力时,约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.3:集合与元素、有序对与笛卡尔积、子集。
- 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”。
集合看的是有哪些元素。调换顺序不会改变集合;重复写同一个元素,也不会得到新元素:
集合相等,意思是它们的元素完全相同;不是只要求元素个数相同。例如{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}既是有限集,也是可数集;ℕ是可数集,却不是有限集。核心部分只需分清有限与无限,不要求继续学习可数性。
后面还会说到“正数”和“正整数”:正数是大于0的数,正整数就是1、2、3、……。实数集ℝ把数轴上的数都包括在内;本书先使用数轴的直观认识,不要求重新建立整个数系。
集合很大,怎样写?
先回顾几个算术词:“能被2整除”表示除以2得到整数;整数能被2整除,就叫偶数,不能被2整除,就叫奇数。“3的倍数”表示3乘某个整数得到的数。这里谈除法时,除数不为0。
可以用条件描述集合。用小写字母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,它们都符合要求。
为什么没有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中的一个数放在后面,得到:
这个集合叫笛卡尔积。符号×在这里表示“列出全部配对”,不是把数相乘。最后一课会用有序对记录关系和函数。
列举时先固定第一项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叫作一个反例:它是使所说的包含关系失败的对象。
三个不同的对象
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,2,3} 有几个元素?写出一个与它相等、顺序不同的集合。
- 令 A={1, {2}, 3}。判断:2 ∈ A;{2} ∈ A;{1,3} ⊆ A。
- 列出 {1,2} × {0,1}。它与 {0,1} × {1,2} 相等吗?
查看答案与理由
- 3个。重复的1只算一次,例如 {3,2,1}。
- 依次是假、真、真。A里面的是集合{2},不是数2。
- {(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的倍数。先猜结果,再切换运算。
A ∩ B = {6, 12}
这两个数既是偶数,又是3的倍数。深色方格表示被选中。
我们已经在使用逻辑语言了:“既……又……”对应交集,“至少属于一个”对应并集。第二部分会把这些说法变成精确的符号。
展开讲解 · 不看颜色,怎样读懂文氏图?
把图4中的数6单独拿出来。它在A的边界内,也在B的边界内,所以属于交集。无论画图时用什么颜色,这个判断都不变。
数2只在A圈里,所以它满足“属于A但不属于B”;数3只在B圈里;数1在两个圈外,却仍在全集U的框里。
因此“不同时属于A和B”会选出除了重叠部分以外的所有对象;“既不属于A,也不属于B”只选两个圈外的对象。两句话并不一样,2就是区别它们的例子。
不要通过圈画得大不大来猜元素多少,也不要认为交集必须有元素。交集为空时,可以在文氏图的重叠区域中标出∅;不能仅凭画出了重叠区域,就断定其中有元素。
画图帮助发现关系,文字条件帮助检查每个元素。遇到一个新的集合例子,先说条件,再根据条件确定图中的位置。
第2课练习
- 取 U={1,2,3,4,5,6},A={1,2,3},B={3,4}。求 A∩B、A∪B、A∖B、U∖A。
- “不同时属于A和B”与“既不属于A,也不属于B”相同吗?用第一题里的2说明。
- 若 A⊆B,A∩B 等于谁?A∪B 等于谁?解释理由。
查看答案与理由
- 依次是{3}、{1,2,3,4}、{1,2}、{4,5,6}。
- 不同。2属于A而不属于B,所以它“不同时属于两者”,却不是“两者都不属于”。
- 交集等于A:A的每个元素都在B里,所以A中的元素全被保留;交集也不会多出A以外的元素。并集等于B:A没有在B外面的元素,因此把A并进B不会增加新元素。
离开第一部分前
看到x∈A,要检查一个对象是否入选;看到A⊆B,要检查A的每个元素是否都在B里;看到A×B,要想到全部有序配对。
交、并、补使用的“且、或、不”,将在第二部分写成逻辑符号。没有星号的新知识到这里已经讲全,可以直接进入逻辑。
第二部分 · 第3—6课
逻辑
这一部分有两层。先把一句完整的话当作整体,研究“且、或、非、如果”;再研究句子里面的变量和“每个、存在”。最后用这些语言检查推理。
- 2.1—2.6:命题、联结词、真值表与逻辑等价。
- 2.7:谓词、量词与量词顺序。
- 2.8—2.10:全称条件命题、符号表达、命题的否定。
- 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 ∧ Q | P且Q | 两者都真 |
| P ∨ Q | P或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不同是同一个阅读习惯:先看结构,再计算。
读较长的逻辑式时,可以先用铅笔圈出最外层的联结词,找出它连接的是哪两块,再分别处理里面的部分。
命题与联结词练习
- 判断哪些是命题:“7是质数”;“x>3”;“请计算2+3”;“1000001是质数”。说明理由,不必判断最后一句的真假。
- 令P为“9是偶数”,Q为“9是3的倍数”。判断P∧Q、P∨Q、∼P。
- 范围是整数。把“n大于0,而且n不是偶数”写成用∧和∼连接的句子。
查看答案与理由
- 第1句和第4句是命题。第2句还缺少x的取值或量词;第3句是要求。
- P假、Q真,所以依次是假、真、真。
- (n>0) ∧ ∼(n是偶数)。也可以写成“n>0且n是奇数”,但这一改写使用了整数范围。
2.3 条件命题与充分、必要条件
“如果一个整数能被4整除,那么它是偶数。”这里,“能被4整除”是前件,“是偶数”是后件。前件提出条件,后件给出条件成立时应满足的结论。
这叫条件命题,也常叫假言命题。在本书使用的经典命题逻辑中,它按下面的真值规则解释,这个联结词也叫实质蕴涵。
条件命题只排除一种情况
P真而Q假时,P⇒Q为假;另外三种情况都为真。
它说的是:“不能出现前件成立、后件却不成立的情况。”
如果有人说“每个满足P的对象都满足Q”,我们找到了一个满足P、却不满足Q的对象,它就叫这句话的反例。反例的“反”,指它违反了这条保证。
令P(n)为“n是偶数”,Q(n)为“n是质数”。质数指大于1且正因数只有1和它自己的整数;1不是质数。
| n | P(n) | Q(n) | P(n)⇒Q(n) |
|---|---|---|---|
| 2 | 真 | 真 | 真 |
| 4 | 真 | 假 | 假 ← 反例 |
| 3 | 假 | 真 | 真 |
| 1 | 假 | 假 | 真 |
n=2:前件真,后件真,这个条件命题为真。
请区分两件事: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)为后件。
- n=2:它是偶数,也是质数。条件提出了要求,结果符合要求,所以这一例为真。
- n=4:它是偶数,却不是质数。条件提出了要求,结果违反要求,所以这一例为假。
- n=3:它不是偶数,却是质数。前件没有成立,这个对象没有违反“偶数应当怎样”的要求,所以条件命题为真。
- n=1:它既不是偶数,也不是质数。同样因为前件没有成立,这个条件命题仍然为真。
第三、四种情况的“真”,都没有告诉我们“n是偶数”。第四种也没有告诉我们“n是质数”。它只是在按定义计算整个条件命题的真值。
再回到“每个偶数都是质数”这个普遍说法:它要求所有n都不能出现第二种情况。4已经使它失败,所以找到再多通过检查的数,也不能挽救这个普遍说法。
充分条件和必要条件一起读
当我们知道在所讨论的范围内P成立就保证Q成立时,可以用下面两种说法描述同一件事:
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课练习 · 条件命题与双条件命题
- 给“如果n是质数,那么n是奇数”找一个反例。范围是自然数。
- “三角形是等边三角形”和“三角形是等腰三角形”,哪个是哪个的充分条件?本书把“至少两边相等”的三角形叫等腰三角形。
- 已知P假、Q假。P⇒Q和P⇔Q分别是真是假?能据此说Q为真吗?
查看答案与理由
- n=2。前件“是质数”真,后件“是奇数”假。
- 等边是等腰的充分条件;等腰是等边的必要条件。边长为2、2、3的三角形说明反向不成立。
- 两个都真;不能。这里Q本来就是假的。复合命题为真,不要求其中每个命题都真。
* 思考题 · “实质蕴涵悖论”矛盾在哪里?
令P为“9是偶数”,Q为“7是质数”。按真值表,P⇒Q为真。两句话似乎毫不相关,为什么它们能组成一个真的条件命题?
- 计算P、Q和P⇒Q的真假。这里是否出现“同一个命题既真又假”?
- 它说“9是偶数导致7是质数”了吗?
- 把Q换成“7是偶数”,P⇒Q会变成假吗?
- 由这两个例子,能得出“任何前提都能证明任何结论”吗?缺少哪一个条件?
思考提示与解释
原来的P假、Q真,所以P⇒Q真;换后的Q假,P⇒Q仍然真。没有哪一个命题同时被判定为真和假。
让人意外的是:日常“如果”常带有关联、原因、时间或承诺;实质蕴涵只检查两边的真假。这些所谓“悖论”主要是这种差别造成的反直觉现象,并不是经典逻辑已经推出矛盾。
两个常见现象是:前件假时,不论后件真假,条件命题都真;后件真时,不论前件真假,条件命题都真。用真值表即可核对。
要由P⇒Q得到Q,还需要P。我们的例子没有一个为真的P。因此不能把“假前件使条件命题为真”误读成“假话能作为真实证据证明任意结论”。
继续想:把“如果明天放假,我就去公园”直接放进真值表,可能忽略了哪些日常意思?目的不是否定日常语言,而是认识一种精确工具的适用范围。
2.5 真值表
两个命题P、Q各有真、假两种可能,一共四种组合。逐一列出组合,再按规则计算,就得到真值表。
| P | Q | P∧Q | P∨Q | P⇒Q | P⇔Q |
|---|---|---|---|---|---|
| 真 | 真 | 真 | 真 | 真 | 真 |
| 真 | 假 | 假 | 真 | 假 | 假 |
| 假 | 真 | 假 | 真 | 真 | 假 |
| 假 | 假 | 假 | 假 | 真 | 真 |
不要把这张表当作一排口诀。每一列都能从定义重新算出。例如“且”需要两个都真,“或”只需要至少一个真。
展开讲解 · 怎样为一个稍长的式子制作真值表?
试算(P∨Q)∧(∼P)。它不是一次完成的运算,可以加两个中间栏目:先算P∨Q,再算∼P,最后把它们用∧连接。
| P | Q | P∨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) | (∼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∈B | A∩B |
| x∈A 或 x∈B | A∪B |
| x∈U,但x∉A | U∖A |
| 并非同时属于A、B | U∖(A∩B) = (U∖A)∪(U∖B) |
最后一行正是集合的德摩根律。这里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课练习 · 真值表与逻辑等价
- 把“并非n大于0且n是偶数”改写成一个不在括号外使用否定的句子。
- 列出P、Q的四种情况,验证P⇒Q与(∼P)∨Q逻辑等价。
- P∧Q与P∨Q逻辑等价吗?给出一组真假说明。
查看答案与理由
- “n≤0,或者n不是偶数。”
- 按真真、真假、假真、假假的顺序,两列都是:真、假、真、真。
- 不等价。例如P真、Q假时,P∧Q为假,P∨Q为真。
* 这些规律叫什么?
不论组成它的命题怎样取真假,总为真的表达式叫重言式,也叫永真式。例如P∨∼P,叫排中律。∼(P∧∼P)表达不矛盾律。
总为假的表达式叫矛盾式,例如P∧∼P。“逻辑等价律”则用来把一个表达式改写成等价的表达式,例如德摩根律、双重否定律。
交换律、结合律、分配律也有逻辑版本。例如 P∧(Q∨R) ≡ (P∧Q)∨(P∧R)。想想集合的交、并是否也满足相应的规律。
参考书2.6节集中讲逻辑等价及德摩根等规律;这里对排中律、不矛盾律名称的介绍是本讲义补充。
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的平方”。判断下面三句的真假,并给出理由:
- ∀n∈ℕ,n+1>n。
- ∃n∈ℕ,n²=9。
- ∀n∈ℕ,n²=9。
查看答案与理由
- 真。任何自然数加1都会变大,这个理由对任意n适用。
- 真。取n=3即可。
- 假。取n=1,1²不等于9。
2.8 全称条件命题
本节在2.3的条件命题中补出全称量词,再用子集关系表达同一个数学事实。
“如果n能被4整除,那么n是偶数。”在讨论整数的一段数学文字中,这通常不是只说一个未指定的n,而是对任意整数n都作保证。把隐藏的量词写出:
所以,证明这句话不能只列举4、8、12。要给出对任意整数n都适用的理由。3.1节会完成这个证明。
集合包含关系也有相同的形式:
这里A、B都是U的子集。左边说集合怎样包含,右边说每个元素应当满足什么。这是集合语言与逻辑语言之间的一座桥。
集合与逻辑的对应
用三角形的条件与包含关系,比较逻辑语言和集合语言怎样表达同一个意思。
先固定范围U:我们正在讨论的平面图形。令P(x)表示“x是等边三角形”,Q(x)表示“x是三角形”。这里的x还没指定,所以P(x)、Q(x)是谓词。指定一个图形a以后,P(a)、Q(a)才成为可以判断真假的命题。
现在收集使条件成立的对象:
I = {x∈U : x是等腰三角形}
T = {x∈U : x是三角形}。
等边三角形三边相等,当然至少两边相等,所以每个等边三角形都是等腰三角形;每个等腰三角形又都是三角形。因此:
例如,“x是等边三角形”足以保证“x是三角形”,用两种语言写,就是同一件事:
逻辑语言:∀x∈U,(P(x)⇒Q(x))。
如果E里有一个对象不在T里,它就使P真、Q假,成为条件命题的反例。反过来,只要没有这样的对象,E中的每个元素就都在T里,所以E⊆T。子集关系对应的是“对所有x都成立”的保证,不能只检查某一个图形。
“是等边三角形”比“是三角形”要求更多,所以前者是后者的充分条件,选出的集合更小。“是三角形”是“是等边三角形”的必要条件;三边不等的三角形说明它本身还不够。
“是全等三角形”要先说明与谁全等
两个图形经过平移、旋转或翻转后,能够完全重合,就叫全等。不允许把图形放大或缩小。全等说的是两个图形之间的关系,单独说“这个三角形是全等三角形”还缺少比较对象。
“等边”比较一个三角形自己的三条边;“全等”比较两个图形。它们不是同一个条件。
先固定一个三角形T0,下标0只是给它起的名字。令C收集与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通过,是因为前件为假。
(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。这里k可以随着n改变;n=6时选k=3,n=−4时选k=−2。
例2 · 存在一个偶数,它也是质数
我们要找的同一个n必须同时满足两个条件,所以用“且”。取n=2就能验证这句话。
不能改写成“∃n∈ℕ,((n是偶数)⇒(n是质数))”。后一句连n=1也能满足,因为前件假;它没有保证找到了一个偶数。
例3 · 两个数中至少有一个是偶数
设a、b是已经给定的整数。“a和b中至少有一个是偶数”应写成:
句子虽然出现“和”字,表达的要求却是至少满足一个条件,因而用∨。不能只按某个汉字机械替换符号。
展开讲解 · 写好符号以后,怎样检查有没有改掉原意?
做三次检查。第一,字母能取哪些对象?第二,要求“每个”还是“存在”?第三,两个条件之间是“且”“或”,还是“如果……那么……”?
写完后,把式子从左到右读回中文。例如∃n∈ℕ,(n>5且n是偶数),读回“存在一个大于5的偶数”,可用6检查。若写成∀n,读回就变成“每个自然数都大于5并且是偶数”,原意已经改变。
符号表达不等于证明。准确写出一句话,只是明确了要判断或证明的内容;要说明它是真的,仍然需要理由。
2.10 命题的否定
∼(∃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课练习
- 否定“所有三角形都是等腰三角形”。
- 把“每个整数都有一个比它大的整数”写成量词语句,并给出怎样选择那个更大整数。
- 小林说:“等边三角形都是等腰三角形;这个三角形是等腰三角形,所以它是等边三角形。”指出问题,给出边长作为反例。
查看答案与理由
- 存在一个三角形,它不是等腰三角形。例如边长3、4、5的三角形。
- ∀n∈ℤ,∃m∈ℤ,m>n。选m=n+1即可;这里m依赖n。
- 肯定后件。边长2、2、3的三角形是等腰而非等边,且满足两边之和大于第三边,确实能组成三角形。
离开第二部分前
先问范围,再看量词;先分清条件,再判断推理。“每个”命题的反驳要找一个失败对象,“存在”命题的证明要找一个成功对象。
第三部分会用这些规则写证明。所需的否定、逆否、量词和有效推理都已在核心正文中说明,不需要先读任何星号内容。
** 空集上的量词
∀x∈∅,P(x) 为真,因为找不到任何一个使P(x)失败的空集元素。∃x∈∅,P(x) 为假,因为空集中找不到所需要的例子。
所以“空集是任何集合的子集”与条件命题的规则相配合。再想想:空班级里的“每个学生都交了作业”在这种形式规则下如何判断?这不是在宣称有学生存在。
*** 四个符号:条件、语义后承、形式推导
更高阶的逻辑把“写出的公式”“公式在各种解释中的真假”和“按照规则做出的证明”分开研究。
| 记号 | 一种常用约定 |
|---|---|
| P→Q | 把P和Q连接成条件公式;本书正文用⇒表达这个联结词。 |
| P⊨Q | 语义后承:每一种使P为真的解释,都使Q为真。 |
| P⊢Q | 形式推导:在指定的证明系统中,可以从前提P按规则推导出Q。 |
| ⇒ | 必须看约定。有的书用作条件联结词,有的用在公式之间表示“因此”。 |
一个P→Q在某次真假赋值下为真,不等于P⊨Q。在经典命题逻辑中,P⊨Q要求P→Q在所有真假赋值下都真。
证明系统的可靠性(soundness)说:“能按规则推导出来的,确实是语义后承。”相应的完备性(completeness)说:“凡是语义后承,都能用这个系统推导出来。”不同数学语境中的“完备”可能另有定义,不能把名称相同当成内容相同。
本书没有建立一套完整的形式证明系统;核心课程学习的是可以检查的数学推理。你现在只需要知道:这些符号记录的层次不同。
补充章一 · * 选读 · 逻辑的应用
辩论中的逻辑
学过条件命题、量词和逻辑推理后,用校园讨论练习区分前提与结论,澄清主张,找出有效的反驳。
整章选读,不计入两周核心课时。也可直接继续第三部分:数学证明。
第三部分 · 第7—9课
数学证明
第二部分教我们看清一句话的形式。这一部分学习怎样为它给出理由:先说明任意对象都满足什么,再根据目标选择证明方法。
- 3.1—3.3:直接证明、逆否证明与反证法。
- 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。 |
| 质数p | p是大于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。下面沿用这个已经学过的整数事实。
直接证明的四个动作
- 读清范围和条件:要证明的是哪一类对象?
- 任取一个满足条件的对象,不指定特殊数值。
- 展开定义,逐步推算,每一步说明理由。
- 检查结果是否正好满足结论的定义。
“任取”和“展开定义”分别做什么?
“任取一个偶数a”表示:不指定它是2、6还是别的偶数,后面的理由只使用“它是偶数”这个条件。若从a=6开始算,就只检查了一个特殊例子。
“展开定义”就是把名称换成定义中的条件:a是偶数,所以可以写a=2k,其中k是某个整数。k不固定,才能保留任意偶数的可能。
证明开头的“设”用来说明对象和假设;结尾的“证毕”表示证明完成。检查时要问:我是否偷偷使用了题目没有给出的额外条件?
完整例题 · 两个偶数的和是偶数
命题:对于任意整数a、b,如果a和b都是偶数,那么a+b是偶数。
证明:任取两个偶数a、b。由偶数的定义,存在整数k、l,使a=2k,b=2l。因此
因为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,因为题目没有要求两数之间还有别的关系。
式子已经接近终点,但还差一句:k+l是整数。补上这句,才确认a+b确实满足奇数的定义。于是任意一个这样的和都是奇数。
如果草稿中先试了2+3=5,这很有帮助,它让我们猜到结论。但正式证明用的是任意a、b,推理中没有依赖2、3这两个特殊值。
可以用三个问题检查成稿:字母从哪里来?每次变形用了什么?最后一句是否正好回答了题目?
第7课练习
- 补全证明:若a、b为奇数,写a=2k+1,b=2l+1,其中k、l∈ℤ。则a+b=______,所以a+b是______。
- 证明:偶数与任意整数的积是偶数。
- “我检查了前100个正偶数,它们的平方都为偶数,所以所有偶数的平方都为偶数。”结论是否正确?这段话是否构成证明?补出证明。
查看答案与理由
- 2(k+l+1);偶数。k+l+1是整数,这句话需要写出来。
- 设a=2k,k∈ℤ,b∈ℤ。则ab=2(kb),且kb∈ℤ,所以ab是偶数。
- 结论正确,但检查有限例子不是这个全称命题的证明。设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∈ℤ。两次使用分配律,
= (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
- 写出“如果一个整数能被6整除,那么它能被3整除”的逆否命题。
- 若a+b是奇数,证明a、b不可能都是偶数。尝试用逆否方向。
查看答案与理由
- 如果一个整数不能被3整除,那么它不能被6整除。
- 把“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
- 反证法证明“不存在最大的整数”:假设最大整数是m,接下来怎样做?
- 小林说:“没有最小的正有理数,所以没有最小的正整数。”哪里错了?
查看答案与理由
- m+1仍是整数且比m大,与m最大矛盾。因此不存在最大的整数。
- 讨论范围变了。正整数确实有最小值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。不需要为了换成图形,再发明一套规则。
* 用逻辑等价压缩集合证明
对任意x,把条件逐步改写:
⇔ (x∈B 且 x∈A) ⇔ x∈B∩A。
每个⇔都要求两个方向成立。熟练后,这种写法简洁;初学时先把两个包含方向写全,更容易检查遗漏。
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。
因此这样的整数不存在。这是用覆盖所有情况的理由反驳存在命题,与用一个反例反驳全称命题不同。
展开讲解 · 怎样寻找反例,而不是随机试很多数?
先写清失败需要什么。要反驳“自然数n如果是奇数,就是质数”,需要一个自然数:既是奇数,又不是质数。
从边界试起,1就是候选。它是自然数,也是奇数,但质数定义要求大于1,所以它不是质数。两个检查都通过,这就是有效反例。
如果题目额外要求n>1,1就不能用了。可以改用9:它是大于1的奇数,又有正因数3,因此不是质数。反例必须跟着题目的范围和条件改变。
反例写法可以固定成两句:“这个对象满足全部前提。”“它不满足结论,理由是……”只写一个数字,容易漏掉它为什么合格。
没有找到反例,不等于已经证明命题。它可能是真的,也可能只是反例不在你试过的对象里;下一步仍要寻找覆盖全部情况的理由。
第9课练习 · 合用3.4—3.6节
- 证明“2x+1=9有且只有一个有理数解”。分别写出存在与唯一。
- 证明A⊆A∪B。第一句话应当从哪里任取元素?
- 反驳:“如果一个自然数是奇数,那么它是质数。”给出反例并说明两个条件。
查看答案与理由
- 存在:x=4使等式成立。唯一:任意解x满足2x=8,因此x=4。
- 任取x∈A。由于x∈A或x∈B成立,根据并集定义,x∈A∪B。因此A⊆A∪B。
- 例如9是奇数,但9有正因数3,不是质数;1也是有效反例,因为1是奇数却不是质数。
离开第三部分前
先认出要证的是“如果”“当且仅当”“存在”还是“对每个”。再确定起点和目标,写清范围与理由。下一部分只会使用已经学过的集合、量词和这些基本推理。
* 证明选读 · 原书第10章
数学归纳法:起点与每一步
本节是选读。跳过它仍然可以完成第四部分。不要把数学归纳法与“试了几个例子,所以猜想都对”混淆。
为什么两项任务能覆盖所有自然数?
要证明命题P(n)对所有自然数n≥1成立,数学归纳法要求完成:
- 起点:证明P(1)成立。
- 递推:任取k≥1,假设P(k)成立,证明P(k+1)成立。
第一步给出P(1)。第二步于是给出P(2),再给出P(3),如此继续。任意一个自然数都能从1经过有限次加1到达,所以这一结构覆盖所有自然数。
完整例题 · 前n个正奇数的和是n²
起点:n=1时,左边是1,右边是1²,相等。
递推:任取k≥1,假设前k项之和为k²。第k+1个奇数是2k+1,加入它得到
因此P(k)成立时P(k+1)也成立。根据数学归纳法,命题对所有n≥1成立。证毕。
递推里暂时假设P(k),并不是循环证明。我们证明的是一个条件:“如果第k步成立,那么下一步成立。”起点让这条规则能够开始使用。
思考:只有递推,没有起点,会怎样?
错误命题“n>100对所有自然数n成立”也满足“如果k>100,那么k+1>100”。但n=1不成立。只有递推,不能保证从起点开始的全部命题为真。
** 强归纳法
有时下一步要用到前面不止一步。强归纳法在递推时假设P(1)、…、P(k)都成立,再证明P(k+1)。它仍需要适当的起点。
这不是比普通归纳法“更可靠”的方法,而是另一种方便的表达方式;在通常的自然数体系里,两者可以互相导出。
*** 为什么自然数允许这样的证明?
自然数的基础理论把归纳原理作为基本规则之一,或从等价的基本性质推出它。数学证明总要有出发点;研究这些出发点属于数学基础。
补充章二 · * 选读 · 集合、逻辑与证明的应用
抽屉原理、计数与概率
用月份、袜子颜色和整数分类练习抽屉原理,再用两个骰子的有序结果理解计数与概率。读本含18道抽屉原理题、8道概率题,配有提示与完整解答。
整章选读,不计入两周核心课时。标有函数视角的内容可在第四部分后再读;现在也可继续第四部分:函数。
补充章三 · *** 高级选读 · 交互式形式化证明
交互式形式化证明
把一段证明分成可以逐步检查的任务:目前有哪些已知条件?还要证明什么?使用一条推理规则后,目标怎样改变?在“证明闯关”中亲手选择步骤,再把完成的证明读成中文。
建议先学过2.11 逻辑推理与3.1 直接证明。整章为高级选读,不计入两周核心课时;后续正文不依赖它。也可直接继续第四部分:函数。
第四部分 · 第10课
函数
核心路线依次学习关系、函数和数列。关系是有序对组成的集合,函数是一种满足特定要求的关系,数列则是以正整数为定义域的函数。
- 4.1:关系。
- 4.2:函数、定义域、陪域和值域。
- *** 4.3—4.7:映射的语言;单射、满射与双射;复合映射;逆映射;集合的像与原像。
- 4.8:数列。
两周核心课只读4.1、4.2和4.8。中间的高级选读不计入核心课时,也不是数列与极限示例的前提。
4.1 关系
回想有序对。取A={1,2,3},A×A就是把这三个数分别放在第一项、第二项,得到的全部9个配对。现在按条件筛选,只保留“前面的数小于后面的数”的配对:
(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中。只保留全等的配对,会得到:
每个图形都能与自己重合,所以有(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的初始例子中,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。可以简写成:
→的两边是集合,说明映射从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)}。
是单射:不同输入的输出不同。不是满射:6没有对应的输入。
右侧2收到1支箭头;4收到1支箭头;6收到0支箭头。
三个定义,都以“已经是映射”为前提
单射:不同的输入,总有不同的输出。也就是说,右侧每个元素至多收到一支箭头,可以一支也没有。
满射:陪域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只是用来区分这两个输入。
利用逆否命题,还可以写成:
意思是:若两个输出相同,那么它们原来就是同一个输入。这种写法很适合证明单射。
满射则写成:
先任取一个希望得到的输出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、……能把两边逐个配起来。无限集合能和自己的真子集一一对应;这里不要套用“有限集合少取一些元素就会变少”的判断。
选读练习 · 给理由,不能只报名称
- A={1,2,3},B={2,4};1↦2、2↦2、3↦4。它是单射吗?是满射吗?
- f:ℕ→ℕ,f(n)=n+1。它是单射吗?是满射吗?
- 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。
符号∘读作“复合”。读式子时先看里面的f(x):g∘f先做右边的f,再做左边的g。这里的∘不是乘号。
取f:ℕ→ℕ,f(n)=n+1;g:ℕ→ℕ,g(n)=2n。
这里(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。现在把所有箭头反过来:
原来右侧的每个元素恰好收到一支箭头,反过来后,每个新输入就恰好有一个输出。因此仍是映射。
定义 · 逆映射
若f:A→B是双射,把每个配对(x,y)改成(y,x),就得到从B到A的逆映射,也叫逆函数,记作f−1。
上面的例子中,f−1(4)=2。这里的上标−1是逆映射的记号,不是取倒数,不能读成1/f(y)。
为什么需要双射?若不是满射,B里有元素没有来路,反向时就没有输出;若不是单射,B里有元素收到两支或更多箭头,反向时就会有多个输出。两者都满足,才可以在整个B上把箭头反过来而仍得到映射。
展开讲解 · “做完再撤回”与恒等映射
把A中每个元素都配回它自己的映射,叫恒等映射,记作idA:idA(x)=x。id是名称,下标A说明它作用在哪个集合上。
f和它的逆映射接在一起,就把输入送回原处:
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中所有元素的输出组成的集合:
例如取S={1,3},在上面的g中,1输出2,3输出4,所以g({1,3})={2,4}。取整个定义域A时,f(A)就是值域。
原像:先选输出范围,再找符合条件的输入
设T⊆B。T在f下的原像,记作f−1(T),是所有输出落在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)。
因此,左边和右边选出的输入完全一样,得到:
这里把函数条件、命题中的“且”、集合的交集串在了一起。每一步只是在展开已经学过的定义。
选读练习
仍用本节的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 数列
我们熟悉的一串小数
可以看作函数a:ℕ→ℝ:输入第几项的编号n,输出对应的小数a(n)。通常把a(n)简写成an,叫数列的第n项。
n写在右下角,叫下标,这里专门用来表示编号:a1是第1项,a2是第2项。an不是a乘n;写(an)时,通常指这一整个数列。
0.1n表示n个0.1相乘;10−n是同一个数,也就是1/10n。这些小数都是有限小数:第n项的小数点后恰好有n个9。
| 编号n | an | 距离1还差多少 |
|---|---|---|
| 1 | 0.9 | 0.1 |
| 2 | 0.99 | 0.01 |
| 3 | 0.999 | 0.001 |
| 4 | 0.9999 | 0.0001 |
| n | 1−10−n | 10−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。
数学用字母ε表示允许的正误差,用自然数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,如果
(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项更小,所以
这就按顺序完成了“给ε、选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,所以
这不是说“到了某个足够大的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ε是集合的名字,下标ε提醒我们这个集合随误差要求改变。它就是数轴上1−ε与1+ε之间的部分,不包括两个端点。例如ε=0.01时,它收集所有满足0.99<x<1.01的实数。
再看 {an : n∈ℕ 且 n>N}:冒号后面选出编号,冒号前面说明收集这些编号对应的输出。例如N=3时,得到{a4,a5,…},也就是{0.9999,0.99999,…}。
于是,极限条件也可以说成:
左边的集合收集第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课练习 · 会读定义即可
- A={1,2},B={3,4}。关系{(1,3),(2,3)}是从A到B的函数吗?加入(1,4)后呢?
- 对an=1−10−n,要求距离1小于0.0001。可否取N=4,使所有n>N都达标?第4项本身达标吗?
- 判断:“每一项都不等于1,因此极限不可能等于1。”解释哪里出了问题。
查看答案与理由
- 原关系是函数,两个输入各有一个输出,允许都输出3。加入(1,4)后不是函数,因为输入1有两个不同输出。
- 可以。n>4时10−n<0.0001。第4项距离恰好等于0.0001,不满足严格小于。
- 错误。极限定义要求后面各项能全部进入任意给定的正误差范围,不要求某一项等于极限。本例所有有限项都小于1,极限仍然是1。
四部分在这里合起来
有序对组成关系;“每个输入恰好一个输出”选出函数;自然数给数列编号;量词与条件命题规定极限;集合包含关系表达后面的输出全部落在误差范围里。
核心学习到这里结束。你需要会读定义的结构,不要求学习星号中的极限否定式或实数基础。
* 把极限定义否定,会得到什么?
“这个数列不以L为极限”表示:存在一个正误差ε,不管你把N放在哪里,仍能在后面找到一个不达标的编号n。
(n>N 且 |an−L|≥ε)。
量词依次换成∃、∀、∃,条件命题的否定变成“前件成立且后件不成立”。注意这里是≥,因为它否定的是严格小于。
*** 为什么10−n能小于任意正实数?
实数的阿基米德性质保证:给定任意实数M,总有自然数m>M。取M=1/ε,得到m>1/ε。
对m≥1,有10m≥m+1;这可用数学归纳法证明。因此10m>1/ε,取倒数得到10−m<ε。
这里给出基本性质之间的联系,不要求在两周课程中学习实数的公理构造。
核心路线的出口
结课小测:用自己的话说清楚
建议用10分钟完成。可以查符号表,先不看答案。重点不是背定义,而是把范围、条件和理由说完整。
- 令A={1,2,3},B={2,3,4}。写出A∩B,并判断{2}⊆A与{2}∈A。
- “每个偶数都能被4整除”是真是假?给出理由,并用一句话写出它的否定。
- 补全一句完整的证明:设a=2k,b=2l+1,k、l是整数,则a+b=______,所以______。
- 把“没有最大的自然数”写成“对于每个……都存在……”的句子。给出选择后一个数的方法。
- A={1,2},B={0,1}。关系{(1,0),(2,0)}是否是函数?写出它的定义域、陪域和值域。
- 对数列an=1−10−n,要求距离1小于0.01。选一个N,保证所有n>N都满足要求。再解释0.99与0.999…是否都小于1。
小测答案与复习位置
- A∩B={2,3}。{2}⊆A真,{2}∈A假:A的元素是数1、2、3,没有集合{2}。回看1.3、1.4。
- 假。6是偶数,但不能被4整除。否定是“存在一个偶数,它不能被4整除”。回看2.3、2.10。
- a+b=2(k+l)+1。k+l是整数,所以a+b是奇数。回看3.1。
- 对于每个自然数n,都存在自然数m,使m>n。选m=n+1。回看2.7的量词顺序、3.3。
- 是函数,每个输入恰好有一个输出。定义域{1,2},陪域{0,1},值域{0}。回看4.2。
- 可选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⊊B | A的元素全在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 condition | P保证Q:P对Q充分,Q对P必要 |
| 双条件、充要条件 | P⇔Q;if and only if | P⇒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;function | A中每个输入,恰好配到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 set | A的全部子集组成的集合 |
| * 可数、可数无限 | 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,再读公式 | “任意误差可达到”的实数性质在核心中明确作为已知事实使用;其基础说明是选读 |