AG(~q ∨ Fp)LTL 公式是否满足以下模型?为什么或者为什么不?
模型?
首先AG(~q ∨ Fp)不是LTL公式,因为算子不属于LTL。我假设你的意思是.AGG(~q v Fp)
建模:让我们在NuSMV中对系统进行编码:
MODULE main ()
VAR
state : { S0, S1, S2, S3 };
p : boolean;
q : boolean;
ASSIGN
init(state) := S0;
next(state) := case
state = S0 : {S1, S2};
state = S1 : {S0, S3};
state = S2 : {S0};
state = S3 : {S3};
esac;
INVAR state = S0 <-> (!p & !q);
INVAR state = S1 <-> ( p & q);
INVAR state = S2 <-> (!p & q);
INVAR state = S3 <-> ( p & !q);
LTLSPEC G(!q | F p)
并验证它:
~$ NuSMV -int
NuSMV > reset; read_model -i f.smv; go; check_property
-- specification G (!q | F p) is false
-- as demonstrated by the following execution sequence
Trace Description: LTL Counterexample
Trace Type: Counterexample
-- Loop starts here
-> State: 2.1 <-
state = S0
p = FALSE
q = FALSE
-> State: 2.2 <-
state = S2
q = TRUE
-> State: 2.3 <-
state = S0
q = FALSE
解释:所以模型不满足LTL 公式。为什么?
G意味着只有~q v F p通过每个可达状态都验证了公式才满足。S2是 st~q是 FALSE,所以为了满足~q v F p它必须必须保持 thatF p是 TRUE,也就是说迟早会p变成 TRUE的情况。S2st开始的无限路径p总是 FALSE:从来往回跳跃并且从不接触或S2S0S1S3的路径。