主析取范式与主合取范式
主析取范式与主合取范式
定义 设A为恰含命题变元p1,…,pn的公式。公式A'称为A的主析(合)取范式(majordisjunctive(conjunctive)normal form),如果A'是A的析(合)取范式,并且其每个合(析)取子句中p1,…,pn均恰出现一次。
据定义,例1.21中公式┐p→┐(p→q)的主析取范式是(p∧q)∨(p∧┐q),而其主合取范式则应是(p∨q)∧(p∨┐q)。
例1 求公式(p∧q)∨r的主析取范式及主合取范式。
(p∧q)∨r
(p∧q∧(r∨┐r))∨((p∨┐p)∧(q∨┐q)∧r)
(p∧q∧r)∨(p∧q∧┐r)∨(p∧q∧r)∨(p∧┐q∧r)∨(┐p∧q∧r)∨(┐p∧┐q∧r)
(p∧q∧r)∨(p∧q∧┐r)∨(p∧┐q∧r)∨(┐p∧q∧r)∨(┐p∧┐q∧r)
此即所求的主析取范式。另外
(p∧q)∨r
(p∨r)∧(q∨r)
(p∨(q∧┐q)∨r)∧((p∧┐p)∨q∨r)
(p∨q∨r)∧(p∨┐q∨r)∧(p∨q∨r)∧(┐p∨q∨r)
(p∨q∨r)∧(p∨┐q∨r)∧(┐p∨q∨r)
最后一式即为所求的主合取范式。
**** 我们总结一下利用等价推演求公式的主析(合)取范式的方法步骤:
第一步:求出该公式的析(合)取范式;
第二步:简化各子句.除去范式中所有恒假(真)的合(析)取子句,即化掉含有互补文字对的合(析)取子句;将合(析)取子句中同一命题变元的多个出现合并为一个;
第三步:对析(合)取范式中合(析)取子句不是每一变元都出现的,利用pp∧tp∧(q∨┐q)或pp∨fp∨ (q∧┐q)把未出现的变元补进来,并用分配律将其展开,最后得到给定公式的主析(合)取范式。
现在我们要讨论指派与两种范式之间的联系。
很明白,要使主析取范式取值1,只要使其一个合取子句取值1,从而须使这一子句中的每个文字都取值1,即令正文字中命题变元取值1,而令负文字中命题变元取值0。换言之,由主析取范式的一个合取子句可确定一个弄真原公式的指派;反之,亦可由弄真原公式的一个指派确定其主析取范式中的一个合取子句。弄真公式的指派与主析取范式的合取子句是一一对应的。例如,例1.23中公式的主析取范式有五个合取子句,它们分别对应于5个弄真公式的指派:
p∧q∧r 1,1,1
p∧q∧┐r 1,1,0
p∧┐q∧r 1,0,1
┐p∧q∧r 0,1,1
┐p∧┐q∧r 0,0,1
类似地,要使主合取范式取值0,只要使其一个析取子句取值0,从而须使析取子句中的每一文字取值0,即令正文字中命题变元取值0,而令负文字中命题变元取值1。换言之,由主合取范式的一个析取子句可确定一个弄假原公式的指派;反之,亦可由弄假原公式的一个指派确定其主合取范式中的一个析取子句。弄假公式的指派与主合取范式的析取子句是一一对应的,只是对应方式刚好相反,正文字对应0,负文字都对应1。例如,例1.23中公式的三个析取子句,如下对应于三个弄假指派:
p∨q∨r 0,0,0
p∨┐q∨r 0,1,0
┐p∨q∨r 1,0,0
由以上分析,我们可以进一步得到下述结论:
(1)每公式的主析取范式和主合取范式都是唯一确定的,因为任一公式的弄真指派及弄假指派是完全确定的。
(2)永真式,例如p∨┐p,没有主合取范式,因为它没有弄假指派。永真式只有主析取范式,它包含所有可能的合取子句(p∨┐p的主析取范式为其自身),因为一切指派均弄真它。为讨论方便,约定永真式的主合取范式为t。
(3)永假式,例如p∧┐p,没有主析取范式,因为它没有弄真指派。永假式只有主合取范式,它包含所有可能的析取子句(p∧┐p的主合取范式为自身),因为一切指派均弄假它。为讨论方便,约定永假式的主析取范式为f。
(4)n个命题变元的主析取范式及主合取范式都有 个,因为不同的合取子句及析取子句都是 个,而两种主范式都是从 个子句中取若干个(0,1,…, 个)子句组成的(取0个子句组成t或f)。我们知道 + + … + = 。从真值表的角度看也是如此。一张真值表(确定了弄真指派和弄假指派)恰对应一个主析(合)取范式。因此,n个变元的真值表有多少种,便相应地有多少n个变元的主析(合)取范式。事实上,n个变元的真值表必有 行,对应于 个可能的指派,而最后一列的每一行有0,1两个可能的值,因而这一列可能的取值状况有 种,从而生成 张不同的真值表。
(5)由于每一公式均有主析(合)取范式,因此,无限多的含n个变元的公式可以分作 (有限)个类,这一类公式都逻辑等价于它们共同的主析(合)取范式。