给定一集合 S,以及定义在集合S上的二元关系(Binary Relation)< ⊂ S × S,记 (S, <)。有
(S, <) 具备 偏序(Partial Order)条件为
1. 非自反性(non-reflexivity):∀s∈S.( s !< s )
2. 传递性(transitivity):∀p,q,r∈S.(p<q ∧ q < r → p < r)
(S, <) 具备 线序(Linear Order)条件为
1. 具备 偏序(Partial Order)条件。
2. 可比性(Comparability):∀p,q∈S.(p < q ∨ p = q ∨ q < p)
(S, <) 中的最小元素 为
∃a∈S.∀s∈S.(a ≤ s)
(S, <) 具备 良序(Well Order)条件为
1. 具备 线序(Linear Order)条件。
2. 任意子集都具备最小元素:∀s∈P(S).∃a∈s.∀x∈s.(a ≤ x)
上述的,偏序(Partial Order),线序(Linear Order),良序(Well Order),还有全序(Total Order)等,可以看作某一集合具备的属性(Properties),也可以看作是其外部行为(External Properties)。
例如,(S, <),表示给定一个集合S,以及定义在该集合S的关系 <。当(S,<)满足偏序(Partial Order)的要求时,称(S,<)具备偏序的属性。反过来说,当(S,<)具备偏序的属性时,其满足偏序的要求。也就是,给定(S,<)具备偏序,那么集合S的元素符合偏序的要求。
就相当于偏序是一个协议(Protocol),当满足该协议要求的对象,具备该协议的属性或行为。在数理研究中,这种做法很普遍,就像是C++里的抽象类(Abstract class),JAVA的接口(Interface),Haskell的 type class等。
然后,后续的论证过程,就直接使用这些抽象概念,以简化论证的复杂性,即使用统一的抽象概念去掩盖不必要的细节。这就跟编程(Programming)很像,实质是一样的。在注解完集合论(ZFC)后,会注解如何在LEAN中,实现(Modeling)ZFC。那时候,就会发现,在整个思考推理的过程,通过形式化(Formalization),可将整过程具象化成程序(Program),这也就是 Curry-Howard Isomorphism的内涵。
良序(Well Order)具备的属性
即:
isWellOrder( (S, <) ) ∧ isIncreasing(f: S S → S) → ∀x∈S.( x ≤ f(x) )
证: 通过反证法,假设其结果是错的。
反证法之所以成立的原因在于,要证明命题 A→B 是对的(True),直接证明的方式是,1. 给定A是对的(True),然后推导出B是对的(True);2. 证明A是不可能是对的,即A是错的(False)。另一个是反证法,原因在于,如果 ¬(A→B),是错的(False),那么 A→B 就是对的(True)。
这里隐含一个关键前提, A ∨ ¬A 恒等于 真(True),这也就是经典逻辑论(Classical Logic)里面,对命题的定义,即,命题必须是能被判断为真或假的句子。
那么如何证明 ¬(A→B) = False 呢?首先,根据真值表证明 A → B = ¬A ∨ B,那么
¬(A→B) = ¬(¬A ∨ B) = A ∧ ¬B
即,需要证明 A ∧ ¬B = False,即给定 A 与 ¬B,最后得出了矛盾。同时因为 在 A→B 中,A 是给定的,因此,需要假设 ¬B,由此来得到矛盾。此为反证法之要义。
回到本属性的证明,假设 ¬(∀x∈S.( x ≤ f(x) )),即 ∃x∈S.( f(x) < x ) ,也就是
假设:集合X = {x∈S.( f(x) < x )} ≠ ∅
那么,根据 isWellOrder( (S, <) ) ,有 ∀s∈P(S).∃a∈s.∀x∈s.(a ≤ x),即 集合 X 中存在最小元素 z,且 f(z) < z。
令,w = f(z)
根据,isIncreasing(f: S → S),函数 f 同时作用不等式 f(z) < z的两边,有,f( f(z) ) < f(z),
(注: increasing 函数 指 保持大小关系(Order Preserving)的函数作用在线序集合(Linear Ordered Set)中, 即 a < b → f(a) < f(b) )
即,f(w) < w , 由此,w 满足集合X的要求,有,w ∈ X 。
又因,z 是集合X的最小元素,因此有,z ≤ w ,即 z ≤ f(z) 。
此时, z ≤ f(z),与集合X中要求,f(z) < z,相矛盾。
根据,反证法, isWellOrder( (S, <) ) ∧ isIncreasing(f: S S → S) → ∀x∈S.( x ≤ f(x) ) 得证。
良序集(Well-ordered Set, (S, <) )的 n 首段(Initial Segment given by n ∈S)
定义为
isWellOrder( (S, <) ) → {x∈S: x < n}
那么,没有良序集与其首段同构(Isomorphic)。
证:两集合P、Q同构,意味着,存在一一对应函数(one on one function)f: P → Q,及其反函数 f⁻¹: Q → P,都保持元素间的关系,即 a < b → f(a) < f(b),a < b → f⁻¹(a) < f⁻¹(b) 。
那么,记 良序集 为 W,其 n ∈ W 的 首段集为 IS = { x∈W: x < n }。
通过反证法,假设存在同构函数(Isomorphism) f: W → IS,那么,Ran(f) = { x: x < n },因此,根据首段集的条件,有 f(n) < n,与 良序(Well Order)具备的属性 不符,即∀x∈W.( x ≤ f(x) )。
因此,没有良序集与其首段同构(Isomorphic)。
良序集定理
即,
如果 W₁ 和 W₂ 都是良序集(Well-Ordered Sets),那么,有
1. W₁ 和 W₂ 同构(Isomorphic)。
2. W₁ 与 W₂ 的首段集(Initial Segment)同构(Isomorphic)。
3. W₁ 的首段集(Initial Segment)和 W₂ 同构(Isomorphic)。
证:
给定,Wᵢ(n) 为 W₁ 与 W₂ 的 n 首段集,定义函数 f
f = { (x, y) ∈ W₁ × W₂: (W₁(x) ≅ W₂(y)) }
注意,Dom(f) ⊂ W₁,Ran(f) ⊂ W₂,
那么,有
1. 函数f 是一一对应函数,即 a ≠ b → f(a) ≠ f(b)。
通过,反证法,假设 f(a) = f(b),有,
W₁(a) ≅ W₂(f(a)),W₁(b) ≅ W₂(f(b)),W₂(f(a)) ≅ W₂(f(b))
⇒ W₁(a) ≅ W₁(b)
又因,a ≠ b 有 a < b 或 b < a,因此,W₁(a) 是 W₁(b) 的首段,或 W₁(b) 是 W₁(a) 的首段。
又因,良集的首段属性,即没有良序集与其首段同构(Isomorphic),因此,W₁(a) !≅ W₁(b),与前面的 W₁(a) ≅ W₁(b) 矛盾。
所以,a ≠ b → f(a) ≠ f(b)。
2. 函数 f 会保持元素间的关系(Order Preserving),即 a < b → f(a) < f(b) 。
给定 (a, f(a) ) ∈ f,即 W₁(a) ≅ W₂(f(a)) ,有 同构函数 h: W₁(a) → W₂(f(a)) ,
对于任意的 a' ∈ W₁(a),且 a' < a,有 W₁(a') ≅ W₂(h(a')) ,
另,对于 a',有 W₁(a') ≅ W₂(f(a')),那么,W₂(h(a')) ≅ W₂(f(a')),
有,h(a') = f(a'),因此,在 a' < a 时,h = f 。
因 h 为同构函数(isomorphism),具备关系保持属性,即 a' < a → h(a') < h(a) ,
那么 a' < a → f(a') < f(a) 。
由于 a ∈ W₁是任意的,因此,对于所有的 a ∈ W₁ ,都有 a' < a → f(a') < f(a),因此,函数 f 会保持元素间的关系(Order Preserving)。
回到良序集定理的证明,根据函数的定义,有 Dom(f) ⊂ W₁,Ran(f) ⊂ W₂,那么,
当 Dom(f) = W₁,Ran(f) = W₂ 时,W₁≅ W₂;
当 Dom(f) = W₁,Ran(f) ≠ W₂,且 Ran(f) ⊂ W₂ 时,有 W₁ 与 W₂ 的首段集(Initial Segment)同构(Isomorphic)。
当 Dom(f) ≠ W₁,且Dom(f) ⊂ W₁,Ran(f) = W₂ 时,有 W₂ 与 W₁ 的首段集(Initial Segment)同构(Isomorphic)。
口