• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

.github/workflows/H29-Sep-2021-6755

common/H29-Sep-2021-12084

doc/H03-May-2022-1,9471,472

librumur/H03-May-2022-9,3576,899

misc/H03-May-2022-4,4553,824

murphi2c/H03-May-2022-2,1331,569

murphi2murphi/H03-May-2022-2,2921,724

murphi2uclid/H03-May-2022-1,8551,330

murphi2xml/H03-May-2022-1,2371,078

rumur/H03-May-2022-13,0219,250

tests/H03-May-2022-9,8807,199

.cirrus.ymlH A D29-Sep-20216.8 KiB156148

.clang-formatH A D29-Sep-20214.2 KiB150148

CHANGELOG.rstH A D29-Sep-202159.1 KiB1,3071,177

CONTRIBUTING.rstH A D29-Sep-2021738 1612

LICENSEH A D29-Sep-20211.2 KiB2520

NEWSH A D29-Sep-202159.1 KiB1,3071,177

README.rstH A D29-Sep-20212.6 KiB10075

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