| Input Language | Tool's own language (first-order or propositional logic) |
| Supported Techniques | Proof Assistant/Interactive Theorem Proving |
| Platforms | Anything that supports Java |
| Availability | Freely Available, including source |
| Input Language | Tool's own language (finite state machine) |
| Supported Techniques | Model Checking |
| Platforms | Linux, Sparc/Solaris |
| Availability | Freely Available, including source |
| Input Language | Tool's own language (typed higher order logic) |
| Supported Techniques | Proof Checking, Model Checking |
| Platforms | Linux, Sparc/Solaris |
| Availability | Freely Available, binaries only, under license |
| Input Language | Tool's own language (Higher-order logic) |
| Supported Techniques | Proof Checking |
| Platforms | Linux, Alpha, Sparc/Solaris |
| Availability | Freely Available, including source |
| Input Language | Tool's own language (guarded command language) |
| Supported Techniques | Model Checking, Symmetry |
| Platforms | Linux, Sparc/Solaris, SGI Indy, HP-UX |
| Availability | Freely Available, including source |
| Input Language | Promela |
| Supported Techniques | Model Checking, Partial Orders |
| Platforms | Windows NT, Windows 95, Linux, Sparc/Solaris |
| Availability | Freely Available, including source |
| Input Language | Verilog, Tool's own language (blif-mv) |
| Supported Techniques | Model Checking, Synthesis |
| Platforms | Windows 95, Linux, Alpha, Sparc/Solaris, DEC MIPS, HP Snake |
| Availability | Freely Available, including source |
| Input Language | Tool's own language (Common Lisp) |
| Supported Techniques | Heuristic Theorem Proving, Proof Checking |
| Platforms | Linux, Sparc/Solaris |
| Availability | Freely Available, including source |
| Input Language | Tool's own language (LOTOS (ISO standard 8807), communicating finite state machines, etc.) |
| Supported Techniques | Model Checking |
| Platforms | Linux, Sparc/Solaris, Sparc/SunOS |
| Availability | Free To Universities |
| Used in Courses | many |
| Input Language | Tool's own language (higher-order logic) |
| Supported Techniques | Proof Checking |
| Platforms | Linux, Sparc/Solaris |
| Availability | Freely Available, including source |
| Input Language | Tool's own language (based on Reactive Modules) |
| Supported Techniques | Model Checking, Compositional Reasoning |
| Platforms | Linux, Alpha, Sparc/Solaris |
| Availability | Freely Available, including source |
| Used in Courses | Computer-Aided Verification |
| Input Language | Verilog, Tool's own language (finite-state machine language) |
| Supported Techniques | Model Checking, Compositional Reasoning, Symmetry, Abstraction |
| Platforms | Linux, Alpha, Sparc/Solaris |
| Availability | Freely Available, binaries only |
| Input Language | Tool's own language (Java class library) |
| Supported Techniques | Compositional Reasoning, Abstraction, Assertions on event sequences via temporal logic |
| Platforms | Windows NT, Windows 95, Linux, Alpha, Macintosh, Sparc/Solaris |
| Availability | Freely Available, including source |
| Used in Courses | Java Programming and Concurrency |
| Input Language | Tool's own language (Scheme) |
| Supported Techniques | programming environment |
| Platforms | Windows NT, Windows 95, Linux, Alpha, Macintosh, Sparc/Solaris, lots of other Unix platforms |
| Availability | Freely Available, including source |
| Notes | DrScheme is a pedagogically-motivated programming environment for Scheme. It supports source highlighting of errors, presentation of Scheme via increasingly complex language layers (with additional error-checking at lower levels), a Lisp-style but improved interaction mechanism, robust linguistic extensions for modular, object-oriented and graphical programming, and complete portability across all supported platforms. |
| Input Language | Tool's own language (any executable code (C, C++, etc.)) |
| Supported Techniques | Model Checking |
| Platforms | Linux, Sparc/Solaris |
| Availability | Freely Available, binaries only |
| Input Language | Tool's own language (Parallel programs (B(PN)^2), SDL (Specification Description Language), High-Level and low-level Petri Nets, Process algebra terms (PBC), Parallel finite automata) |
| Supported Techniques | Model Checking, Deadlock detection. Structural properties (invariants), Compositional Reasoning, Partial Orders, Symmetry |
| Platforms | Linux, Sparc/Solaris, SGI/Irix |
| Availability | Free To Universities |
| Notes | PEP has (to my knowledge) been used for courses on Petri nets, process algebras, model checking, verification, parallel systems, SDL and parallel programs. PEP includes interfaces to FC2, INA, SMV and SPIN. |
| Input Language | Tool's own language (VDM-SL and VDM++) |
| Supported Techniques | Type checking and Interpretation, Abstraction |
| Platforms | Windows NT, Windows 95, Linux, Alpha, Sparc/Solaris |
| Availability | Free To Universities |
| Used in Courses | Formal Specification of Software |
| Notes | Academic site licenses available |
| Supported Techniques | termination analysis, Abstraction |
| Platforms | Linux, Sparc/Solaris |
| Availability | Free To Universities |
| Used in Courses | Logic Programming |
| Input Language | Tool's own language ((finite-state machine language)) |
| Supported Techniques | Model Checking |
| Platforms | Linux, Sparc/Solaris, Intel/Solaris |
| Availability | Free To Universities |
| Used in Courses | Model Checking Tutorial |
| Input Language | Tool's own language (Formal Theory of Abstract Data Types) |
| Supported Techniques | Heuristic Theorem Proving, Proof Checking, , Code Synthesis |
| Platforms | Windows NT, Windows 95, Linux, Sparc/Solaris, MIPS |
| Availability | Freely Available, including source |
| Used in Courses | Verificación y Desarrollo de Programas |
| Input Language | Tool's own language (fair transition systems) |
| Supported Techniques | Model Checking, Deductive Verification, Compositional Reasoning, Abstraction, Hybrid Systems, First-order logic |
| Platforms | Linux, Alpha, Sparc/Solaris, SGI |
| Availability | Freely Available, including source |
| Input Language | Tool's own language (specification and design) |
| Supported Techniques | type checking; translation |
| Platforms | Windows NT, Windows 95, Linux, Sparc/Solaris |
| Availability | Freely Available, including source |
| Used in Courses | Formal Software Specification Using RAISE |
| Input Language | Promela |
| Supported Techniques | Model Checking, Partial Orders, Selective state caching, memory model verif (prelim) |
| Platforms | Linux, Sparc/Solaris |
| Availability | Freely Available, including source |
| Used in Courses | CPSC 6110, Formal Methods in System Design |
| Notes | Send email to ganesh@cs.utah.edu for problems or questions. |
| Input Language | Tool's own language (Simulink/Stateflow) |
| Supported Techniques | automatic test-suite generation via state exploration |
| Platforms | Windows (all varieties), Linux |
| Availability | Commercial |
| Notes | Educational discounts available. |
| Input Language | Tool's own language (FSP) |
| Supported Techniques | Model Checking, Partial Orders, Synthesis from MSCs |
| Platforms | Windows (all varieties), Linux, Macintosh |
| Availability | Freely Available, binaries only |
| Used in Courses | Concurrent Programming |
| Input Language | Tool's own language (Declarative relational logic) |
| Supported Techniques | Satisfiability Checking |
| Platforms | Windows (all varieties), Linux, Macintosh, Sparc/Solaris |
| Availability | Freely Available, including source |
| Input Language | Tool's own language (Object oriented) |
| Supported Techniques | Derivational/Transformational Reasoning, Heuristic Theorem Proving, Compositional Reasoning, Partial Orders, Abstraction |
| Platforms | Windows (all varieties), Linux |
| Availability | Free to Universities |
| Used in Courses | Formal Methods (Tony Mullins) | Notes | The Educational Edition of the tool is free to universities from August 2005. It is also used in courses at other universities, e.g. Portsmouth (UK), Mayneuth (Ireland), TUV (Austria) |
| This site is currently maintained by Kathi Fisler Department of Computer Science, Worcester Polytechnic Institute Last updated on Monday, 04-Feb-2008 08:02:51 EST Acknowledgements |