mCRL2 is a formal specification language with an associated toolset. The toolset can be used for modelling, validation and verification of concurrent systems and protocols. It can be run on Windows, Linux and macOS.
The toolset supports a collection of tools for linearisation, simulation, state-space exploration and generation and tools to optimise and analyse specifications. Moreover, state spaces can be manipulated, visualised and analysed.
The mCRL2 toolset is developed at the department of Mathematics and Computer Science of the Technische Universiteit Eindhoven, in collaboration with the University of Twente.
See our website for extensive documentation on the usage of the toolset and downloads of the release and nightly versions.
mCRL2 has the following minimum dependencies:
- A C++17 compliant compiler, which can be one of the following:
- GCC: 7.0
- Clang: 5.0
- AppleClang: 11.0
- MSVC: 2019 v16.0
- Qt (Linux/Windows: 5.9.0, MacOS: 5.10.0; for the GUI tools only)
- Boost (Linux: 1.65.1, MacOS/Windows: 1.67.0)
Furthermore, sphinx and xsltproc are required to build the documentation. Makefiles can be generated using cmake. The compiling rewriter and the symbolic tools (lpsreach and pbessolvesymbolic) are only available for MacOS and Linux. qTo build the toolset in Release mode using 4 threads, run the following commands (preferably in an empty directory):
git clone https://github.com/mCRL2org/mCRL2 src
mkdir build && cd build
cmake -DCMAKE_BUILD_TYPE=Release ../src
make -j4
When compilation is finished, the binaries can be found in stage/bin/
.
Convenient front-ends for cmake are ccmake (MacOS/Linux) and cmake-gui. Under
Windows and macOS, it is usually necessary to set the variables
Boost_INCLUDE_DIR
and Qt5_DIR
manually. More build instructions can be found
in the
documentation.
Report bugs in the issue tracker.
Please include the version number from mcrl22lps --version
, and a complete,
self-contained test case in each bug report.
Contributions in the form of a pull request are welcome. For more details, see the documentation.
If you have questions about using the mCRL2 toolset which the documentation does not answer, send a mail to [email protected] or open an issue.
Copyright (C) 2005-2022 Eindhoven University of Technology
mCRL2 is licensed under the Boost
license. See the file COPYING for
detailed license information.