【发布时间】:2017-09-25 16:00:25
【问题描述】:
我正在尝试在 NuSMV 中编写以下模型
换句话说,只有当 x AND y 也处于 bad 状态时,z 才会变坏。这是我写的代码
MODULE singleton
VAR state: {good, bad};
INIT state = good
TRANS (state = good) -> next(state) = bad
TRANS (state = bad) -> next(state) = bad
MODULE effect(cond)
VAR state: {good, bad};
ASSIGN
init(state) := good;
next(state) := case
(state = bad) : bad;
(state = good & cond) : bad;
(!cond) : good;
TRUE : state;
esac;
MODULE main
VAR x : singleton;
VAR y : singleton;
VAR z : effect((x.state = bad) & (y.state = bad));
但我只有这些可达状态
NuSMV > print_reachable_states -v
######################################################################
system diameter: 3
reachable states: 3 (2^1.58496) out of 8 (2^3)
------- State 1 ------
x.state = good
y.state = good
z.state = good
------- State 2 ------
x.state = bad
y.state = bad
z.state = bad
------- State 3 ------
x.state = bad
y.state = bad
z.state = good
-------------------------
######################################################################
如何修改我的代码以获得也
x.state = good
y.state = bad
z.state = good
x.state = bad
y.state = good
z.state = good
处于可达状态?
此外,我不确定我是否必须添加模型图片中打印的红色箭头:如果 x 和 y 处于错误状态,我希望它迟早也会变得错误。
非常感谢您的帮助!
【问题讨论】:
标签: model-checking nusmv