简短的回答:
是的,这两个公式是等价的,你也Fp
可以用(¬p)Up
.
和一个证明:
我们可以通过查看以下定义来调查问题pUq
(我认为在 Clarke、Grumberg、Peled 的《模型检查》一书中是这样定义的)。
路径 s 是公式的模型(写成s ⊨ pUq
):
s ⊨ pUq <=> ∃k: s^k ⊨ q
∧ ∀i: 0<=i<k => s^i ⊨ q
(作为删除第一步的s^i
路径。)s
i
我们有(1):
s ⊨ (¬p)Up <=> ∃k: s^k ⊨ p
∧ ∀i: 0<=i<k => s^i ⊨ ¬p
(2):
s ⊨ TUp <=> ∃k: s^k ⊨ p
∧ ∀i: 0<=i<k => s^i ⊨ true
<=> ∃k: s^k ⊨ p
我们想要显示 (1) <=> (2) (我将 ks 重命名为k1
andk2
以避免混淆):
∃k1: s^k1 ⊨ p
∧ ∀i: 0<=i<k1 => s^i ⊨ ¬p
<=>
∃k2: s^k2 ⊨ p
方向 (1) => (2) 是微不足道的。
对于 (2) => (1) 我们必须证明
∃k2: s^k2 ⊨ p
跟随
∃k1: s^k1 ⊨ p ∧ ∀i: 0<=i<k1 => s^i ⊨ ¬p
k1
我们知道(即k2
)存在一个这样的值s^k1 ⊨ p
。但是第二部分呢?我们现在可以只使用满足条件k1
的最小值s^i ⊨ p
。那么第二部分是正确的,因为如果存在不成立的i
这样s^i ⊨ not p
,我们知道s^i |= p
成立。但在那种情况下,我们会选择i
fork1
因为i
is 严格小于 then k1
。
所以公式(1)和(2)是等价的。