0

I'm struggling with some simple verification. I have automata and value x like this:

automata automata2

When x at the start is different from 0 then E<> x !=0 is satisfied, but when x = 0, then its not satisfied and E<> x == 0 and A<> x == 0 are satisfied. But I would like to get a not satisfied for E<> x !=0 even when x is different from 0 at the start.

What should I change? How does that verify-er works exactly? Empty path, when nothing was executed is a correct path too? And the Set of all possibly paths contains this empty path as well?

Robert Ruska
  • 3
  • 1
  • 2

1 Answers1

0

The initial state is a state like any other, thus if x is 0 in the initial state, then all paths starting in this state will eventually be in a state where x = 0 holds. If you want to check if x = 0 in any other state, you need to exclude the initial state in the query. For instance E<> x=0 and not line1.S0.

Johan
  • 3,667
  • 6
  • 20
  • 25
  • Ty for answer it solved a problem with E<>, but I'm still strugling with A<>. You can find another screenshot in the definition. How is that what you see on screenshot even possible? – Robert Ruska Feb 20 '19 at 22:29
  • @RobertRuska The A<> case has to do with clocks. Since there is nothing that forces progress the automaton may stay indefinitely in the S0 location and in this case it will never reach a state where `x==0 and not line1.S0` holds. – Johan Feb 21 '19 at 07:52