良序原理:算术基本定理的证明
相关:
*任何非空的非负整数集合都有一个最小的元素。*
首先不要把良序原理(Well-ordering principle)和良序定理(Well-ordering theorem)混淆了。良序原理的关键点在于非空和非负整数——空的集合没有元素; 包含负数或者正有理数的集合也可能没有最小数。虽然看起来很简单,但它是离散数学里最重要的原理之一。
良序原理的使用方法一般都相似。例如,我们要证明对于所有的属于N集合的元素n,P(n)都成立:
- 设存在集合C,C中的元素为P的反面例子,也就是说,C ::= {n belongs to N | NOT(P(n)) is true}。
- 假设C是非空的(反证)。
- 由良序原理,C中会有一个最小的元素n。
- 推出一个矛盾的结果。例如P(n)事实上是正确的,或者C存在一个比n还要小的元素使得P(n)不成立等等。
- 得出结论,C一定是空集,即不存在属于N的元素使得P(n)不成立。
算术基本定理,又称为正整数的唯一分解定理,即:每个大于1的自然数均可写为质数的积,而且这些素因子按大小排列之后,写法仅有一种方式。
下面利用良序定理对其证明。
必然性:
- 设存在集合C,C中的元素为大于1的自然数,且不能写成质数的乘积。
- 假设C是非空的。
- 由良序原理,C中存在一个最小的元素n,n不能写成质数的乘积。
- 由C的性质,n不能是一个质数,因为质数分解因式只能得到本身即质数的乘积,所以n可以写成a * b。由 a > 1, b > 1,所以a < n, b < n,所以a, b不属于集合C(n是最小的元素),即a和b都可以写成质数的乘积。a = p1*p2...*pn, b = q1*q2...*qn, 所以n = p1*p2...*pn*q1*q2...*qn,即n可以写成质数的乘积。矛盾。
- 得出结论,C一定是空集,即大于1的自然数均可写为质数的积。
唯一性:
- 设存在集合C,C中的元素为大于1的自然数,且可以以多于一种的方式写成多个质数的乘积。
- 假设C是非空的。
- 由良序原理,C中存在一个最小的元素n,n可以以多于一种的方式写成多个质数的乘积。
- 同必要性证明,n不可能是一个质数,设n = p1*p2...*pn = q1*q2...*qn,其中p序列和q序列存在不相同的值,则p1整除q序列中的一个元素qk(可以用裴蜀定理证明),由于qk也是质数,所以qk = p1,所以存在一个比n小的元素n',使得n' =p2...*pn = q1* ... *qn(不包含qk),所以n‘也满足C要求的性质。矛盾。
- 结合必然性的证明,得出结论。每个大于1的自然数均可写为质数的积,而且这些素因子按大小排列之后,写法仅有一种方式。
良序集合:如果一个实数集合的每个非空子集都有一个最小的元素,就说该集合是良序的。在计算机领域中,良序的概念经常会用来证明程序是可终止的。通常的方法是证明算法中存在一个每次成功运算后其规模都会变小的值,如果这个值属于一个良序集合,那么这个运算就是可终止的——因为如果不会终止,那么这个值就会导致良序集合存在一个没有最小值的非空子集。我后面在复习状态机的时候会把更具体的操作写上来的。
下面还有几个良序原理的一般化和推广,就不一一证明了:
- 任何一个有下界的整数集合都是良序的,其中的下界是指对于一个实数集合S,存在下界b使得S的任何元素都大于等于b。
- 任何一个有上界的整数集合都有最大值,其中的上界是指对于一个实数集合S,存在上界b使得S的任何元素都小于等于b。
- 任何非空有限实数集合都是良序的。
参考: