命题逻辑的归结

将逻辑公式转换成合取范式(CNF)的方法:

1.消去{¬,,}以外的逻辑联结词。

常见联结词的转换方法:

AB¬AB AB¬(AB) AB¬(AB) ABA¬B AB(AB)(BA) AB¬(AB)¬(BA)

2.利用德摩根律将否定联结词¬内移到命题变量之前,消去双重否定。

3.利用分配律化成合取范式。

例: 求(¬p¬q)(pq)的合取范式。

¬p¬q)(pq) ¬(¬¬p¬q)(¬pq) (¬¬¬p¬¬q)(¬pq) (¬pq)(¬pq) (¬p¬pq)(q¬pq)

例: 求((pq)r)p的合取范式。

((pq)r)p (¬(pq)r)p ¬(¬(pq)r)p ((pq)¬r)p (pqp)(¬rp) (pq)(¬rp)

一个合取范式是永真式,当且仅当它的每个基本和都是永真式。 一个基本和是永真式,当且仅当至少含有一个命题变量及其否定。 一个子句(Clause)是一个文字集合中所有元素的析取。 一个单位子句(Unit Clause)的文字集合仅含一个文字。 一个空子句(Empty Clause )的文字集合是空集。空子句记为. 一个公式可以表示成含有若干个子句的集合的形式, 称为子句标准形(Clause Form)。该公式的真值是子句标准形中所有子句的合取。 子句标准形可以是空集,记为ϕ​​. 每个公式都可以转换成子句标准形, 因为子句标准形与合取范式是对应的。

例: (pr)(¬q¬pq)(p¬pqp¬p)(rp) 合并子句中的相同元素,可化简为: (pr)(¬q¬pq)(p¬pq)(rp)

合并相同的子句,可化简为: (pr)(¬q¬pq)(p¬pq)

对应的子句标准形是: {{p,r},{¬q,¬p,q},{p,¬p,q}}.

子句标准形也可以表达成缩写形式: {pr,q¯p¯q,pp¯q}

如果一个子句仅包含一对互补的文字{p,¬p},称该子句是平凡的(Trivial). 平凡子句是永真式, 空子句是永假式。 空子句集ϕ是永真式。

在子句标准形中, 归结(Resolution)是将包含互补文字的两个子句C1 (xC1)和C2 (x¯C2)转化为一个子句的操作。转化后的子句是:

Res(C1,C2)=(C1{x})(C2{x¯}).

例: Res(abc¯,bce¯) =((abc¯{c¯})(bce¯{c}) =abe¯.

例: Res({x,y}C1,{x¯,y¯}C2) ={y,y¯}C1C2 =true.

定理: Res(C1,C2)是可满足的,当且仅当子句C1C2都是可满足的。 Res(C1,C2)C1C2等可满足性的(Equisatisfiable), 用≈表示。

(1)pqr(pq)(¬qr)pr0000000101010000111110011101111100111111

{p,r}={F,F}时都为假; {p,r}={T,T}都为真; {p,r}={F,T}都可满足; {p,r}={T,F}都可满足。

归结过程不唯一

{(1)p,(2)p¯q,(3)r¯,(4)p¯q¯r}

(2)(5)p¯q¯(3,4)(6)p¯(5,2)(7)(6,1)
(3){(1)p,(2)p¯q,(3)r¯,(4)p¯q¯r}
(4)(5)p¯r(2,4)(6)r(5,1)(7)(6,3)