一阶逻辑符号化
个体词
个体词是所研究对象中可以独立存在的具体(或抽象)的客体。例如小王、3、中国等都可作为个体词,类似于句子中的主语。
- 将表示具体或特定的客体的个体词称为个体常项,一般用 a , b , c , . . . a,b,c,... a,b,c,...表示
- 将抽象或泛指的个体词称为个体变项,一般用 x , y , z , . . . x,y,z,... x,y,z,...表示
可以用量词来区别个体常项与个体变项.:只有个体变项才可以冠以量词。
例如:可以说“所有人⋯”, “存在一个人⋯”, 但是不能说“所有科比⋯”, “存在一个科比 ⋯”。
个体变项的取值范围称为“个体域”,个体域可以是有穷集合,也可以是无穷集合。
最大的,由宇宙中一切事物组成的,称为“全总个体域”。
谓词
谓词是用来刻画个体词性质及个体词之间相互关系的词,常用 F , G , H F,G,H F,G,H表示。
例:
- 2是有理数
“…是有理数”是谓词,记为 F F F,则该陈述句可以符号化为 F ( 2 ) F(2) F(2) - x是无理数
“…是无理数”是谓词,记为 G G G,则该陈述句可以符号化为 G ( x ) G(x) G(x) - 小王与小李同岁
“…与…同岁”是谓词,记为 H H H,则该陈述句可以符号化为 H ( a , b ) H(a,b) H(a,b),a表示小王,b表示小李。 - x和y具有关系
L
L
L
L L L是谓词,该陈述句可以符号化为 L ( x , y ) L(x,y) L(x,y)
表示具体性质或关系的谓词称为谓词常项,表示抽象的或泛指的性质或关系的谓词称为谓词变项。上面的4的句子中,(1),(2),(3)中谓词属于谓词常项,(4)中谓词属于谓词变项。
将含有
n
n
n个个体变项的
x
1
,
x
2
,
.
.
.
,
x
n
x_1,x_2,...,x_n
x1,x2,...,xn的谓词
P
P
P称为
n
n
n元谓词,记作
P
(
x
1
,
x
2
,
.
.
.
,
x
n
)
P(x_1,x_2,...,x_n)
P(x1,x2,...,xn).
一元谓词表征的是性质,多元谓词表征的是关系。
全是个体常项的谓词称为0元谓词。
0元谓词若是谓词常项,则是命题。
即要想使 P ( x 1 , x 2 , . . . , x n ) P(x_1,x_2,...,x_n) P(x1,x2,...,xn)成为命题,必须指定 P P P的含义使其成为谓词常项,并用个体常项 a 1 , a 2 , . . . , a n a_1,a_2,...,a_n a1,a2,...,an取代 x 1 , x 2 , . . . , x n x_1,x_2,...,x_n x1,x2,...,xn。
任何命题都可以表示为0元谓词,因而命题可以看作是特殊的谓词。
在符号化时也要考虑到之前命题逻辑中所学的自然语言与命题联结词之间的转化。
- 只有2是素数,6才是素数 —— F ( 6 ) → F ( 2 ) F(6)\rightarrow F(2) F(6)→F(2)
- 除非6是素数,否则4是素数 —— ¬ F ( 6 ) → F ( 4 ) \neg F(6)\rightarrow F(4) ¬F(6)→F(4)
在谓词常项符号化时,个体常项可以用a、b来符号化。
量词
量词可以看作是对个体词所附加约束的词。
- 全称量词
即“一切”、“任意”、“所有的”、“凡”…等,用符号 ∀ \forall ∀ 表示。
∀ x \forall x ∀x表示个体域内所有个体 x x x
∀ x F ( x ) \forall xF(x) ∀xF(x)表示个体域内所有个体 x x x都有性质 F F F
∀ x ∀ y G ( x , y ) \forall x\forall yG(x,y) ∀x∀yG(x,y)表示个体域中的所有 x , y x,y x,y有关系 G G G
- 存在量词
即“存在”、“至少有一个”…等,用符号 ∃ \exists ∃ 表示。
∃ x \exists x ∃x表示个体域内存在一个个体 x x x
∃ x F ( x ) \exists xF(x) ∃xF(x)表示个体域内存在个体 x x x具有性质 F F F
∃ x ∃ y G ( x , y ) \exists x\exists yG(x,y) ∃x∃yG(x,y)表示个体域中的存在 x , y x,y x,y有关系 G G G
全称量词和存在量词可以联合使用。 只有个体变项才可以冠以量词。
当
F
F
F是谓词常项时,
∀
x
F
(
x
)
\forall xF(x)
∀xF(x)是命题,
∃
x
F
(
x
)
\exists xF(x)
∃xF(x)也是命题。
若个体域中所有元素都符合
F
F
F,则
∀
x
F
(
x
)
\forall xF(x)
∀xF(x)为真,否则为假;若个体域中存在元素符合
F
F
F,则
∃
x
F
(
x
)
\exists xF(x)
∃xF(x)为真,否则为假。
符号化
由于量词涉及范围, 所以与个体域密切相关. 使用量词将命题符号化后真值与所用个体域有关。
先比较个体域和个体变项所指的范围的大小,再决定是否需要引入特性谓词。
注意看题目是否指定了个体域若没有则默认是全总个体域。
在引入特性量词后,要注意: ‘ ∀ ’ 与 ‘ → ’ ‘ \forall ’与‘\rightarrow’ ‘∀’与‘→’是固定搭配, ‘ ∃ ’ 与 ‘ ∧ ’ ‘ \exists ’与‘\land’ ‘∃’与‘∧’是固定搭配.
一阶逻辑公式
谓词逻辑是命题逻辑的推广, 命题逻辑是谓词逻辑的特殊情形。
谓词公式和命题公式的区别在于量词。
在公式
∀
x
A
\forall xA
∀xA、
∃
x
A
\exists xA
∃xA中,
x
x
x为指导变元,A为量词的辖域。辖域中x的出现称为约束变元,其它变项的出现称为自由变元。
若量词后有括号, 在括号内的公式即为此量词的辖域;若量词后无括号, 则量词后最短的公式为此量词的辖域。
注意:(2)中F中的x与G中的x不是一个东西,两个x所在辖域不同,只是使用了同一个符号而已。(下见“换名规则”)
若公式中不含自由变元,则称为闭式。
要想使含
n
n
n个自由出现的个体变项的公式变为闭式,至少要加上
n
n
n个量词。有
n
n
n个量词并不代表一定是闭式。
公式的解释与赋值
注意到:公式只是按照形式规则生成的符号串,没有实际的含义。只有将其中的变项用指定的常项代替后,所得的公式才有特定的实际含义。这个过程可以分为解释与赋值两类。(注意:不包括指导变元。)
- 解释:对公式个体域、个体常项、函数、谓词的指定
公式进行解释之后,可能成为命题。
因为解释并不意味着消去所有变项,可能还存在个体变元(自由变项),因此公式解释的结果可能为命题,也可能不是。解释之后,公式可能为真,可能为假,可能真值不能确定。
闭式由于不包含自由变项,因此闭式在任何解释中都成为命题。
- 赋值:对自由变元的值的指定
注意:闭式因为没有自由变项,所以与赋值无关。
任何谓词公式在解释和赋值下的结果都是命题。
不同的赋值可能对应不同的真值,但无论如何,真值确定,因此是命题。
已知解释,求公式的真值,可以通过真值表来求。
逻辑公式的类型判断
重言式一定是可满足式,反之不然。
注意:在谓词逻辑里, 不存在一般的通用算法,来判断公式的类型。
接下来所介绍的方法只适用于部分简单公式的类型判断。
代换实例
简易证明
若一眼看出公式是重言式,则在证明时设
I
I
I为任意一个解释;若一眼看出公式是矛盾式,则在证明时举出一个反例
I
I
I即可。
逻辑公式的等值判断
注意:判断两个公式等值并不代表这两个公式重言。证明两个公式等值与这两个公式的类型是什么没有关系。
类似于证明一个推理正确与这个推理的内容是否正确没有关系。
证明两个一阶逻辑公式不等值,可以通过找出一个解释,这两个公式的结果不同,来说明不等值。
除此之外还有一些特有的等值式:
消去量词 —— 有限个体域 。
题目要求消去量词时,只要消去量词即可,至于公式是蕴含、否定…都无所谓。
消量词之前应尽可能辖域收缩以简化运算。
(注意区分题型:消去量词 or 求前束范式)
例题:
已知个体域 D = { a , b , c } D = \{a, b, c\} D={a,b,c},消去下面各公式中的量词。
1, ∀ x ∀ y ( F ( x ) → G ( y ) ) \forall x\forall y(F(x)\rightarrow G(y)) ∀x∀y(F(x)→G(y))
2, ( ∀ x F ( x ) ∧ ∃ y G ( y ) ) → H ( y ) (\forall xF(x)\land\exist yG(y))\rightarrow H(y) (∀xF(x)∧∃yG(y))→H(y)
3, ∀ x ∃ y ( F ( x , y ) → G ( x , y ) ) \forall x\exist y(F(x, y)\rightarrow G(x,y)) ∀x∃y(F(x,y)→G(x,y))
析取/合取 —— 直接去掉括号即可;
蕴含式则要注意A(x)的位置:若A(x)为前件,则要变号,若A(x)为后件,则不用变号。
∀ x F ( x ) ∨ ∀ y G ( y ) ⇔ ∀ x ∀ y ( F ( x ) ∨ G ( y ) ) \forall xF(x)\vee\forall yG(y)\Leftrightarrow\forall x\forall y(F(x)\vee G(y)) ∀xF(x)∨∀yG(y)⇔∀x∀y(F(x)∨G(y))(连用两次辖域扩张)
这些等值式都是对量词进行处理。
一阶逻辑前束范式
注意:前束范式只要求所有量词均在最外侧即可,至于括号里面是否定、蕴涵…都可以。
前束范式存在定理:一阶逻辑中的任何公式都存在等值的前束范式。
通用转换步骤(构造性算法):
- 消去联结词 → \rightarrow →、 ⇔ \Leftrightarrow ⇔
- 将 ¬ \neg ¬向内深入,使之只作用于原子公式
- 利用换名规则使所有约束变项的的符号均不同,且自由变项与约束变项的符号也不同
- 利用量词辖域扩张、收缩,量词分配等值式,将所有量词移到前面
注意:前束范式的形式可能不是唯一的。
不一定非要使用该构造性算法, 但构造性算法总能转化为前束范式。
一阶逻辑推理
证明推理正确就是证明蕴含重言式。
推理定律
- 命题逻辑中重言蕴涵式的代换实例
- 每个基本等值式生成2条推理定律
- 量词分配蕴含律
推理规则
- 命题中已介绍的11条推理规则
- 4条特殊的推理规则(注意使用条件!)
由UI和UG可以看出: A ( x ) ⇔ ∀ x A ( x ) A(x)\Leftrightarrow \forall xA(x) A(x)⇔∀xA(x)
前提: ∃ x F ( x ) → ∀ y ( G ( y ) → H ( y ) ) , ∃ x R ( x ) → ∃ y G ( y ) \exist xF(x)\rightarrow\forall y(G(y)\rightarrow H(y)), \exist xR(x)\rightarrow\exist yG(y) ∃xF(x)→∀y(G(y)→H(y)),∃xR(x)→∃yG(y)
结论: ∃ x ( F ( x ) ∧ R ( x ) ) → ∃ x H ( x ) \exist x(F(x)\land R(x))\rightarrow\exist xH(x) ∃x(F(x)∧R(x))→∃xH(x)
常见变换:
- ¬ F ( x ) ∨ ¬ G ( x ) ⇔ F ( x ) → ¬ G ( x ) ⇔ G ( x ) → ¬ F ( x ) \neg F(x)\vee\neg G(x)\Leftrightarrow F(x)\rightarrow\neg G(x)\Leftrightarrow G(x)\rightarrow\neg F(x) ¬F(x)∨¬G(x)⇔F(x)→¬G(x)⇔G(x)→¬F(x)
- 当结论为蕴涵、析取形式时,应考虑使用归谬法:否定结论 → \rightarrow → 合取形式 → \rightarrow →UI / EI
一阶逻辑公式的推理经实例化后即成为命题逻辑公式的推理。
UI、EI → \rightarrow → 消去量词 → \rightarrow → 命题推理
- 题目所给条件较少时,使用附加前提法或归谬法
- 证明没有思路时,将前提化为前束范式,使得量词关系更加清晰。