NuSMV 错误

Error with NuSMV

MODULE main
VAR
    x : 0 .. 2;
ASSIGN
    init (x) := 2;
    next (x) :=
        case
            x = 2 : x = 10;
        esac;
SPEC AG x = 2 -> AG X x = 20

at token "X": syntax error - 为什么语法错误?

我尝试使用关键字 X 但从未成功。

问题是您在 CTL 公式.

中使用了 LTL 运算符

CTL中,你有两种选择来谈论下一个状态:

  • AX P : 沿所有输出路径,在下一个状态 P holds
  • EX P : 沿着至少一条出路,在下一个状态 P 持有

看这张图:


附带说明一下,第 6 行存在语法错误,因为您将 Bool 分配给 integer 变量。您可能希望先将 x = 10 更改为 10,然后更改变量 x 的值域并向该 case ... esac 构造添加一些详尽的条件。