Reputation: 9
I'm using NuSMV and i'm trying to write a Real Time CTL property.
I would like to know if there is a way to set the steps from a state, like:
((s.state = on) ABG (0..5 s.state = off))
Is read as: if (s.state=on) is true
, from this state and for other 5 steps the property (s.state= off) is true
.
I tried to write something like this but it doesn't work. Can you help me?
Otherwise, is it possible to check the same property starting from a state that isn't the first?
Upvotes: 0
Views: 155
Reputation: 7342
Question. write if (s.state=on) is true
, from this state and for other 5 steps the property (s.state= off) is true.
CTL.
CTLSPEC AG ((s.state = on) ->
((AX s.state = off) &
(AX AX s.state = off) &
(AX AX AX s.state = off) &
(AX AX AX AX s.state = off) &
(AX AX AX AX AX s.state = off)
));
With this formula, you test whether it is true that each time you hit s.state = on
condition s.state = off
will be true for at least 5 states following the current one, regardless of your path choice.
The initial AG
ensures that this property must hold anywhere on the execution path, and not only in the initial state.
Real Time CTL.
From nusmv mailing list:
((s.state = on) ABG (1..5 s.state = off))
Note: the rest of your question isn't clear to me, so please if there is still some unanswered part just edit your question and clarify a bit.
Upvotes: 0