Declarative Stream Runtime Verification (hLola)

02/28/2020
by   Martin Ceresa, et al.
0

Stream Runtime Verification is a formal dynamic analysis technique that generalizes runtime verification algorithms from temporal logics like LTL to stream monitoring, allowing to compute richer verdicts than Booleans (including quantitative and arbitrary data). In this paper we study the problem of implementing an SRV engine that is truly extensible to arbitrary data theories, and we propose a solution as a Haskell embedded domain specific language. In spite of the theoretical clean separation in SRV between temporal dependencies and data computations, previous engines include ad-hoc implementations of a few data types, requiring complex changes to incorporate new data theories. We propose here an SRV language called hLola that borrows general Haskell types and embeds them transparently into an eDSL. This novel technique, which we call lift deep embedding, allows for example, the use of higher-order functions for static stream parameterization. We describe the Haskell implementation of hLola and illustrate simple extensions implemented using libraries, which require long and error-prone additions in other ad-hoc SRV formalisms.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
08/11/2020

An ad-hoc social network generation approach

The use of social networks is still confined to infrastructure-based net...
research
06/23/2022

Taking snapshots from a stream

This work is devoted to a certain class of probabilistic snapshots for e...
research
01/11/2021

Mechanisation of Model-theoretic Conservative Extension for HOL with Ad-hoc Overloading

Definitions of new symbols merely abbreviate expressions in logical fram...
research
07/12/2022

Symbolic Runtime Verification for Monitoring under Uncertainties and Assumptions

Runtime Verification deals with the question of whether a run of a syste...
research
07/26/2019

Lazy Stream Programming in Prolog

In recent years, stream processing has become a prominent approach for i...
research
10/11/2018

Increasing the Reusability of Enforcers with Lifecycle Events

Runtime enforcement can be effectively used to improve the reliability o...
research
09/10/2023

Debugging Trait Errors as Logic Programs

Rust uses traits to define units of shared behavior. Trait constraints b...

Please sign up or login with your details

Forgot password? Click here to reset