0

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?

Patrick Trentin
  • 7,126
  • 3
  • 23
  • 40
Desmond
  • 9
  • 1
  • 5

1 Answers1

0

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.

Patrick Trentin
  • 7,126
  • 3
  • 23
  • 40
  • This is a CTL formula, i have to write it in Real Time CTL where the number of steps are specified as: `int_number..int_number ` If i write this : `EBF 0..49 b.efficiency = 50 ` i'm checking that from the state 0 to the state 49 the efficiency is 50. But, i would like to know if there is a way to check a property not from a state (like 0,1,2...) but from a state where a condition is true, like : `EBF (s.state = on)..49 b.efficiency = 50 ` that is readed as : from the state where `(s.state = on)` and for the next 49 steps, `b.efficiency = 50` I hope that it's clear now – Desmond Dec 01 '16 at 21:07
  • @Desmond can you edit your question and add the model you are referring to? – Patrick Trentin Dec 01 '16 at 21:17