Model Checking Tools

Currently there exist only LTL model checking algorithms and reachability analysis algorithms. Support for other logics is the future work.

LTL is natively supported in both DVE and Promela modeling languages by possibility to add the never claim automaton to the source code of a model. This way the product automaton of a model and an LTL formula is created and the verification task reduces to accepting cycle detection.

Note:
For Promela we do not provide the possibility to generate the never claim automaton from an LTL formula. For DVE it is made using divine.combine
Warning:
Distributed tools need to be run using utility mpirun from MPI distribution. This utility requires absolute path to the executable - E. g.
mpirun -np 10 /usr/bin/divine.bledge peterson.dve

distr_reachability - Reachability Analysis

Synopsis

Description

negative_cycle_detection - Accepting Cycles Detected Using Negative Cycle Detection

Synopsis

[mpirun -np N] divine.negative_cycle_detection [-hS] [-H size] input_file

Description

LTL model checker based on the accepting cycle detection. Cycles are searched using a distributed algorithm for negative cycle detection. This approach was first published in Distributed LTL Model Checking Based on Negative Cycle Detection (2001)

Options

Output

If LTL formula is true, no accepting cycle is found, the message "No accepting cycle found." is printed.

If LTL formula is false, "Accepting cycle found." is printed instead.

If -S/--printstats parameter is set, the statistics is printed too:

Furthermore if LTL formula is false and -t/--trail or -c/--statelist are set, then also special statistics for a counterexample is printed out:

token_based_ndfs - Token Based Nested DFS

Synopsis

Description

LTL model checker based on the accepting cycle detection.

Token based nested DFS algorithm performs a sequential computation in the distributed memory environment utilizing thus aggregate memory of participating workstations.

distr_map - Accepting Cycles Detected Maximal Accepting Predecessor Function

Synopsis

[mpirun -np N] divine.distr_map [-hS] [-H size] input_file

Description

Distributed LTL model checker based on the accepting cycle detection. Cycles are detected by the recursively computed function <it>map</it>: maximal accepting predecessor function. This approach was first published in Accepting Predecessors are Better than Back Edges in Distributed LTL Model-Checking (2004)

Options

Output

The number of iterations of the algorithm and the sizes of the set shrinkA after each iteration are printed (see the paper about algorithm for details).

If LTL formula is true, no accepting cycle is found, the message "Accepting cycle: NO." is printed.

If LTL formula is false, "Accepting cycle: YES." is printed.

If -S/--printstats parameter is set, the statistics is printed too:


Tutorial, 2006 developed in ParaDiSe laboratory, Faculty of Informatics, Masaryk University