检查系统是否通过所有状态

Check that system passes all the states

一个变量state代表一个系统的状态,例如state \in {"ready", "prepare", "do", "cleanup", "done"}。如何表达 state 最终应该通过所有五个状态(以任何顺序)的条件?


工作示例(已接受的答案):

EXTENDS Naturals
VARIABLE n
Init == n = 1
Next == IF n < 3 THEN n' = n + 1 ELSE n' = n
Spec == Init /\ [][Next]_<<n>> /\ WF_<<n>>(Next)
Check == \A s \in {1,2,3}: <>(s = n)    \* This goes: Model Overview >
                                        \* > "What to check?" > Properties

给定 States = {"ready", "prepare", "do", "cleanup", "done"},您可以使用

检查它是否达到某个给定状态
<>(state = "ready")

您可以检查它是否到达所有状态

\A s \in States: <>(state = s)