程序可以从START分支到LEFT或RIGHT分支。如何检查LEFT分支的执行路径和RIGHT分支的其他执行路径?
com.apple.home://
答案 0 :(得分:2)
在完全通用的情况下,没有办法检查每个状态,至少有一个行为最终到达它。这是因为TLA +基于线性时态逻辑,它没有表达多种不同行为之间的属性的方法。
根据特定的情况,有时可以替代。例如,我们可以写
Left ==
/\ state = START
/\ state' = LEFT
Right ==
/\ state = START
/\ state' = RIGHT
Next ==
\/ /\ state = START
/\ \/ Left
\/ Right
\/ /\ state \in {LEFT, RIGHT}
/\ state' = START
然后你可以检查有两个分支
CheckEventualStates ==
/\ <>(ENABLED Left)
/\ <>(ENABLED Right)