scispace - formally typeset
Journal ArticleDOI

Rewriting-Based Techniques for Runtime Verification

Reads0
Chats0
TLDR
The presented work is part of an ambitious runtime verification and monitoring project at NASA Ames, called PathExplorer, and demonstrates that rewriting can be a tractable and attractive means for experimenting and implementing logics for program monitoring.
Abstract
Techniques for efficiently evaluating future time Linear Temporal Logic (abbreviated LTL) formulae on finite execution traces are presented. While the standard models of LTL are infinite traces, finite traces appear naturally when testing and/or monitoring real applications that only run for limited time periods. A finite trace variant of LTL is formally defined, together with an immediate executable semantics which turns out to be quite inefficient if used directly, via rewriting, as a monitoring procedure. Then three algorithms are investigated. First, a simple synthesis algorithm for monitors based on dynamic programming is presented; despite the efficiency of the generated monitors, they unfortunately need to analyze the trace backwards, thus making them unusable in most practical situations. To circumvent this problem, two rewriting-based practical algorithms are further investigated, one using rewriting directly as a means for online monitoring, and the other using rewriting to generate automata-like monitors, called binary transition tree finite state machines (and abbreviated BTT-FSMs). Both rewriting algorithms are implemented in Maude, an executable specification language based on a very efficient implementation of term rewriting. The first rewriting algorithm essentially consists of a set of equations establishing an executable semantics of LTL, using a simple formula transforming approach. This algorithm is further improved to build automata on-the-fly via caching and reuse of rewrites (called memoization), resulting in a very efficient and small Maude program that can be used to monitor program executions. The second rewriting algorithm builds on the first one and synthesizes provably minimal BTT-FSMs from LTL formulae, which can then be used to analyze execution traces online without the need for a rewriting system. The presented work is part of an ambitious runtime verification and monitoring project at NASA Ames, called PathExplorer, and demonstrates that rewriting can be a tractable and attractive means for experimenting and implementing logics for program monitoring.

read more

Content maybe subject to copyright    Report

Citations
More filters
Journal ArticleDOI

An overview of the MOP runtime verification framework

TL;DR: An overview of the, monitoring oriented programming framework (MOP), and an explanation of parametric trace monitoring and its implementation is given.
Proceedings ArticleDOI

LOLA: runtime monitoring of synchronous systems

TL;DR: A specification language and algorithms for the online and offline monitoring of synchronous systems including circuits and embedded systems, and a class of specifications, characterized syntactically, for which the algorithm's memory requirement is independent of the length of the input streams.
Journal ArticleDOI

An Overview of the Runtime Verification Tool Java PathExplorer

TL;DR: An overview of the Java PathExplorer runtime verification tool, in short JPAX, which can monitor the execution of a Java program and check that it conforms with a set of user provided properties formulated in temporal logic.
Journal IssueDOI

Testing with model checkers: a survey

TL;DR: The state of the art in testing with model checkers is reviewed: many different approaches have been presented, many problems have been solved, yet many issues remain.
Book ChapterDOI

Introduction to runtime verification

TL;DR: The aim of this chapter is to act as a primer for those wanting to learn about Runtime Verification, providing an overview of the main specification languages used for RV and introducing the standard terminology necessary to describe the monitoring problem.
References
More filters
Book ChapterDOI

Synthesizing Monitors for Safety Properties

TL;DR: An algorithm which takes a past time LTL formula and generates an efficient dynamic programming algorithm is presented, which is to construct a flexible framework for monitoring and analyzing program executions.
Book ChapterDOI

Model Checking of Safety Properties

TL;DR: An analysis of safety properties is presented that enables us to prevent the doubly-exponential blow up and to use the same automaton used for model checking of general properties, replacing the search for bad cycles by a search for finite bad prefixes.
Book ChapterDOI

The Temporal Rover and the ATG Rover

TL;DR: The Temporal Rover is a specification based verification tool for applications written in C, C++, Java, Verilog and VHDL that generates executable code from LTL and MTL assertions written as comments in the source code.
Journal ArticleDOI

Monitoring Java Programs with Java PathExplorer

TL;DR: Recent work on the development of Java PathExplorer (\JPaXX), a tool for monitoring the execution of Java programs, can be used during program testing to gain increased information about program executions, and can potentially furthermore be applied during operation to survey safety critical systems.
Proceedings ArticleDOI

Specification-based test oracles for reactive systems

TL;DR: It is argued that test oracles should be derived from specifications in conjunction with testing criteria, represented in a common form, and their use made integral to the test- ing process.
Related Papers (5)