Here's a simple spec with a variable x that counts from 1 to 5 then stutters at 5 forever:
---- MODULE Test ----
EXTENDS Naturals
VARIABLE x
Init ≜ x = 1
Next ≜
IF x = 5 THEN UNCHANGED x
ELSE x' = x + 1
Spec ≜ Init ∧ □[Next]_x ∧ WF_x(Next)
Liveness ≜ (x = 1) ⇒ ◇□(x = 5)
====
However, when I try to check property Liveness with TLC I get this error:
Starting... (2024-10-03 10:15:19)
Implied-temporal checking--satisfiability problem has 1 branches.
Computing initial states...
Finished computing initial states: 1 distinct state generated at 2024-10-03 10:15:19.
Error: Temporal properties were violated.
Error: The following behavior constitutes a counter-example:
State 1: <Initial predicate>
x = 1
2 states generated, 2 distinct states found, 1 states left on queue.
The depth of the complete state graph search is 2.
Finished in 00s at (2024-10-03 10:15:19)
Why is this?
Andrew