一阶语言 L \mathcal{L} L的符号
-
变元符号(变量符号)
- 格式: x 1 , x 2 , . . . x_{1},x_{2},... x1,x2,...
- 含义:可以看作程序中的变量,或者表示每天的平均温度
-
谓词符号
- 格式:
- A 1 1 , A 2 1 , . . . A_{1}^{1},A_{2}^{1},... A11,A21,...
- A 1 2 , A 2 2 , . . . A_{1}^{2},A_{2}^{2},... A12,A22,...
- …
- A 1 n , A 2 n , . . . A_{1}^{n},A_{2}^{n},... A1n,A2n,...
- 含义:谓词符号表示进行判断,结果为真或假,可以对一个变元进行判断,比如判断 x 1 x_1 x1的值是否为零,可以用 A 1 1 ( x 1 ) A_1^1(x_1) A11(x1)表示;也可以对多个变元判断,比如判断 x 1 + x 2 x_1+x_2 x1+x2是否大于 x 3 x_3 x3,可以用 A 2 1 ( x 1 , x 2 , x 3 ) A_2^1(x_1,x_2,x_3) A21(x1,x2,x3)表示。
- 谓词符号集用 p p p表示
- 格式:
-
函数符号
- 格式:
- f 1 1 , f 2 1 , . . . f_{1}^{1},f_{2}^{1},... f11,f21,...
- f 1 2 , f 2 2 , . . . f_{1}^{2},f_{2}^{2},... f12,f22,...
- …
- f 1 n , f 2 n , . . . f_{1}^{n},f_{2}^{n},... f1n,f2n,...
- 含义:函数符号表示对数值进行处理,比如对 x 1 x_1 x1加一,可以用 f 1 1 ( x 1 ) f_1^1(x_1) f11(x1)表示;
- 函数符号集用 F \mathcal{F} F表示
- 格式:
-
个体常元符号(常值符号):
- 格式: a 1 , a 2 , . . . a_{1},a_{2},... a1,a2,...
- 含义:个体常元符号可以视为没有任何变元的函数符号,可以看作程序中的常量,或者表示天空的颜色是蓝色等含有
- 常元符号集用 C C C表示
- 因为常元可以看作0元函数,所以常元也叫零元函数
-
连接符: ¬ ∨ ∧ → \neg \vee \wedge \to ¬∨∧→
-
量词符: ∀ , ∃ \forall,\exists ∀,∃
( ∃ x i ) A (\exist x_i)A (∃xi)A等价于 ¬ ( ∀ x i ) ¬ A \neg(\forall x_i)\neg A ¬(∀xi)¬A
-
辅助符: ) , ( ),( ),(
-
例题一:
- 假设有一阶自然数语言
L
n
\mathcal{L}_n
Ln:
- 变元符: x 1 , x 2 , . . . x_{1},x_{2},... x1,x2,...表示自然数变元
- 个体常元符号: a 1 a_{1} a1表示自然数0
- 谓词符号:
- A 1 1 A_{1}^{1} A11 表示非零判断
- A 1 2 A_{1}^{2} A12 表示相等判断
- A 1 1 A_{1}^{1} A11 表示小于等于判断
- A 1 1 A_{1}^{1} A11 表示大于等于判断
- 函数符:
- f 1 1 f_{1}^{1} f11 表示后继函数,比如 x 1 x_{1} x1的后继函数是 x 1 + 1 x_{1}+1 x1+1
- f 1 2 f_{1}^{2} f12 表示加法函数
- f 2 2 f_{2}^{2} f22 表示乘法函数
- 问题
- 问题1: A 1 1 ( f 1 1 ( x 1 ) ) A_{1}^{1}(f_{1}^{1}(x_1)) A11(f11(x1))的含义是什么?
- 问题2: ∀ x ∃ y ( A 1 2 ( f 1 1 ( x ) , y ) ) \forall x\exist y(A_{1}^{2}(f_{1}^{1}(x),y)) ∀x∃y(A12(f11(x),y))的含义是什么?
- 答案:
- 问题1答案:自然数 x 1 x_1 x1的后继不为 0,即 x 1 + 1 ≠ 0 x_{1}+1\neq 0 x1+1=0
- 问题2答案:任给自然数 x x x, 存在自然数 y y y, 使得 x + 1 = y x + 1 = y x+1=y
- 假设有一阶自然数语言
L
n
\mathcal{L}_n
Ln:
项
-
L \mathcal{L} L中的项(用符号 t t t表示)由变元、个体常元和函数符构成:
- 每个变元、个体常元都是项;
- 设 f i n f_i^n fin是 L \mathcal{L} L的 n n n元函数符号, t 1 , t 2 , . . . , t n t_{1},t_{2},...,t_{n} t1,t2,...,tn是项,则 f i n ( t 1 , t 2 , . . . , t n ) f_i^n(t_{1},t_{2},...,t_{n}) fin(t1,t2,...,tn)是项;
-
L
\mathcal{L}
L中的项均是由上面两种方式组成,由Backus Naur可以写成:
t : : = a ∣ x ∣ f i n ( t 1 , t 2 , . . . , t n ) t ::= a | x | f_i^n(t_{1},t_{2},...,t_{n}) t::=a∣x∣fin(t1,t2,...,tn)
其中 x x x取遍每一个变元的集合 v a r var var, a a a取遍 F \mathcal{F} F中的零元函数符号, f f f取遍 F \mathcal{F} F中的元 n > 0 n>0 n>0的符号
- : : = ::= ::=是“被定义为”的意思
- 用符号 T L \mathcal{T}_{\mathcal{L}} TL表示一阶语言 L \mathcal{L} L的全体项之集
-
闭项:不含变元的项。
- 范例:一阶自然数语言 L N : f 1 1 ( a ) , f 1 2 ( f 1 1 ( a ) , a ) , f 2 2 ( f 1 1 ( x 1 ) , f 1 2 ( x 2 , x 3 ) ) \mathcal{L}_{\mathcal{N}}:f_1^1(a),f_1^2(f_1^1(a),a),f_2^2(f_1^1(x_1),f_1^2(x_2,x_3)) LN:f11(a),f12(f11(a),a),f22(f11(x1),f12(x2,x3))都是项,而 f 1 1 ( a ) , f 1 2 ( f 1 1 ( a ) , a ) f_1^1(a),f_1^2(f_1^1(a),a) f11(a),f12(f11(a),a)不含变元,称为闭项。
项通常表示对象,可以作为句子的主语,也因为没有谓词,不能表示为命题
一阶语言 L \mathcal{L} L的公式
-
定义:
- 若 P ∈ P P \in P P∈P是 n ⩾ 1 n \geqslant 1 n⩾1元的谓词符号, t 1 , t 2 , . . . , t n t_{1},t_{2},...,t_{n} t1,t2,...,tn是 F \mathcal{F} F上的项,则 P ( t 1 , t 2 , . . . , t n ) P(t_{1},t_{2},...,t_{n}) P(t1,t2,...,tn)是公式;
- 若 ϕ \phi ϕ是公式,则 ( ¬ ϕ ) (\neg \phi) (¬ϕ)也是公式;
- 若 ϕ \phi ϕ和 ψ \psi ψ是公式,则 ϕ ∨ ψ , ϕ ∧ ψ , ϕ → ψ \phi \vee \psi,\phi \wedge \psi,\phi \to \psi ϕ∨ψ,ϕ∧ψ,ϕ→ψ也是公式;
- 若 ϕ \phi ϕ是公式, x x x是变元,则 ( ∀ x ϕ ) (\forall x \ \phi) (∀x ϕ)和 ( ∃ x ψ ) (\exist x \ \psi) (∃x ψ)也是公式;
-
L \mathcal{L} L的公式分为两种:
- 原子公式(又叫做没有子公式的公式):
- 定义:设 A n A_n An是 n n n元谓词, t 1 , t 2 , . . . , t n t_{1},t_{2},...,t_{n} t1,t2,...,tn是项, A i n ( t 1 , t 2 , . . . , t n ) A_i^n(t_{1},t_{2},...,t_{n}) Ain(t1,t2,...,tn)称为原子公式。
- 范例: L N : A 1 1 ( f 1 1 ( x 1 ) , a ) , A 2 2 ( f 1 1 ( x 1 ) , f 1 2 ( x 2 , x 3 ) ) \mathcal{L}_{\mathcal{N}}:A_1^1(f_1^1(x_1),a),A_2^2(f_1^1(x_1),f_1^2(x_2,x_3)) LN:A11(f11(x1),a),A22(f11(x1),f12(x2,x3))
- 合式公式(又称谓词公式):
- 定义:(由BNF范式给出如下定义)
A : : = 原 子 公 式 ∣ ¬ A ∣ A ∨ A ∣ A ∧ A ∣ A → A ∣ ( ∀ x i ) A ∣ ( ∃ x i ) A A ::= 原子公式 | \neg A | A \vee A | A \wedge A | A \to A | (\forall x_i)A | (\exist x_i)A A::=原子公式∣¬A∣A∨A∣A∧A∣A→A∣(∀xi)A∣(∃xi)A
因为 ( ∃ x i ) A (\exist x_i)A (∃xi)A可以简写为 ¬ ( ∀ x i ) ¬ A \neg (\forall x_i)\neg A ¬(∀xi)¬A,所以 L \mathcal{L} L公式可以简写为:
A : : = 原 子 公 式 ∣ ¬ A ∣ A → A ∣ ( ∀ x i ) A A ::= 原子公式 | \neg A | A \to A | (\forall x_i)A A::=原子公式∣¬A∣A→A∣(∀xi)A - 范例: ( ∀ x 1 ) ¬ A 1 2 ( f 1 1 ( x 1 ) , f 2 2 ( x 1 , x 2 ) ) , ( ∀ x 1 ) ( ¬ A 2 1 ( x 1 , a ) → ( ∃ x 2 ) A 2 1 ( x 1 , f 1 1 ( x 2 ) ) ) (\forall x_1)\neg A_1^2(f_1^1(x_1),f_2^2(x_1,x_2)), (\forall x_1)(\neg A_2^1(x_1, a) \to (\exist x_2)A_2^1(x_1, f_1^1 (x_2))) (∀x1)¬A12(f11(x1),f22(x1,x2)),(∀x1)(¬A21(x1,a)→(∃x2)A21(x1,f11(x2)))
- 定义:(由BNF范式给出如下定义)
- 用 F ( L ) \mathcal{F}({\mathcal{L}}) F(L)表示全体公式集,包含所有可能的公式。以后讲到的很多定理中经常用到,某一个公式 A A A满足 A ∈ F ( L ) A \in \mathcal{F}({\mathcal{L}}) A∈F(L),表示 A A A可以是任何一个公式,再由此推出其他定理。
- 任何原子公式都是合式公式。
- 原子公式(又叫做没有子公式的公式):
-
符号优先级约定:
- ¬ , ∀ y , ∃ y \neg,\forall y,\exist y ¬,∀y,∃y优先级最高
- 其次是 ∨ , ∧ \vee,\wedge ∨,∧
- 然后是右结合 → \to →
-
范例:
- 将下面的语言翻译成谓词逻辑公式:我父亲的每个儿子都是我的兄弟。
- 当我们将"父亲"看作一个谓词符号时:
- 选择常量 m m m表示为"我",选择谓词集 { S , F , B } \{S,F,B\} {S,F,B},其中, S ( x , y ) : x S(x,y):x S(x,y):x是 y y y的儿子, F ( x , y ) : x F(x,y):x F(x,y):x是 y y y的兄弟, B ( x , y ) : x B(x,y):x B(x,y):x是 y y y的父亲
- 谓词逻辑公式为: ∀ x ∀ y ( F ( x , m ) ∨ S ( y , x ) → B ( y , m ) ) \forall x \forall y (F(x,m)\vee S(y,x)\to B(y,m)) ∀x∀y(F(x,m)∨S(y,x)→B(y,m))
- 公式含义:对所有 x x x和 y y y,若 x x x是 m m m的父亲, y y y是 x x x的儿子,则 y y y是 m m m的兄弟
- 当我们将"父亲"看作一个函数符号时:
- m 、 S 、 B m、S、B m、S、B与上面保持一致,用 f f f表示一个变元的函数,返回值是该变元的父亲,此时,因为父亲存在且唯一,所以 f f f确实是要给函数,而不仅仅是一个关系
- 谓词逻辑公式为: ∀ x ( S ( x , f ( m ) ) → B ( x , m ) ) \forall x (S(x,f(m)) \to B(x,m)) ∀x(S(x,f(m))→B(x,m))
- 公式含义:对所有的 x x x,若 x x x是 m m m的父亲的儿子,则 x x x是 m m m的兄弟
约束变元与自由变元
- 定义:公式中出现 ( ∀ x i ) A (\forall x_i)A (∀xi)A或者 ( ∃ x i ) A (\exist x_i)A (∃xi)A时, A A A叫做 ∀ x i \forall x_i ∀xi或者 ∃ x i \exist x_i ∃xi的辖域, 此时 A A A中的变元 x i x_i xi称为 A A A的约束变元,不是约束变元的变元称为自由变元。
- 例题二:
- 问题:
- 问题1: L N : ( ∀ x 1 ) ¬ A 1 2 ( f 1 1 ( x 1 ) , f 2 2 ( x 1 , x 2 ) ) \mathcal{L}_{\mathcal{N}}:(\forall x_1)\neg A_1^2(f_1^1(x_1),f_2^2(x_1,x_2)) LN:(∀x1)¬A12(f11(x1),f22(x1,x2)),则公式中,有哪些变元以及他们出现的次数?
- 问题2: L N : A 1 2 ( x 1 , a ) ∧ ( ∃ x 1 ) A 1 1 ( f 1 1 ( x 1 ) , a ) \mathcal{L}_{\mathcal{N}}:A_1^2(x_1,a) \wedge (\exist x_1) A_1^1(f_1^1(x_1),a) LN:A12(x1,a)∧(∃x1)A11(f11(x1),a)公式中, x 1 x_1 x1每一次出现时,是什么变元?
- 答案
- 问题1答案: x 1 x_1 x1是约束变元,约束出现3次; x 2 x_2 x2是自由变元,出现1次。
- 问题2答案: x 1 x_1 x1出现3次,第1次是自由变元,后2次是约束变元。
- 问题:
- 项的自由性
- 定义:若 t t t对 A A A中的 x i x_i xi的每一个自由出现代入都不会使得 t t t中的变元失去自由性,则项 t t t称为对公式 A ( x i ) A(x_i) A(xi)的自由变元 x i x_i xi是自由的。
- 例如:公式 ( ∀ x 1 ) ( ∀ x 2 ) ( A 2 1 ( x 1 , x 2 ) → A 1 1 ( x 2 ) ) (\forall x_1)(\forall x_2)(A_2^1(x_1, x_2) → A_1^1(x_2)) (∀x1)(∀x2)(A21(x1,x2)→A11(x2))中无自由变元,对于任何项 t t t(比如 t = f 2 1 ( x 1 , x 2 ) , t ′ = f 2 3 ( x 1 ) t=f_2^1(x_1,x_2),t'=f_2^3(x_1) t=f21(x1,x2),t′=f23(x1))关于此公式中的 x 1 , x 2 x_1, x_2 x1,x2都是自由的,这就叫做项的自由性。
- 例题三:
- 问题:
- 公式
(
∀
x
1
)
(
A
1
3
(
x
1
,
x
2
,
x
3
)
→
A
2
3
(
x
1
,
x
2
,
x
3
)
)
(\forall x_1)(A_1^3(x_1, x_2, x_3) \to A_2^3(x_1, x_2, x_3))
(∀x1)(A13(x1,x2,x3)→A23(x1,x2,x3))中
- (1) t 1 = f 1 2 ( x 1 , x 2 ) t_1= f_1^2(x_1,x_2) t1=f12(x1,x2),项 t 1 t_1 t1对 x 2 x_2 x2是否是自由的?
- (2) t 2 = f 1 2 ( x 1 , x 2 ) t_2 = f_1^2(x_1,x_2) t2=f12(x1,x2),项 t 2 t_2 t2对 x 3 x_3 x3是否是自由的?
- (3) t 3 = f 2 2 ( x 1 ) t_3 = f_2^2(x_1) t3=f22(x1),项 t 3 t_3 t3对 x 1 x_1 x1是否是自由的?
- (4) t 4 = f 2 1 ( x 2 ) t_4 = f_2^1(x_2) t4=f21(x2),项 t 4 t_4 t4对 x 2 x_2 x2是否是自由的?
- (5) t 5 = f 1 1 ( x 1 ) t_5 = f_1^1(x_1) t5=f11(x1),项 t 5 t_5 t5对 x 2 x_2 x2是否是自由的?
- 公式
(
∀
x
1
)
(
A
1
3
(
x
1
,
x
2
,
x
3
)
→
A
2
3
(
x
1
,
x
2
,
x
3
)
)
(\forall x_1)(A_1^3(x_1, x_2, x_3) \to A_2^3(x_1, x_2, x_3))
(∀x1)(A13(x1,x2,x3)→A23(x1,x2,x3))中
- 答案:
- 公式内具有自由变元
x
2
,
x
3
x_2,x_3
x2,x3,约束变元
x
3
x_3
x3
- (1)若用项 t 1 t_1 t1代入 x 2 x_2 x2会得到如下的公式, ( ∀ x 1 ) ( A 1 3 ( x 1 , f 1 2 ( x 1 , x 2 ) , x 3 ) → A 2 3 ( x 1 , f 1 2 ( x 1 , x 2 ) , x 3 ) ) (\forall x_1)(A_1^3(x_1,f_1^2(x_1,x_2), x_3) \to A_2^3(x_1, f_1^2(x_1,x_2), x_3)) (∀x1)(A13(x1,f12(x1,x2),x3)→A23(x1,f12(x1,x2),x3)),导致公式原 x 2 x_2 x2的位置产生了新的约束 x 1 x_1 x1,因此项 t 1 t_1 t1对 x 2 x_2 x2是不自由的。
- (2)若用项 t 2 t_2 t2代入 x 3 x_3 x3会得到如下的公式, ( ∀ x 1 ) ( x 1 , x 2 , f 1 2 ( x 1 , x 2 ) ) → A 2 3 ( x 1 , x 2 , f 1 2 ( x 1 , x 2 ) ) ) (\forall x_1)(x_1,x_2, f_1^2(x_1,x_2)) \to A_2^3(x_1,x_2, f_1^2(x_1,x_2))) (∀x1)(x1,x2,f12(x1,x2))→A23(x1,x2,f12(x1,x2))),导致公式原 x 3 x_3 x3的位置产生了新的约束 x 1 x_1 x1,因此项 t 2 t_2 t2对 x 3 x_3 x3是不自由的。
- (3)若用项 t 3 t_3 t3代入 x 1 x_1 x1会得到如下的公式, ( ∀ x 1 ) ( A 1 3 ( f 1 2 ( x 1 ) , x 2 , x 3 ) → A 2 3 ( f 1 2 ( x 1 ) , x 2 , x 3 ) ) (\forall x_1)(A_1^3(f_1^2(x_1), x_2, x_3) \to A_2^3(f_1^2(x_1), x_2, x_3)) (∀x1)(A13(f12(x1),x2,x3)→A23(f12(x1),x2,x3)),在公式原 x 1 x_1 x1的位置上并没有产生新的约束,所以 t 3 t_3 t3对 x 1 x_1 x1是自由的。
- (4)若用项 t 4 t_4 t4代入 x 2 x_2 x2会得到如下的公式, ( ∀ x 1 ) ( A 1 3 ( x 1 , f 2 1 ( x 2 ) , x 3 ) → A 2 3 ( x 1 , f 2 1 ( x 2 ) , x 3 ) ) (\forall x_1)(A_1^3(x_1, f_2^1(x_2), x_3) \to A_2^3(x_1, f_2^1(x_2), x_3)) (∀x1)(A13(x1,f21(x2),x3)→A23(x1,f21(x2),x3)),在公式原 x 2 x_2 x2的位置上并没有产生新的约束,所以 t 4 t_4 t4对 x 2 x_2 x2是自由的。
- (5)若用项 t 5 t_5 t5代入 x 2 x_2 x2会得到如下的公式, ( ∀ x 1 ) ( A 1 3 ( x 1 , f 1 1 ( x 1 ) , x 3 ) → A 2 3 ( x 1 , f 1 1 ( x 1 ) , x 3 ) ) (\forall x_1)(A_1^3(x_1, f_1^1(x_1), x_3) \to A_2^3(x_1,f_1^1(x_1), x_3)) (∀x1)(A13(x1,f11(x1),x3)→A23(x1,f11(x1),x3)),导致公式原 x 2 x_2 x2的位置产生了新的约束 x 1 x_1 x1,因此项 t 5 t_5 t5对 x 1 x_1 x1是不自由的。
- 公式内具有自由变元
x
2
,
x
3
x_2,x_3
x2,x3,约束变元
x
3
x_3
x3
- 问题: