1
0
Fork
You've already forked rumur
0
yet another model checker
  • C++ 54.6%
  • M 13.9%
  • C 13.5%
  • Python 6.9%
  • SMT 3.7%
  • Other 7.4%
2026年04月21日 19:22:01 +10:00
.github/workflows CI: migrate GCC 15 ARM Linux job to Github Actions 2026年04月21日 19:21:28 +10:00
common port help.cc to C 2024年12月24日 17:33:33 +11:00
doc Revert "note extra 'git clean' step now required for packaging under Pytest" 2025年01月05日 08:41:30 +11:00
librumur fix resolution of ambiguous '|' with typedefed LHS 2026年03月10日 17:01:23 -07:00
misc CI: migrate macOS testing to Github Actions 2026年04月13日 21:00:39 +10:00
murphi-format murphi-format: clang-format 2026年04月14日 08:08:14 +10:00
murphi2c murphi2c: suppress man page word breaking within '__attribute__((packed))' 2025年03月21日 17:10:41 -07:00
murphi2murphi simplify version function generation 2024年12月25日 17:50:59 +11:00
murphi2smv simplify version function generation 2024年12月25日 17:50:59 +11:00
murphi2uclid simplify version function generation 2024年12月25日 17:50:59 +11:00
murphi2xml simplify version function generation 2024年12月25日 17:50:59 +11:00
rumur fix sandboxed execution on Linux aarch64 with THP 2026年03月10日 17:17:15 -07:00
share release v2026.03.11 2026年03月11日 19:52:57 -07:00
tests tests: show stdout, stderr when 'murphi-format' fails 2026年04月19日 06:45:54 +10:00
.cirrus.yml CI: migrate GCC 15 ARM Linux job to Github Actions 2026年04月21日 19:21:28 +10:00
.clang-format simplify clang-format file 2022年10月28日 18:27:55 -07:00
CHANGELOG.rst release v2026.03.11 2026年03月11日 19:52:57 -07:00
CMakeLists.txt add a "uses pledge()" comment 2026年03月24日 17:07:07 -07:00
CONTRIBUTING.rst add some long overdue contribution guidelines 2020年02月06日 18:00:29 -08:00
LICENSE switch to the Unlicense, rather than the imprecise "public domain" 2018年12月22日 10:37:50 -08:00
NEWS add a NEWS symlink for Debian packaging 2019年09月28日 15:02:21 -07:00
README.rst update CMake build requirement note 2025年09月03日 17:47:02 -07:00

Rumur

Rumur is a model checker, a formal verification tool for proving safety and security properties of systems represented as state machines. It is based on a previous tool, CMurphi, and intended to be close to a drop-in replacement. Rumur takes the same input format as CMurphi, the Murphi modelling language, with some extensions and generates a C program that implements a verifier.

A more extended introduction is available in doc/introduction.rst

Quickstart

Installation on Ubuntu or Debian

 apt install rumur

Installation on FreeBSD

 pkg install rumur

Thanks to yuri@FreeBSD for packaging.

Installation on Arch Linux

 pacman -S rumur

Thanks to Qirui Wang (wangqr) for packaging.

Building from Source

First you will need to have the following dependencies installed:

Then:

 # Download Rumur
 git clone https://github.com/Smattr/rumur
 cd rumur
 
 # Configure and compile
 cmake -B build -S .
 cmake --build build
 cmake --install build
 
 # Generate a checker
 rumur my-model.m --output my-model.c
 
 # Compile the checker (also pass -mcx16 if using GCC on x86-64)
 cc -std=c11 -march=native -O3 my-model.c -lpthread
 
 # Run the checker
 ./a.out

Compilation produces several artefacts including the rumur binary itself:

  • rumur: Tool for translating a Murphi model into a program that implements a checker;
  • murphi-format: Reformatter for Murphi models;
  • murphi2c: Tool for translating a Murphi model into C code for use in a simulator;
  • murphi2murphi: A preprocessor for Murphi models;
  • murphi2smv: Tool for translating a Murphi model into NuSMV input;
  • murphi2uclid: Tool for translating a Murphi model into Uclid5 input;
  • murphi2xml: Tool for emitting an XML representation of a Murphi model’s Abstract Syntax Tree;
  • librumur.a: A library for building your own Murphi model tools; and
  • include/rumur/: The API for the above library.

Comparison with CMurphi

If you are migrating from CMurphi, you can read a comparison between the two model checkers at doc/vs-cmurphi.rst.

Everything in this repository is in the public domain, under the terms of the Unlicense. For the full text, see LICENSE.