Name | Date | Size | #Lines | LOC | ||
---|---|---|---|---|---|---|
.. | 03-May-2022 | - | ||||
.github/workflows/ | H | 29-Sep-2021 | - | 67 | 55 | |
common/ | H | 29-Sep-2021 | - | 120 | 84 | |
doc/ | H | 03-May-2022 | - | 1,947 | 1,472 | |
librumur/ | H | 03-May-2022 | - | 9,357 | 6,899 | |
misc/ | H | 03-May-2022 | - | 4,455 | 3,824 | |
murphi2c/ | H | 03-May-2022 | - | 2,133 | 1,569 | |
murphi2murphi/ | H | 03-May-2022 | - | 2,292 | 1,724 | |
murphi2uclid/ | H | 03-May-2022 | - | 1,855 | 1,330 | |
murphi2xml/ | H | 03-May-2022 | - | 1,237 | 1,078 | |
rumur/ | H | 03-May-2022 | - | 13,021 | 9,250 | |
tests/ | H | 03-May-2022 | - | 9,880 | 7,199 | |
.cirrus.yml | H A D | 29-Sep-2021 | 6.8 KiB | 156 | 148 | |
.clang-format | H A D | 29-Sep-2021 | 4.2 KiB | 150 | 148 | |
CHANGELOG.rst | H A D | 29-Sep-2021 | 59.1 KiB | 1,307 | 1,177 | |
CONTRIBUTING.rst | H A D | 29-Sep-2021 | 738 | 16 | 12 | |
LICENSE | H A D | 29-Sep-2021 | 1.2 KiB | 25 | 20 | |
NEWS | H A D | 29-Sep-2021 | 59.1 KiB | 1,307 | 1,177 | |
README.rst | H A D | 29-Sep-2021 | 2.6 KiB | 100 | 75 |
README.rst
1Rumur 2===== 3Rumur is a `model checker`_, a formal verification tool for proving safety and 4security properties of systems represented as state machines. It is based on a 5previous tool, CMurphi_, and intended to be close to a drop-in replacement. 6Rumur takes the same input format as CMurphi, the Murphi modelling language, 7with some extensions and generates a C program that implements a verifier. 8 9Quickstart 10---------- 11 12Installation on Ubuntu ≥ 20.04 or Debian Unstable 13~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 14 15.. code-block:: sh 16 17 apt install rumur 18 19Installation on FreeBSD 20~~~~~~~~~~~~~~~~~~~~~~~ 21 22.. code-block:: sh 23 24 pkg install rumur 25 26Thanks to `yuri@FreeBSD`_ for packaging. 27 28.. _`yuri@FreeBSD`: https://github.com/yurivict 29 30Building from Source 31~~~~~~~~~~~~~~~~~~~~ 32First you will need to have the following dependencies installed: 33 34* Either GCC_ or Clang_ 35* Bison_ 36* CMake_ 37* Flex_ 38* Libgmp_ 39* Python_ ≥ 3.4 40 41Then: 42 43.. code-block:: sh 44 45 # Download Rumur 46 git clone https://github.com/Smattr/rumur 47 cd rumur 48 49 # Configure and compile 50 mkdir build 51 cd build 52 cmake .. 53 make 54 make install 55 56 # Generate a checker 57 rumur my-model.m --output my-model.c 58 59 # Compile the checker (also pass -mcx16 if using GCC on x86-64) 60 cc -std=c11 -O3 my-model.c -lpthread 61 62 # Run the checker 63 ./a.out 64 65Compilation produces several artefacts including the `rumur` binary itself: 66 67* rumur: Tool for translating a Murphi model into a program that implements 68 a checker; 69* murphi2c: Tool for translating a Murphi model into C code for use in a 70 simulator; 71* murphi2murphi: A preprocessor for Murphi models; 72* murphi2xml: Tool for emitting an XML representation of a Murphi model’s 73 Abstract Syntax Tree; 74* librumur.a: A library for building your own Murphi model tools; and 75* include/rumur/: The API for the above library. 76 77Comparison with CMurphi 78----------------------- 79If you are migrating from CMurphi, you can read a comparison between the two 80model checkers at `doc/vs-cmurphi.rst`_. 81 82.. _doc/vs-cmurphi.rst: doc/vs-cmurphi.rst 83 84Legal 85----- 86Everything in this repository is in the public domain, under the terms of 87`the Unlicense`_. For the full text, see LICENSE_. 88 89.. _Bison: https://www.gnu.org/software/bison/ 90.. _CMake: https://cmake.org/ 91.. _CMurphi: http://mclab.di.uniroma1.it/site/index.php/software/18-cmurphi 92.. _Clang: https://clang.llvm.org/ 93.. _Flex: https://github.com/westes/flex 94.. _GCC: https://gcc.gnu.org/ 95.. _Libgmp: https://gmplib.org/ 96.. _LICENSE: ./LICENSE 97.. _`model checker`: https://en.wikipedia.org/wiki/Model_checking 98.. _Python: https://www.python.org/ 99.. _`the Unlicense`: http://unlicense.org/ 100