graphic rule
York University Redefine the possible.
space Future students Current students Faculty & staff Alumni Visitors York crest
rule


Y graphic

Measuring Progress of Java PathFinder

Java PathFinder (JPF for short) is an explicit-state model-checker for Java bytecode. JPF is generally not suitable for verifying implementations of randomized algorithms. Recently, we developed a theoretical framework to measure the amount of progress an explicit-state probabilistic model-checker has made with its verification effort. The details of our proposed framework can be found in this paper. We have implemented this framework within JPF. A discussion of our implementation can be found in this paper.

To exploit our extension of JPF to keep track of its progress when model-checking an implementation of a randomized algorithm,

All the above should be added to the classpath. Furthermore, configure JPF in such a way that it keeps track of the progress. To change the configuration of JPF from the default, change the jpf.properties file which can be found in the JPF root directory. JPF loads the properties from the jpf.properties file and changes its configuration accordingly. In order for JPF to keep track of its progress, the jpf.listener property has to be set to ProbabilityListener in the jpf.properties file as follows.
  jpf.listener = probabilistic.ProbabilityListener
To use one of the new search strategies (probability-first search (PFS) or breadth-first probability-second search (BFPSS)), specify that in the jpf.properties file as well. For example, to use PFS, the search.class property has to be set to PFS in the jpf.properties file as follows.
  search.class = gov.nasa.jpf.search.PFS