Efficient Runtime Verification of First-Order Temporal Properties

Runtime verification allows monitoring the execution of a system against a temporal property, raising an alarm if the property is violated. In this paper we present a theory and system for runtime verification of a first-order past time linear temporal logic. The first-order nature of the logic allows a monitor to reason about events with data elements. While runtime verification of propositional temporal logic requires only a fixed amount of memory, the first-order variant has to deal with a number of data values potentially growing unbounded in the length of the execution trace. This requires special compactness considerations in order to allow checking very long executions. In previous work we presented an efficient use of BDDs for such first-order runtime verification, implemented in the tool DejaVu. We first summarize this previous work. Subsequently, we look at the new problem of dynamically identifying when data observed in the past are no longer needed, allowing to reclaim the data elements used to represent them. We also study the problem of adding relations over data values. Finally, we present parts of the implementation, including a new concept of user defined property macros.

[1]  Howard Barringer,et al.  Rule Systems for Run-time Monitoring: from Eagle to RuleR , 2010, J. Log. Comput..

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

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

[4]  Gordon J. Pace,et al.  LARVA --- Safer Monitoring of Real-Time Java Programs (Tool Paper) , 2009, 2009 Seventh IEEE International Conference on Software Engineering and Formal Methods.

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

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

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

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

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

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

[11]  Ronald L. Rivest,et al.  Introduction to Algorithms , 1990 .

[12]  Jan-Christoph Küster,et al.  From Propositional to First-Order Monitoring , 2013, RV.

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

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

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

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

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

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

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

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

[21]  Leslie Lamport,et al.  Proving the Correctness of Multiprocess Programs , 1977, IEEE Transactions on Software Engineering.

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

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

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

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

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

[27]  Jan Chomicki,et al.  Efficient checking of temporal integrity constraints using bounded history encoding , 1995, TODS.