TLA Plus
TLA Plus is specification language based on the Temporal Logic of Actions.
Example: 1 Bit Clock
State variable:
Initial predicate:
Next step action
( is the variable at the next state; same as
)
VARIABLE b
Init == (b = 0) \/ (b = 1)
TypeInv == b \in {0, 1}
Spec == \/ b = 0 /\ b' = 1 \/ b = 1 /\ b' = 0
Spec == Init /\ [][Next]_<<b>>
THEOREM Spec => []TypeInv