Runtime Verification with Multi-valued Formula Rewriting

Runtime verification is a promising method that tries to bridge the gap between formal methods and traditional testing. In this paper, we present an improved runtime verification method via multi-valued formula rewriting. A 3-valued executable semantics for finite trace LTL is formally defined, and an algorithm based on this new semantics is proposed and implemented in Maude, which is a high performance rewriting system. To improve the efficiency of our algorithm, we introduce a novel approximation technique, which reduces rewriting steps by sacrificing some abilities of detecting the satisfactions of LTL properties. Moreover, this technique provides a quick procedure for distinguishing non-monitor able properties from those can be monitored. Finally, experiments are conducted to show the strength and weakness of the presented method.

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

[2]  Yliès Falcone,et al.  Runtime Verification of Safety-Progress Properties , 2009, RV.

[3]  Grigore Rosu,et al.  Monitoring programs using rewriting , 2001, Proceedings 16th Annual International Conference on Automated Software Engineering (ASE 2001).

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

[5]  M. Leucker,et al.  Model-based runtime analysis of distributed reactive systems , 2006, Australian Software Engineering Conference (ASWEC'06).

[6]  Paul Gastin,et al.  Fast LTL to Büchi Automata Translation , 2001, CAV.

[7]  Masahiro Fujita,et al.  Symbolic model checking using SAT procedures instead of BDDs , 1999, DAC '99.

[8]  Martin Leucker,et al.  The Good, the Bad, and the Ugly, But How Ugly Is Ugly? , 2007, RV.

[9]  Jinzhao Wu,et al.  Multi-Valued Model Checking via Groebner Basis Approach , 2007, First Joint IEEE/IFIP Symposium on Theoretical Aspects of Software Engineering (TASE '07).

[10]  Mahesh Viswanathan,et al.  Java-MaC: A Run-Time Assurance Approach for Java Programs , 2004, Formal Methods Syst. Des..

[11]  Volker Stolz,et al.  Temporal Assertions using AspectJ , 2006, Electron. Notes Theor. Comput. Sci..

[12]  Marcelo d'Amorim,et al.  Efficient Monitoring of omega-Languages , 2005, CAV.

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

[14]  Grigore Rosu,et al.  Monitoring Java Programs with Java PathExplorer , 2001, RV@CAV.

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

[16]  Narciso Martí-Oliet,et al.  Maude: specification and programming in rewriting logic , 2002, Theor. Comput. Sci..

[17]  MeseguerJosé Conditional rewriting logic as a unified model of concurrency , 1992 .

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

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

[20]  Grigore Rosu,et al.  Mop: an efficient and generic runtime verification framework , 2007, OOPSLA.