Date of this Version
Teng Zhang, John Wiegley, Theophilos Giannakopoulos, Gregory Eakman, Clement Pit-Claudel, Insup Lee, and Oleg Sokolsky, "Correct-by-construction implementation of runtime monitors using stepwise refinement", International Symposium on Dependable Software Engineering: Theories, Tools, and Applications (SETTA 2018) , 31-49. September 2018. http://dx.doi.org/10.1007/978-3-319-99933-3_3
Runtime verification (RV) is a lightweight technique for verifying traces of computer systems. One challenge in applying RV is to guarantee that the implementation of a runtime monitor correctly detects and signals unexpected events. In this paper, we present a method for deriving correct-by-construction implementations of runtime monitors from high-level specifications using Fiat, a Coq library for stepwise refinement. SMEDL (Scenario-based Meta-Event Definition Language), a domain specific language for event-driven RV, is chosen as the specification language. We propose an operational semantics for SMEDL suitable to be used in Fiat to describe the behavior of a monitor in a relational way. Then, by utilizing Fiat's refinement calculus, we transform a declarative monitor specification into an executable runtime monitor with a proof that the behavior of the implementation is strictly a subset of that provided by the specification. Moreover, we define a predicate on the syntax structure of a monitor definition to ensure termination and determinism. Most of the proof work required to generate monitor code has been automated.
CPS Formal Methods
International Symposium on Dependable Software Engineering: Theories, Tools, and Applications (SETTA 2018)
runtime monitor, SMEDL, formal semantics, Coq, stepwise refinement
Date Posted: 17 February 2020
This document has been peer reviewed.