Files
tla-notes/DieHard.tla

47 lines
1.3 KiB
Plaintext

------------------------------ MODULE DieHard ------------------------------
EXTENDS Integers
VARIABLES small, big
TypeOK == /\ small \in 0..3
/\ big \in 0..5
Init == /\ small = 0
/\ big = 0
FillSmall == /\ big' = big
/\ small' = 3
FillBig == /\ big' = 5
/\ small' = small
EmptySmall == /\ big' = big
/\ small' = 0
EmptyBig == /\ big' = 0
/\ small' = small
SmallToBig == IF big + small <= 5
THEN /\ big' = big + small
/\ small' = 0
ELSE /\ big' = 5
/\ small' = small - (5 - big)
BigToSmall == IF big + small <= 3
THEN /\ big' = 0
/\ small' = big + small
ELSE /\ small' = 3
/\ big' = big - (3 - small)
Next == \/ FillSmall
\/ FillBig
\/ EmptySmall
\/ EmptyBig
\/ SmallToBig
\/ BigToSmall
=============================================================================
\* Modification History
\* Last modified Fri Dec 21 16:33:15 CET 2018 by veitheller
\* Created Fri Dec 21 16:16:46 CET 2018 by veitheller