List of model checking tools

This article lists model checking tools and gives an overview of the functionality of each.

Overview of some model checking tools

The following table includes model checkers that have

  1. a web site from which it can be downloaded,
  2. a declared license,
  3. a description published in archived literature, and
  4. a Wikipedia article describing it.

In the below table, the following abbreviations are used:

NameModel CheckingEquivalence checkingGUIAvailability
Plain, Probabilistic, Stochastic, ... Modelling language Properties language Supported equivalences Counter example generation   GUI   Graphical Specification Counter example visualization Software license Programming language used Platform, OS
BLAST Code analysis C Monitor automata Yes No No No Free OCaml Windows, Unix related
CADP Plain and probabilistic LOTOS, FC2, FSP, LNT AFMC, MCL, XTL SB, WB, BB, OE, STE, WTE, SE, tau*E Yes Yes No Yes FUSC C, Bourne shell, Tcl/Tk, LOTOS, LNT macOS, Linux, Solaris, Windows
CPAchecker Code analysis C Monitor automata Yes Yes No Yes Free Java Any
DREAM Real-time C++, Timed automata Monitor automata Yes No No No Free C++ Windows, Unix related
FizzBee Specification Language Plain and probabilistic Python LTL Yes Yes No Yes Free Go macOS, Windows, Linux
GreatSPN Plain, probabilistic, real-time, stochastic Time Petri Nets, Stochastic Petri Nets, Colored Petri Nets, Well-formed Petri Nets LTL, CTL, CTL*, CSL, CSLTA No Yes Yes No Free C, C++, Java macOS, Windows, Linux
Java Pathfinder Plain and timed Java unknown No Yes No No Open Source Agreement Java macOS, Windows, Linux
Murφ (Murphi) Plain Murφ Invariants, assertions Yes No No No Free C++ Linux
NuSMV Plain SMV input language CTL, LTL, PSL Yes No No No Free C Unix, Windows, macOS
PAT Plain, real-time, probabilistic CSP#, timed CSP, probabilistic CSP LTL, assertions Yes Yes Yes Yes Free C# Windows, others with Mono
PRISM Probabilistic PEPA, PRISM language, Plain MC CSL, PLTL, PCTL No Yes No No Free C++, Java Windows, Linux, macOS
Rumur Plain Murφ Invariants, assertions Yes No No No Free C macOS, Linux
SPIN Plain Promela LTL Yes Yes No Yes FUSC C, C++ Windows, Unix related
TAPAAL Real-time Timed-Arc Petri Nets, age invariants, inhibitor arcs, transport arcs TCTL subset No Yes Yes Yes Free C++, Java macOS, Windows, Linux
TAPAs Plain CCSP CTL, μ-calculus SB, WB, BB, STE, WTE, me, ME, OE Yes Yes Yes Yes Free Java Windows, macOS, Unix related
UPPAAL Real-time Timed automata, C subset TCTL subset Yes Yes Yes Yes FUSC C++, Java macOS, Windows, Linux
ROMEO Real-time Time Petri Nets, stopwatch parametric Petri nets TCTL subset Yes Yes Yes No Free C++, Tcl/Tk macOS, Windows, Linux
TLA+ Model Checker (TLC) Plain TLA+, PlusCal TLA Yes Yes Yes No Free Java macOS, Windows, Linux

Modelling languages

Properties language

Comparison of model checking tools

Scientific publications

There exists a few papers that systematically compare various model checkers on a common case study. The comparison usually discusses the modelling tradeoffs faced when using the input languages of each model checker, as well as the comparison of performances of the tools when verifying correctness properties. One can mention:

International software competitions

See also

References

  1. ↑ E.R. Olderog: Operational Petri net semantics for CCSP
  2. ↑ Rob van Glabbeek, Frits Vaandrager: Bundle Event Structures and CCSP
  3. ↑ Romijn, Judi (June 1999). Model Checking a HAVi Leader Election Protocol (Technical report). Amsterdam: CWI. SEN-R9915. Archived from the original on 2019-09-11. Retrieved 2018-06-14.
  4. ↑ Dong, Yifei; Du, Xiaoqun; Holzmann, Gerard; Smolka, Scott (2003). "Fighting Livelock in the GNU i-Protocol: A Case Study in Explicit-State Model Checking". Software Tool for Technology Transfer. 4 (4): 505–528.
  5. ↑ Bortnik, Elena M.; Trcka, Nikola; Wijs, Anton; Luttik, Bas; van de Mortel-Fronczak, J. M.; Baeten, Jos C. M.; Fokkink, Wan; Rooda, J. E. (2005). "Analyzing a chi model of a turntable system using Spin, CADP and Uppaal" (PDF). Journal of Logical and Algebraic Methods in Programming. 65 (2): 51–104. doi:10.1016/j.jlap.2005.05.001. Archived (PDF) from the original on 2021-01-27. Retrieved 2018-05-25.
  6. ↑ Mazzanti, Franco; Ferrari, Alessio (2018). "Ten Diverse Formal Models for a CBTC Automatic Train Supervision System". Proceedings of the 3rd Workshop on Models for Formal Analysis of Real Systems and 6th International Workshop on Verification and Program Transformation (MARS/VPT’18), Thessaloniki, Greece. Electronic Proceedings in Theoretical Computer Science. Vol. 268. pp. 104–149. arXiv:1803.10324v1. doi:10.4204/EPTCS.268.4.
Common benchmarks