计算机中的数学一:如何去证明

计算机领域中的许多问题往往需要用数学模型和方法来解决,而数学的独特的证明方式在其中起着核心的作用。

简单来说,证明是一种建立事实的方法。然而,就像“美丽”这个词一样,“事实”有时候也是因人而异的:在法官眼中,事实得由证据来决定;在商界,事实可能由一个可信赖的人或是组织或仅仅是你的 boss 指定;在物理或是生物领域,事实由实验来确定;在哲学中,事实如“我思故我在”这句名言般缥缈。

当然,数学有它自己对于证明的定义。

数学意义上的证明

数学上证明是从一组基本的公理出发,通过一系列逻辑推理最终得到待证明的命题

这个定义由三个核心组成,分别是命题、逻辑推理和公理。本文先介绍命题。其余两个后续文章会继续介绍。

命题

生活中我们也常常会提到命题这个词,命题实际上就是一个陈述语句,只不过命题这个陈述语句要么是对的,要么是错的。如果一个陈述语句无法判断对错,那么就不是命题。比如,“你喜欢数学吗?”这句话就不是命题。

下面是两个命题:

命题1: 2 + 3 = 5
命题2: 1 + 1 = 3

复合命题

单个命题比较简单,如果把多个命题通过“非”, “与”, “或”, “如果-那么”等词连接起来就成了复合命题。下面的命题就是由三个命题P、Q和R组合而成的:

如果 P 与 Q, 那么 R

如果已知单个命题的真假、根据不同的连接词就可以得出复合命题的真假。下面用真值表来表达。

“非”, “与”, 和“或”

P 非 P
T F
F T
P Q P 与 Q
T T T
T F F
F T F
F F F

从上表可以看出,命题 “P 与 Q” 仅当 P 和 Q 都是真时才为真。

P Q P 或 Q
T T T
T F T
F T T
F F F

命题 “P 或 Q” 只要 P 和 Q 有一个为真就为真。而如果想排除掉 P 和 Q 共同为真的情况,可以使用 异或 连接词:

P Q P 异或 Q
T T T
T F T
F T T
F F F

“如果-那么”

前面三个连接词比较容易理解,而“如果-那么”则不太容易理解。先看真值表

P Q 如果 P 那么 Q
T T T
T F F
F T T
F F T

我们用一个具体点的命题来验证上面的结论:

如果黎曼猜想是对的,那么对于每个实数 $x$,都有 $x^2 \geq 0$

黎曼猜想是一个著名的未解问题,因此命题 P 的真假未知,但是这并不妨碍我们判定上面这个命题是真的。也就是说,无论 P 是真的还是假的,上述命题都是真的。

有点不可思议?那我们再来看一个更极端的例子:

如果猪可以飞,那么你可以理解切比雪夫不等式

实际上,你可不可以理解切比雪夫不等式和猪可不可以飞没有半毛钱关系!不管猪可不可以飞,这个命题都是真的。

总之,命题“如果 P 那么 Q”是真的情况有两种,要么Q是真的,要么P是假的。

当且仅当

这个比较容易理解,“P 当且仅当 Q” 即意味着P和Q是等价的。

下面是一个例子:
$$x^2 - 4 \geq 0 \quad 当且仅当\quad |x| \geq 2$$

P Q P 当且仅当 Q
T T T
T F F
F T F
F F T

数学符号

在数学中,往往用符号替换英语,上述的几种连接词可以用下面的符号表示:

英语 符号
非 P $\lnot{P}$
P 与 Q $P\land{Q}$
P 或 Q $P\lor{Q}$
如果 P 那么 Q $P\implies{Q}$
P 当且仅当 Q $P\iff{Q}$

逻辑上相等的命题

实际上,与命题 “如果 P 那么 Q” 相等的命题是“如果非 P 那么非 Q”。这两个命题有着相同的真值表。

注意 “如果 P 那么 Q” 与 “如果 Q 那么 P” 并不相等。只有当 “P 当且仅当 Q” 为真时二者才相等。

计算机程序中的命题逻辑

了解了上述的复合命题的判定方法,很容易知道下面这两行程序表述的命题是相等的,而有时候我们可能会写成第一行的样子,导致程序运行时间和程序代码变长。

if (x > 0 || (x <= 0 && y > 100))
if (x > 0 || y > 100)

断言和量词

之前我们谈到的命题都是直观上很容易判断真假的命题,然而,有些命题可能会涉及无穷的数导致要判断真假得检查无穷的情况。比如下面这个命题:

对于每个非负整数 n,$n^2 + n + 41$是质数

实际上,上述的涉及无穷的数的命题在数学上十分常见,以至于有特定的符号来描述,上面的命题也可以写成下面的形式:

$$\forall n \in N. n^2 + n + 41 是质数$$

下面是另一个例子:

$$\forall a,b,c,d \in Z^+. a^4 + b^ 4 + c^4 \neq d^4.$$

这种真假依赖于检查多个变量的命题称为断言。断言常常和一些量词一起出现,比如描述这个断言是针所有情况都为真还是针对某些情况为真。比如,下面这个断言:

$$x^2 \geq 0$$

对任何实数x都为真。而下面这个断言:
$$5x^2 - 7 = 0$$
则仅当$x = \pm\sqrt{7/5}$才成立

用数学符号来描述某些情况成立的例子如下:

$$\exists x \in D \quad P(x)$$

表示在集合 D 中存在 x,满足 P(x)

证明的模式

证明的方法包括:

  • 公理法
  • 穷举法
  • 反证法
  • 数学归纳法