我想出了这个问题。正如“计算机科学逻辑”一书中所写,LTL的一个重要等价是: 计划生育= TUP。 T意味着没有约束。
然而,如果我用(而不是p)替换T,该怎么办? Fp =(不是p)Up hold?因为在这种情况下我实际上在公式中加入了一些约束(而不是p),但同时可能没有状态可以满足(不是p)和p。我尝试使用不同的LTL公式作为p,并且只要p是可满足的,那么对于每个具有p的路径,它必须满足Fp和(非p)Up。 这是否意味着我可以用这种方式重写F或者有一些反例?
答案 0 :(得分:0)
答案简短:
是的,两个公式都是等效的,您也可以使用(¬p)Up
重写pUq
。
和证明:
我们可以通过查看s ⊨ pUq
的定义来研究这个问题(我认为它在Clarke,Grumberg,Peled的模型检查一书中以这种方式定义)。
路径s是公式的模型(写成s ⊨ pUq <=> ∃k: s^k ⊨ q
∧ ∀i: 0<=i<k => s^i ⊨ q
):
s^i
(s
是删除了第一个i
步骤的s ⊨ (¬p)Up <=> ∃k: s^k ⊨ p
∧ ∀i: 0<=i<k => s^i ⊨ ¬p
路径。)
我们有(1):
s ⊨ TUp <=> ∃k: s^k ⊨ p
∧ ∀i: 0<=i<k => s^i ⊨ true
<=> ∃k: s^k ⊨ p
和(2):
k1
我们想要显示(1)&lt; =&gt; (2)(我将k重命名为k2
和 ∃k1: s^k1 ⊨ p
∧ ∀i: 0<=i<k1 => s^i ⊨ ¬p
<=>
∃k2: s^k2 ⊨ p
以避免混淆):
∃k2: s^k2 ⊨ p
方向(1)=&gt; (2)是微不足道的。
For(2)=&gt; (1)我们必须从
中显示出来 ∃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
成立。但在这种情况下,我们会为k1
选择i
因为k1
严格小于 StandardDialRange standarddialrange;
StandardDialRange standarddialrange2;
StandardDialRange standarddialrange3;
if(isPercentageIV==true){
standarddialrange = new StandardDialRange(90D, 100D, Color.GREEN);
standarddialrange2 = new StandardDialRange(60D, 90D, Color.orange);
standarddialrange3 = new StandardDialRange(0D, 60D, Color.RED);
}
else{
standarddialrange = new StandardDialRange(.9*goal*dialScale, goal*dialScale, Color.GREEN);
standarddialrange2 = new StandardDialRange(.6*goal*dialScale, .9*goal*dialScale, Color.orange);
standarddialrange3 = new StandardDialRange(0, .6*goal*dialScale, Color.RED);
}
// Sets the scale/radius of all the indicators.
standarddialrange.setScaleIndex(0);
standarddialrange.setInnerRadius(0.58999999999999997D);
standarddialrange.setOuterRadius(0.58999999999999997D);
dialplot.addLayer(standarddialrange);
standarddialrange2.setScaleIndex(0);
standarddialrange2.setInnerRadius(0.58999999999999997D);
standarddialrange2.setOuterRadius(0.58999999999999997D);
dialplot.addLayer(standarddialrange2);
standarddialrange3.setScaleIndex(0);
standarddialrange3.setInnerRadius(0.58999999999999997D);
standarddialrange3.setOuterRadius(0.58999999999999997D);
dialplot.addLayer(standarddialrange3);
。
因此公式(1)和(2)都是等价的。