https://github.com/doganulus/reelay
A header-only C++ library for system-level verification and declarative testing of real-time systems with Python bindings.
https://github.com/doganulus/reelay
assertion-library cyber-physical-systems formal-methods header-only runtime-verification stream-processing system-verification temporal-logic verification
Last synced: about 2 months ago
JSON representation
A header-only C++ library for system-level verification and declarative testing of real-time systems with Python bindings.
- Host: GitHub
- URL: https://github.com/doganulus/reelay
- Owner: doganulus
- License: mpl-2.0
- Created: 2019-07-07T18:29:28.000Z (almost 6 years ago)
- Default Branch: main
- Last Pushed: 2024-04-06T21:22:32.000Z (about 1 year ago)
- Last Synced: 2025-03-20T11:47:27.389Z (2 months ago)
- Topics: assertion-library, cyber-physical-systems, formal-methods, header-only, runtime-verification, stream-processing, system-verification, temporal-logic, verification
- Language: C++
- Homepage: https://doganulus.github.io/reelay/
- Size: 2.98 MB
- Stars: 34
- Watchers: 2
- Forks: 6
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
# Reelay Monitors
[](https://github.com/doganulus/reelay/actions/workflows/tests.yml)
[](https://github.com/doganulus/reelay/actions/workflows/python.yml)
[](https://github.com/doganulus/reelay/actions/workflows/docs.yml)
[](https://coveralls.io/github/doganulus/reelay?branch=main)
[](https://www.codacy.com/manual/doganulus/reelay?utm_source=github.com&utm_medium=referral&utm_content=doganulus/reelay&utm_campaign=Badge_Grade)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](https://en.wikipedia.org/wiki/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](docs/rye.md) for more details.
## Get Started
The next steps for you are to install Reelay [from source](docs/install.md) and follow through [the tutorial](docs/gs_intro.md) to learn how to use Reelay monitors from [C++](docs/gs_cpp.md) and [Python](docs/gs_python.md). Check out [the documentation](https://doganulus.github.io/reelay/) 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](https://github.com/doganulus/reelay/issues) page if you have a bug report, enhancement, or comment.
## Cite
If you are using Reelay in an academic work, please cite
- [Online monitoring of metric temporal logic using sequential networks](https://arxiv.org/abs/1901.00175)
where the main technique has been explained throughtly. Further bits of techniques and motivations can be traced in the following papers.
- [First-order temporal logic monitoring with BDDs](https://link.springer.com/article/10.1007/s10703-018-00327-4)
- [Sequential circuits from regular expressions revisited](https://arxiv.org/abs/1801.08979)Please also look at the [performance notes](docs/performance.md) if you compare the performance between tools.