我在 NuSMV 中有以下代码。
MODULE main
VAR
x : 0..5
所以 x 是一个变量,可以取整数值 0,1,2,3,4,5。接下来,我初始化它并制定它的转换规则。
ASSIGN
init(x):=1;
next(x) := case
y=1 & z=23: 4;
TRUE: 0..5;
esac;
上面应该说的是 x 最初是 1。然后如果 y=1 且 z=23,x 变为 4,否则 x 可以假设其域中的任何随机值。逻辑的这个“否则”部分是我怀疑的。我是否正确编码?y 和 z 是变量,其代码未在此处显示。为 y 和 z 假设一些东西。
或者我应该写:
TRUE: {0,1,2,3,4,5};
因为我从本文档的第 4 页确定以上内容是正确的。
但这对于非常大的域是不可行的。假设 x 可以取 0 到 293 之间的任何值。