下面是一个例子的解释:
假设您有以下要证明的公式:
sum(i | i <- [1, n]) = n * (n + 1) / 2
此公式为1 和n 之间的所有整数之和提供了一个封闭形式。
我们将从证明n = 1 的简单基本情况的公式开始。在这种情况下,公式的两边都减少到1。这反过来意味着该公式适用于n = 1。
接下来,我们将证明如果公式适用于值n,那么它适用于下一个值n(或n + 1)。换句话说,如果以下情况为真:
sum(i | i <- [1, n]) = n * (n + 1) / 2
那么下面的也是正确的:
sum(i | i <- [1, n + 1]) = (n + 1) * (n + 2) / 2
为此,让我们从最后一个公式的第一面开始:
s1 = sum(i | i <- [1, n + 1]) = sum(i | i <- [1, n]) + (n + 1)
即1和n + 1之间的所有整数之和等于1和n之间的整数之和加上最后一项n + 1。
由于我们的证明是基于公式对n 成立的,所以我们可以写成:
s1 = n * (n + 1) / 2 + (n + 1) = (n + 1) * (n + 2) / 2 = s2
如您所见,我们已经到达了我们试图证明的公式的第二面,这意味着该公式确实成立。
这样就完成了归纳证明,但它究竟是什么意思呢?
- 公式对于 n = 0 是正确的。
- 如果公式对于
n 是正确的,那么对于n + 1 也是正确的。
从 1 到 2,我们可以说:如果公式对于 n = 0 是正确的,那么对于 0 + 1 = 1 也是正确的。既然我们证明了n = 0的情况,那么n = 1的情况确实是正确的。
我们可以再次重复上述过程。 n = 1 的大小写是正确的,那么n = 2 的大小写是正确的。这种推理可以无限地进行。该公式对于 n >= 1 的所有整数值都是正确的。