第三章 谓词逻辑
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第三章谓词逻辑
例3.2.1 在谓词逻辑中将下列命题符号化:
(1)每个人都有心脏。
(2)有的狗会飞。
解:(1)若将个体域取为人的集合,且H(x):x有心脏,
则该命题符号化为:∀x H(x)。如果将个体域取作所有生物的集合,则需要引入表示人的集合的特性谓词P.P(x):x是人。这时,该命题可符号化为:∀x(P(x)→H(x))。
例3.2.2 将命题“并非A中的每个数都小于或等于B中的每个数”按以下要求的形式表达出来:
(1)出现全称量词,但不出现存在量词;
(2)出现存在量词,但不出现全称量词。
解:(1)⌝∀x(x∈A →∀y(y∈B → x≤y)).
(2)∃x(x∈A ∧∃y(y∈B ∧ x>y)).
说明:可以证明二者是等价的:
⌝∀x(x∈A →∀y(y∈B → x≤y))= ∃x⌝(⌝(x∈A)∨∀y(⌝(y∈B)∨ x≤y))
= ∃x(⌝⌝(x∈A)∧⌝∀y(⌝(y∈B)∨ x≤y))= ∃x(x∈A∧∃y(⌝⌝(y∈B)∧⌝( x≤y)) = ∃x(x∈A ∧∃y(y∈B ∧ x>y))
3.2.2 求谓词公式在解释下的真值
设P(x)是一元谓词,D是个体域,由∀x P(x)和∃xP(x)的真值指定知,当D={x0,x1,…}是可数集合时,
∀xP(x)的真值为P(x0)∧P(x1)∧…
∃xP(x)真值为P(x0)∨P(x1)∨…
这时,判断一个谓词公式在某一解释下的真值可通过按上面两个等价式先将该公式中的量词消除,写成与之等价的命题公式,再进行判断。
例3.2.4 设个体域D={1,2,3},P(x) :x>2。试判断下列公式的真值:
(1) ∃xP(x) →P(2);
(2) P(3) →∀xP(x).
解:(1)∃xP(x) →P(2)
等价于(P(1) ∨P(2) ∨P(3)) →P(2)
所以真值为(0∨0∨1) →0=1 →0=0
(2) P(3) →∀xP(x)
等价于1→( P(1) ∧P(2) ∧P(3))
所以真值为1→( 0 ∧0 ∧1)=1 →0=0
例3.2.5 构造解释I(假设个体域D={a,b}),使得I弄假如下公式:
(2)⌝∀xP(x) →∀x⌝P(x);
(2)⌝∀xP(x) →∀x⌝P(x)= ∀xP(x) ∨∀x⌝P(x)= ( P(a) ∧ P(b)) ∨(⌝ P(a) ∧⌝P(b))
(3)= ( P(a) ∨⌝P(b)) ∧( ⌝P(a) ∨P(b))
由此可见,若取
P(a)=1,P(b)=0,
则该解释弄假( P(a) ∨⌝P(b)) ∧( ⌝P(a) ∨P(b)),亦即弄假⌝∀xP(x) →∀x⌝P(x)。
3.2.3 使用量词时的注意事项
1. 注意量词的使用顺序
多个量词连续出现,它们之间无括号分隔时,后面的量词在前面量词的作用域内,且量词
对变元的约束与量词的次序有关,一般不能随意调动,一定要注意其使用顺序。
例3.2.7 给定解释I如下:
D={2,3},
Q(2,2) Q(2,3) Q(3,2) Q(3,3)
1 0 0 1
求下列公式在解释I下的真值。
(1)∀x∃yQ(x,y);
(2)∃y ∀xQ(x,y)
解:(1) T I(∀x∃yQ(x,y))= T I (∃yQ(2,y) ∧∃yQ(3,y))= T I(Q(2,2) ∨Q(2,3)) ∧(Q(3,2) ∨Q(3,3)))= (1 ∨ 0) ∧ (0 ∨ 1)=1
(2) T I(∃y ∀xQ(x,y))= T I(∀xQ(x,2) ∨∀xQ(x,3))= T I( (Q(2,2) ∧ Q(3,2)) ∨ (Q(2,3) ∧ Q(3,3))) = (1 ∧ 0) ∨ (0 ∧ 1)= 0
由例3.2.7可看出∀x∃yQ(x,y)≠∃y ∀xQ(x,y)。
3.2.5 求前束范式、Skolem范式
如何求解某个谓词公式的前束范式可参见教材中的定理3.4.1中的算法。要强调的是,若需要给变量改名则一定要注意:改名必须在量词作用区域内各处以及该量词符号中实行,并且改成的新约束变量要有别于改名区域中的所有其它变量。由于⌝不能放在全式的前面,故经常使用基本等价式⌝(∀xG(x))=∃x(⌝G(x))和⌝(∃xG(x))=∀x(⌝G(x))。
例3.2.10 将公式∀x∀y(A(x) →B(x,y))→(∃yC(y) →∃z(D(z))化为前束范式。
解:(1)消去→联结词。
∀x∀y(A(x) →B(x,y))→(∃yC(y) →∃z(D(z))= ⌝∀x∀y(⌝ A(x) ∨ B(x,y))∨(⌝∃yC(y) ∨∃z(D(z)) (2)将公式中所有否定号⌝放在原子之前。
⌝∀x∀y(⌝ A(x) ∨ B(x,y))∨(⌝∃yC(y) ∨∃z(D(z))= ∃x∃y(A(x) ∧⌝ B(x,y)) ∨(∀y⌝ C(y) ∨∃z(D(z)) (3)将约束变量改名.
∃x∃y(A(x) ∧⌝ B(x,y)) ∨ (∀y⌝ C(y) ∨∃z(D(z))= ∃x∃y(A(x) ∧⌝ B(x,y)) ∨ (∀t⌝ C(t) ∨∃z(D(z)) (4)将量词提到整个公式前。
∃x∃y(A(x) ∧⌝ B(x,y)) ∨ (∀t⌝ C(t) ∨∃z(D(z))= ∃x∃y∀t∃z ((A(x) ∧⌝ B(x,y)) ∨⌝ C(t) ∨D(z))= ∃x∃y∀t∃z((A(x) ∨⌝ C(t) ∨D(z)) ∧(⌝ B(x,y) ∨⌝ C(t) ∨D(z)))
一公式的前束范式与原公式是等价的,但一般情况下一公式的Skolem范式与原公式是不等价的。很多人在写公式的Skolem范式时与原公式间“=”相连,这是不对的。
例3.2.11 将公式∀x∀y(A(x) →B(x,y))→(∃yC(y) →∃z(D(z))化为Skolem范式。
解:例3.2.11已经将该公式化成了前束范式∃x∃y∀t∃z((A(x) ∨⌝ C(t) ∨D(z)) ∧(⌝ B(x,y) ∨⌝ C(t) ∨D(z))),且母式为合取范式。
用a代替x,用b代替y,用f(t)代替z,
得公式的Skolem范式:
∀t((A(a) ∨⌝ C(t) ∨D(f(t))) ∧(⌝ B(a,b) ∨⌝ C(t) ∨D(f(t))))
∀t ((A(a) ∧⌝ B(a,b)) ∨⌝ C(t) ∨D(f(t)))。
§3.3 第三章习题解答
3.3.1 习题3.1解答
1.设下面所有谓词的定义域都是{a,b,c}。试将下面谓词公式中的量词消除,写成与之等价的命题公式。
(1) ∀xR(x)∧∃xS(x)
(2) ∀x(P(x)→Q(x))