Synthesizing Monitors for Safety Properties
The problem of testing a linear temporal logic (LTL) formula on a finite execution trace of events, generated by an executing program, occurs naturally in runtime analysis of software. An algorithm which takes a past time LTL formula and generates an efficient dynamic programming algorithm is presented. The generated algorithm tests whether the formula is satisfied by a finite trace of events given as input and runs in linear time, its constant depending on the size of the LTL formula. The memory needed is constant, also depending on the size of the formula. Further optimizations of the algorithm are suggested. Past time operators suitable for writing succinct specifications are introduced and shown definitionally equivalent to the standard operators. This work is part of the PathExplorer project, the objective of which it is to construct a flexible framework for monitoring and analyzing program executions.
- 1.Manuel Clavel, Steven Eker, Patrick Lincoln, and José Meseguer. Principles of Maude. In José Meseguer, editor, Proceedings, First International Workshop on Rewriting Logic and its Applications. Elsevier Science, 1996. Volume 4, Electronic Notes in Theoretical Computer Science.Google Scholar
- 2.James Corbett, Matthew B. Dwyer, John Hatcliff, Corina S. Pasareanu, Robby, Shawn Laubach, and Hongjun Zheng. Bandera: Extracting Finite-state Models from Java Source Code. In Proceedings of the 22nd International Conference on Software Engineering, Limerick, Ireland, June 2000. ACM Press.Google Scholar
- 5.Klaus Havelund, Scott Johnson, and Grigore Rosu. Specification and Error Pattern Based Program Monitoring. In European Space Agency Workshop on On-Board Autonomy, Noordwijk, The Netherlands, 2001.Google Scholar
- 7.Klaus Havelund and Thomas Pressburger. Model Checking Java Programs using Java PathFinder. International Journal on Software Tools for Technology Transfer, 2(4):366–381, April 2000. Special issue of STTT containing selected submissions to the 4th SPIN workshop, Paris, France, 1998.zbMATHCrossRefGoogle Scholar
- 8.Klaus Havelund and Grigore Rosu. Java PathExplorer-A Runtime Verification Tool. In The 6th International Symposium on Arti.cial Intelligence, Robotics and Automation in Space: A New Space Odyssey, Montreal, Canada, June 18–21, 2001.Google Scholar
- 9.Klaus Havelund and Grigore Rosu. Monitoring Java Programs with Java PathExplorer. In Klaus Havelund and Grigore Rosu, editors, Proceedings of Runtime Verification (RV’01), volume 55 of Electronic Notes in Theoretical Computer Science. Elsevier Science, 2001.Google Scholar
- 10.Klaus Havelund and Grigore Rosu. Monitoring Programs using Rewriting. In Proceedings, International Conference on Automated Software Engineering (ASE’01), pages 135–143. Institute of Electrical and Electronics Engineers, 2001. San Diego, California.Google Scholar
- 11.Klaus Havelund and Natarajan Shankar. Experiments in Theorem Proving and Model Checking for Protocol Veri.cation. In Marie Claude Gaudel and Jim Woodcock, editors, FME’96: Industrial Benefit and Advances in Formal Methods, volume 1051 of Lecture Notes in Computer Science, pages 662–681. Springer, 1996.Google Scholar
- 12.Gerard J. Holzmann and Margaret H. Smith. A Practical Method for Verifying Event-Driven Software. In Proceedings of ICSE’99, International Conference on Software Engineering, Los Angeles, California, USA, May 1999. IEEE/ACM.Google Scholar
- 13.JavaCC. Web page. http://www.webgain.com/products/java_cc.
- 14.JTrek. Web page. http://www.compaq.com/java/download.
- 15.Insup Lee, Sampath Kannan, Moonjoo Kim, Oleg Sokolsky, and Mahesh Viswanathan. Runtime Assurance Based on Formal Specifications. In Proceedings of the International Conference on Parallel and Distributed Processing Techniques and Applications, 1999.Google Scholar
- 16.Zohar Manna and Amir Pnueli. The Temporal Logic of Reactive and Concurrent Systems. Springer, New York, 1992.Google Scholar
- 17.David Y.W. Park, Ulrich Stern, and David L. Dill. Java Model Checking. In Proceedings of the First International Workshop on Automated Program Analysis, Testing and Verification, Limerick, Ireland, June 2000.Google Scholar
- 18.Amir Pnueli. The Temporal Logic of Programs. In Proceedings of the 18th IEEE Symposium on Foundations of Computer Science, pages 46–77, 1977.Google Scholar
- 19.Grigore Rosu and Klaus Havelund. Synthesizing Dynamic Programming Algorithms from Linear Temporal Logic Formulae. Technical Report TR 01-08, NASA—RIACS, May 2001.Google Scholar
- 21.Willem Visser, Klaus Havelund, Guillaume Brat, and SeungJoon Park. Model Checking Programs. In Proceedings of ASE’2000: The 15th IEEE International Conference on Automated Software Engineering. IEEE CS Press, September 2000.Google Scholar