第二章 谓词逻辑
2-1 谓词的概念与表示
我们用大写字母表示谓词 ,用小写字母表示客体名称 ,如
A
(
b
)
A(b)
A ( b ) 、
B
(
a
,
b
)
B(a,b)
B ( a , b ) 、
L
(
a
,
b
,
c
)
L(a,b,c)
L ( a , b , c ) 等,表示客体是否具有谓词所表述的那个性质 。 单独一个谓词不是完整的命题(谓词没有真假值),我们把谓词字母后填以客体所得的式子称为谓词填式 ,如果
A
A
A 为
n
n
n 元谓词,
a
1
,
a
2
,
⋯
,
a
n
a_1,a_2,\cdots,a_n
a 1 , a 2 , ⋯ , a n 是客体的名称,则
A
(
a
1
,
a
2
,
⋯
,
a
n
)
A(a_1,a_2,\cdots,a_n)
A ( a 1 , a 2 , ⋯ , a n ) 就可成为命题 。
Predicate can be viewed as propositional functions. i.e. P(x) is a propositional function of variable x
2-2 命题函数(Propositional Function)与量词(Quantifiers)
引入两种量词(Quantifiers) , 一个用符号
(
∀
x
)
(\forall x)
( ∀ x ) 表示,代表“对所有的
x
x
x ”,称为全称量词(Universal Quantifiers) ; 另一个用符号
(
∃
x
)
(\exist x)
( ∃ x ) 表示,表示“存在一些
x
x
x ”,称为存在量词(Existential Quantifiers) 。全称量词和存在量词通称为量词。
量词的优先级: 量词的优先级最高 。
eg.
∀
x
P
(
x
)
∨
Q
(
x
)
≡
(
∀
x
P
(
x
)
)
∨
Q
(
x
)
\forall x\ P(x)\vee Q(x)\equiv (\forall x\ P(x))\vee Q(x)
∀ x P ( x ) ∨ Q ( x ) ≡ ( ∀ x P ( x ) ) ∨ Q ( x )
2-3 谓词公式与翻译
2-4 变元的约束
给定
α
\alpha
α 为一个谓词公式,其中有一部分公式形式为
(
∀
x
)
P
(
x
)
(\forall x)P(x)
( ∀ x ) P ( x ) 或
(
∃
x
)
P
(
x
)
(\exist x)P(x)
( ∃ x ) P ( x ) 。这里
∀
\forall
∀ 和
∃
\exist
∃ 后面所跟的
x
x
x 叫做量词的指导变元 或作用变元 ,
P
(
x
)
P(x)
P ( x ) 叫做相应量词的作用域 或辖域 。在作用域中
x
x
x 的一切出现,称为
x
x
x 在
α
\alpha
α 中的约束出现 ,
x
x
x 也称为被相应量词中的指导变元所约束 。在
α
\alpha
α 中除去约束变元以外所出现的变元称作自由变元 。自由变元可看作是公式中的参数 。
设
P
(
x
1
,
x
2
,
⋯
,
x
n
)
P(x_1,x_2,\cdots,x_n)
P ( x 1 , x 2 , ⋯ , x n ) 是
n
n
n 元谓词,它有
n
n
n 个相互独立的自由变元,若对其中
k
k
k 个变元进行约束,则成为
n
−
k
n-k
n − k 元谓词。例如,
(
∀
x
)
P
(
x
,
y
,
z
)
(\forall x)P(x,y,z)
( ∀ x ) P ( x , y , z ) 是二元谓词,
(
∃
y
)
(
∀
x
)
P
(
x
,
y
,
z
)
(\exist y)(\forall x)P(x,y,z)
( ∃ y ) ( ∀ x ) P ( x , y , z ) 是一元谓词。
约束变元的改名 一个公式的约束变元所使用的名称符号是无关紧要的,
(
∃
x
)
P
(
x
)
(\exist x)P(x)
( ∃ x ) P ( x ) 和
(
∃
y
)
P
(
y
)
(\exist y)P(y)
( ∃ y ) P ( y ) 意义相同。因此,我们可以对公式
α
\alpha
α 中的约束变元更改名称符号,这种遵守一定规则的更改,称为约束变元的换名 。其规则为: (1)对于约束变元可以换名,其更改的变元名称范围是量词中的指导变元 ,以及该量词作用域中所出现的该变元,在公式的其余部分不变 。 (2)换名时一定要更改为作用域中没有出现的变元名称。 举例来说,公式
(
∀
x
)
(
P
(
x
)
→
R
(
x
,
y
)
)
∧
Q
(
x
,
y
)
(\forall x)(P(x)\rightarrow R(x,y))\wedge Q(x,y)
( ∀ x ) ( P ( x ) → R ( x , y ) ) ∧ Q ( x , y ) 可换名为
(
∀
z
)
(
P
(
z
)
→
R
(
z
,
y
)
)
∧
Q
(
x
,
y
)
(\forall z)(P(z)\rightarrow R(z,y)) \wedge Q(x,y)
( ∀ z ) ( P ( z ) → R ( z , y ) ) ∧ Q ( x , y )
变元的绑定 ①变元被赋予某个特定值 ②变元被量词约束
2-5 谓词演算的等价式与蕴含式
定义 2 - 5.1 给定任何两个谓词公式
wff
A
\text{wff } A
wff A 和
wff
B
\text{wff } B
wff B ,设它们有共同的个体域
E
E
E ,若对
A
A
A 和
B
B
B 的任一组变元进行赋值,所得命题的真值相同,则称谓词公式
A
A
A 和
B
B
B 在
E
E
E 上是等价 的,并记作
A
⇔
B
A \Leftrightarrow B
A ⇔ B 。
定义 2 - 5.2 给定任意谓词公式
wff
A
\text{wff } A
wff A ,其个体域为
E
E
E ,对于
A
A
A 的所有赋值,
wff
A
\text{wff } A
wff A 都为真,则称
wff
A
\text{wff } A
wff A 在
E
E
E 上是有效的 (或永真的 )。
定义 2 - 5.3 一个谓词公式
wff
A
\text{wff } A
wff A ,如果在所有赋值下都为假,则称该
wff
A
\text{wff } A
wff A 为不可满足的 。
定义 2 - 5.3 一个谓词公式
wff
A
\text{wff } A
wff A ,如果至少在一种赋值下为真,则称该
wff
A
\text{wff } A
wff A 为可满足的 。
(1)命题公式的推广
命题演算中的等价公式表和蕴含式表都可推广到谓词演算中使用。例如
(
∀
x
)
(
P
(
x
)
→
Q
(
x
)
)
⇔
(
∀
x
)
(
¬
P
(
x
)
∨
Q
(
x
)
)
(
(
∀
x
)
P
(
x
)
)
∨
(
∃
y
)
R
(
x
,
y
)
⇔
¬
(
¬
(
∀
x
)
P
(
x
)
∧
¬
(
∃
y
)
R
(
x
,
y
)
)
(\forall x)(P(x)\rightarrow Q(x))\Leftrightarrow(\forall x)(\neg P(x)\vee Q(x)) \\ ((\forall x)P(x))\vee(\exist y)R(x,y) \Leftrightarrow \neg(\neg(\forall x)P(x)\wedge \neg (\exist y)R(x,y))
( ∀ x ) ( P ( x ) → Q ( x ) ) ⇔ ( ∀ x ) ( ¬ P ( x ) ∨ Q ( x ) ) ( ( ∀ x ) P ( x ) ) ∨ ( ∃ y ) R ( x , y ) ⇔ ¬ ( ¬ ( ∀ x ) P ( x ) ∧ ¬ ( ∃ y ) R ( x , y ) ) (2)量词与联结词
¬
\neg
¬ 之间的关系 (De Morgan’s Laws for Quantifiers)
¬
(
∀
x
)
P
(
x
)
⇔
(
∃
x
)
¬
P
(
x
)
\neg(\forall x)P(x)\Leftrightarrow (\exist x)\neg P(x)
¬ ( ∀ x ) P ( x ) ⇔ ( ∃ x ) ¬ P ( x )
¬
(
∃
x
)
P
(
x
)
⇔
(
∀
x
)
¬
P
(
x
)
\neg(\exist x)P(x)\Leftrightarrow(\forall x)\neg P(x)
¬ ( ∃ x ) P ( x ) ⇔ ( ∀ x ) ¬ P ( x )
约定出现在量词之前的否定不是否定量词 而是否定被量化了的整个命题 。
(3)量词作用域的扩张与收缩
量词的作用域中如果含有合取项或析取项,则当其中一项为命题时,可将该命题移至量词作用域之外,比如
(
∀
x
)
(
A
(
x
)
∨
B
)
⇔
(
∀
x
)
A
(
x
)
∨
B
(\forall x)(A(x)\vee B) \Leftrightarrow (\forall x)A(x)\vee B
( ∀ x ) ( A ( x ) ∨ B ) ⇔ ( ∀ x ) A ( x ) ∨ B 因为在
B
B
B 中不出现约束变元
x
x
x 。
类似的式子还有
(
(
∀
x
)
A
(
x
)
→
B
)
⇔
(
∃
x
)
(
A
(
x
)
→
B
)
(
(
∃
x
)
A
(
x
)
→
B
)
⇔
(
∀
x
)
(
A
(
x
)
→
B
)
(
B
→
(
∀
x
)
A
(
x
)
)
⇔
(
∀
x
)
(
B
→
A
(
x
)
)
(
B
→
(
∃
x
)
A
(
x
)
)
⇔
(
∃
x
)
(
B
→
A
(
x
)
)
((\forall x)A(x)\rightarrow B)\Leftrightarrow(\exist x)(A(x)\rightarrow B) \\ ((\exist x)A(x)\rightarrow B)\Leftrightarrow(\forall x)(A(x)\rightarrow B) \\ (B\rightarrow(\forall x)A(x))\Leftrightarrow(\forall x)(B\rightarrow A(x)) \\ (B\rightarrow(\exist x)A(x))\Leftrightarrow(\exist x)(B\rightarrow A(x))
( ( ∀ x ) A ( x ) → B ) ⇔ ( ∃ x ) ( A ( x ) → B ) ( ( ∃ x ) A ( x ) → B ) ⇔ ( ∀ x ) ( A ( x ) → B ) ( B → ( ∀ x ) A ( x ) ) ⇔ ( ∀ x ) ( B → A ( x ) ) ( B → ( ∃ x ) A ( x ) ) ⇔ ( ∃ x ) ( B → A ( x ) ) (4)量词与命题联结词之间的一些等价式
(
∀
x
)
(
A
(
x
)
∧
B
(
x
)
)
⇔
(
∀
x
)
A
(
x
)
∧
(
∀
x
)
B
(
x
)
(
∃
x
)
(
A
(
x
)
∨
B
(
x
)
)
⇔
(
∃
x
)
A
(
x
)
∨
(
∃
x
)
B
(
x
)
(\forall x)(A(x)\wedge B(x))\Leftrightarrow(\forall x)A(x)\wedge(\forall x)B(x) \\ (\exist x)(A(x)\vee B(x))\Leftrightarrow(\exist x)A(x)\vee(\exist x)B(x)
( ∀ x ) ( A ( x ) ∧ B ( x ) ) ⇔ ( ∀ x ) A ( x ) ∧ ( ∀ x ) B ( x ) ( ∃ x ) ( A ( x ) ∨ B ( x ) ) ⇔ ( ∃ x ) A ( x ) ∨ ( ∃ x ) B ( x ) (5)量词与命题联结词之间的一些蕴含式
(
∀
x
)
A
(
x
)
∨
(
∀
x
)
B
(
x
)
⇒
(
∀
x
)
(
A
(
x
)
∨
B
(
x
)
)
(
∃
x
)
(
A
(
x
)
∧
B
(
x
)
)
⇒
(
∃
x
)
A
(
x
)
∧
(
∃
x
)
B
(
x
)
(
∀
x
)
(
A
(
x
)
→
B
(
x
)
)
⇒
(
∀
x
)
A
(
x
)
→
(
∀
x
)
B
(
x
)
(
∀
x
)
(
A
(
x
)
⇆
B
(
x
)
)
⇒
(
∀
x
)
A
(
x
)
⇆
(
∀
x
)
B
(
x
)
(\forall x)A(x)\vee(\forall x)B(x)\Rightarrow(\forall x)(A(x)\vee B(x)) \\ (\exist x)(A(x)\wedge B(x))\Rightarrow(\exist x)A(x)\wedge(\exist x)B(x) \\ (\forall x)(A(x)\rightarrow B(x))\Rightarrow(\forall x)A(x)\rightarrow(\forall x)B(x) \\ (\forall x)(A(x)\leftrightarrows B(x))\Rightarrow(\forall x)A(x)\leftrightarrows(\forall x)B(x)
( ∀ x ) A ( x ) ∨ ( ∀ x ) B ( x ) ⇒ ( ∀ x ) ( A ( x ) ∨ B ( x ) ) ( ∃ x ) ( A ( x ) ∧ B ( x ) ) ⇒ ( ∃ x ) A ( x ) ∧ ( ∃ x ) B ( x ) ( ∀ x ) ( A ( x ) → B ( x ) ) ⇒ ( ∀ x ) A ( x ) → ( ∀ x ) B ( x ) ( ∀ x ) ( A ( x ) ⇆ B ( x ) ) ⇒ ( ∀ x ) A ( x ) ⇆ ( ∀ x ) B ( x ) (6)嵌套量词
(
∀
x
)
(
∀
y
)
A
(
x
,
y
)
⇔
(
∀
y
)
(
∀
x
)
A
(
x
,
y
)
(
∃
x
)
(
∃
y
)
A
(
x
,
y
)
⇔
(
∃
y
)
(
∃
x
)
A
(
x
,
y
)
(
∀
x
)
(
∀
y
)
A
(
x
,
y
)
⇒
(
∃
y
)
(
∀
x
)
A
(
x
,
y
)
⇒
(
∀
x
)
(
∃
y
)
A
(
x
,
y
)
⇒
(
∃
x
)
(
∃
y
)
A
(
x
,
y
)
(\forall x)(\forall y)A(x,y) \Leftrightarrow (\forall y)(\forall x)A(x,y) \\ (\exist x)(\exist y)A(x,y) \Leftrightarrow (\exist y)(\exist x)A(x,y) \\ \begin{aligned}(\forall x)(\forall y)A(x,y)&\Rightarrow (\exist y)(\forall x)A(x,y) \\ &\Rightarrow(\forall x)(\exist y)A(x,y)\\&\Rightarrow(\exist x)(\exist y)A(x,y)\end{aligned}
( ∀ x ) ( ∀ y ) A ( x , y ) ⇔ ( ∀ y ) ( ∀ x ) A ( x , y ) ( ∃ x ) ( ∃ y ) A ( x , y ) ⇔ ( ∃ y ) ( ∃ x ) A ( x , y ) ( ∀ x ) ( ∀ y ) A ( x , y ) ⇒ ( ∃ y ) ( ∀ x ) A ( x , y ) ⇒ ( ∀ x ) ( ∃ y ) A ( x , y ) ⇒ ( ∃ x ) ( ∃ y ) A ( x , y )
**2-6 前束范式
定义 2 - 6.1 一个公式,如果量词均在全式的开头,它们的作用域,延申到整个公式的末尾,则该公式叫做前束范式 。
定理 2 - 6.1 任意一个谓词公式,均和一个前束范式等价。
例题1 化公式
(
∀
x
)
(
∀
y
)
(
(
∃
z
)
(
P
(
x
,
z
)
∧
P
(
y
,
z
)
)
→
(
∃
u
)
Q
(
x
,
y
,
u
)
)
(\forall x)(\forall y)((\exist z)(P(x,z)\wedge P(y,z))\rightarrow(\exist u)Q(x,y,u))
( ∀ x ) ( ∀ y ) ( ( ∃ z ) ( P ( x , z ) ∧ P ( y , z ) ) → ( ∃ u ) Q ( x , y , u ) ) 为前束范式。 解:否定深入
原
式
⇔
(
∀
x
)
(
∀
y
)
(
¬
(
∃
z
)
(
P
(
x
,
z
)
∧
P
(
y
,
z
)
)
∨
(
∃
u
)
Q
(
x
,
y
,
u
)
)
⇔
(
∀
x
)
(
∀
y
)
(
∀
z
)
(
∃
u
)
(
¬
P
(
x
,
z
)
∨
¬
P
(
y
,
z
)
∨
Q
(
x
,
y
,
u
)
)
\begin{aligned}原式&\Leftrightarrow(\forall x)(\forall y)(\neg(\exist z)(P(x,z)\wedge P(y,z))\vee(\exist u)Q(x,y,u))\\&\Leftrightarrow(\forall x)(\forall y)(\forall z)(\exist u)(\neg P(x,z)\vee\neg P(y,z)\vee Q(x,y,u))\end{aligned}
原 式 ⇔ ( ∀ x ) ( ∀ y ) ( ¬ ( ∃ z ) ( P ( x , z ) ∧ P ( y , z ) ) ∨ ( ∃ u ) Q ( x , y , u ) ) ⇔ ( ∀ x ) ( ∀ y ) ( ∀ z ) ( ∃ u ) ( ¬ P ( x , z ) ∨ ¬ P ( y , z ) ∨ Q ( x , y , u ) )
例题2 化
wff
D
\text{wff }D
wff D :
(
∀
x
)
[
(
∀
y
)
P
(
x
)
∨
(
∀
z
)
q
(
z
,
y
)
→
¬
(
∀
y
)
R
(
x
,
y
)
]
(\forall x)\left[(\forall y)P(x)\vee(\forall z)q(z,y)\rightarrow\neg(\forall y)R(x,y)\right]
( ∀ x ) [ ( ∀ y ) P ( x ) ∨ ( ∀ z ) q ( z , y ) → ¬ ( ∀ y ) R ( x , y ) ] 为前束合取范式。 解:取消多余量词→换名→消去条件联结词→否定深入→量词推到最左边
D
⇔
(
∀
x
)
[
P
(
x
)
∨
(
∀
z
)
q
(
z
,
y
)
→
¬
(
∀
y
)
R
(
x
,
y
)
]
⇔
(
∀
x
)
[
P
(
x
)
∨
(
∀
z
)
q
(
z
,
y
)
→
¬
(
∀
w
)
R
(
x
,
w
)
]
⇔
(
∀
x
)
{
¬
[
P
(
x
)
∨
(
∀
z
)
q
(
z
,
y
)
]
∨
¬
(
∀
w
)
R
(
x
,
w
)
}
⇔
(
∀
x
)
[
¬
P
(
x
)
∧
(
∃
z
)
¬
q
(
z
,
y
)
∨
(
∃
w
)
¬
R
(
x
,
w
)
]
⇔
(
∀
x
)
(
∃
z
)
(
∃
w
)
[
(
¬
P
(
x
)
∨
¬
R
(
x
,
w
)
)
∧
(
¬
q
(
z
,
y
)
∨
¬
R
(
x
,
w
)
)
]
\begin{aligned}D&\Leftrightarrow(\forall x)\left[P(x)\vee(\forall z)q(z,y)\rightarrow\neg(\forall y)R(x,y)\right]\\&\Leftrightarrow(\forall x)\left[P(x)\vee(\forall z)q(z,y)\rightarrow\neg(\forall w)R(x,w)\right]\\&\Leftrightarrow(\forall x)\left\{\neg [P(x)\vee(\forall z)q(z,y)]\vee\neg(\forall w)R(x,w)\right\}\\&\Leftrightarrow(\forall x)[\neg P(x)\wedge(\exist z)\neg q(z,y)\vee(\exist w)\neg R(x,w)]\\&\Leftrightarrow(\forall x)(\exist z)(\exist w)[(\neg P(x)\vee\neg R(x,w))\wedge(\neg q(z,y)\vee\neg R(x,w))]\end{aligned}
D ⇔ ( ∀ x ) [ P ( x ) ∨ ( ∀ z ) q ( z , y ) → ¬ ( ∀ y ) R ( x , y ) ] ⇔ ( ∀ x ) [ P ( x ) ∨ ( ∀ z ) q ( z , y ) → ¬ ( ∀ w ) R ( x , w ) ] ⇔ ( ∀ x ) { ¬ [ P ( x ) ∨ ( ∀ z ) q ( z , y ) ] ∨ ¬ ( ∀ w ) R ( x , w ) } ⇔ ( ∀ x ) [ ¬ P ( x ) ∧ ( ∃ z ) ¬ q ( z , y ) ∨ ( ∃ w ) ¬ R ( x , w ) ] ⇔ ( ∀ x ) ( ∃ z ) ( ∃ w ) [ ( ¬ P ( x ) ∨ ¬ R ( x , w ) ) ∧ ( ¬ q ( z , y ) ∨ ¬ R ( x , w ) ) ]