形式化8:谓词逻辑

谓词逻辑

命题逻辑较为简单高效,但是它的表述能力有限,它只能表述“全是”或者“全非”,而不是表示“部分是/非”,因此引入了谓词逻辑


语法

在这里插入图片描述

推导规则

Γ , x ⊢ P Γ ⊢ ∀ x . P ( ∀ I ) Γ ⊢ ∀ x . P Γ ⊢ P [ x ↦ E ] ( ∀ E ) Γ ⊢ P [ x ↦ E ] Γ ⊢ ∃ x . P ( ∃ I ) Γ ⊢ ∃ x . P Γ , x , P ⊢ Q Γ ⊢ Q ( ∃ E ) \begin{align} &\cfrac{\Gamma,x \vdash P}{\Gamma \vdash \forall x.P}(\forall I)& \qquad &\cfrac{\Gamma \vdash \forall x.P}{\Gamma \vdash P[x \mapsto E]}(\forall E)& \\ \\ &\cfrac{\Gamma \vdash P[x \mapsto E]}{\Gamma \vdash \exists x.P}(\exists I)& \qquad &\cfrac{\Gamma \vdash \exists x.P \quad \Gamma,x,P \vdash Q}{\Gamma \vdash Q}(\exists E)& \end{align} Γx.PΓ,xP(I)Γx.PΓP[xE](I)ΓP[xE]Γx.P(E)ΓQΓx.PΓ,x,PQ(E)

规则2中的 x ↦ E x \mapsto E xE是指将x替换为其子集,也就是说通过前提【对于所有的x都满足P】可以推出【对于x的子集都满足P】。
规则3同理。

例题
在这里插入图片描述
在这里插入图片描述

一些概念

  • 绑定变量(BoundVar):由谓词进行约束的变量
  • 自由变量(FreeVar):无谓词约束的变量
  • 绑定:将自由变量转换为绑定变量
  • 替换:将变量替换成表达式
  • 捕获:做变量替换时表达式中有变量与原作用域内变量重名
求绑定变量的集合

B ( c ) = ϕ   ( 常量没有绑定变量 ) B ( x ) = ϕ   ( 无谓词约束的变量不是绑定变量 ) B ( r ( E , . . . , E ) ) = ϕ   ( r 代表运算规则 ) B ( f ( E , . . . , E ) ) = ϕ   ( f 代表函数 ) B ( ⊤ ) = ϕ B ( ⊥ ) = ϕ B ( ¬ P ) = B ( P ) B ( P 1 ∧ P 2 ) = B ( P 1 ) ∪ B ( P 2 ) B ( P 1 ∨ P 2 ) = B ( P 1 ) ∪ B ( P 2 ) B ( P 1 → P 2 ) = B ( P 1 ) ∪ B ( P 2 ) B ( ∀ x . P ) = { x } ∪ B ( P )   ( x 显然是绑定变量 ) B ( ∃ x . P ) = { x } ∪ B ( P ) \begin{align} B(c)&=\phi\ (常量没有绑定变量)\\ B(x)&=\phi\ (无谓词约束的变量不是绑定变量)\\ B(r(E,...,E))&=\phi\ (r代表运算规则)\\ B(f(E,...,E))&=\phi\ (f代表函数)\\ B(\top) &= \phi \\ B(\bot) &= \phi \\ B(\neg P) &= B(P) \\ B(P1 \land P2) &= B(P1) \cup B(P2) \\ B(P1 \lor P2) &= B(P1) \cup B(P2) \\ B(P1 \to P2) &= B(P1) \cup B(P2) \\ B(\forall x.P) &= \{x\} \cup B(P)\ (x显然是绑定变量)\\ B(\exists x.P) &= \{x\} \cup B(P) \\ \end{align} B(c)B(x)B(r(E,...,E))B(f(E,...,E))B()B()B(¬P)B(P1P2)B(P1P2)B(P1P2)B(x.P)B(x.P)=ϕ (常量没有绑定变量)=ϕ (无谓词约束的变量不是绑定变量)=ϕ (r代表运算规则)=ϕ (f代表函数)=ϕ=ϕ=B(P)=B(P1)B(P2)=B(P1)B(P2)=B(P1)B(P2)={x}B(P) (x显然是绑定变量)={x}B(P)

例题
在这里插入图片描述

求自由变量的集合

F ( c ) = ϕ   ( 常量不属于变量 ) F ( x ) = { x }   ( 无谓词约束的变量是自由变量 ) F ( r ( E 1 , . . . , E n ) ) = F ( E 1 ) ∪ . . . ∪ F ( E n ) F ( f ( E 1 , . . . , E n ) ) = F ( E 1 ) ∪ . . . ∪ F ( E n ) F ( ⊤ ) = ϕ F ( ⊥ ) = ϕ F ( ¬ P ) = F ( P ) F ( P 1 ∧ P 2 ) = F ( P 1 ) ∪ F ( P 2 ) F ( P 1 ∨ P 2 ) = F ( P 1 ) ∪ F ( P 2 ) F ( P 1 → P 2 ) = F ( P 1 ) ∪ F ( P 2 ) F ( ∀ x . P ) = F ( P ) − { x } F ( ∃ x . P ) = F ( P ) − { x } \begin{align} F(c)&=\phi\ (常量不属于变量)\\ F(x)&=\{x\}\ (无谓词约束的变量是自由变量)\\ F(r(E1,...,En))&=F(E1) \cup ... \cup F(En)\\ F(f(E1,...,En))&=F(E1) \cup ... \cup F(En)\\ F(\top) &= \phi \\ F(\bot) &= \phi \\ F(\neg P) &= F(P) \\ F(P1 \land P2) &= F(P1) \cup F(P2) \\ F(P1 \lor P2) &= F(P1) \cup F(P2) \\ F(P1 \to P2) &= F(P1) \cup F(P2) \\ F(\forall x.P) &= F(P) -\{x\} \\ F(\exists x.P) &= F(P) -\{x\} \\ \end{align} F(c)F(x)F(r(E1,...,En))F(f(E1,...,En))F()F()F(¬P)F(P1P2)F(P1P2)F(P1P2)F(x.P)F(x.P)=ϕ (常量不属于变量)={x} (无谓词约束的变量是自由变量)=F(E1)...F(En)=F(E1)...F(En)=ϕ=ϕ=F(P)=F(P1)F(P2)=F(P1)F(P2)=F(P1)F(P2)=F(P){x}=F(P){x}

例题
在这里插入图片描述

替换

x [ x ↦ E ] = E y [ x ↦ E ] = y 且 x ≠ y r ( E 1 , . . . , E n ) [ x ↦ E ] = r ( E 1 [ x ↦ E ] , . . . , E n [ x ↦ E ] ) f ( E 1 , . . . , E n ) [ x ↦ E ] = f ( E 1 [ x ↦ E ] , . . . , E n [ x ↦ E ] ) ( P 1 ∧ P 2 ) [ x ↦ E ] = P 1 [ x ↦ E ] ∧ P 2 [ x ↦ E ] ( P 1 ∨ P 2 ) [ x ↦ E ] = P 1 [ x ↦ E ] ∨ P 2 [ x ↦ E ] ( P 1 → P 2 ) [ x ↦ E ] = P 1 [ x ↦ E ] → P 2 [ x ↦ E ] ( ∀ x . P ) [ x ↦ E ] = ∀ x . P   ( 绑定变量替换后结果不变 ) ( ∀ y . P ) [ x ↦ E ] = ( ∀ z . P [ y ↦ z ] ) [ x ↦ E ]   ( 对变量重命名避免捕获 ) ( ∃ x . P ) [ x ↦ E ] = ∃ x . P ( ∃ y . P ) [ x ↦ E ] = ( ∃ z . P [ y ↦ z ] ) [ x ↦ E ] \begin{align} x[x \mapsto E] &= E \\ y[x \mapsto E] &= y且x \ne y \\ r(E1,...,En)[x \mapsto E]&=r(E1[x \mapsto E],...,En[x \mapsto E])\\ f(E1,...,En)[x \mapsto E]&=f(E1[x \mapsto E],...,En[x \mapsto E])\\ (P1 \land P2)[x \mapsto E] &= P1[x \mapsto E] \land P2[x \mapsto E] \\ (P1 \lor P2)[x \mapsto E] &= P1[x \mapsto E] \lor P2[x \mapsto E] \\ (P1 \to P2)[x \mapsto E] &= P1[x \mapsto E] \to P2[x \mapsto E] \\ (\forall x.P)[x \mapsto E] &= \forall x.P\ (绑定变量替换后结果不变)\\ (\forall y.P)[x \mapsto E] &= (\forall z.P[y \mapsto z])[x \mapsto E]\ (对变量重命名避免捕获)\\ (\exists x.P)[x \mapsto E] &= \exists x.P \\ (\exists y.P)[x \mapsto E] &= (\exists z.P[y \mapsto z])[x \mapsto E] \end{align} x[xE]y[xE]r(E1,...,En)[xE]f(E1,...,En)[xE](P1P2)[xE](P1P2)[xE](P1P2)[xE](x.P)[xE](y.P)[xE](x.P)[xE](y.P)[xE]=E=yx=y=r(E1[xE],...,En[xE])=f(E1[xE],...,En[xE])=P1[xE]P2[xE]=P1[xE]P2[xE]=P1[xE]P2[xE]=x.P (绑定变量替换后结果不变)=(z.P[yz])[xE] (对变量重命名避免捕获)=x.P=(z.P[yz])[xE]

例题
在这里插入图片描述

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值