AG(~q ∨ Fp)
LTL公式在下面的模型中是否满足?为什么或为什么不呢?
型号?
答案 0 :(得分:2)
首先AG(~q ∨ Fp)
是不 LTL 公式,因为运营商AG
不属于 LTL 。我假设你的意思是G(~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
是s.t. ~q
为FALSE,因此为了满足~q v F p
,必须认为F p
为TRUE,即必然会迟早p
变为TRUE 。 S2
s.t开始存在无限路径。 p
始终为FALSE:从S2
跳转到S0
并返回且永远不会触及S1
或S3
的路径。