【学习笔记】面向计算机科学的数理逻辑:系统建模与推理 (C2谓词逻辑)

Chapter 2 谓词逻辑

谓词逻辑(predicate logic)也称一阶逻辑(first-order logic),可以处理命题内部的逻辑结构,以及包含全称量词和存在量词的逻辑关系。
变量是实际值的一个占位符(place holder)

作为形式语言的谓词逻辑

谓词词汇由两个集合组成:谓词符号集 P \mathcal{P} P,函数符号集 F \mathcal{F} F,常值看作零元函数nullary。

(terms):表示对象。定义:

  • 任何变量都是项。
  • c ∈ F c \in \mathcal{F} cF是零元函数,则c是项。
  • t 1 , t 2 , … , t n t_1,t_2,\dots,t_n t1,t2,,tn是项,且 f ∈ F f\in\mathcal{F} fF的元 n > 0 n>0 n>0,则 f ( t 1 , t 2 , … , t n ) f(t_1,t_2,\dots,t_n) f(t1,t2,,tn)是项。
  • 没有其他类型的项。
    BN范式: t : : = x   ∣   c   ∣   f ( t 1 , t 2 , … , t n ) t::=x \ | \ c \ | \ f(t_1,t_2,\dots,t_n) t::=x  c  f(t1,t2,,tn),其中 x x x取遍变量集合var c c c取遍 F \mathcal{F} F中的零元函数符号, f f f取遍 F \mathcal{F} F中的 n > 0 n>0 n>0的符号。

公式:表示真值。在 ( F , P ) (\mathcal{F}, \mathcal{P}) (F,P)定义:

  • P ∈ P P\in\mathcal{P} PP n ≥ 1 n\ge 1 n1元的谓词符号, t 1 , t 2 , … , t n t_1,t_2,\dots,t_n t1,t2,,tn F \mathcal{F} F上的项,则 P ( t 1 , t 2 , … , t n ) P(t_1,t_2,\dots,t_n) P(t1,t2,,tn)是公式。
  • ϕ , ψ \phi, \psi ϕ,ψ是公式,则 ( ¬ ϕ ) , ( ϕ ∧ ψ ) , ( ϕ ∨ ψ ) , ( ϕ → ψ ) (\neg \phi), (\phi \land \psi), (\phi\lor\psi), (\phi\to\psi) (¬ϕ),(ϕψ),(ϕψ),(ϕψ)也是公式。
  • ϕ \phi ϕ是公式, x x x是变量,则 ( ∀ x ϕ ) , ( ∃ x ϕ ) (\forall x \phi), (\exists x \phi) (xϕ),(xϕ)也是公式。
  • 没有其他形式的公式。
    在这里插入图片描述

自由变量和约束变量 ϕ \phi ϕ是谓词逻辑中的公式。称 x x x ϕ \phi ϕ中的一次出现是自由的,如果 x x x ϕ \phi ϕ的语法分析树中的一个叶结点,而且不存在从结点 x x x ∀ x \forall x x ∃ x \exists x x的向上路径。否则,称 x x x的出现是约束的。对 ∀ x \forall x x ∃ x \exists x x,我们称除去 ϕ \phi ϕ的任何形如 ∀ x \forall x x ∃ x \exists x x的子公式的 ϕ \phi ϕ分别是 ∀ x \forall x x ∃ x \exists x x的作用范围。

变量代换 给定变量 x x x、项 t t t、和公式 ϕ \phi ϕ,定义 ϕ [ t / x ] \phi[t/x] ϕ[t/x]为用 t t t代替 ϕ \phi ϕ中变量 x x x的每个自由出现而得到的公式。

给定变量 x x x、项 t t t、和公式 ϕ \phi ϕ,说 t t t关于 ϕ \phi ϕ中的 x x x是自由的,如果对出现在 t t t中的任何变量 y y y ϕ \phi ϕ中没有自由的叶结点 x x x处于 ∀ y \forall y y ∃ y \exists y y的作用范围之内。

谓词逻辑的证明论

自然演绎规则

约定: ϕ [ t / x ] \phi[t/x] ϕ[t/x]总假定 t t t ϕ \phi ϕ x x x是自由的。
在命题逻辑自然演绎基础上加上:

相等的证明规则
t = t = i , t 1 = t 2 ϕ [ t 1 / x ] ϕ [ t 2 / x ] = e \frac{}{t=t}=i, \qquad \frac{t_1=t_2 \quad \phi[t_1/x]}{\phi[t_2/x]}=e t=t=i,ϕ[t2/x]t1=t2ϕ[t1/x]=e

全称量词的证明规则
[ x 0 ⋮ ϕ [ x 0 / x ] ] ∀ x ϕ ∀ x i , ∀ x ϕ ϕ [ t / x ] ∀ x e \frac{\left[ \begin{array}{c} x_0 & \\ & \vdots\\ & \phi[x_0/x] \end{array}\right]}{\forall x\phi}\forall xi, \qquad \frac{\forall x\phi}{\phi[t/x]}\forall xe xϕx0ϕ[x0/x]xi,ϕ[t/x]xϕxe

存在量词的证明规则
ϕ [ t / x ] ∃ x ϕ ∃ x i , ∃ x ϕ   [ x 0 ϕ [ x 0 / x ] ⋮ χ ] χ ∃ x e \frac{\phi[t/x]}{\exists x\phi}\exists xi, \qquad \frac{\exists x\phi \ \left[ \begin{array}{c} x_0 & \phi[x_0/x] \\ & \vdots\\ & \chi \end{array}\right]}{\chi}\exists xe xϕϕ[t/x]xi,χxϕ x0ϕ[x0/x]χxe

量词等价(假设 x x x ψ \psi ψ中是不自由的):

¬ ∀ x ϕ ⊣ ⊢ ∃ x ¬ ϕ ¬ ∃ x ϕ ⊣ ⊢ ∀ x ¬ ϕ \neg\forall x\phi\dashv\vdash\exists x\neg\phi\qquad\neg\exists x\phi\dashv\vdash\forall x\neg\phi ¬xϕx¬ϕ¬xϕx¬ϕ
∀ x ϕ ∧ ψ ⊣ ⊢ ∀ x ( ϕ ∧ ψ ) ∀ x ϕ ∨ ψ ⊣ ⊢ ∀ x ( ϕ ∨ ψ ) \forall x\phi\land\psi\dashv\vdash\forall x(\phi\land\psi)\qquad\forall x\phi\lor\psi\dashv\vdash\forall x(\phi\lor\psi) xϕψx(ϕψ)xϕψx(ϕψ)
∃ x ϕ ∧ ψ ⊣ ⊢ ∃ x ( ϕ ∧ ψ ) ∃ x ϕ ∨ ψ ⊣ ⊢ ∃ x ( ϕ ∨ ψ ) \exists x\phi\land\psi\dashv\vdash\exists x(\phi\land\psi)\qquad\exists x\phi\lor\psi\dashv\vdash\exists x(\phi\lor\psi) xϕψx(ϕψ)xϕψx(ϕψ)
∀ x ( ψ → ϕ ) ⊣ ⊢ ψ → ∀ x ϕ ∃ x ( ψ → ϕ ) ⊣ ⊢ ψ → ∃ x ϕ \forall x (\psi\to\phi)\dashv\vdash\psi\to\forall x\phi\qquad\exists x (\psi\to\phi)\dashv\vdash\psi\to\exists x\phi x(ψϕ)ψxϕx(ψϕ)ψxϕ
∃ x ( ϕ → ψ ) ⊣ ⊢ ∀ x ϕ → ψ ∀ x ( ϕ → ψ ) ⊣ ⊢ ∃ x ϕ → ψ \exists x (\phi\to\psi)\dashv\vdash\forall x\phi\to\psi\qquad\forall x (\phi\to\psi)\dashv\vdash\exists x\phi\to\psi x(ϕψ)xϕψx(ϕψ)xϕψ
∀ x ϕ ∧ ∀ x ψ ⊣ ⊢ ∀ x ( ϕ ∧ ψ ) ∃ x ϕ ∨ ∀ x ψ ⊣ ⊢ ∃ x ( ϕ ∨ ψ ) \forall x \phi\land\forall x\psi\dashv\vdash\forall x(\phi\land\psi)\qquad\exists x \phi\lor\forall x\psi\dashv\vdash\exists x(\phi\lor\psi) xϕxψx(ϕψ)xϕxψx(ϕψ)
∀ x ∀ y ϕ ⊣ ⊢ ∀ y ∀ x ϕ ∃ x ∃ y ϕ ⊣ ⊢ ∃ y ∃ x ϕ \forall x\forall y\phi\dashv\vdash\forall y\forall x\phi\qquad\exists x\exists y\phi\dashv\vdash\exists y\exists x\phi xyϕyxϕxyϕyxϕ

谓词逻辑的语义

模型 假设 F \mathcal{F} F是函数符号的集合, P \mathcal{P} P是谓词符号的集合,每个符号所需要的变量个数是固定的。符号对 ( F , P ) (\mathcal{F}, \mathcal{P}) (F,P)的一个模型 M \mathcal{M} M由下面的数据集合组成∶

  1. 非空集 A A A是具体值的全集;
  2. 对每个零元函数 f ∈ F f\in \mathcal{F} fF,A 中的一个具体元素 f M f^\mathcal{M} fM;
  3. 对每个元数为 n > 0 n>0 n>0 f ∈ F f\in \mathcal{F} fF,从集合 A A A n n n元集合 A n A^n An A A A的具体函数 f M : A n → A f^\mathcal{M}:A^n\to A fM:AnA;
  4. 对每个 n > 0 n>0 n>0元谓词 P ∈ P P\in \mathcal{P} PP A A A n n n元子集 P M ⊆ A n P^\mathcal{M}\subseteq A^n PMAn

环境 从变量集var到相关模型中值的论域集合 A A A的函数 l : v a r → A l:\mathbf{var}\to A l:varA。对这样的 l l l,用 l [ x ↦ a ] l[x\mapsto a] l[xa]表示将 x x x映到 a a a并且将其他变量 y y y映到 l ( y ) l(y) l(y)的查询表。

给定关于对 ( F , P ) (\mathcal{F}, \mathcal{P}) (F,P)的模型 M \mathcal{M} M和环境 l l l,对于 ( F , P ) (\mathcal{F}, \mathcal{P}) (F,P)上每个逻辑公式 ϕ \phi ϕ,通过对 ϕ \phi ϕ的结构归纳定义一个满足关系 M ⊨ l ϕ \mathcal{M}\models_l\phi Mlϕ。若 M ⊨ l ϕ \mathcal{M}\models_l\phi Mlϕ成立,则称在模型 M \mathcal{M} M中,相对于环境 l l l ϕ \phi ϕ的赋值为T。

P P P∶如果 ϕ \phi ϕ的形式为 P ( t 1 , t 2 , … , t n ) P(t_1, t_2,\dots,t_n) P(t1,t2,,tn),则在集合 A A A中将 t 1 , t 2 , … , t n t_1, t_2,\dots,t_n t1,t2,,tn解释为:把所有变量根据 l l l的值代替。用这种方式,对每项(通过 f ∈ F f\in \mathcal{F} fF)计算 a 1 , a 2 , … , a n a_1, a_2, \dots, a_n a1,a2,,an的值,其中任何函数符号 f ∈ F f\in \mathcal{F} fF通过 f M f^\mathcal{M} fM来0+解释。现在 M ⊨ l P ( t 1 , t 2 , … , t n ) \mathcal{M}\models_l P(t_1, t_2,\dots,t_n) MlP(t1,t2,,tn)成立当且仅当 ( a 1 , a 2 , … , a n ) ∈ P M (a_1, a_2, \dots, a_n)\in P^\mathcal{M} (a1,a2,,an)PM
∀ x \forall x x∶ 关系 M ⊨ l ∀ x ψ \mathcal{M}\models_l \forall x\psi Mlxψ成立当且仅当 M ⊨ l [ x ↦ a ] ψ \mathcal{M}\models_{l[x\mapsto a]}\psi Ml[xa]ψ对所有 a ∈ A a\in A aA都成立。
∃ x \exists x x∶ 对偶地, M ⊨ l ∃ x ψ \mathcal{M}\models_l \exists x\psi Mlxψ成立当且仅当 M ⊨ l [ x ↦ a ] ψ \mathcal{M}\models_{l[x\mapsto a]}\psi Ml[xa]ψ对某个 a ∈ A a\in A aA成立。
¬ \neg ¬∶ 关系 M ⊨ l ¬ ψ \mathcal{M}\models_l \neg\psi Ml¬ψ成立当且仅当 M ⊨ l ψ \mathcal{M}\models_l\psi Mlψ不成立。
∨ \lor ∶ 关系 M ⊨ l ψ 1 ∨ ψ 2 \mathcal{M}\models_l \psi_1\lor \psi_2 Mlψ1ψ2成立当且仅当 M ⊨ l ψ 1 \mathcal{M}\models_l\psi_1 Mlψ1成立或 M ⊨ l ψ 2 \mathcal{M}\models_l\psi_2 Mlψ2成立。
∧ \land ∶关系 M ⊨ l ψ 1 ∧ ψ 2 \mathcal{M}\models_l \psi_1\land \psi_2 Mlψ1ψ2成立当且仅当 M ⊨ l ψ 1 \mathcal{M}\models_l\psi_1 Mlψ1 M ⊨ l ψ 2 \mathcal{M}\models_l\psi_2 Mlψ2都成立。
→ \to ∶ 关系 M ⊨ l ψ 1 → ψ 2 \mathcal{M}\models_l \psi_1\to\psi_2 Mlψ1ψ2成立当且仅当只要 M ⊨ l ψ 1 \mathcal{M}\models_l\psi_1 Mlψ1成立,则 M ⊨ l ψ 2 \mathcal{M}\models_l\psi_2 Mlψ2成立。

语义推导
Γ \Gamma Γ是谓词逻辑中的公式集合(可能是无限集合), ψ \psi ψ是谓词逻辑公式。

  1. 语义推导 Γ ⊨ ψ \Gamma\vDash\psi Γψ成立当且仅当对所有的模型 M \mathcal{M} M和查询表 l l l,对所有的 ϕ ∈ Γ \phi\in\Gamma ϕΓ M ⊨ l ϕ \mathcal{M}\models_l \phi Mlϕ都成立,则 M ⊨ l ψ \mathcal{M}\models_l \psi Mlψ也成立。
  2. 公式 ψ \psi ψ可满足的当且仅当存在某个模型 M \mathcal{M} M和环境 l l l,使得 M ⊨ l ψ \mathcal{M}\models_l \psi Mlψ成立。
  3. 公式ψ是有效的当且仅当在我们能够检测 ψ \psi ψ的所有模型 M \mathcal{M} M和环境 l l l中, M ⊨ l ψ \mathcal{M}\models_l \psi Mlψ成立。
  4. 集合 Γ \Gamma Γ一致的可满足的当且仅当存在一个模型 M \mathcal{M} M和一个环境 l l l,使得对所有的公式 ϕ ∈ Γ \phi\in\Gamma ϕΓ M ⊨ l ψ \mathcal{M}\models_l \psi Mlψ成立。

谓词逻辑的不可判定性

定理:谓词逻辑中有效性判定问题是不可判定的:不存在对任意给定的 ϕ \phi ϕ,判定 ⊨ ϕ \vDash\phi ϕ是否成立的程序。

(A. Church):
(此处与原书稍有符号上和语句上的不同,是笔者对照英文原版并加入了自己的解释,更方便理解。读罢此证明,感觉丘奇大神之智慧精妙如斯,令人叹服。)

方法:问题归约法。选择另一个不可解问题,用当前问题的可解性推出被选择问题的可解性。
引理:波斯特对应问题不可解。波斯特对应问题:已知有限序列对 ( s 1 , t 1 ) , ( s 2 , t 2 ) , … , ( s k , t k ) (s_1,t_1), (s_2, t_2), \dots, (s_k, t_k) (s1,t1),(s2,t2),,(sk,tk),其中所有的 s i , t i s_i, t_i si,ti都是正长度的二进制字符串。是否存在下标序列 i 1 , i 2 , … , i n ( n ≥ 1 ) i_1, i_2, \dots, i_n(n\ge1) i1,i2,,in(n1),使得字符串的串联 s i 1 s i 2 … s i m s_{i1}s_{i2}\dots s_{im} si1si2sim等于 t i 1 t i 2 … t i m t_{i1}t_{i2}\dots t_{im} ti1ti2tim?

原定理证明

假设谓词逻辑有效性可判定。求解波斯特对应问题。已知对应问题的实例 C C C s 1 s 2 … s k , t 1 t 2 … t k s_{1}s_{2}\dots s_{k}, t_{1}t_{2}\dots t_{k} s1s2sk,t1t2tk。需要在有限的时空里构建对所有实例都一致的谓词逻辑公式 ϕ \phi ϕ,使得 ⊨ ϕ \vDash \phi ϕ成立,当且仅当波斯特对应问题 C C C有一个解。
构造公式(这里是整个证明的核心,公式不好理解的话在必要性那里有解释):
选择一个常量 e e e,以及两个需要一个自变量的函数符号 f 0 f_0 f0 f 1 f_1 f1。把 e e e视为空位符串或空字, f 0 f_0 f0 f 1 f_1 f1分别代表与0和1拼接。若 b 1 b 2 … b l b_1b_2\dots b_l b1b2bl是二进制位的字符串,将它编码为项 f b l ( f b l − 1 … ( f b 2 ( f b 1 ( e ) ) ) …   ) f_{b_l}(f_{b_{l-1}}\dots(f_{b_2}(f_{b_1}(e)))\dots) fbl(fbl1(fb2(fb1(e)))),简记为 f b 1 b 2 … b l ( e ) f_{b_1b_2\dots b_l}(e) fb1b2bl(e)
谓词符号 P ( v , w ) P(v, w) P(v,w)表示存在某个下标序列 ( i 1 , i 2 , … , i m ) (i_1, i_2, \dots, i_m) (i1,i2,,im),使得 v v v是由 s i 1 s i 2 … s i m s_{i_1}s_{i_2}\dots s_{i_m} si1si2sim表示的项, w w w是由 t i 1 t i 2 … t i m t_{i_1}t_{i_2}\dots t_{i_m} ti1ti2tim表示的项。 v v v w w w使用同样的下标序列构造出一个串;只是 v v v使用 s i s_i si w w w使用 t i t_i ti
语句 ϕ \phi ϕ有结构: ϕ 1 ∧ ϕ 2 → ϕ 3 \phi_1\land\phi_2\to\phi_3 ϕ1ϕ2ϕ3,其中,设 ϕ 1 = def ⋀ i = 1 k P ( f s i ( e ) , f t i ( e ) ) ϕ 2 = def ∀ v ∀ w ( P ( v , w ) → ⋀ i = 1 k P ( f s i ( v ) , f t i ( w ) ) ) ϕ 3 = def ∃ z P ( z , z ) \phi_1\overset{\text{def}}{=}\bigwedge_{i=1}^kP(f_{s_i}(e), f_{t_i}(e))\\ \phi_2\overset{\text{def}}{=}\forall v\forall w \left( P(v, w) \to \bigwedge_{i=1}^kP(f_{s_i}(v), f_{t_i}(w)) \right)\\ \phi_3\overset{\text{def}}{=}\exists z P(z, z) ϕ1=defi=1kP(fsi(e),fti(e))ϕ2=defvw(P(v,w)i=1kP(fsi(v),fti(w)))ϕ3=defzP(z,z)论断 ⊨ ϕ \vDash \phi ϕ成立,当且仅当波斯特对应问题 C C C有解。
构造完毕。

必要性:
建立公式 ϕ \phi ϕ的模型:
A A A是所有有限二进制串的集合。 e M = ε , f 0 M ( s ) = def s 0 , f 1 M ( s ) = def s 1 e^\mathcal{M}=\varepsilon, f_0^\mathcal{M}(s)\overset{\text{def}}{=}s0, f_1^\mathcal{M}(s)\overset{\text{def}}{=}s1 eM=ε,f0M(s)=defs0,f1M(s)=defs1
P M = def { ( v , w ) ∣ ∃ ( i 1 , i 2 , … , i m )  s.t.  v = s i 1 s i 2 … s i m , w = t i 1 t i 2 … t i m } P^\mathcal{M}\overset{\text{def}}{=}\{(v, w) | \exists (i_1, i_2, \dots, i_m) \text{ s.t. } v=s_{i_1}s_{i_2}\dots s_{i_m}, w=t_{i_1}t_{i_2}\dots t_{i_m}\} PM=def{(v,w)(i1,i2,,im) s.t. v=si1si2sim,w=ti1ti2tim}
ϕ \phi ϕ的含义解释:
ϕ 1 \phi_1 ϕ1:在 i = 1 … k i=1\dots k i=1k时都有 ( s i , t i ) ∈ P M (s_i, t_i)\in P^\mathcal{M} (si,ti)PM。(下标序列是 ( i ) (i) (i),所以命题恒真,有 M ⊨ ϕ 1 \mathcal{M}\vDash\phi_1 Mϕ1。)
ϕ 2 \phi_2 ϕ2:只要 ( v , w ) ∈ P M (v, w)\in P^\mathcal{M} (v,w)PM,则对 i = 1 … k i=1\dots k i=1k时都有 ( v s i , w t i ) ∈ P M (vs_i, wt_i)\in P^\mathcal{M} (vsi,wti)PM。(下标序列是 ( i 1 , i 2 , … , i m , i ) (i_1, i_2, \dots, i_m, i) (i1,i2,,im,i),所以有 M ⊨ ϕ 2 \mathcal{M}\vDash\phi_2 Mϕ2。)
ϕ 3 \phi_3 ϕ3:存在一个串 z z z和某个下标序列,既能表示成 s i 1 s i 2 … s i m s_{i_1}s_{i_2}\dots s_{i_m} si1si2sim,又能表示成 t i 1 t i 2 … t i m t_{i_1}t_{i_2}\dots t_{i_m} ti1ti2tim,即波斯特对应问题有一个解 z z z
由假设 M ⊨ ϕ 1 ∧ ϕ 2 → ϕ 3 \mathcal{M}\vDash\phi_1\land\phi_2\to\phi_3 Mϕ1ϕ2ϕ3,又因为 M ⊨ ϕ 1 ∧ ϕ 2 \mathcal{M}\vDash\phi_1\land\phi_2 Mϕ1ϕ2,所以 M ⊨ ϕ 3 \mathcal{M}\vDash\phi_3 Mϕ3,即问题 C C C有解。

充分性:
设问题 C C C有解 ( i 1 , i 2 , … , i n ) (i_1, i_2, \dots, i_n) (i1,i2,,in),需证明:若 M ′ \mathcal{M}' M是含有常量 e M ′ e^{\mathcal{M}'} eM、两个一元函数 f 0 M ′ , f 1 M ′ f_0^{\mathcal{M}'}, f_1^{\mathcal{M}'} f0M,f1M,以及二元谓词 P M ′ P^{\mathcal{M}'} PM的任意模型,则它必满足 ϕ \phi ϕ。有三种可能性:(简单情况) M ′ ⊭ ϕ 1 , M ′ ⊭ ϕ 2 \mathcal{M}'\nvDash\phi_1, \mathcal{M}'\nvDash\phi_2 Mϕ1,Mϕ2或(复杂情况)在 M ′ ⊨ ϕ 1 ∧ ϕ 2 \mathcal{M}'\vDash\phi_1\land\phi_2 Mϕ1ϕ2情形下证明 M ′ ⊭ ϕ 3 \mathcal{M}'\nvDash\phi_3 Mϕ3
使用在有限二进制串数据结构递归定义的解释函数 interpret \textbf{interpret} interpret
interpret ( ε ) = def e M ′ interpret ( s 0 ) = def f 0 M ′ ( interpret ( s ) ) interpret ( s 1 ) = def f 1 M ′ ( interpret ( s ) ) \textbf{interpret}(\varepsilon)\overset{\text{def}}{=}e^{\mathcal{M}'}\\ \textbf{interpret}(s0)\overset{\text{def}}{=}f_0^{\mathcal{M}'}(\textbf{interpret}(s))\\ \textbf{interpret}(s1)\overset{\text{def}}{=}f_1^{\mathcal{M}'}(\textbf{interpret}(s)) interpret(ε)=defeMinterpret(s0)=deff0M(interpret(s))interpret(s1)=deff1M(interpret(s)) M ′ ⊨ ϕ 1 \mathcal{M}'\vDash\phi_1 Mϕ1知对 i = 1 … k i=1\dots k i=1k ( interpret ( s i ) , interpret ( t i ) ) ∈ P M ′ (\textbf{interpret}(s_i), \textbf{interpret}(t_i))\in P^{\mathcal{M}'} (interpret(si),interpret(ti))PM
M ′ ⊨ ϕ 2 \mathcal{M}'\vDash\phi_2 Mϕ2知对所有 ( v , w ) ∈ P M ′ (v, w)\in P^{\mathcal{M}'} (v,w)PM i = 1 … k i=1\dots k i=1k ( interpret ( v s i ) , interpret ( w t i ) ) ∈ P M ′ (\textbf{interpret}(vs_i), \textbf{interpret}(wt_i))\in P^{\mathcal{M}'} (interpret(vsi),interpret(wti))PM
( s , t ) = ( s i 1 , t i 1 ) (s, t)=(s_{i_1}, t_{i_1}) (s,t)=(si1,ti1)开始,反复使用第二个事实得
( interpret ( s i 1 s i 2 … s i n ) , interpret ( t i 1 t i 2 … t i n ) ) ∈ P M ′ (\textbf{interpret}(s_{i_1}s_{i_2}\dots s_{i_n}), \textbf{interpret}(t_{i_1}t_{i_2}\dots t_{i_n}))\in P^{\mathcal{M}'} (interpret(si1si2sin),interpret(ti1ti2tin))PM因为 s i 1 s i 2 … s i n s_{i_1}s_{i_2}\dots s_{i_n} si1si2sin t i 1 t i 2 … t i n t_{i_1}t_{i_2}\dots t_{i_n} ti1ti2tin一起形成了 C C C的一个解,所以它们是相等的。因此 interpret ( s i 1 s i 2 … s i n \textbf{interpret}(s_{i_1}s_{i_2}\dots s_{i_n} interpret(si1si2sin interpret ( t i 1 t i 2 … t i n ) ) \textbf{interpret}(t_{i_1}t_{i_2}\dots t_{i_n})) interpret(ti1ti2tin)) A ′ A' A中的相同元素,因为相同内容的解释带来相同的结果。所以在 M ′ \mathcal{M}' M ∃ z P ( z , z ) \exists z P(z, z) zP(z,z)

证毕。

谓词逻辑的表达能力

软件模型、设计标准和硬件或程序的执行模型经常通过有向图来描述。这样的模型 M \mathcal{M} M就是定义在具体“状态”集合 A A A上的二元谓词 R R R的解释。

例:给定状态集合 A = { s 0 , s 1 , s 2 , s 3 } A=\{s_0, s_1, s_2, s_3\} A={s0,s1,s2,s3},令 R M R^\mathcal{M} RM是集合 { ( s 0 , s 1 ) , ( s 1 , s 0 ) , ( s 1 , s 1 ) , ( s 1 , s 2 ) , ( s 2 , s 0 ) , ( s 3 , s 0 ) , ( s 3 , s 2 ) } \{(s_0, s_1), (s_1, s_0), (s_1, s_1), (s_1, s_2), (s_2, s_0), (s_3, s_0), (s_3, s_2)\} {(s0,s1),(s1,s0),(s1,s1),(s1,s2),(s2,s0),(s3,s0),(s3,s2)}。用有向图描述这个模型,当且仅当 ( s , s ′ ) ∈ R M (s, s')\in R^\mathcal{M} (s,s)RM,存在一条从结点 s s s,到结点 s ′ s' s的边。在这种情形下,通常记作 s → s ′ s\to s' ss
在这里插入图片描述
紧致性定理 Γ \Gamma Γ是谓词逻辑的一个语句集合。若 Γ \Gamma Γ的所有有限子集都是可满足的,则 Γ \Gamma Γ也是可满足的。

: 用反证法证明∶ 假设 Γ \Gamma Γ是不可满足的,那么语义推导 Γ ⊨ ⊥ \Gamma \vDash\bot Γ成立,因为没有模型使所有的 ϕ ∈ Γ \phi\in\Gamma ϕΓ都为真。由完备性,这意味着矢列 Γ ⊢ ⊥ \Gamma \vdash\bot Γ是有效的。(注意,这里用到了关于矢列的更一般的概念,可以处理无限多个前提。合理性和完备性依然为真。)因此,在自然演绎中,这个矢列有一个证明; 只能是上下文的一个有限片段,只能使用 Γ \Gamma Γ中有限个前提集合 Δ \Delta Δ。但是 Δ ⊢ ⊥ \Delta \vdash\bot Δ也是有效的,因此,由合理性,有 Δ ⊨ ⊥ \Delta \vDash\bot Δ。但是后者与 Γ \Gamma Γ的所有有限子集都是可满足的矛盾。

Löwenheim-Skolem 定理 ψ \psi ψ是谓词逻辑的一个语句,对任何自然数 n ≥ 1 n\ge1 n1,存在 ψ \psi ψ的至少有 n n n个元素的模型。则 ψ \psi ψ有无限个元素的模型。

证明 公式 ϕ n ) = def ∃ x 1 ∃ x 2 … ∃ x n ∧ 1 ≤ i < j ≤ n ¬ ( x i = x j ) \phi_n)\overset{\text{def}}{=}\exists x_1\exists x_2\dots\exists x_n\land_{1\le i<j\le n}\neg(x_i=x_j) ϕn)=defx1x2xn1i<jn¬(xi=xj)说明至少有 n n n个元素。考虑语句集合 Γ = def { ψ } ∪ { ϕ n ∣ n ≥ 1 } \Gamma\overset{\text{def}}{=}\{\psi\}\cup\{\phi_n|n\ge 1\} Γ=def{ψ}{ϕnn1},并设 Δ \Delta Δ是其任意一个有限子集。设 k ≥ 1 k\ge 1 k1满足∶对所有使 ϕ ∈ Δ \phi\in\Delta ϕΔ n n n n ≤ k n\le k nk。因为后一个集合是有限的,所以 k k k必然存在。由假设, { ψ , ϕ k } \{\psi, \phi_k\} {ψ,ϕk}是可满足的;但对所有 n ≤ k n\le k nk ϕ k → ϕ n \phi_k\to\phi_n ϕkϕn是有效的(为什么?)。因此, Δ \Delta Δ也是可满足的。紧致性定理蕴涵:某个模型 M \mathcal{M} M满足 Γ \Gamma Γ;特别地, M ⊨ ψ \mathcal{M}\vDash\psi Mψ成立。因为对所有 n ≥ 1 n\ge1 n1 M \mathcal{M} M满足 ϕ n \phi_n ϕn,所以 M \mathcal{M} M不可能只有有限个元素。

可达性:给定有向图中的结点 n n n n ′ n' n,是否存在从 n n n n ′ n' n的有限长度的迁移路径?

可达性用谓词逻辑是不可表达的∶ 不存在仅以 u u u v v v为自由变量且仅有一个二元谓词符号 R R R的谓词逻辑公式 ϕ \phi ϕ,使得 ϕ \phi ϕ在有向图中成立当且仅当该有向图中存在一条从伴随 u u u的结点到伴随 v v v的结点的路径。

:假设存在一个公式 ϕ \phi ϕ,满足存在一条从与 u u u相伴的结点到与 v v v相伴的结点的路径。设 c c c c ′ c' c是常量,设 ϕ n \phi_n ϕn是公式,表达存在一条从 c c c c ′ c' c的长度为 n n n的路径:我们定义 ϕ 0 \phi_0 ϕ0 c = c ′ c=c' c=c ϕ 1 \phi_1 ϕ1 R ( c , c ′ ) R(c, c') R(c,c),且对 n > 1 n>1 n>1,定义 ϕ n = def ∃ x 1 ∃ x 2 … ∃ x n − 1 ( R ( c , x 1 ) ∧ R ( x 1 , x 2 ) ∧ ⋯ ∧ R ( x n − 1 , c ′ ) ) \phi_n\overset{\text{def}}{=}\exists x_1\exists x_2\dots\exists x_{n-1}(R(c, x_1)\land R(x_1, x_2)\land\dots\land R(x_{n-1}, c')) ϕn=defx1x2xn1(R(c,x1)R(x1,x2)R(xn1,c)) Δ = { ¬ ϕ i ∣ i ≥ 0 } ∪ { ϕ [ c / u ] [ c ′ / v ] } \Delta=\{\neg\phi_i | i\ge 0\}\cup\{\phi[c/u][c'/v]\} Δ={¬ϕii0}{ϕ[c/u][c/v]} Δ \Delta Δ中的所有公式都是语句且 Δ \Delta Δ是不可满足的,因为 Δ \Delta Δ中所有语句的合取说的是不存在长度为0、1、…的从标识为 c c c的结点到标识为 c ′ c' c的结点的路径,但存在一条从 c c c c ′ c' c的有限路径,因为 ϕ [ c / u ] [ c ′ / v ] } \phi[c/u][c'/v]\} ϕ[c/u][c/v]}为真。然而, Δ \Delta Δ的每个有限子集都是可满足的,因为存在任意有限长的路径。因此,由紧致性定理, Δ \Delta Δ本身是可满足的。这是一个矛盾。因此,不存在这样的公式 ϕ \phi ϕ

使用二阶逻辑表达可达性:将量词应用于谓词。

软件的微观模型

在软件的建模和推理中应用模型检测和语义推导。

(略)

  • 0
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 《面向计算机科学数理逻辑系统建模推理》是一本介绍计算机科学数理逻辑方面的理论和应用的书籍。首先,它介绍了数理逻辑的基本概念和原理,包括命题逻辑、一阶谓词逻辑、等价演算等。这些概念和原理是计算机科学和人工智能研究中不可或缺的基础工具。 接着,本书重点讲解了如何应用数理逻辑进行系统建模推理系统建模是指将现实世界或抽象问题转化为逻辑形式的表示,以便于进行推理和分析。本书介绍了常用的建模方法,包括形式化规约、状态机、谓词逻辑等,以及相应的工具和技术。这对于计算机科学中的需求分析、系统设计和软件开发等都非常重要。 推理是指在给定的逻辑系统下进行推导和推断,以获得新的结论或证明已有结论的过程。本书介绍了常见的推理方法,如插值推理、自然演绎、归结推理等,并详细讨论了它们的性质、应用和限制。这对于计算机科学中的程序验证、形式化验证和推理引擎的设计至关重要。 此外,本书还涵盖了一些数理逻辑应用的前沿领域,如模型检测、形式化验证、人工智能等。它介绍了这些领域所使用的数理逻辑方法和工具,以及它们在实际应用中的局限和挑战。这有助于读者了解数理逻辑计算机科学和人工智能领域中的最新进展和应用前景。 总而言之,《面向计算机科学数理逻辑系统建模推理》是一本介绍计算机科学数理逻辑方面的理论和应用的重要参考书,它对于理解和应用数理逻辑计算机科学领域的重要性具有很大的帮助和指导作用。 ### 回答2: 《面向计算机科学数理逻辑: 系统建模推理pdf》是一本介绍计算机科学数理逻辑方面的书籍。数理逻辑是研究命题、谓词和命题函数的形式推理和证明的学科,对于计算机科学系统建模推理具有重要的应用价值。 这本书提供了数理逻辑的基本概念和原理,从命题逻辑、一阶谓词逻辑到模型论和证明论等方面进行了系统的阐述。通过学习这些知识,读者可以了解到数理逻辑计算机科学中的重要性,以及它在系统建模推理中的应用。 系统建模是指将实际问题抽象为形式化的模型,以便通过逻辑推理方法对其进行分析和验证。数理逻辑提供了一种清晰、精确的语言和推理规则,可以用来描述和分析系统的行为和性质,并通过推理方法提供对模型的推断和证明。 推理是根据已有的事实或前提,通过逻辑推导得出新的结论或解决问题的过程。数理逻辑推理提供了严密的基础和规则,可以用于验证系统模型的正确性,帮助我们发现潜在的错误或问题。 这本书不仅介绍了数理逻辑的基本知识,还包括了一些实际的应用案例,如形式化硬件设计、软件验证和人工智能等领域。通过学习这些案例,读者可以将数理逻辑的理论应用到实际问题中,提高系统建模推理的能力。 总之,《面向计算机科学数理逻辑: 系统建模推理pdf》是一本帮助读者理解数理逻辑计算机科学中的重要性和应用的书籍,通过学习它,读者可以掌握数理逻辑的基本概念和原理,提高系统建模推理的能力。 ### 回答3: 《面向计算机科学数理逻辑:系统建模推理pdf》是一本涉及计算机科学领域的数理逻辑方面的书籍。该书主要讲解了数理逻辑计算机科学中的应用,包括系统建模推理。 首先,数理逻辑是研究命题和谓词之间推理关系的学科。在计算机科学中,数理逻辑的应用非常广泛,特别在系统建模推理方面。 该书首先介绍了数理逻辑的基本概念和符号表示法,包括命题逻辑和谓词逻辑等。然后,书中详细讲解了如何将数理逻辑应用到系统建模中,即如何用逻辑语言来描述系统的各种属性和关系。通过系统建模,我们可以对系统进行形式化的描述和分析,从而提高系统设计的准确性和可靠性。 另外,该书还介绍了数理逻辑推理和证明中的应用。它讲解了如何使用逻辑推理规则和证明方法来分析和推导系统中的命题,从而得出正确的结论。推理计算机科学中非常重要的一个方面,它可以帮助我们验证系统的正确性,发现潜在的错误和漏洞,为系统设计和优化提供理论基础。 总之,《面向计算机科学数理逻辑:系统建模推理pdf》是一本介绍数理逻辑计算机科学领域应用的书籍。它通过系统建模推理的角度,向读者展示了如何利用数理逻辑的方法和技巧来解决实际问题,提高系统设计的准确性和可靠性。该书对计算机科学相关专业的学生和从事系统设计和分析工作的人员都有很大的参考价值。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值