------------------------- 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 == <<state, output>>
|
|
|
|
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
|