First-order temporal logic monitoring with BDDs

Runtime verification is aimed at analyzing execution traces stemming from a running program or system. The traditional purpose is to detect the lack of conformance with respect to a formal specification. Numerous efforts in the field have focused on monitoring parametric specifications, where events carry data, and formulas can refer to such. Since a monitor for such specifications has to store observed data, the challenge is to have an efficient representation and manipulation of Boolean operators, quantification, and lookup of data. The fundamental problem is that the actual values of the data are not necessarily bounded or provided in advance. In this work we explore the use of binary decision diagrams for representing observed data. Our experiments show a substantial improvement in performance compared to related work.

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

[2]  Howard Barringer,et al.  Rule Systems for Run-Time Monitoring: From Eagleto RuleR , 2007, RV.

[3]  Grigore Rosu,et al.  An overview of the MOP runtime verification framework , 2012, International Journal on Software Tools for Technology Transfer.

[4]  Randal E. Bryant,et al.  On the Complexity of VLSI Implementations and Graph Representations of Boolean Functions with Application to Integer Multiplication , 1991, IEEE Trans. Computers.

[5]  Martin Leucker,et al.  Monitoring modulo theories , 2016, International Journal on Software Tools for Technology Transfer.

[6]  Monica S. Lam,et al.  Using Datalog with Binary Decision Diagrams for Program Analysis , 2005, APLAS.

[7]  Klaus Havelund,et al.  Dynamic Deadlock Analysis of Multi-threaded Programs , 2005, Haifa Verification Conference.

[8]  Roger Villemaire,et al.  Runtime Enforcement of Web Service Message Contracts with Data , 2012, IEEE Transactions on Services Computing.

[9]  Mahesh Viswanathan,et al.  Java-MaC: a Run-time Assurance Tool for Java Programs , 2001, RV@CAV.

[10]  Howard Barringer,et al.  TraceContract: A Scala DSL for Trace Analysis , 2011, FM.

[11]  Orna Kupferman,et al.  Model Checking of Safety Properties , 1999, Formal Methods Syst. Des..

[12]  Ondrej Lhoták,et al.  Adding trace matching with free variables to AspectJ , 2005, OOPSLA '05.

[13]  Edmund M. Clarke,et al.  Symbolic Model Checking: 10^20 States and Beyond , 1990, Inf. Comput..

[14]  Zohar Manna,et al.  Completing the Temporal Picture , 1991, Theor. Comput. Sci..

[15]  Jean Goubault-Larrecq,et al.  A Smell of Orchids , 2008, RV.

[16]  Klaus Havelund,et al.  Monitoring Events that Carry Data , 2018, Lectures on Runtime Verification.

[17]  David E. Rydeheard,et al.  MarQ: Monitoring at Runtime with QEA , 2015, TACAS.

[18]  Randal E. Bryant,et al.  Symbolic Boolean manipulation with ordered binary-decision diagrams , 1992, CSUR.

[19]  Michael Burrows,et al.  Eraser: a dynamic data race detector for multithreaded programs , 1997, TOCS.

[20]  Nils Klarlund,et al.  Mona: Monadic Second-Order Logic in Practice , 1995, TACAS.

[21]  Dogan Ulus,et al.  First-order temporal logic monitoring with BDDs , 2017, Formal Methods in System Design.

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

[23]  Bowen Alpern,et al.  Recognizing safety and liveness , 2005, Distributed Computing.

[24]  Felix Klaedtke,et al.  Monitoring Metric First-Order Temporal Properties , 2015, J. ACM.

[25]  Klaus Havelund,et al.  Rule-based runtime verification revisited , 2015, International Journal on Software Tools for Technology Transfer.

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