3.1 定义、猜想与反例
第 2 章为命题建立了精确语言:命题具有真值,蕴含包含前提与结论,量词说明命题讨论每个对象还是至少一个对象。第 3 章要回答下一个问题:
> 怎样说明一个数学命题确实为真?
证明(proof)是从公认的起点出发,经过有限个有理由支持的步骤,最终到达结论的推理链。证明不取决于测试了多少例子,也不取决于一张图看起来多么可信。每一步都必须来自定义、已经得到的结果、明确假设或有效逻辑规则。
本节先准备证明的原材料:
- 定义准确规定数学术语的含义;
- 例子帮助我们理解和检验定义;
- 猜想是等待研究的命题;
- 反例用来推翻全称命题。
定义是双向的成员资格规则
数学定义(definition)划出一个边界,说明哪些对象属于某一类别,哪些对象不属于。
整数 是偶数,是指存在某个整数 ,使
“存在整数 ”不能省略。对 ,取 ,就有 ,所以 是偶数。对 ,方程 给出 ,它不是整数,因此不能用来说明 为偶数。
整数 是奇数,是指存在某个整数 ,使
例如,,所以 是奇数。负整数也适用同一定义:,因此 是奇数。
定义可以双向使用:
- 如果 是偶数,就能写成某个整数 对应的 ;
- 如果某个整数 使 ,那么 就是偶数。
这就是定义经常具有双条件含义的原因。要证明对象属于某个类别,必须构造出定义要求的形式;已经知道对象属于该类别时,则可以展开定义并取得这种形式。
整除定义中需要一个见证
对整数 、,且 ,若存在整数 使
就称 整除 ,记作
整数 是整除关系的见证。因为 ,所以 。不存在整数 使 ,所以 。
不要把 与分数 混淆。竖线在这里表示“整除”关系。
质数定义中的每个条件都不可缺少
正整数 是质数,是指
并且它的正因数只有 与 本身。
的正因数恰好是 ,所以 是质数。 还有额外正因数 ,因此不是质数。 不满足 ,所以也不是质数。
漏掉任何条件都会改变类别。“一个数能被 和自身整除”并不能定义质数,因为每个正整数都满足这两项。检验定义时必须查看边界和反常情况,而不能只看最顺手的例子。
锻造炉会报告两类定义错误。假阳性是被候选定义接纳、实际上却不是质数的数;假阴性是质数,却被候选定义拒绝。正确的定义必须同时避免两种错误,这正对应“当且仅当”的两个方向。
例子用于探索定义,但不能代替证明
例子(example)是满足定义或命题的具体对象;非例(non-example)是不满足它的具体对象。二者都能帮助我们看清边界。
假设要研究命题
代入 ,得到 ,它们都是奇数。这些测试很有价值:
- 它们能检查命题是否看起来合理;
- 它们可能暴露证明所需的代数模式;
- 它们也可能立即揭示错误。
但是,这些例子没有覆盖每个奇数。奇数有无限多个。即使计算机检查一百万个例子,仍然有无限多个例子尚未检查。
后面的正式证明会从任意奇数 出发,说明它的平方具有 的形式。任意表示没有选择特殊的 ,因此推理适用于每个满足前提的对象。
猜想是等待证明或推翻的命题
猜想(conjecture)是在当前研究中被认为可能为真、但还没有得到证明的数学命题。
一个负责任的猜想应明确写出:
1. 变量的论域;
2. 全部前提;
3. 准确结论。
例如:
> 对每个正整数 ,如果 能被 整除,那么 是偶数。
论域是正整数,前提是 ,结论是 为偶数。
“倍数都是偶数”既错误又含糊:究竟是谁的倍数?讨论哪个论域?精确表达不是装饰,而是证明能够开始的前提。
一个反例就能推翻全称命题
对全称蕴含
若对象 同时满足
就称 是该命题的反例(counterexample)。这正是第 2.2 节中蕴含唯一失败的真值行。
考虑猜想:
> 每个质数都是奇数。
属于质数论域,但 不是奇数。因此, 是反例,猜想为假。
论域之外的值不能成为反例。 是偶数,却不能推翻“每个质数都是奇数”,因为 根本不是质数。发现结论失败时,不要马上庆祝,还要先检查前提是否成立。
搜索与证明具有不同的停止条件
搜索反例时:
- 找到一个有效反例,就能结束并推翻命题;
- 没有找到反例,不能据此证明命题;
- 大规模搜索可以增强信心或提示模式,但一般性结论仍需要证明。
有些真命题不会出现反例;有些假命题的第一个反例藏得很远。例如,
在许多较小正整数上都是质数,但当 时,
它不再是质数。
雷达会分开检查两件事:所选数值必须属于猜想的论域,并且结论必须失败。请捕获错误猜想的反例,再测试恒为偶数的 ,观察“搜索不到反例”为什么仍然不是证明。
通向下一节
现在,我们已经能够展开定义、写出精确猜想,并用反例推翻全称命题。若猜想经受住测试,就需要一般性论证。第 3.2 节先学习直接证明,再把分情况证明和逆否证明作为从前提走向结论的不同路线。