2.4.3 归结推理过程
为证明├A→B,其中A,B是谓词公式。使用反演过程,先建立
G=A∧~B
进而做出相应的子句集S,只需证明S是不可满足的。
归结法是仅有一条推理规则的推理方法。对S中的可归结的子句做归结,求得归结式,并将这归结式(新子句)仍放入S中,反复这个归结过程直至产生空子句□为止。这时S必是不可满足的。从而├A→B得证。
因为□的出现,必是S中或归结式加入S后同时出现子句P与~P所致。由于 ∧ R( , )所以这个矛盾的原因必在S,或说S本身有矛盾,也就是S必是不可满足的。
 |
例1: |
|
证明 ( x)(A(x)→(B(x)∧C(x))∧( x)(A(x)∧D(x))
→( x)(D(x)∧C(x))
使用归结法的证明步骤。
第一步:使用反演法,先写出公式G:
( x)(A(x)→(B(x)∧C(x)))∧( x)(A(x)∧D(x))∧~( x)(D(x)∧C(x)
第二步:将G的各合取项分别化成SKOLEM标准形,得子句集{S1,S2,S~B}。
( x)(A(x)→(B(x)∧C(x)))
=( x)(~A(x)∨(B(x)∧C(x)))
=( x)((~A(x)∨B(x))∧(~A(x)∨C(x)))
S1={~A(x)∨B(x),~A(x)∨C(x)}
对( x)(A(x)
∧ D(x))有
S2={A(a),D(a)}
~( x)(D(x)
∧C(x))
=( x)(~D(x)
∧ C(x))
=( x)(~D(x)
∨ ~C(x))
S~B={~D(x)∨~C(x)}
从而得子句集
S={~A(x)∨B(x),~A(x)∨C(x),A(a),D(a),~D(x)∨~C(x)}
第四步 使用归结规则建立推理过程
(1)~A(x)∨ B(x)
(2)~A(x)∨C(x)
(3)A(a)
(4)D(a)
(5)~D(x)∨~C(x)
(6)C(a) (2)(3)归结
(7)~C(a) (4)(5)归结
(8)□ (6)(7)归结
2.2.5节的例子,已建立了相应的子句集了,可直接使用归结推理规则了。 |
 |
例2: |
|
证明梯形的对角线与上下底构成的内错角相等。
(1)~T (x,y,u,v) ∨P(x,y,u,v)
(2)~P(x,y,u,v) ∨ E(x,y,v,u,v,y)
(3)T(a,b,c,d)
(4)~E(a,b,d,c,d,b)
(5)~P(a,b,c,d) (2)(4)归结
(6)P(a,b,c,d) (1)(3)归结
(7)□ (5)(6)归结 |
 |
例3: |
|
猴子香蕉问题
(1)~P(x,y,z,s) ∨ P(z,y,z,walk(x,z,s))
(2)~P(x,y,x,s) ∨ P(y,y,y,Carry(x,y,s))
(3)~P(b,b,b,s) ∨R(Climb (s))
(4)P(a,b,c,s)
(5)~R(s) ∨ ANS(s)
(6)~P(b,b,b,s) ∨ ANS(Climb(s)) (3)(5)归结
(7)~P(x,b,x,s) ∨ANS(Climb(Carry(x,b,s))) (2)(6)归结
(8)~P(x,b,z,s) ∨ANS(Climb(Carry(z,b,walk(x,z,s)))) (1)(7)归结
(9)□∨ANS(Climb(Carry(c,b,walk(a,c,s)))) (4)(8)归结
于是猴子吃香蕉的问题的答案是
Climb (Carry(c,b,walk(a,c,s))) |
 |
例4: |
|
若A,B为两个集合,试证明
A∩B A
先写出逻辑描述,建子句集,再使用归结推理过程。
A1:( x)( A)( B)(x∈A∧x∈B←→x∈A∩B)
S1:{ x A∨x B∨x∈A∩B,x∈A∨x A∩B,x∈B∨x A∩B}
A2:( A)( B)( x)(x∈A→x∈B)←→A B)
S2:{ x A∨x∈B∨A B,f(A,B)∈A∨A B,f(A,B) B∨A B}
~B:~( A)( B)(A∩B A)
S~B:C∩D C
证明
(1)x A∨x B∨x∈A∩B
(2)x∈A∨x A∩B
(3)x∈B∨x A∩B
(4)x A∨x∈B∨A B
(5)f(A,B)∈A∨A B
(6)f(A,B) B∨A B
(7)C∩D C
(8)f(C∩D,C)∈C∩D (5)(7)归结
(9)f(C∩D,C) C
(6)(7)归结
(10)f (C∩D,C)∈C (2)(8)归结
(11)□ (9)(10)归结 |
|