------------------------- MODULE supervisor_001_draft ------------------------ (* This is the beginning of a spec that will eventually use verification and detector API *) EXTENDS Integers, FiniteSets VARIABLES state, output vars == <> CONSTANT INITDATA Init == /\ state = "Init" /\ output = "none" NextInit == /\ state = "Init" /\ \/ state' = "EnterLoop" \/ state' = "FailedToInitialize" /\ UNCHANGED output NextVerifyToTarget == /\ state = "EnterLoop" /\ \/ state' = "EnterLoop" \* replace primary \/ state' = "EnterDetect" \/ state' = "ExhaustedPeersPrimary" /\ UNCHANGED output NextAttackDetector == /\ state = "EnterDetect" /\ \/ state' = "NoEvidence" \/ state' = "EvidenceFound" \/ state' = "ExhaustedPeersSecondaries" /\ UNCHANGED output NextVerifyAndDetect == \/ NextVerifyToTarget \/ NextAttackDetector NextOutput == /\ state = "NoEvidence" /\ state' = "EnterLoop" /\ output' = "data" \* to generate a trace NextTerminated == /\ \/ state = "FailedToInitialize" \/ state = "ExhaustedPeersPrimary" \/ state = "EvidenceFound" \/ state = "ExhaustedPeersSecondaries" /\ UNCHANGED vars Next == \/ NextInit \/ NextVerifyAndDetect \/ NextOutput \/ NextTerminated InvEnoughPeers == /\ state /= "ExhaustedPeersPrimary" /\ state /= "ExhaustedPeersSecondaries" ============================================================================= \* Modification History \* Last modified Sun Oct 18 11:48:45 CEST 2020 by widder \* Created Sun Oct 18 11:18:53 CEST 2020 by widder