 |
例: |
|
证明 ( x)( y)(P(x)←→P(y))→(( x)P(x)←→( y)P(y))
证明步骤:
(1) 将要证的定理取否定,消去→、←→(这同归归结法)。
( x)( y)[(~P(x)
∨ P(y)) ∧(~P(y) ∨P(x))]
∧ [( x)P(x)
∧( y)~P(y)]
∨[( y)P(y)
∧ ( x)~P(x)]
(2) SKOLEM 化消去存在量词
( y)[(~P(c)
∨ P(y)) ∧(~P(y) ∨P(c))]
∧ [P(d)∧~P(e)] ∨[( z)P(z)
∧( x)~P(x)
]
(不同于归结法的是没有前束化和再作合取范式而得子句形)。
(3) 列写二维表

表中水平方向公式间是析取关系,垂直方向公式间是合取关系。这种表给出了公式的总体结构,观察起来也是方便的。
(4) 变量二倍化例化

这一步包括二倍化(按需要可进行多次)
( y)((~P(c)
∨P(y)) ∧(~P(y) ∨P(c)))
=( y)((~P(c)
∨ P(y)) ∧(~P(y) ∨ P(c)))
∧( y)((~P(c)
∨P(y)) ∧(~P(y) ∨P(c)))
变量易名使无共同变量
( y)((~P(c)
∨P(y)) ∧(~P(y) ∨P(c)))
∧( w)((~P(c)
∨ P(w)) ∧(~P(w) ∨ P(c)))
∧(P(d)∧~P(e))∨(( z)P(z)∧( x)~P(x))
再消去全称量词,在置换θ={d/x,d/y,c/z,e/w}下便得上面的例化后的二维表。
(5) 判断例化后二维表的矛盾。
可以一个更简单的例子来说明,二维表

相当于公式

要说明这公式为假,必须所有的合取项均为假,也即每个(・∧・∧・)项中都含有互补对。这直接由二维表观察过P1的四条路径,P1,Q1,R1
;P1,Q1,R2;P1,Q2,R1;P1,Q2,R2;来检验是否有互补对,对过P2的四条路径也同样要求。这样寻求矛盾的方法就避免了化成子句所带来的不方便。如果二倍化例化尚找不到矛盾,需做新的多倍化例化。只要定理成立总能用这种方法找出矛盾的。 |