命题公式

Download Report

Transcript 命题公式

第3章 命题与谓词逻辑基础
本章主要内容:
•命题逻辑
•谓词与量词
•谓词公式及其解释
•谓词公式的等价与蕴涵
•谓词公式的标准形式
3.1 命题逻辑
一个命题是一个或真或假不能两者都是的断言。
断言是指一陈述语句。
简单地说,命题是指一句有真假意义的陈述句。
命题为真,记为 T
命题为假,记为 F
一个命题P如果是真值未指定任意命题,称P为命题变元。
命题变元用 P, Q, R…表示;
如果P是一个真值已经指定的命题,称为命题常元。
命题常元只有 T 和 F。
3.1.l 命题联结词(逻辑联结词、逻辑运算符)
复合命题:单个命题通过联结词联结构成的新命题。
常用的5种联结词:
¬




否定 合取 析取 蕴涵
等值
复合命题与原命题的真值关系
P
Q
¬P
PQ
PQ
PQ
PQ
F
F
T
T
F
T
F
T
T
T
F
F
F
T
T
T
F
F
F
T
T
T
F
T
T
F
F
T
3.1.2 命题公式及其解释
原子公式:单个命题变元、单个命题常元称为原子公式。
命题公式:由如下规则生成的公式称为命题公式:
1. 单个原子公式是命题公式。
3. 若A ,B是命题公式,则~A , AB , AB , A B , A  B是公式。
3. 所有命题公式都是有限次应用1、2得到的符号串。
命题公式的解释:给命题公式中的每一个命题变元指定一个真假值,
这一组真假值,就是命题公式的一个解释。用I表示。
例如:公式G= (AB) C 的一个解释是:
I1(G) = A/T, B/F, C/T
在解释I1(G)下G为真。
永真公式与永假公式:如果公式在它所有的解释I下,其值都为T,则称
公式G为恒真的;如果其值都为F,则称公式G为恒假的(不可满足的)。
注意:关于五个联结词的约定:
* 结合力的强弱顺序: ¬, , , , 
* 联结词相同时,从左至右运算。
解释的个数:
如果一个公式G中有n个不同的原子公式(或简称原子),则
G有2n个不同的解释,于是G在2n个解释下有2n个真值。如果将这些真
值和它们的解释列成表,就是G的真值表。
3.1.3 等价命题公式
如果两个命题公式所含原子公式相同,且在任一解释下,两个命题公
式的值相同,则称这两个命题公式为等价命题公式或等价公式。
常用的等价公式有:
1. (P  Q)= (P  Q)  (Q  P)
P Q
PQ
QP
(P  Q)  (Q  P)
PQ
T T
T
T
T
T
T F
F
T
F
F
F T
T
F
F
F
F F
T
T
T
T
3.(P  Q)=(¬P  Q)
3. ¬(¬P)= P
4.交换律:P  Q=Q  P
P  Q=Q  P
5.结合律:P (Q  R)=(P  Q)  R
P  (Q  R)=(P  Q) R
6.分配律:P (Q R)=(P  Q)  (P  R)
P  (Q  R)=(P Q)  (P R)
7.泛界律:P  F=P ,
P  T=P
P  F=F ,
P  T=T
8.互余律:P  ~P=T,
P  ~P=F
9.德 • 摩根定律:~(P  Q)=~P  ~Q
~(P  Q)=~P  ~Q
证明两个公式等价,可用真值表,也可用基本公式。
P  Q=~Q  ~P
例如 要证明公式
[证]
P  Q =~ P  Q
=~ P ~ (~ Q )
=~(~Q) ~P
=~Q ~P
若要证明公式
[证]
P  P  Q=P
P  P  Q = P ( P  Q)
= P  (Q  ~Q) ( P Q)
= (P  Q)  (P~ Q) ( P  Q)
=( P  Q) ( P  ~Q)
= P (Q ~ Q)
=P
3.1.4 永真蕴涵式
若命题公式G  H是恒真的,称其为永真蕴涵式。记为GH,
读做“G蕴涵H”,也称“G是H的逻辑结果”。
常用的永真蕴涵式:
1. P  P  Q
[证]
P  P  Q = ~P  (P Q)
= ~P  P Q
=TQ=T
3. P  Q  P
[证]
P  Q  P =~(P  Q)  P
= ~P  ~Q P
=T ~Q= T
3. P  (P  Q)  Q
4.( P  Q)  ~Q  ~P
5. ~P (P  Q)  Q
6.(P  Q) (Q  R)  (P  R)
7.( P  Q) ( (Q  R) ( P  R))
8.((P  Q) ( R  S))  (P  R  Q  S)
9.(( P  Q) ( Q  R)) ( P  R)
公式的标准形式:范式
析取范式 (disjunctive normal form,DNF) :一个由原子和原
子的非组成的析取式,如果与给定的命题公式A等价,则称它
是A的析取范式。记作:
A=A1  A2 ...  An
n1
其中, A1 ,A2, ... An 是原子或是原子非的合取式。
合取范式 (conjunctive normal form,CNF) :一个由原子和原
子的非组成的合取式,如果与给定的命题公式A等价,则称它
是A的合取范式。记作:
A=A1  A2 ...  An
n1
其中, A1 ,A2, ... An 是原子或是原子非的析取式。
注意:1. 任何一个命题公式豆科仪转化成它的析取范式或合取范式;
2. 一个公式的析取范式和合取范式都不是唯一的;
3. 运算符最少的范式称为最简范式。
3.2 谓词与量词
在命题演算中,基本元素是原子命题,而不考虑命题的内部结构和成分。
在形式逻辑中有一个三段论法:
P:“所有的人都会犯错误”
Q:“张三是人”
R:“张三会犯错误”
R应该是P和Q的逻辑结论。但在命题逻辑中无法准确表达这三个
命题的逻辑关系。
因为
( P  Q )  R 不是恒真的。如:取解释:I=P/T,Q/T,R/F
则公式为假值F. 就是说解释I 弄假了此公式。
为准确表达此类公式,必须引进谓词和量词的概念。
3.2.1
谓词
先看几个命题:
1.
3是质数
x是质数
F(x)
2.
王二生于武汉市
x生于武汉市
G(x,y)
3.
7=23
x=y  z
H(x,y,z)
称“3”、“王二”、“武汉市”、“7”、“2”、“3”为个体;
代表个体的变元称为个体变元;
刻画个体性质或个体之间关系的词叫谓词。
“是质数”、“生于”、“…=... ...”都是谓词。
3.2.2 量词
量词分为全称量词和存在量词。
符号“”表示全称量词。符号“”表示存在量词。
x读作“对一切x”,或“对每一x”,或“对任一x”。x是所作
用的个体变元。
 x读作“存在一个x”,或“对某些x”,或“至少有一x”。x是
所作用的个体变元。
再看前面的三段论法:
P:“所有的人都会犯错误”
x(M(x) R(x))
Q:“张三是人”
R:“张三会犯错误”
M(“张三”)
R(“张三”)
在谓词前加上x,叫做变元被全称量化;
在谓词前加上 x,叫做变元被存在量化。
量化的目的是约束变元。
3.2.3 约束变元、自由变元、改名规则
量词的辖域
约束出现
自由出现
改名规则:在同一公式中,一个变元既以约束出现,有以自由出
现。就需要对变元改名。改名规则是:
1. 变元若要改名,则该变元在量词及其辖域中的所有出现均须一起
更改,其余部分不变;
2. 变元改名时所选用的符号,必须是量词辖域内未出现的符号。一
般还应是公式中未出现的符号。
3.3 谓词公式及其解释
在定义谓词公式前,先介绍“符号”的概念: “项”的定义;原子的定义:
符号: 常元符号
变元符号
函数符号
谓词符号
关于项的定义:
1. 常元符号是项;
2. 变元符号是项;
3. 若f是n元函数符号,t1,…, tn 是项, 则f( t1,…, tn )是项;
4. 所有项都是有限次使用1,2,3生成的符号串。
原子的定义:若P(x1,…, xn)是n元谓词符号, t1,…, tn 是项, 则P(t1,…, tn)
谓词公式(公式)的定义:
1. 原子公式是公式;
2. 若H,G是公式,则~H , H  G , H G , H G , H  G是公式;
3. 若G是公式,x是G中的自由变元,则xG  xG是公式;
4. 所有公式都是有限次应用1、2、3得到的符号串。
解释的定义:
公式G的一个解释I,是由非空集D和下列对G中常元符号、函数符号、
谓词符号的一组指定组成:
1.对每个常元符号,指定D中一个元素。
2.对每个n元函数符号,指定一个函数,即指定Dn到D的一个映射。
3.对每个n元谓词符号,指定一个谓词,即指定Dn到{T,F}的一个映射。
[例2.1]给以下公式指定一个解释:
1.  x P(f(x))  Q(x,f(a))
2. x(P(x)  Q(x,a))
可指定如下解释I:
如果存在I使G为T值,则称G
可满足,简称I满足G;若I使G
为F值,称I不满足G,或称I弄
假G。
如果不存在解释I满足公式G,
公式G成为不可满足的。如果
公式G的所有解释I都满足G,
公式G称为恒真的。
D={1,2}
a/1
f(1)/2 f(2)/1
P(1)/F
P(2)/T Q(1,1)/T
Q(1,2)/T
Q(2,1)/F
在此解释I下,公式 x P(f(x))  Q(x,f(a))为T值。
而公式x(P(x)  Q(x,a))在此解释下为F值。
Q(2,2)/T
3.4 谓词公式的等价与蕴涵
两个谓词公式等价:
设P与Q是两个谓词公式,D是它们共同的个体域,
若D上的任何一个解释,P与Q都有相同的值,则称公式P
和公式Q在D上是等价的。
谓词公式的蕴涵:
设P与Q是两个谓词公式,如果PQ是恒真的,则称P
蕴涵Q。且称Q为P的逻辑结论,称P为Q的前提,记作
PQ。
显然,若Q是P的逻辑结论,则对P,Q的任意一个解释I,
如果P在I下为真,那么Q在I下也为真。反之亦然。
三段法的证明:
P:“所有的人都会犯错误”
x(M(x) R(x))
Q:“张三是人”
M(“张三”)
R:“张三会犯错误”
R(“张三”)
需要证明R是(P  Q)的逻辑结论。即证明PQ R 为恒真。
证:设I是P,Q,R的一个解释(I指定“张三”为始量),且I满
足(P Q),即I满足x(M(x) R(x))  M(“张三”),所以I满
足R(“张三”)。
否则,R(“张三”)在I下为假,于是(M(“张三”)
R(“张三”))在I下为假,故x(M(x) R(x))在I下为假,
矛盾。所以R(“张三”)在I下为真。
3.5 谓词公式的标准形式
3.5.1 前束范式
一个谓词公式,如果量词非否定地放在全式的开头,而量词的辖域都
延伸到整个谓词公式,则称这样的公式为前束范式。
一般地,谓词逻辑中的公式G如果有如下形状:
Q1x1,…Qn xn M(x1,…,xn)
则称G为前束范式。
其中Qi是xi或xi, i =1,…,n,M(x1,…,xn)是不含量词的公式。
Q1x1,…Qn xn称为首标,M称为母式。如:
xyz(P(x,y ) Q(x,z))
xyzP(x,y,z)
都是前束范式。
利用改名规则、量词否定公式和量词辖域扩张公式等,可把任一谓词
公式化成前束范式。例如:
~x(P(x) xQ(x))
=~x(~P(x)  xQ(x))
=x(P(x)  ~xQ(x))
= x(P(x)  x~Q(x))
= x(P(x)  y~Q(y))
xy(P(x)  ~Q(y))
[例3.2]将公式xy(z (P(x,z)  P(y,z)) uQ(x,y,u))化为前束范式:
解:
xy(z (P(x,z)  P(y,z)) uQ(x,y,u))
= xy(~z (P(x,z)  P(y,z))  uQ(x,y,u))
= xy(z (~P(x,z)  ~P(y,z))  uQ(x,y,u))
=xyzu (~P(x,z)  ~P(y,z))  Q(x,y,u))
将任意谓词公式化为前束范式的四个步骤:
•步骤1:使用以下基本等价公式,将G中的和删去:
F  H=(F  H) (H  F)
F  H=~F  H
•步骤2:使用~(~F)=F,摩根定律及以下等价公式,将谓词公式中的所有
否定号~放在原子之前:
~xG(x)=x~G(x)
~xG(x)=x~G(x)
•步骤3:如果需要,则将约束变量改名。
•步骤4:利用等价公式将所有量词提到公式的最前面。
3.5.2 Skolem范式
Skolem范式是谓词逻辑中公式的又一种标准形式。
设公式G的形式如下:
Q1x1,…Qn xn M(x1,…,xn)
其中Qi是xi或xi, i =1,…,n,M(x1,…,xn)是不含量词的公式。
将上式中的M(x1,…,xn)化为等值的和取范式,然后将所有的存在量词消
去,便可得到公式G的Skolem范式。
消去G中的存在量词的方法如下:
设Qrxr (1 r  n )是第一个出现在Q1x1,…, Qrxr ,…,Qn xn M(x1,…,xn)中的存
在量词,即Q1x1,…, Qr-1xr-1 均为全称量词。
若r=1,即Qrxr 左边没有全称量词,则取异于M(x1,…,xn)中所有常量符号的
常量符号C,并用C代表M(x1,…,xn)中的xr,然后在首标中Qrxr。
若1r  n,即Qrxr左边有全称量词Qs1 xs1 ,…,Qsm xsm
而m1,1  s1s2...s mr,则取异于出现在M中的所有函数符号的m元
函数符号f(xs1,…,xsm),用f(xs1,…,xsm)代表出现在M中的所有xr,然后在首标
中删除存在量词Qrxr。
[例3.3]将公式G=xyz((~P(x,y)Q(x,z)) R(x,y,z))化成Skolem范式。
解:先将M(x,y,z)化成合取范式:
M(x,y,z)= ((~P(x,y)  Q(x,z))  R(x,y,z))
= (~P(x,y)  R(x,y,z)) (Q(x,z)  R(x,y,z))
G= xyz((~P(x,y)  R(x,y,z)) (Q(x,z)  R(x,y,z)))
消去y得到:xz((~P(x,f(x))  R(x,f(x),z)) (Q(x,z)  R(x,f(x),z)))
消去z得到:x ((~P(x,f(x))  R(x,f(x),g(x))) (Q(x,g(x))  R(x,f(x),g(x))))
此式就是公式G的Skolem范式。
[例3.4] 将公式G=xyzuvwP(x,y,z,u,v,w)化成Skolem标准型。
解:消去x,因为其左边没有全称量词,于是引入常量a代替
P(x,y,z,u,v,w) 中的所有x,得: yzuvwP(a,y,z,u,v,w)
消去u,因为其左边有全称量词yz,于是引入一个二元函数f(y,z)代替
P(a,y,z,u,v,w)中的所有u,得: yzvwP(a,y,z,f(y,z),v,w)
消去w ,因为其左边有全称量词 yzv,于是引入一个三元函数g(y,z,v),
代替P(a,y,z,f(y,z),v,w)中的所有w。最后得到的Skolem 标准型为:
yzvP(a,y,z,f(y,z),v,g(y,z,v))
注意:1.公式的Skolem 标准型与原公式并不等值;
2.公式的Skolem 标准型与原公式在不可满足的意
义上相等。
3.5.3 子句与子句集
若干文字的一个析取式成为子句。如:
P(x,y)  ~Q(x,y,z)  R(u)
没有文字的子句成为空子句。只有一个文字的子句成为单元子句。
将公式G化为Skolem 标准型,其母式M已为合取范式,M中的没一个合
取项都是一个子句,M中这些子句的集合用S表示,称为公式G的子句集。
从公式G得到子句集S的方法是:先从公式G得到Skolem 标准型,然后
去掉全称量词,最后用符号“,”代替符号“”。外层括号用{}。
如公式:G=xyz((P(x,y)  R(x,y,z)) (Q(x,z)  R(x,y,z)))
G的Skolem标准型为:x ((P(x,f(x)) R(x,f(x),g(x))) (Q(x,g(x))  R(x,f(x),g(x))))
G的子句集S为: {(P(x,f(x))  R(x,f(x),g(x))),(Q(x,g(x))  R(x,f(x),g(x)))}
子句集中S中的每一个子句中的变量都是由全称量词约束着。
对任一公式G都可以建立其对应的S子句集。这样对公式的讨论就可
以用对集合的讨论来代替。
引进子句集S的目的就是要简化对A1  A2  A3B的证明,而证明A1  A2
 A3B只需证明G= A1  A2  A3  ~B的子句集不可满足即可。
定理
设S是公式G的子句集。于是,G是不可满足的,当且仅当S是不可
满足的。
子句集概念的推广:
设G= G1 ...  Gn ,Si是Gi化为Skolem范式后其木式给出的子句集,
i=1,2,…n。令S=S1...  S n。于是G是不可满足的,当且仅当S是不可满
足的。也称S是个G的子句集。