reelay

Runtime verification package using formal specifications


Keywords
assertion-library, cyber-physical-systems, formal-methods, header-only, regular-expressions, runtime-verification, stream-processing, system-verification, temporal-logic, verification
License
MPL-2.0
Install
pip install reelay==2008.0

Documentation

Reelay Monitors

librarypythondocsCoverageCodacy Badge

Reelay is a header-only C++ library and set of tools for system-level verification and testing of real-time systems. Reelay implements state-of-the-art runtime verification techniques to construct runtime monitors that check temporal behaviors of the system against system-level requirements. Hence, Reelay can be used to enhance rigorous systems engineering practices by formalizing and automating the assessment phase.

Main Features

  • Formal specification of temporal properties
  • Provably correct monitor construction from the specification
  • Fast and frugal runtime requirement checking (very low overhead)
  • Simple but non-restrictive user interface
  • Available for C++ and Python

Rye Format

Reelay reads executable specifications written in plain text and verifies that the system does what those specifications say at runtime. In order to construct runtime monitors automatically, those specifications must follow some basic syntax rules, called Reelay Expression (Rye) format. See the reference for the Rye format for more details.

Get Started

The next steps for you are to install Reelay from source and follow through the tutorial to learn how to use Reelay monitors from C++ and Python. Check out the documentation for more details.

Contribute

Currently Reelay does not have a contribution guideline. However, we always welcome bug reports, enhancements, and comments regarding the project. Please use the Issues page if you have a bug report, enhancement, or comment.

Cite

If you are using Reelay in an academic work, please cite

where the main technique has been explained throughtly. Further bits of techniques and motivations can be traced in the following papers.

Please also look at the performance notes if you compare the performance between tools.