Open kleinj opened 8 years ago
The problem appears to be the following: In SimulatorEngine.doSampling
, the method automaticTransition
is iteratively called as long as there are samplers that have an unknown value and as long as the maximal path length is not yet exceeded. However, if the path formula has a time / step bound, then the maximal path length is ignored.
If the current state of the path is a deadlock state (as for reloc=M
in the model), automaticTransition
fails, returning false
. In particular, the samplers are not updated and the sampler for P=?[ true U[T,T] reloc>=L]
will never signal success/failure; the loop will continue indefinitely.
Possible fixes:
automaticTransition
and simply break out of the loop. This leads to the error message
Error: One or more of the properties being sampled could not be checked on a sample. Consider increasing the maximum path length.
This is might be adapted to indicate the problem with the deadlock.
Trying to replicate the bug report in https://sourceforge.net/p/prism-mc/bugs/20/, I stumbled upon another bug: The simulator hangs indefinitely sampling a path for the second property.
bug.prism:
bug.props:
Invocation:
Observed behaviour: PRISM does not terminate.