满足模型中的LTL公式

时间:2016-06-11 17:16:40

标签: model-checking nusmv

AG(~q ∨ Fp) LTL公式在下面的模型中是否满足?为什么或为什么不呢?

型号?

1 个答案:

答案 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并返回且永远不会触及S1S3 的路径。
  • 矛盾:不满足 LTL 公式。