4
プログラムは、STARTからLEFTまたはRIGHTブランチに分岐できます。 LEFTブランチの実行パスとRIGHTブランチのもう一つの実行パスがあることを確認する方法はありますか?完全一般場合ブランチが実行されていることを確認してください。
------------------------------ MODULE WFBranch ------------------------------
VARIABLE state
START == "start"
LEFT == "left"
RIGHT == "right"
Init == state = START
Next ==
\/ /\ state = START
/\ \/ state' = LEFT
\/ state' = RIGHT
\/ /\ state \in {LEFT, RIGHT}
/\ state' = START
Spec ==
/\ Init
/\ [][Next]_<<state>>
/\ WF_<<state>>(Next) \* Avoid stuttering at start
(*
This passes, but it does not ensure that there exist different paths covering both
branches - e.g. state might never be LEFT.
*)
CheckEventualStates == \/ (state = START) ~> (state = RIGHT)
\/ (state = START) ~> (state = LEFT)
=============================================================================
を持つ2つの支店がありますチェックすることができ
を書くことができ –