Foundations of Boolean stream runtime verification

Stream runtime verification (SRV), pioneered by the tool LOLA, is a declarative formalism to specify synchronous monitors. In SRV, monitors are described by specifying dependencies between output streams of values and input streams of values. The declarative nature of SRV enables a separation between the evaluation algorithms, and the monitor storage and its individual updates. This separation allows SRV to be lifted from conventional failure monitors into richer domains to collect statistics of traces. Moreover, SRV allows to easily identify specifications that can be efficiently monitored online, and to generate efficient schedules for offline monitors.In spite of these attractive features, many important theoretical problems about SRV are still open. In this paper, we address complexity, expressiveness, succinctness, and closure issues for the subclass of Boolean SRV (BSRV) specifications. Additionally, we show that for this subclass, offline monitoring can be performed with only two passes (one forward and one backward) over the input trace in spite of the alternation of past and future references in the BSRV specification.

[1]  Felix Klaedtke,et al.  MONPOLY: Monitoring Usage-Control Policies , 2011, RV.

[2]  Nicolas Halbwachs,et al.  LUSTRE: a declarative language for real-time programming , 1987, POPL '87.

[3]  Marc Pouzet,et al.  Synchronous Kahn networks , 1996, ICFP '96.

[4]  Koushik Sen,et al.  Generating Optimal Monitors for Extended Regular Expressions , 2003, RV@CAV.

[5]  Philippe Schnoebelen,et al.  Temporal logic with forgettable past , 2002, Proceedings 17th Annual IEEE Symposium on Logic in Computer Science.

[6]  Yishai A. Feldman,et al.  Algorithmics: The Spirit of Computing , 1987 .

[7]  Albert R. Meyer,et al.  The Equivalence Problem for Regular Expressions with Squaring Requires Exponential Space , 1972, SWAT.

[8]  Alwyn E. Goodloe,et al.  Copilot: monitoring embedded systems , 2013, Innovations in Systems and Software Engineering.

[9]  Harry B. Hunt,et al.  On the equivalence and containment problems for unambiguous regular expressions, grammars, and automata , 1981, 22nd Annual Symposium on Foundations of Computer Science (sfcs 1981).

[10]  Rajeev Goré,et al.  A First-Order Policy Language for History-Based Transaction Monitoring , 2009, ICTAC.

[11]  Nikolaj Bjørner,et al.  Symbolic finite state transducers: algorithms and applications , 2012, POPL '12.

[12]  David Harel,et al.  The spirit of computing , 1987 .

[13]  Alwyn E. Goodloe,et al.  Monitoring Distributed Real-Time Systems: A Survey and Future Directions , 2010 .

[14]  Ilan Beer,et al.  FoCs: Automatic Generation of Simulation Checkers from Formal Specifications , 2000, CAV.

[15]  Klaus Havelund,et al.  Verify Your Runs , 2005, VSTTE.

[16]  Grigore Rosu,et al.  Synthesizing Monitors for Safety Properties , 2002, TACAS.

[17]  Alwyn E. Goodloe,et al.  Copilot: A Hard Real-Time Runtime Monitor , 2010, RV.

[18]  Martin Leucker,et al.  A brief account of runtime verification , 2009, J. Log. Algebraic Methods Program..

[19]  Harry B. Hunt,et al.  On the Equivalence and Containment Problems for Unambiguous Regular Expressions, Regular Grammars and Finite Automata , 1985, SIAM J. Comput..

[20]  Khalid Ali,et al.  Proof , 2006, BMJ : British Medical Journal.

[21]  Paul Le Guernic,et al.  SIGNAL: A declarative language for synchronous programming of real-time systems , 1987, FPCA.

[22]  Koushik Sen,et al.  Rule-Based Runtime Verification , 2004, VMCAI.

[23]  Bernd Finkbeiner,et al.  Collecting Statistics Over Runtime Executions , 2005, Formal Methods Syst. Des..

[24]  Zvonko G. Vranesic,et al.  Computer Organization , 1984 .

[25]  Amir Pnueli,et al.  PSL Model Checking and Run-Time Verification Via Testers , 2006, FM.

[26]  Zohar Manna,et al.  Temporal verification of reactive systems - safety , 1995 .

[27]  Grigore Rosu,et al.  Rewriting-Based Techniques for Runtime Verification , 2005, Automated Software Engineering.

[28]  Dejan Nickovic,et al.  On Temporal Logic and Signal Processing , 2012, ATVA.

[29]  Rajeev Alur,et al.  DReX , 2015, POPL.

[30]  Martin Leucker,et al.  Runtime Verification for LTL and TLTL , 2011, TSEM.

[31]  Loris D'Antoni,et al.  Extended symbolic finite automata and transducers , 2015, Formal Methods Syst. Des..

[32]  Felix Klaedtke,et al.  Policy Monitoring in First-Order Temporal Logic , 2010, CAV.

[33]  Zohar Manna,et al.  Temporal Verification of Reactive Systems , 1995, Springer New York.

[34]  Gérard Berry,et al.  The foundations of Esterel , 2000, Proof, Language, and Interaction.

[35]  Pierre Wolper Temporal Logic Can Be More Expressive , 1983, Inf. Control..

[36]  Nicolas Halbwachs,et al.  LUSTRE: A declarative language for programming synchronous systems* , 1987 .

[37]  Dana Fisman,et al.  Reasoning with Temporal Logic on Truncated Paths , 2003, CAV.

[38]  Bernd Finkbeiner,et al.  LOLA: runtime monitoring of synchronous systems , 2005, 12th International Symposium on Temporal Representation and Reasoning (TIME'05).