跳转至

量词怎样改变一句话?

先备知识

需要会读集合符号 \(\mathbb R\)\(\mathbb Z\) 以及“属于”的记号。上一单元的集合语言告诉我们对象来自哪里;本单元关注一句话怎样说明这些对象满足什么条件。高等代数、解析几何与 Python 均无额外先备。

学习目标

完成本单元后,你应能:

  1. 区分可判定真假的命题与含自由变量的谓词;
  2. 准确写出全称量词 \(\forall\)、存在量词 \(\exists\) 及其作用范围;
  3. 否定带有嵌套量词的陈述,并用反例解释量词次序不能任意交换。

牵引问题

“每个正数都有平方根”说的是

\[ (\forall x>0)(\exists y>0)\ y^2=x. \]

它并不等于“存在一个数,它是每个正数的平方根”:后者要求同一个 \(y\) 同时满足所有 \(x>0\),显然不可能。量词决定“谁可以随谁改变”,因而改变一句话的数学内容。

探索与猜想

\(A,B\) 是集合,\(P(x,y)\) 表示一个可判定真假的条件。比较

\[ (\forall x\in A)(\exists y\in B)P(x,y) \quad\text{与}\quad (\exists y\in B)(\forall x\in A)P(x,y). \]

第一句允许 \(y\)\(x\) 改变;第二句要求先选定一个 \(y\),再面对所有 \(x\)。例如在 \(A=B=\mathbb R\) 中取 \(P(x,y)\)\(y=x\):第一句为真,第二句为假。

概念与理论

命题、谓词与作用域

命题是有确定真值的陈述,例如“\(2<3\)”。含变量的句子,如“\(x<3\)”,在没有说明 \(x\) 时是谓词,不是命题。量词把变量的取值范围和责任范围固定下来:

\[ (\forall x\in A)P(x),\qquad (\exists x\in A)P(x). \]

前者表示 \(A\) 中每个 \(x\) 都满足 \(P\);后者表示至少有一个 \(x\) 满足 \(P\)。量词所管辖的部分称为其作用域。写作时应使用括号,避免让量词越过原本不应管辖的条件。

蕴含、等价与否定

陈述 \(P\Rightarrow Q\) 的含义是:一旦 \(P\) 为真,\(Q\) 必须为真;它并不要求 \(Q\) 只能由 \(P\) 导致。\(P\Leftrightarrow Q\) 表示两个方向都成立。否定记作 \(\neg P\)。基本规则是

\[ \neg(P\land Q)\Longleftrightarrow \neg P\lor\neg Q, \qquad \neg(P\lor Q)\Longleftrightarrow \neg P\land\neg Q, \]

以及

\[ \neg(\forall x\in A\ P(x))\Longleftrightarrow \exists x\in A\ \neg P(x), \qquad \neg(\exists x\in A\ P(x))\Longleftrightarrow \forall x\in A\ \neg P(x). \]

否定量词时,量词类型必须交换,谓词也必须否定。

嵌套量词的否定

对任意谓词 \(P(x,y)\),逐层使用上面的规则可得

\[ \begin{aligned} \neg(\forall x\in A,\ \exists y\in B,\ P(x,y)) &\Longleftrightarrow \exists x\in A\ \neg(\exists y\in B\ P(x,y))\\ &\Longleftrightarrow \exists x\in A,\ \forall y\in B\ \neg P(x,y). \end{aligned} \]

这就是

\[ \neg(\forall x\in A,\ \exists y\in B,\ P(x,y)) \Longleftrightarrow \exists x\in A,\ \forall y\in B,\ \neg P(x,y). \]

它的语言表述是:“并非每个 \(x\) 都能找到一个合适的 \(y\)”,等价于“有一个 \(x\),对任何 \(y\) 都不合适”。

例题与迁移

例:否定一个分析中的陈述

否定“对每个 $\varepsilon>0,都存在 \(N\in\mathbb N\),当 \(n\ge N\) 时有 \(|a_n-L|<\varepsilon\)”。

解。 保持变量范围不变,逐层交换量词并否定最后的条件,得到

\[ (\exists\varepsilon>0)(\forall N\in\mathbb N)(\exists n\ge N) \quad |a_n-L|\ge\varepsilon. \]

这说明存在一个固定的正误差,无论把起点 \(N\) 取得多大,总能在后面找到一项没有进入该误差范围。它预告了数列极限的严格定义为何需要精确的量词次序。

迁移:从自然语言到数学句子

“每个整数都能被某个质数整除”应先检查范围。按整除的定义,每个质数都整除 \(0\);但质因子通常用于非零整数的因子分解,\(0\) 不具有通常意义下的质因子分解。若要表达非单位整数有一个质因子,正确写法是

\[ (\forall n\in\mathbb Z\setminus\{0,\pm1\})(\exists p\text{ 为质数})\ p\mid n. \]

量词公式不是翻译机器;选错范围会把一条本来正确的数学事实写成假话。

即时检验与回望

  1. 否定“每个实数都大于 \(-1\)”。
答案

“存在一个实数不大于 \(-1\)”,即 \((\exists x\in\mathbb R)\ x\le-1\)

  1. 否定“对每个 \(x\in A\),存在 \(y\in B\) 使 \(x+y=0\)”。
答案

“存在 \(x\in A\),使得对每个 \(y\in B\) 都有 \(x+y\ne0\)”。

  1. 为什么“每个正数有一个平方根”不表示存在一个共同的平方根?
答案

前一句是 \(\forall x\exists y\)\(y\) 可以依赖 \(x\);共同平方根会要求 \(\exists y\forall x\),同一个 \(y\) 的平方不可能同时等于 \(1\)\(4\)

回看牵引问题:量词不只是符号装饰。它规定了选择对象的先后顺序,也规定了反例需要怎样出现。

习题与答案

ex-u-01-01-02-01

把“每个整数都有一个相反数”写成带量词的陈述,再写出它的否定,并判断原陈述真伪。

答案

原陈述是

\[ (\forall n\in\mathbb Z)(\exists m\in\mathbb Z)\ n+m=0. \]

其否定是

\[ (\exists n\in\mathbb Z)(\forall m\in\mathbb Z)\ n+m\ne0. \]

原陈述为真:给定 \(n\) 后取 \(m=-n\) 即可。这里 \(m\) 可以依赖于 \(n\)

ex-u-01-01-02-02

否定 \((\exists x\in A)(\forall y\in B)\ P(x,y)\),并写成自然语言。

答案

否定为 \((\forall x\in A)(\exists y\in B)\ \neg P(x,y)\)。自然语言是:对 \(A\) 中每个 \(x\),都能在 \(B\) 中找到一个 \(y\) 使 \(P(x,y)\) 不成立。

ex-u-01-01-02-03

\(A=B=\mathbb R\)\(P(x,y)\) 表示 \(y=x\) 时,证明 \(\forall x\exists y\,P(x,y)\) 为真而 \(\exists y\forall x\,P(x,y)\) 为假,由此说明量词不能交换。

答案

完整解答。 对任意 \(x\in\mathbb R\),取 \(y=x\),便有 \(P(x,y)\),所以 \(\forall x\exists y\,P(x,y)\) 为真。若 \(\exists y\forall x\,P(x,y)\) 为真,则存在固定实数 \(y\),对所有 \(x\) 都有 \(y=x\)。分别取 \(x=0\)\(x=1\),会得到 \(y=0\)\(y=1\),矛盾。因此后一陈述为假。这里的反例说明:前一句允许见到 \(x\) 后再选 \(y\),后一句没有这种自由。

ex-u-01-01-02-04

判断下列陈述是否为真,并说明理由:\((\forall n\in\mathbb Z)(\exists m\in\mathbb Z)\ n+m=0\)

答案

为真。对给定的 \(n\)\(m=-n\) 即可;\(m\) 允许依赖于 \(n\)