【面向计算机的数理逻辑/软件理论基础笔记】一阶谓词逻辑系统中一阶语言的符号、项、公式、变元

229 阅读5分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

一阶语言L\mathcal{L}的符号

  • 变元符号(变量符号)

    • 格式:x1,x2,...x_{1},x_{2},...
    • 含义:可以看作程序中的变量,或者表示每天的平均温度
  • 谓词符号

    • 格式:
      • A11,A21,...A_{1}^{1},A_{2}^{1},...
      • A12,A22,...A_{1}^{2},A_{2}^{2},...
      • ...
      • A1n,A2n,...A_{1}^{n},A_{2}^{n},...
    • 含义:谓词符号表示进行判断,结果为真或假,可以对一个变元进行判断,比如判断x1x_1的值是否为零,可以用A11(x1)A_1^1(x_1)表示;也可以对多个变元判断,比如判断x1+x2x_1+x_2是否大于x3x_3,可以用A21(x1,x2,x3)A_2^1(x_1,x_2,x_3)表示。
    • 谓词符号集用pp表示
  • 函数符号

    • 格式:
      • f11,f21,...f_{1}^{1},f_{2}^{1},...
      • f12,f22,...f_{1}^{2},f_{2}^{2},...
      • ....
      • f1n,f2n,...f_{1}^{n},f_{2}^{n},...
    • 含义:函数符号表示对数值进行处理,比如对x1x_1加一,可以用f11(x1)f_1^1(x_1)表示;
    • 函数符号集用F\mathcal{F}表示
  • 个体常元符号(常值符号)

    • 格式:a1,a2,...a_{1},a_{2},...
    • 含义:个体常元符号可以视为没有任何变元的函数符号,可以看作程序中的常量,或者表示天空的颜色是蓝色等含有
    • 常元符号集用CC表示
    • 因为常元可以看作0元函数,所以常元也叫零元函数
  • 连接符¬\neg \vee \wedge \to

  • 量词符,\forall,\exists

    (xi)A(\exist x_i)A等价于¬(xi)¬A\neg(\forall x_i)\neg A

  • 辅助符),(),(

  • 例题一:

    • 假设有一阶自然数语言Ln\mathcal{L}_n
      • 变元符:x1,x2,...x_{1},x_{2},...表示自然数变元
      • 个体常元符号:a1a_{1}表示自然数0
      • 谓词符号:
        • A11A_{1}^{1} 表示非零判断
        • A12A_{1}^{2} 表示相等判断
        • A11A_{1}^{1} 表示小于等于判断
        • A11A_{1}^{1} 表示大于等于判断
      • 函数符:
        • f11f_{1}^{1} 表示后继函数,比如x1x_{1}的后继函数是x1+1x_{1}+1
        • f12f_{1}^{2} 表示加法函数
        • f22f_{2}^{2} 表示乘法函数
    • 问题
      • 问题1:A11(f11(x1))A_{1}^{1}(f_{1}^{1}(x_1))的含义是什么?
      • 问题2:xy(A12(f11(x),y))\forall x\exist y(A_{1}^{2}(f_{1}^{1}(x),y))的含义是什么?
    • 答案:
      • 问题1答案:自然数x1x_1的后继不为 0,即x1+10x_{1}+1\neq 0
      • 问题2答案:任给自然数xx, 存在自然数yy, 使得x+1=yx + 1 = y

  • L\mathcal{L}中的项(用符号tt表示)由变元、个体常元和函数符构成:

    • 每个变元、个体常元都是项;
    • finf_i^nL\mathcal{L}nn元函数符号,t1,t2,...,tnt_{1},t_{2},...,t_{n}是项,则fin(t1,t2,...,tn)f_i^n(t_{1},t_{2},...,t_{n})是项;
    • L\mathcal{L}中的项均是由上面两种方式组成,由Backus Naur可以写成: t::=axfin(t1,t2,...,tn)t ::= a | x | f_i^n(t_{1},t_{2},...,t_{n}) 其中xx取遍每一个变元的集合varvaraa取遍F\mathcal{F}中的零元函数符号,ff取遍F\mathcal{F}中的元n>0n>0的符号
    • ::=::=是“被定义为”的意思
    • 用符号TL\mathcal{T}_{\mathcal{L}}表示一阶语言L\mathcal{L}的全体项之集
  • 闭项:不含变元的项。

    • 范例:一阶自然数语言LNf11(a),f12(f11(a),a),f22(f11(x1),f12(x2,x3))\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))都是项,而f11(a),f12(f11(a),a)f_1^1(a),f_1^2(f_1^1(a),a)不含变元,称为闭项。

项通常表示对象,可以作为句子的主语,也因为没有谓词,不能表示为命题

一阶语言L\mathcal{L}的公式

  • 定义:
    • PPP \in Pn1n \geqslant 1元的谓词符号,t1,t2,...,tnt_{1},t_{2},...,t_{n}F\mathcal{F}上的项,则P(t1,t2,...,tn)P(t_{1},t_{2},...,t_{n})是公式;
    • ϕ\phi是公式,则(¬ϕ)(\neg \phi)也是公式;
    • ϕ\phiψ\psi是公式,则ϕψ,ϕψ,ϕψ\phi \vee \psi,\phi \wedge \psi,\phi \to \psi也是公式;
    • ϕ\phi是公式,xx是变元,则(x ϕ)(\forall x \ \phi)(x ψ)(\exist x \ \psi)也是公式;
  • L\mathcal{L}的公式分为两种:
    • 原子公式(又叫做没有子公式的公式):
      • 定义:设AnA_nnn元谓词,t1,t2,...,tnt_{1},t_{2},...,t_{n}是项,Ain(t1,t2,...,tn)A_i^n(t_{1},t_{2},...,t_{n})称为原子公式。
      • 范例:LNA11(f11(x1),a),A22(f11(x1),f12(x2,x3))\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))
    • 合式公式(又称谓词公式):
      • 定义:(由BNF范式给出如下定义) A::=原子公式¬AAAAAAA(xi)A(xi)AA ::= 原子公式 | \neg A | A \vee A | A \wedge A | A \to A | (\forall x_i)A | (\exist x_i)A 因为(xi)A(\exist x_i)A可以简写为¬(xi)¬A\neg (\forall x_i)\neg A,所以L\mathcal{L}公式可以简写为: A::=原子公式¬AAA(xi)AA ::= 原子公式 | \neg A | A \to A | (\forall x_i)A

      • 范例:(x1)¬A12(f11(x1),f22(x1,x2)),(x1)(¬A21(x1,a)(x2)A21(x1,f11(x2)))(\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)))

    • F(L)\mathcal{F}({\mathcal{L}})表示全体公式集,包含所有可能的公式。以后讲到的很多定理中经常用到,某一个公式AA满足AF(L)A \in \mathcal{F}({\mathcal{L}}),表示AA可以是任何一个公式,再由此推出其他定理。
    • 任何原子公式都是合式公式。
  • 符号优先级约定:
    • ¬,y,y\neg,\forall y,\exist y优先级最高
    • 其次是,\vee,\wedge
    • 然后是右结合\to
  • 范例:
    • 将下面的语言翻译成谓词逻辑公式:我父亲的每个儿子都是我的兄弟。
    • 当我们将"父亲"看作一个谓词符号时:
      • 选择常量mm表示为"我",选择谓词集{S,F,B}\{S,F,B\},其中,S(x,y):xS(x,y):xyy的儿子,F(x,y):xF(x,y):xyy的兄弟,B(x,y):xB(x,y):xyy的父亲
      • 谓词逻辑公式为:xy(F(x,m)S(y,x)B(y,m))\forall x \forall y (F(x,m)\vee S(y,x)\to B(y,m))
      • 公式含义:对所有xxyy,若xxmm的父亲,yyxx的儿子,则yymm的兄弟
    • 当我们将"父亲"看作一个函数符号时:
      • mSBm、S、B与上面保持一致,用ff表示一个变元的函数,返回值是该变元的父亲,此时,因为父亲存在且唯一,所以ff确实是要给函数,而不仅仅是一个关系
      • 谓词逻辑公式为:x(S(x,f(m))B(x,m))\forall x (S(x,f(m)) \to B(x,m))
      • 公式含义:对所有的xx,若xxmm的父亲的儿子,则xxmm的兄弟

约束变元与自由变元

  • 定义:公式中出现(xi)A(\forall x_i)A或者(xi)A(\exist x_i)A时,AA叫做 xi\forall x_i或者xi\exist x_i的辖域, 此时AA中的变元xix_i称为AA的约束变元,不是约束变元的变元称为自由变元。
  • 例题二:
    • 问题:
      • 问题1:LN(x1)¬A12(f11(x1),f22(x1,x2))\mathcal{L}_{\mathcal{N}}:(\forall x_1)\neg A_1^2(f_1^1(x_1),f_2^2(x_1,x_2)),则公式中,有哪些变元以及他们出现的次数?
      • 问题2:LNA12(x1,a)(x1)A11(f11(x1),a)\mathcal{L}_{\mathcal{N}}:A_1^2(x_1,a) \wedge (\exist x_1) A_1^1(f_1^1(x_1),a)公式中,x1x_1每一次出现时,是什么变元?
    • 答案
      • 问题1答案:x1x_1是约束变元,约束出现3次;x2x_2是自由变元,出现1次。
      • 问题2答案:x1x_1出现3次,第1次是自由变元,后2次是约束变元。
  • 项的自由性
    • 定义:若ttAA中的xix_i的每一个自由出现代入都不会使得tt中的变元失去自由性,则项tt称为对公式A(xi)A(x_i)的自由变元xix_i是自由的。
    • 例如:公式(x1)(x2)(A21(x1,x2)A11(x2))(\forall x_1)(\forall x_2)(A_2^1(x_1, x_2) → A_1^1(x_2))中无自由变元,对于任何项tt(比如t=f21(x1,x2),t=f23(x1)t=f_2^1(x_1,x_2),t'=f_2^3(x_1))关于此公式中的x1,x2x_1, x_2都是自由的,这就叫做项的自由性。
    • 例题三:
      • 问题:
        • 公式(x1)(A13(x1,x2,x3)A23(x1,x2,x3))(\forall x_1)(A_1^3(x_1, x_2, x_3) \to A_2^3(x_1, x_2, x_3))
          • (1)t1=f12(x1,x2)t_1= f_1^2(x_1,x_2),项t1t_1x2x_2是否是自由的?
          • (2)t2=f12(x1,x2)t_2 = f_1^2(x_1,x_2),项t2t_2x3x_3是否是自由的?
          • (3)t3=f22(x1)t_3 = f_2^2(x_1),项t3t_3x1x_1是否是自由的?
          • (4)t4=f21(x2)t_4 = f_2^1(x_2),项t4t_4x2x_2是否是自由的?
          • (5)t5=f11(x1)t_5 = f_1^1(x_1),项t5t_5x2x_2是否是自由的?
      • 答案:
        • 公式内具有自由变元x2,x3x_2,x_3,约束变元x3x_3
          • (1)若用项t1t_1代入x2x_2会得到如下的公式,(x1)(A13(x1,f12(x1,x2),x3)A23(x1,f12(x1,x2),x3))(\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)),导致公式原x2x_2的位置产生了新的约束x1x_1,因此项t1t_1x2x_2是不自由的。
          • (2)若用项t2t_2代入x3x_3会得到如下的公式,(x1)(x1,x2,f12(x1,x2))A23(x1,x2,f12(x1,x2)))(\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))),导致公式原x3x_3的位置产生了新的约束x1x_1,因此项t2t_2x3x_3是不自由的。
          • (3)若用项t3t_3代入x1x_1会得到如下的公式,(x1)(A13(f12(x1),x2,x3)A23(f12(x1),x2,x3))(\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)),在公式原x1x_1的位置上并没有产生新的约束,所以t3t_3x1x_1是自由的。
          • (4)若用项t4t_4代入x2x_2会得到如下的公式,(x1)(A13(x1,f21(x2),x3)A23(x1,f21(x2),x3))(\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)),在公式原x2x_2的位置上并没有产生新的约束,所以t4t_4x2x_2是自由的。
          • (5)若用项t5t_5代入x2x_2会得到如下的公式,(x1)(A13(x1,f11(x1),x3)A23(x1,f11(x1),x3))(\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)),导致公式原x2x_2的位置产生了新的约束x1x_1,因此项t5t_5x1x_1是不自由的。