本文已参与「新人创作礼」活动,一起开启掘金创作之路。
一阶语言L的符号
-
变元符号(变量符号)
- 格式:x1,x2,...
- 含义:可以看作程序中的变量,或者表示每天的平均温度
-
谓词符号
- 格式:
- A11,A21,...
- A12,A22,...
- ...
- A1n,A2n,...
- 含义:谓词符号表示进行判断,结果为真或假,可以对一个变元进行判断,比如判断x1的值是否为零,可以用A11(x1)表示;也可以对多个变元判断,比如判断x1+x2是否大于x3,可以用A21(x1,x2,x3)表示。
- 谓词符号集用p表示
-
函数符号
- 格式:
- f11,f21,...
- f12,f22,...
- ....
- f1n,f2n,...
- 含义:函数符号表示对数值进行处理,比如对x1加一,可以用f11(x1)表示;
- 函数符号集用F表示
-
个体常元符号(常值符号):
- 格式:a1,a2,...
- 含义:个体常元符号可以视为没有任何变元的函数符号,可以看作程序中的常量,或者表示天空的颜色是蓝色等含有
- 常元符号集用C表示
- 因为常元可以看作0元函数,所以常元也叫零元函数
-
连接符:¬∨∧→
-
量词符:∀,∃
(∃xi)A等价于¬(∀xi)¬A
-
辅助符:),(
-
例题一:
- 假设有一阶自然数语言Ln:
- 变元符:x1,x2,...表示自然数变元
- 个体常元符号:a1表示自然数0
- 谓词符号:
- A11 表示非零判断
- A12 表示相等判断
- A11 表示小于等于判断
- A11 表示大于等于判断
- 函数符:
- f11 表示后继函数,比如x1的后继函数是x1+1
- f12 表示加法函数
- f22 表示乘法函数
- 问题
- 问题1:A11(f11(x1))的含义是什么?
- 问题2:∀x∃y(A12(f11(x),y))的含义是什么?
- 答案:
- 问题1答案:自然数x1的后继不为 0,即x1+1=0
- 问题2答案:任给自然数x, 存在自然数y, 使得x+1=y
项
项通常表示对象,可以作为句子的主语,也因为没有谓词,不能表示为命题
一阶语言L的公式
- 定义:
- 若P∈P是n⩾1元的谓词符号,t1,t2,...,tn是F上的项,则P(t1,t2,...,tn)是公式;
- 若ϕ是公式,则(¬ϕ)也是公式;
- 若ϕ和ψ是公式,则ϕ∨ψ,ϕ∧ψ,ϕ→ψ也是公式;
- 若ϕ是公式,x是变元,则(∀x ϕ)和(∃x ψ)也是公式;
- L的公式分为两种:
- 原子公式(又叫做没有子公式的公式):
- 定义:设An是n元谓词,t1,t2,...,tn是项,Ain(t1,t2,...,tn)称为原子公式。
- 范例:LN:A11(f11(x1),a),A22(f11(x1),f12(x2,x3))
- 合式公式(又称谓词公式):
-
定义:(由BNF范式给出如下定义)
A::=原子公式∣¬A∣A∨A∣A∧A∣A→A∣(∀xi)A∣(∃xi)A
因为(∃xi)A可以简写为¬(∀xi)¬A,所以L公式可以简写为:
A::=原子公式∣¬A∣A→A∣(∀xi)A
-
范例:(∀x1)¬A12(f11(x1),f22(x1,x2)),(∀x1)(¬A21(x1,a)→(∃x2)A21(x1,f11(x2)))
- 用F(L)表示全体公式集,包含所有可能的公式。以后讲到的很多定理中经常用到,某一个公式A满足A∈F(L),表示A可以是任何一个公式,再由此推出其他定理。
- 任何原子公式都是合式公式。
- 符号优先级约定:
- ¬,∀y,∃y优先级最高
- 其次是∨,∧
- 然后是右结合→
- 范例:
- 将下面的语言翻译成谓词逻辑公式:我父亲的每个儿子都是我的兄弟。
- 当我们将"父亲"看作一个谓词符号时:
- 选择常量m表示为"我",选择谓词集{S,F,B},其中,S(x,y):x是y的儿子,F(x,y):x是y的兄弟,B(x,y):x是y的父亲
- 谓词逻辑公式为:∀x∀y(F(x,m)∨S(y,x)→B(y,m))
- 公式含义:对所有x和y,若x是m的父亲,y是x的儿子,则y是m的兄弟
- 当我们将"父亲"看作一个函数符号时:
- m、S、B与上面保持一致,用f表示一个变元的函数,返回值是该变元的父亲,此时,因为父亲存在且唯一,所以f确实是要给函数,而不仅仅是一个关系
- 谓词逻辑公式为:∀x(S(x,f(m))→B(x,m))
- 公式含义:对所有的x,若x是m的父亲的儿子,则x是m的兄弟
约束变元与自由变元
- 定义:公式中出现(∀xi)A或者(∃xi)A时,A叫做 ∀xi或者∃xi的辖域, 此时A中的变元xi称为A的约束变元,不是约束变元的变元称为自由变元。
- 例题二:
- 问题:
- 问题1:LN:(∀x1)¬A12(f11(x1),f22(x1,x2)),则公式中,有哪些变元以及他们出现的次数?
- 问题2:LN:A12(x1,a)∧(∃x1)A11(f11(x1),a)公式中,x1每一次出现时,是什么变元?
- 答案
- 问题1答案:x1是约束变元,约束出现3次;x2是自由变元,出现1次。
- 问题2答案:x1出现3次,第1次是自由变元,后2次是约束变元。
- 项的自由性
- 定义:若t对A中的xi的每一个自由出现代入都不会使得t中的变元失去自由性,则项t称为对公式A(xi)的自由变元xi是自由的。
- 例如:公式(∀x1)(∀x2)(A21(x1,x2)→A11(x2))中无自由变元,对于任何项t(比如t=f21(x1,x2),t′=f23(x1))关于此公式中的x1,x2都是自由的,这就叫做项的自由性。
- 例题三:
- 问题:
- 公式(∀x1)(A13(x1,x2,x3)→A23(x1,x2,x3))中
- (1)t1=f12(x1,x2),项t1对x2是否是自由的?
- (2)t2=f12(x1,x2),项t2对x3是否是自由的?
- (3)t3=f22(x1),项t3对x1是否是自由的?
- (4)t4=f21(x2),项t4对x2是否是自由的?
- (5)t5=f11(x1),项t5对x2是否是自由的?
- 答案:
- 公式内具有自由变元x2,x3,约束变元x3
- (1)若用项t1代入x2会得到如下的公式,(∀x1)(A13(x1,f12(x1,x2),x3)→A23(x1,f12(x1,x2),x3)),导致公式原x2的位置产生了新的约束x1,因此项t1对x2是不自由的。
- (2)若用项t2代入x3会得到如下的公式,(∀x1)(x1,x2,f12(x1,x2))→A23(x1,x2,f12(x1,x2))),导致公式原x3的位置产生了新的约束x1,因此项t2对x3是不自由的。
- (3)若用项t3代入x1会得到如下的公式,(∀x1)(A13(f12(x1),x2,x3)→A23(f12(x1),x2,x3)),在公式原x1的位置上并没有产生新的约束,所以t3对x1是自由的。
- (4)若用项t4代入x2会得到如下的公式,(∀x1)(A13(x1,f21(x2),x3)→A23(x1,f21(x2),x3)),在公式原x2的位置上并没有产生新的约束,所以t4对x2是自由的。
- (5)若用项t5代入x2会得到如下的公式,(∀x1)(A13(x1,f11(x1),x3)→A23(x1,f11(x1),x3)),导致公式原x2的位置产生了新的约束x1,因此项t5对x1是不自由的。