當我使用NuSMV工具來驗證我的CTL是否正確時,我遇到一個讓我如此困惑的問題。CTL fomula直到包含暗示
我的模型是
和這裏的NuSMV代碼:
MODULE main
VAR
state : {ROOT, A1, B1, C1, D1, F1, M1};
ASSIGN
init(state) := ROOT;
next(state) := case
state = ROOT : A1;
state = A1 : {B1, C1};
state = B1 : D1;
state = D1 : F1;
TRUE : state;
esac;
CTLSPEC
AG(state=A1 -> AX (A [ state=B1 U (state=D1 -> EX state=F1) ]));
CTLSPEC
AG(state=A1 -> AX (A [ state=B1 U (state=F1 -> EX state=C1) ]));
CTLSPEC
AG(state=A1 -> AX (A [ state=M1 U (state=F1 -> EX state=C1) ]));
我CTL公式如下:
"AG(A1 -> AX (A [ B1 U (D1 -> EX (F1) ) ]))"
"AG(A1 -> AX (A [ B1 U (F1 -> EX (C1) ) ]))"
"AG(A1 -> AX (A [ M1 U (F1 -> EX (C1) ) ]))"
NuSMV驗證了上述三個公式所有這些都被證明是正確的。
所以我的問題是爲什麼公式2和公式3是真的?