RCRS (the Refinement Calculus of Reactive Systems)
is a compositional reasoning framework:
RCRS can model open (input-output), non-deterministic, and non-input-receptive systems.
Non-deterministic means for a given input, many outputs may be possible. Non-input-receptive means some inputs may be declared as illegal.
Components can be specified as symbolic transition systems
or as temporal logic (LTL) formulas.
Components can be composed using three primitive operators:
serial, parallel, and feedback composition.
RCRS supports checking compatibility of components during composition.
RCRS supports refinement, which allows to reason about component substitutability.
RCRS supports both safety and liveness properties.
RCRS has been fully formalized in the Isabelle theorem prover. This formalization is included in the publicly
available RCRS Toolset (see below).
The RCRS Toolset comes with a Translator of Hierarchical Block Diagrams
(Simulink).
The RCRS Toolset has been used on non-trivial examples, including
a Fuel Control System benchmark provided by Toyota.
A Formal Analyzer, implemented on top of Isabelle, which
allows to perform compatibility checks on a model, to flatten and
simplify a hierarchical model into a single monolithic
symbolic transition system without internal variables ("wires"),
and to generate simulation code.
The simulink2isabelle Translator, which translates
Simulink models
into RCRS Isabelle theories that can be processed by the Formal Analyzer.
We support a decent subset of Simulink's basic blocks, including
continuous-time blocks like Integrators.
To install, download the distribution (zip file) and read the README file. The simulink2isabelle Translator is written in Python and requires the
third-party component
pyparsing.
The RCRS TACAS 2018 Artifact is available for download on figshare. Note that this artifact is older than the latest RCRS distribution.
Papers
I. Dragomir, V. Preoteasa, S.Tripakis. The Refinement Calculus of Reactive Systems Toolset. STTT 2020. [paper]
V. Preoteasa, T. Latvala, K. Varpaaniemi. Modelling Programmable Logic Controllers in Refinement Calculus of Reactive Systems. CS&P 2019. [paper]
V. Preoteasa, I. Dragomir, S.Tripakis. Mechanically Proving Determinacy of Hierarchical Block Diagram Translations. VMCAI 2019. Extended version in arXiv 2018. [paper][technical report]
I. Dragomir, V. Preoteasa, S.Tripakis. The Refinement Calculus of Reactive Systems Toolset. TACAS 2018. Extended version in arXiv 2018.
Distinguished Artifact Award. [paper][technical report]
V. Preoteasa, I. Dragomir, S.Tripakis. The Refinement Calculus of Reactive Systems. arXiv 2017. [technical report]
V. Preoteasa, I. Dragomir, S.Tripakis. Type Inference of Simulink Hierarchical Block Diagrams in Isabelle. FORTE 2017. [paper][technical report][slides]
V. Preoteasa, S.Tripakis. Towards Compositional Feedback in Non-Deterministic and Non-Input-Receptive Systems. LICS 2016. [paper][technical report]
S.Tripakis. Compositionality in the Science of System Design. Proceedings of the IEEE 2016. [paper]
I. Dragomir, V. Preoteasa, S.Tripakis. Compositional Semantics and Analysis of Hierarchical Block Diagrams. SPIN 2016. [paper][technical report][slides]
V. Preoteasa, S.Tripakis. Refinement Calculus of Reactive Systems. EMSOFT 2014. [paper][technical report]
V. Preoteasa. Formalization of Refinement Calculus for Reactive Systems. Archive of Formal Proofs 2014. [paper][source]
S. Tripakis, C. Stergiou, M. Broy, E. A. Lee. Error-Completion in Interface Theories. SPIN 2013. [paper]
S. Tripakis, B. Lickly, T. A. Henzinger, E. A. Lee. A Theory of Synchronous Relational Interfaces. ACM TOPLAS 2011. [paper]
S. Tripakis, B. Lickly, T. A. Henzinger, E. A. Lee. On Relational Interfaces. EMSOFT 2009. [paper]