我们再看一些好用的规则,省去许多证明的麻烦。
命题2.26:如果C是好式子B的一个子wf,B′是用好式子D替换C(≥0次)而产生,并且C或者D中的所有自由变量,同时又是B的受限变量的,都在以下列表y1,y2,...,yk中,那么
(a) ⊢[(∀y1)...(∀yk)(C⇔D)]⇒(B⇔B′)(等价定理)
(b) 若⊢C⇔D,则⊢B⇔B′(替换定理)
(c) 若⊢C⇔D,并且⊢B,则⊢B′。
证明:(b)和(c)可直接由(a)导出,所以(b)(c)的证明过程就不写了。
(a)的证明采用基于B的连接符和量词个数的归纳法。先考虑两种特殊情况,第一,D对C的替换次数为0,这时B′还是B,由于B⇔B是永真式,所以不难得出性质成立。第二,如果C就是B,那么B′就成了D,那么就成了要证明[(∀y1)...(∀yk)(B⇔D)]⇒(B⇔D),这由前面的定理2.25d部分得证。因此,如果不是上述两种替换方式,我们称之为“合适替换”。
若B中包含n个连接符与全称量词,
1. n=1时,B是原子wf,任何替换都不是合适替换,性质成立。
2. n>1时,假设性质对n−1成立,有三种情况:
2.1 B是¬G的形式。根据归纳假设有[(∀y1)...(∀yk)(C⇔D)]⇒(G⇔G′)。然后又因为(C⇒(A⇔B))⇒(C⇒(¬A⇔¬B))是永真式,所以找一个“合适”的该永真式的特例,然后利用MP,就可以得出[(∀y1)...(∀yk)(C⇔D)]⇒(¬G⇔¬G′),所以性质成立。
2.2 B是G⇒H的形式。根据归纳假设有[(∀y1)...(∀yk)(C⇔D)]⇒(G⇔G′)和[(∀y1)...(∀yk)(C⇔D)]⇒(H⇔H′)。同样的,找一个如下永真式的特例即可
(A⇒(B⇔C))∧(A⇒(D⇔E))⇒(A⇒[(B⇒D)⇔(C⇒E)])。
2.3 B是(∀x)G的形式,则B′写作(∀x)G′。这里要用一个引理。
引理2.27:⊢(∀x)(B⇔D)⇒((∀x)B⇔(∀x)D)
证明不难,这里省略。
根据归纳假设有⊢[(∀y1)...(∀yk)](C⇔D)⇒(G⇔G′)。这里关键是命题的条件,也即变量x肯定不是[(∀y1)...(∀yk)](C⇔D)的自由变量,因为是的话,又因为x是B的受限变量,所以根据命题条件,x必定是y1,y2,...,yk中的一个,那这样x又不是[(∀y1)...(∀yk)](C⇔D)的自由变量了。
既然x不是自由变量,就可用(A5):
(∀x)([(∀y1)...(∀yk)](C⇔D)⇒(G⇔G′))⇒([(∀y1)...(∀yk)](C⇔D)⇒(∀x)(G⇔G′))
所以结合归纳假设和MP,可得⊢[(∀y1)...(∀yk)](C⇔D)⇒(∀x)(G⇔G′)。又根据引理2.27和传递规则,就可得到⊢[(∀y1)...(∀yk)](C⇔D)⇒((∀x)G⇔(∀x)G′),即性质成立。
证毕
还有几个好用的规则,其中两个很好证明,最后一个复杂点。
命题2.28(特例规则,Particularization Rule A4):如果t在B(x)中对x自由,那么(∀x)B(x)⊢B(t)。
命题2.29(存在规则,Existential Rule E4):项t在B(x,t)中对x自由,B(t,t)由t取代B(x,t)中所有自由出现的x所产生。那么B(t,t)⊢(∃x)B(x,t)。
在常用的数学证明中,经常会“直觉”地使用这样的规则:如果存在x,使得B(x)成立,那么去一个特殊的常量d,则B(d)也成立。这样的规则一般称为”选择规则”,英文叫Rule of Choice。选择规则翻译成一阶逻辑语言就是:如果证明过程中出现了(∃x)B(x),那么下一步就可得到B(d),其中d是某个常量,接着B(d)也作为一个wf,继续出现在后续的证明中。
有了选择规则后,很多证明就可以简化,我们只需证明选择规则的可行性即可。
*定义2.30(选择规则,Rule of Choice):我们说Γ⊢CB,当且仅当,证明序列D1,D2,...,Dn满足以下四个条件:
1. 对于i<n, Di要么是公理,要么属于Γ,要么由MP和Gen导出,要么之前的wf中存在(∃x)D(x)使得Di是D(d),其中d是一个新的常量。
2. 所有涉及到步骤1中新引入的常量的wf,都可继续用在后续的逻辑公理中。
3. 用Gen时的变量不能是诸如(∃x)D(x)里的自由变量,其中(∃x)D(x)是用选择规则时依赖的某个wf。
4. B不能包含选择规则时引入的常量。
上述定义最关键是第3点,即后续证明过程中使用D(d)时,如有Gen规则,千万不要使用D(d)中的自由变量,也即(∃x)D(x)中的自由变量。
接下来就是证明选择规则的可行性了。
命题2.31:如果Γ⊢CB,那么Γ⊢B。
证明:要先证一个引理,它在原书中是道习题。
引理2.32:如果x在B中没有自由出现,那么⊢((∃x)D⇒B)⇔(∀x)(D⇒B)
引理2.32证明:
(a) 先证⊢((∃x)D⇒B)⇒(∀x)(D⇒B)
1. (∃x)D⇒B,假设
2. ¬B,假设
3. ¬B⇒(∀x)¬D,由1和条件逆否规则
4. (∀x)¬D,由2、3和MP
5. ¬D,由4、公理A4和MP
6. (∃x)D⇒B,¬B⊢¬D,由1-5
7. (∃x)D⇒B⊢(¬B⇒¬D),由6和演绎定理
8. (∃x)D⇒B⊢(D⇒B),由7和条件逆否规则
9. (∃x)D⇒B⊢(∀x)(D⇒B),由8和Gen
10. ⊢((∃x)D⇒B)⇒(∀x)(D⇒B),由9和演绎定理
(b)再证(∀x)(D⇒B)⇒((∃x)D⇒B)
1. (∀x)(D⇒B),假设
2. ¬B,假设
3. D⇒B,由1、A4和MP
4. ¬B⇒¬D,由3和条件逆否规则
5. ¬D,由2、4和MP
6. (∀x)¬D,由5和Gen,
7. (∀x)(D⇒B)⊢(¬B⇒(∀x)¬D),由6和演绎定理,x不是B的自由变量
8. (∀x)(D⇒B)⊢((∃x)D⇒B),由7和条件逆否规则
引理2.32证毕
继续命题2.31的证明。因为ΓC⊢B,所以根据定义2.30,证明序列中用到了选择规则,记依赖选择规则的wf按先后顺序为(∀y1)D1(y1),(∀y2)D2(y2),...,(∀yk)Dk(yk),记对应用到的新常量为d1,d2,...,dk。不难得出,Γ,D1(d1),...,Dk(dk)⊢B。
定义2.30中的第3点保证了在过程中使用Gen时,不会用到D1(d1),...,Dk(dk)中的自由变量,所以演绎定理在此适用,得出Γ,D1(d1),...,Dk−1(dk−1)⊢Dk(dk)⇒B。
接着,我们用一个在Γ,D1(d1),...,Dk−1(dk−1)⊢Dk(dk)⇒B证明序列中从未出现的变量z来取代所有出现的dk,得到Γ,D1(d1),...,Dk−1(dk−1)⊢Dk(z)⇒B(这个是成立的,不难证明)。然后用Gen,得到Γ,D1(d1),...,Dk−1(dk−1)⊢(∀z)(Dk(z)⇒B)。
因为z并不是B的自由变量(根据定义2.30的第4点,B中不包含dk,所以也不可能包含z),所以可以应用引理2.32,继续得出Γ,D1(d1),...,Dk−1(dk−1)⊢(∃z)Dk(z)⇒B。由于z在(∃z)Dk(z)中不是自由变量,所以我们可用yk替代,得到Γ,D1(d1),...,Dk−1(dk−1)⊢(∃yk)Dk(yk)⇒B(真要严格证明也不难)。
又因为Γ,D1(d1),...,Dk−1(dk−1)⊢(∃yk)Dk(yk),所以应用MP可得出Γ,D1(d1),...,Dk−1(dk−1)⊢B。接着用同样的方法依次把Dk−1(dk−1),...,D1(d1)消掉,最终得到Γ⊢B。
证毕
这章内容巨长无比,十分难啃。后续还有:
- 完备性定理(哥德尔在1930年首次给出证明,膜拜大神)
- 带等式的一阶逻辑理论
- 新函数符号与常量符号
- 前束范式,Prenex Normal Forms(完全不知道是啥)
- 同构、理论类别
- 泛化一阶理论(符号集不再是与自然数同基的“可数”集,可以是任意集合)
- 初级等价(完全不知道是啥)
- 超能力、非标准分析(要上天)
- 语义树(能看懂名字,可能跟编程语言、自然语言里的东西差不多)