我正在使用nuXmv 1.1.1对以下有限状态机进行模型检查。
MODULE main
VAR
node : {_0_0,_1_0,_1_1,_1_2,_1_3,_2_0};
DEFINE
setParentThis_r_ := case
TRUE : FALSE;
esac;
setParent_r_ := case
node=_1_3 :TRUE;
TRUE : FALSE;
esac;
ASSIGN
init(node) := _2_0 ;
next(node) := case
node =_0_0:{_0_0};
node =_1_0:{_1_1};
node =_1_1:{_1_2};
node =_1_2:{_1_3};
node =_1_3:{_0_0};
node =_2_0:{_1_0};
esac;
具有以下CTL规范
SPEC
A[(!(setParent_r_)) U (setParentThis_r_ -> AX(AG(!(setParent_r_))))]
nuXmv得出的说明是正确的。
具有以下LTL规范
LTLSPEC
(!(setParent_r_)) U (setParentThis_r_ -> X(G(!(setParent_r_))))
nuXmv产生以下警告
********警告********有限状态机的初始状态集为空。这可能会使模型检查的结果不正确 可信赖的。 ********结束警告********
我了解该警告,但不明白为什么会出现。 我认为,它应该同时显示在两个规格中,或者根本不显示。
有人有解释吗?