我正在尝试对我创建的 NuSMV 模型运行“随机”或非确定性模拟。然而,在后续运行之间,产生的跟踪是完全相同的。
这是模型:
MODULE main
VAR x : 0..4;
VAR clk : 0..10;
DEFINE next_x :=
case
x = 0 : {0,1};
x = 1 : {1,2};
x = 2 : {1,0};
TRUE : {0};
esac;
DEFINE next_clk :=
case
(clk < 10) : (clk+1);
TRUE : clk;
esac;
INIT (x = 0);
INIT (clk = 0);
TRANS (next(x) in next_x);
TRANS next(clk) = next_clk;
CTLSPEC AG(clk < 10);
我在交互式 shell 中使用以下命令运行它:
go
pick_state -r
simulate -k -r 30
show_traces 1
quit
也许我的模型有错误?或者我没有在 shell 中运行正确的命令。
提前致谢!