期末总结:面向计算机科学的数理逻辑:系统建模与推理
面向计算机科学的数理逻辑:系统建模与推理
——逻辑符号
——证明规则
——命题逻辑的语义
——范式
——谓词逻辑的证明论
————自然演绎规则
——谓词逻辑的语义
——模型检测
——线性时态逻辑
Chapter 1 命题逻辑
逻辑符号
符号 | 含义 | 举例 |
---|---|---|
¬ | 非 | ¬p |
∨ | 析取(逻辑或) | p∨q |
∧ | 合取(逻辑与) | p∧q |
→ | 蕴含(推出) | p→q |
证明规则
通过将证明规则(proof rules)应用于前提(premises)公式,推断(infer)出结论(conclusion)
ϕ1,ϕ2,…,ϕn⊢ψ 称为矢列(sequent),如果可以找到矢列的证明,矢列称为有效的。若逻辑公式 ϕ \phi ϕ具有有效的矢列,称为定理。
一共15个演绎规则,其中11个基本规则,4个派生规则,横线上是前提,横线下是结论,横线右边是记号
合取规则:引入规则∧i,消去规则∧
e
1
e_1
e1, ∧
e
2
e_2
e2
ϕ
ψ
ϕ
∧
ψ
∧
i
,
ϕ
∧
ψ
ϕ
∧
e
1
,
ϕ
∧
ψ
ψ
∧
e
2
\frac{\phi\quad\psi}{\phi\land\psi}\land i,\quad\frac{\phi\land\psi}{\phi}\land e_1,\quad\frac{\phi\land\psi}{\psi}\land e_2
ϕ∧ψϕψ∧i,ϕϕ∧ψ∧e1,ψϕ∧ψ∧e2
双重否定规则: 引入规则(派生)
¬
¬
i
\neg\neg i
¬¬i,消去规则
¬
¬
e
\neg\neg e
¬¬e
ϕ
¬
¬
ϕ
¬
¬
i
,
¬
¬
ϕ
ϕ
¬
¬
e
\frac{\phi}{\neg\neg\phi}\neg\neg i, \quad\frac{\neg\neg\phi}{\phi}\neg\neg e
¬¬ϕϕ¬¬i,ϕ¬¬ϕ¬¬e
蕴含消去规则(分离规则)
→
e
\rightarrow e
→e
ϕ
ϕ
→
ψ
ψ
→
e
\frac{\phi \quad \phi \to \psi}{\psi}\to e
ψϕϕ→ψ→e
反证规则(派生)
M
T
MT
MT
ϕ
→
ψ
¬
ψ
¬
ϕ
MT
\frac{\phi \to \psi \quad \neg\psi}{\neg\phi}\text{MT}
¬ϕϕ→ψ¬ψMT
蕴含引入规则 $\rightarrow i $
[
ϕ
⋮
ψ
]
ψ
→
i
\frac{\left[\begin{matrix}\phi \\ \vdots \\ \psi\end{matrix}\right]}{\psi}\to i
ψ
ϕ⋮ψ
→i
tips:这是为了证明
ϕ
→
ψ
\phi \rightarrow \psi
ϕ→ψ,而临时假设了
ϕ
\phi
ϕ,然后再证明
ψ
\psi
ψ,在证明
ψ
\psi
ψ的过程中,可以用
ϕ
\phi
ϕ以及其他所有的公式,一般来说,只有在公式
ϕ
\phi
ϕ先于该位置出现,而且出现
ϕ
\phi
ϕ的矩形框都没有关闭的情况下,才可以使用
ϕ
\phi
ϕ。紧跟在关闭的矩形框后面的行必须与使用该矩形框的规则所得到的结论模式相匹配,即如果一个矩形框的第一个公式是
ϕ
\phi
ϕ,最后一个公式是
ψ
\psi
ψ,那么紧跟在这个矩形框后面的行必须是
ϕ
→
ψ
\phi \rightarrow \psi
ϕ→ψ
一个例子:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TjdR2Mo6-1690184953160)(C:\Users\12921\AppData\Roaming\Typora\typora-user-images\image-20230608155418305.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MHDlllGt-1690184953162)(C:\Users\12921\AppData\Roaming\Typora\typora-user-images\image-20230608155519589.png)]
析取规则 引入规则
∨
i
1
,
∨
i
2
\lor i_1, \lor i_2
∨i1,∨i2,消去规则
∨
e
\lor e
∨e
ϕ
ϕ
∨
ψ
∨
i
1
,
ψ
ϕ
∨
ψ
∨
i
2
,
ϕ
∨
ψ
[
ϕ
⋮
χ
]
[
ψ
⋮
χ
]
χ
∨
e
\frac{\phi}{\phi \lor \psi}\lor i_1,\quad \frac{\psi}{\phi \lor \psi}\lor i_2, \quad \frac{\phi \lor \psi\quad\left[\begin{matrix}\phi \\ \vdots \\ \chi\end{matrix}\right]\quad\left[\begin{matrix}\psi \\ \vdots \\ \chi\end{matrix}\right]}{\chi}\lor e
ϕ∨ψϕ∨i1,ϕ∨ψψ∨i2,χϕ∨ψ
ϕ⋮χ
ψ⋮χ
∨e
矛盾规则
→
e
\rightarrow e
→e
矛盾 ⊥ \bot ⊥是形如 ϕ ∧ ¬ ϕ \phi \land \neg \phi ϕ∧¬ϕ或者 ¬ ϕ ∧ ϕ \neg \phi \land \phi ¬ϕ∧ϕ的表达式,矛盾可以推导出任何公式:
假设有前提p是 jf 有一个亿, q是jf会飞,那么p或q就肯定是真,但是非p 也就是jf没有一个亿为真 ,这时候p就是假,如果q也是假的话,那p或q就是假的,跟之前所说的有矛盾,因此q一定是真的,也就是说jf一定会飞
⊥
ϕ
⊥
e
ϕ
¬
ϕ
⊥
¬
e
[
ϕ
⋮
⊥
]
¬
ϕ
¬
i
\frac{\bot}{\phi} \bot e \quad \frac{\phi \quad \neg \phi}{\bot} \neg e \quad \frac{\left[\begin{matrix}\phi \\ \vdots \\ \bot\end{matrix}\right]}{\neg \phi} \neg i
ϕ⊥⊥e⊥ϕ¬ϕ¬e¬ϕ
ϕ⋮⊥
¬i
反证法(派生)
P
B
C
PBC
PBC
[
¬
ϕ
⋮
⊥
]
ϕ
PBC
\frac{\left[\begin{matrix}\neg\phi \\ \vdots \\ \bot\end{matrix}\right]}{\phi}\text{PBC}
ϕ
¬ϕ⋮⊥
PBC
排中律(派生)
L
E
M
LEM
LEM
ϕ
∨
¬
ϕ
LEM
\frac{}{\phi\lor\neg\phi} \text{LEM}
ϕ∨¬ϕLEM
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-C0jjP4UT-1690184953163)(C:\Users\12921\AppData\Roaming\Typora\typora-user-images\image-20230608160722476.png)]
以下六个式子逻辑等价:
¬
(
p
∧
q
)
⊣
⊢
¬
q
∨
¬
p
¬
(
p
∨
q
)
⊣
⊢
¬
q
∧
¬
p
p
→
q
⊣
⊢
¬
q
→
¬
p
p
→
q
⊣
⊢
¬
p
∨
q
p
∧
q
→
p
⊣
⊢
r
∨
¬
r
p
∧
q
→
r
⊣
⊢
p
→
(
q
→
r
)
\neg (p \land q) \ \dashv \vdash \ \neg q \lor \neg p \qquad \neg (p \lor q) \ \dashv \vdash \ \neg q \land \neg p \\ p \to q \ \dashv \vdash \ \neg q \to \neg p \qquad p \to q \ \dashv \vdash \ \neg p \lor q \\ p \land q \to p \ \dashv \vdash \ r \lor \neg r \qquad p \land q \to r \ \dashv \vdash \ p \to (q \to r)
¬(p∧q) ⊣⊢ ¬q∨¬p¬(p∨q) ⊣⊢ ¬q∧¬pp→q ⊣⊢ ¬q→¬pp→q ⊣⊢ ¬p∨qp∧q→p ⊣⊢ r∨¬rp∧q→r ⊣⊢ p→(q→r)
作为形式语言的命题逻辑
合式公式(Backus Naur范式,BNF)其中p代表任意原子命题
ϕ
:
:
=
p
∣
(
¬
ϕ
)
∣
(
ϕ
∧
ϕ
)
∣
(
ϕ
∨
ϕ
)
∣
(
ϕ
→
ϕ
)
\phi ::= p \ | \ (\neg \phi) \ | \ (\phi \land \phi) \ | \ (\phi \lor \phi) \ | \ (\phi \rightarrow \phi)
ϕ::=p ∣ (¬ϕ) ∣ (ϕ∧ϕ) ∣ (ϕ∨ϕ) ∣ (ϕ→ϕ)
可以用语法分析书表示和判定合成公式。最终叶子节点都是原子命题的树。
命题逻辑的语义
定义:公式 ϕ \phi ϕ的一个赋值(valuation)或模型(model)是对 ϕ \phi ϕ中的每个命题原子指派一个真值。两个公式的真值表相同,称为语义等价(semantically equivalent)。
数学归纳法:
1.用n=初始值开始证明
2.假设n=k时依然成立,当n=k+1时,带入并证明式子成立。
范式
语义等价:对与命题逻辑公式 ϕ , ψ \phi,\psi ϕ,ψ,说他们语义等价,当且仅当 ϕ ⊨ ψ \phi \vDash \psi ϕ⊨ψ与 ψ ⊨ ϕ \psi \vDash \phi ψ⊨ϕ成立。记为 ϕ ≡ ψ \phi \equiv \psi ϕ≡ψ。进一步,如果 ⊨ ϕ \vDash \phi ⊨ϕ成立,称 ϕ \phi ϕ是有效的。也可以定义 ϕ ≡ ψ \phi \equiv \psi ϕ≡ψ为 ⊨ ( ϕ → ψ ) ∧ ( ψ → ϕ ) \vDash (\phi \to \psi) \land (\psi \to \phi) ⊨(ϕ→ψ)∧(ψ→ϕ)。
由于合理性和完备性,语义等价和逻辑等价是一致的。
由于语义等价,我们希望把公式化成一种特定的形式,称作范式,在这种形式下有效性检查很容易。
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}
c∈F是零元函数,则c是项。
·若
t
1
,
t
2
,
…
,
t
n
t_1,t_2,\dots,t_n
t1,t2,…,tn是项,且
f
∈
F
f\in\mathcal{F}
f∈F的元
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取遍变量集合
v
a
r
var
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}
P∈P是
n
≥
1
n\ge 1
n≥1元的谓词符号,
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ϕ)也是公式。
·没有其他形式的公式。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TaUZdVPt-1690184953164)(C:\Users\12921\AppData\Roaming\Typora\typora-user-images\image-20230608164034063.png)]
自由变量和约束变量 设 ϕ \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
¬
ϕ
∀
x
ϕ
∧
ψ
⊣
⊢
∀
x
(
ϕ
∧
ψ
)
∀
x
ϕ
∨
ψ
⊣
⊢
∀
x
(
ϕ
∨
ψ
)
∃
x
ϕ
∧
ψ
⊣
⊢
∃
x
(
ϕ
∧
ψ
)
∃
x
ϕ
∨
ψ
⊣
⊢
∃
x
(
ϕ
∨
ψ
)
∀
x
(
ψ
→
ϕ
)
⊣
⊢
ψ
→
∀
x
ϕ
∃
x
(
ψ
→
ϕ
)
⊣
⊢
ψ
→
∃
x
ϕ
∃
x
(
ϕ
→
ψ
)
⊣
⊢
∀
x
ϕ
→
ψ
∀
x
(
ϕ
→
ψ
)
⊣
⊢
∃
x
ϕ
→
ψ
∀
x
ϕ
∧
∀
x
ψ
⊣
⊢
∀
x
(
ϕ
∧
ψ
)
∃
x
ϕ
∨
∀
x
ψ
⊣
⊢
∃
x
(
ϕ
∨
ψ
)
∀
x
∀
y
ϕ
⊣
⊢
∀
y
∀
x
ϕ
∃
x
∃
y
ϕ
⊣
⊢
∃
y
∃
x
ϕ
\neg\forall x\phi\dashv\vdash\exists x\neg\phi\qquad\neg\exists x\phi\dashv\vdash\forall x\neg\phi \\\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) \\\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) \\\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 \\\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 \\\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) \\\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
¬∀xϕ⊣⊢∃x¬ϕ¬∃xϕ⊣⊢∀x¬ϕ∀xϕ∧ψ⊣⊢∀x(ϕ∧ψ)∀xϕ∨ψ⊣⊢∀x(ϕ∨ψ)∃xϕ∧ψ⊣⊢∃x(ϕ∧ψ)∃xϕ∨ψ⊣⊢∃x(ϕ∨ψ)∀x(ψ→ϕ)⊣⊢ψ→∀xϕ∃x(ψ→ϕ)⊣⊢ψ→∃xϕ∃x(ϕ→ψ)⊣⊢∀xϕ→ψ∀x(ϕ→ψ)⊣⊢∃xϕ→ψ∀xϕ∧∀xψ⊣⊢∀x(ϕ∧ψ)∃xϕ∨∀xψ⊣⊢∃x(ϕ∨ψ)∀x∀yϕ⊣⊢∀y∀xϕ∃x∃yϕ⊣⊢∃y∃xϕ
谓词逻辑的语义
模型 假设 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} f∈F,A 中的一个具体元素 f M f^\mathcal{M} fM
3.对每个元数为 n > 0 n>0 n>0的 f ∈ F f\in \mathcal{F} f∈F,从集合 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:An→A
4.对每个 n > 0 n>0 n>0元谓词 P ∈ P P\in \mathcal{P} P∈P, A A A上 n n n元子集 P M ⊆ A n P^\mathcal{M}\subseteq A^n PM⊆An 。
环境 从变量集var到相关模型中值的论域集合 A A A的函数 l : v a r → A l:\mathbf{var}\to A l:var→A。对这样的 l l l,用 l [ x ↦ a ] l[x\mapsto a] l[x↦a]表示将 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 M⊨lϕ。若 M ⊨ l ϕ \mathcal{M}\models_l\phi M⊨lϕ成立,则称在模型 M \mathcal{M} M中,相对于环境 l l l, ϕ \phi ϕ的赋值为T。
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}
f∈F)计算
a
1
,
a
2
,
…
,
a
n
a_1, a_2, \dots, a_n
a1,a2,…,an的值,其中任何函数符号
f
∈
F
f\in \mathcal{F}
f∈F通过
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)
M⊨lP(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
M⊨l∀xψ成立当且仅当
M
⊨
l
[
x
↦
a
]
ψ
\mathcal{M}\models_{l[x\mapsto a]}\psi
M⊨l[x↦a]ψ对所有
a
∈
A
a\in A
a∈A都成立。
∃
x
\exists x
∃x∶ 对偶地,
M
⊨
l
∃
x
ψ
\mathcal{M}\models_l \exists x\psi
M⊨l∃xψ成立当且仅当
M
⊨
l
[
x
↦
a
]
ψ
\mathcal{M}\models_{l[x\mapsto a]}\psi
M⊨l[x↦a]ψ对某个
a
∈
A
a\in A
a∈A成立。
¬
\neg
¬∶ 关系
M
⊨
l
¬
ψ
\mathcal{M}\models_l \neg\psi
M⊨l¬ψ成立当且仅当
M
⊨
l
ψ
\mathcal{M}\models_l\psi
M⊨lψ不成立。
∨
\lor
∨∶ 关系
M
⊨
l
ψ
1
∨
ψ
2
\mathcal{M}\models_l \psi_1\lor \psi_2
M⊨lψ1∨ψ2成立当且仅当
M
⊨
l
ψ
1
\mathcal{M}\models_l\psi_1
M⊨lψ1成立或
M
⊨
l
ψ
2
\mathcal{M}\models_l\psi_2
M⊨lψ2成立。
∧
\land
∧∶关系
M
⊨
l
ψ
1
∧
ψ
2
\mathcal{M}\models_l \psi_1\land \psi_2
M⊨lψ1∧ψ2成立当且仅当
M
⊨
l
ψ
1
\mathcal{M}\models_l\psi_1
M⊨lψ1和
M
⊨
l
ψ
2
\mathcal{M}\models_l\psi_2
M⊨lψ2都成立。
→
\to
→∶ 关系
M
⊨
l
ψ
1
→
ψ
2
\mathcal{M}\models_l \psi_1\to\psi_2
M⊨lψ1→ψ2成立当且仅当只要
M
⊨
l
ψ
1
\mathcal{M}\models_l\psi_1
M⊨lψ1成立,则
M
⊨
l
ψ
2
\mathcal{M}\models_l\psi_2
M⊨lψ2成立。
语义推导
Γ \Gamma Γ是谓词逻辑中的公式集合(可能是无限集合), ψ \psi ψ是谓词逻辑公式。
语义推导
Γ
⊨
ψ
\Gamma\vDash\psi
Γ⊨ψ成立当且仅当对所有的模型
M
\mathcal{M}
M和查询表
l
l
l,对所有的
ϕ
∈
Γ
\phi\in\Gamma
ϕ∈Γ,
M
⊨
l
ϕ
\mathcal{M}\models_l \phi
M⊨lϕ都成立,则
M
⊨
l
ψ
\mathcal{M}\models_l \psi
M⊨lψ也成立。
公式
ψ
\psi
ψ是可满足的当且仅当存在某个模型
M
\mathcal{M}
M和环境
l
l
l,使得
M
⊨
l
ψ
\mathcal{M}\models_l \psi
M⊨lψ成立。
公式
ψ
\psi
ψ是有效的当且仅当在我们能够检测
ψ
\psi
ψ的所有模型
M
\mathcal{M}
M和环境
l
l
l中,
M
⊨
l
ψ
\mathcal{M}\models_l \psi
M⊨lψ成立。
集合
Γ
\Gamma
Γ是一致的或可满足的当且仅当存在一个模型
M
\mathcal{M}
M和一个环境
l
l
l,使得对所有的公式
ϕ
∈
Γ
\phi\in\Gamma
ϕ∈Γ,
M
⊨
l
ψ
\mathcal{M}\models_l \psi
M⊨lψ成立。
谓词逻辑的不可判定性
方法:问题归约法。选择另一个不可解问题,用当前问题的可解性推出被选择问题的可解性。
引理:波斯特对应问题不可解。波斯特对应问题:已知有限序列对
(
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(n≥1),使得字符串的串联
s
i
1
s
i
2
…
s
i
m
s_{i1}s_{i2}\dots s_{im}
si1si2…sim等于
t
i
1
t
i
2
…
t
i
m
t_{i1}t_{i2}\dots t_{im}
ti1ti2…tim?
原定理证明:
假设谓词逻辑有效性可判定。求解波斯特对应问题。已知对应问题的实例
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}
s1s2…sk,t1t2…tk。需要在有限的时空里构建对所有实例都一致的谓词逻辑公式
ϕ
\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
b1b2…bl是二进制位的字符串,将它编码为项
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(fbl−1…(fb2(fb1(e)))…),简记为
f
b
1
b
2
…
b
l
(
e
)
f_{b_1b_2\dots b_l}(e)
fb1b2…bl(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}
si1si2…sim表示的项,
w
w
w是由
t
i
1
t
i
2
…
t
i
m
t_{i_1}t_{i_2}\dots t_{i_m}
ti1ti2…tim表示的项。
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=1⋀kP(fsi(e),fti(e))ϕ2=def∀v∀w(P(v,w)→i=1⋀kP(fsi(v),fti(w)))ϕ3=def∃zP(z,z)
论断
⊨
ϕ
\vDash \phi
⊨ϕ成立,当且仅当波斯特对应问题
C
C
C有解。
必要性:
太烦不证了。
谓词逻辑的表达能力
软件模型、设计标准和硬件或程序的执行模型经常通过有向图来描述。这样的模型 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' s→s′。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-35K9dmws-1690184953164)(C:\Users\12921\AppData\Roaming\Typora\typora-user-images\image-20230608182428294.png)]
紧致性定理 设 Γ \Gamma Γ是谓词逻辑的一个语句集合。若 Γ \Gamma Γ的所有有限子集都是可满足的,则 Γ \Gamma Γ也是可满足的。
Löwenheim-Skolem 定理 设 ψ \psi ψ是谓词逻辑的一个语句,对任何自然数 n ≥ 1 n\ge1 n≥1,存在 ψ \psi ψ的至少有 n n n个元素的模型。则 ψ \psi ψ有无限个元素的模型。
可达性:给定有向图中的结点 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的结点的路径。
使用二阶逻辑表达可达性:将量词应用于谓词。
Chapter 3 通过模型检测进行验证
模型检测
时态逻辑(Temporal Logic)
思想:在一个模型中,公式的真与假不是静态的,而在命题逻辑或谓词逻辑中的确如此。
含义:时态逻辑的模型包含若干状态,而一个公式可以在某些状态下为真,在其他状态下为假。公式可以随系统的状态演化而改变其真值。
模型检测:模型检测是一种自动的、基于模型的、性质验证的处理方法。
模型检测也是基于时态逻辑的,在模型检测中,模型
M
\mathcal{M}
M是迁移系统,性质
ϕ
\phi
ϕ是时态逻辑公式,为了验证一个系统满足一个性质,需要三步操作:
使用模型检测器的描述性语言对系统进行建模,得到一个模型
M
\mathcal{M}
M
使用模型检测器的规范语言对性质进行编码,禅师一个时态逻辑公式
ϕ
\phi
ϕ
以
M
\mathcal{M}
M和
ϕ
\phi
ϕ做输入,运行模型检测器
模型检测就是对问题 M , s ⊨ ϕ \mathcal{M},s \models \phi M,s⊨ϕ是否成立计算答案的过程,此处的 ϕ \phi ϕ是时态逻辑的一个公式, M \mathcal{M} M是所考虑的一个适当模型, s s s是该模型的一个状态, ⊨ \models ⊨是满足关系
线性时态逻辑
定义:一种能表达时间概念的特殊时态逻辑。它将时间轴看成一个线性的状态序列,可以无限延伸到未来。常用来精确表示模型的动态语义。
计算路径(简称为路径):模型里的状态序列。因为未来是不确定的,有无数种可能,在模型中表示有无数条路径,代表未来不同的可能,任何一条路径都可能会是一条实际的路径(每一条路径都有可能发生,但只有一条路径会真正发生)。
命题原子公式:原子公式用$ p,q,r,p_1,q_1,r_1…
等符号表示,这些原子代表系统可能成立的事实,比如“打印机正在打印”,“进程
1220
被挂起”,或者“程序计数器上的值为
6
”。原子集合:表示系统可能成立的全部事实,用
等符号表示,这些原子代表系统可能成立的事实,比如“打印机正在打印”,“进程1220被挂起”,或者“程序计数器上的值为6”。 原子集合:表示系统可能成立的全部事实,用
等符号表示,这些原子代表系统可能成立的事实,比如“打印机正在打印”,“进程1220被挂起”,或者“程序计数器上的值为6”。原子集合:表示系统可能成立的全部事实,用Atoms
表示,比如
表示,比如
表示,比如p,q
的所有组合:
的所有组合:
的所有组合:Atoms = {\varnothing,{p},{q},{p,q}}$
L
T
L
LTL
LTL语法
ϕ
:
:
=
⊥
∣
⊤
∣
p
∣
(
¬
ϕ
)
∣
(
ϕ
∧
ϕ
)
∣
(
ϕ
∨
ϕ
)
∣
(
ϕ
→
ϕ
)
∣
(
X
ϕ
)
∣
(
F
ϕ
)
∣
(
G
ϕ
)
∣
(
ϕ
U
ϕ
)
∣
(
ϕ
W
ϕ
)
∣
(
ϕ
R
ϕ
)
\phi ::= \perp | \top | p| (\neg \phi) | (\phi \wedge \phi)| (\phi \vee\phi)| (\phi \to \phi) | (X \phi)| (F \phi)| (G \phi)| (\phi U \phi)| (\phi W \phi)| (\phi R \phi)
ϕ::=⊥∣⊤∣p∣(¬ϕ)∣(ϕ∧ϕ)∣(ϕ∨ϕ)∣(ϕ→ϕ)∣(Xϕ)∣(Fϕ)∣(Gϕ)∣(ϕUϕ)∣(ϕWϕ)∣(ϕRϕ)
上述公式表示,如果
ϕ
\phi
ϕ是LTL公式,则
¬
ϕ
,
(
ϕ
∧
ϕ
)
,
(
G
ϕ
)
⋯
\neg \phi, (\phi \wedge \phi), (G \phi) \cdots
¬ϕ,(ϕ∧ϕ),(Gϕ)⋯也是LTL公式,同时
⊥
∣
⊤
∣
p
\perp | \top | p
⊥∣⊤∣p也是LTL公式。其中,
p
p
p是取自原子集合
A
t
o
m
s
Atoms
Atoms的任意命题原子
时态连接词:
一元时态连接词:
X
X
X:下一个状态。
F
F
F:某未来状态。
G
G
G:所有未来状态。
二元时态连接词:
U
U
U:直到。
R
R
R:释放。
W
W
W:弱-直到。
时态连接词的含义:
原子命题 p p p表示路径 π \pi π中第一个原子命题是 p p p
X p Xp Xp表示路径 π \pi π中第二个原子命题是 p p p
G p Gp Gp表示路径 π \pi π中每一个原子命题都是 p p p
p U q pUq pUq表示对于路径 π : s 0 → s 1 → ⋯ \pi:s_0 \to s_1 \to \cdots π:s0→s1→⋯中,假设原子命题 p p p在且只在 s 3 , s 4 , s 5 , s 6 , s 7 , s 8 s_3,s_4,s_5,s_6,s_7,s_8 s3,s4,s5,s6,s7,s8状态点满足,原子命题 q q q只在 s 9 s_9 s9状态点满足。则如果 i i i的值为 0 , 1 , 2 , π i ⊭ p U q π i ⊭ p U q 0,1,2,π i ⊭ p U q \pi^i \nvDash pUq 0,1,2,πi⊭pUqπi⊭pUq(因为这个时候的开始点没有 p p p);如果 i i i的值为 3 , 4 , 5 , 6 , 7 , 8 , 9 3,4,5,6,7,8,9 3,4,5,6,7,8,9,则 π i ⊨ p U q \pi^i \vDash pUq πi⊨pUq。
p R q pRq pRq: q q q必须保持为真,直到 p p p为真的时刻
或者
如果
p
p
p为真的时刻不存在,则
q
q
q一直为真
R R R是 U U U的对偶,即 ϕ R ψ \phi R \psi ϕRψ等价于 ¬ ( ¬ ϕ U ¬ ψ ) \neg (\neg \phi U \neg \psi) ¬(¬ϕU¬ψ)
L T L LTL LTL公式范例: ( F ( p → ( G r ) ) ∨ ( ( ¬ q ) U p ) ) (F(p \to (G \ r)) \vee ((\neg q) U \ p )) (F(p→(G r))∨((¬q)U p))
4,s_5,s_6,s_7,s_8 状态点满足,原子命题 状态点满足,原子命题 状态点满足,原子命题q 只在 只在 只在s_9 状态点满足。则如果 状态点满足。则如果 状态点满足。则如果i$的值为 0 , 1 , 2 , π i ⊭ p U q π i ⊭ p U q 0,1,2,π i ⊭ p U q \pi^i \nvDash pUq 0,1,2,πi⊭pUqπi⊭pUq(因为这个时候的开始点没有 p p p);如果 i i i的值为 3 , 4 , 5 , 6 , 7 , 8 , 9 3,4,5,6,7,8,9 3,4,5,6,7,8,9,则 π i ⊨ p U q \pi^i \vDash pUq πi⊨pUq。
p R q pRq pRq: q q q必须保持为真,直到 p p p为真的时刻
或者
如果
p
p
p为真的时刻不存在,则
q
q
q一直为真
R R R是 U U U的对偶,即 ϕ R ψ \phi R \psi ϕRψ等价于 ¬ ( ¬ ϕ U ¬ ψ ) \neg (\neg \phi U \neg \psi) ¬(¬ϕU¬ψ)
L T L LTL LTL公式范例: ( F ( p → ( G r ) ) ∨ ( ( ¬ q ) U p ) ) (F(p \to (G \ r)) \vee ((\neg q) U \ p )) (F(p→(G r))∨((¬q)U p))
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· spring官宣接入deepseek,真的太香了~