Abstract
Detecting whether a finite execution trace (or a computation) of a distributed program satisfies a given predicate, called predicate detection, is a fundamental problem in distributed systems. To solve this problem, we generalize an effective abstraction technique called computation slicing. We present polynomial-time algorithms to compute slices with respect to temporal logic predicates from a “regular” subset of CTL, that contains temporal operators EF, EG, and AG. Furthermore, we show that these slices contain precisely those global states of the original computation that satisfy the predicate. Using temporal predicate slices, we give an efficient (polynomial in the number of processes) predicate detection algorithm for a subset of CTL that we call regular CTL. Regular CTL contains nested temporal predicates for which, to the best of our knowledge, there did not previously exist efficient predicate detection algorithms. Then we show that we can enlarge the subset of CTL and still obtain effective results. Our algorithm has been implemented as part of a tool for analysis of distributed programs. We illustrate the effectiveness of our techniques on several protocols achieving speedups of over three orders of magnitude in one example, compared to partial order state-space search of SPIN. Furthermore, we were able to complete the verification for 250 processes for a partial order trace.
supported in part by the NSF Grants ECS-9907213, CCR-9988225, Texas Education Board Grant ARP-320, an Engineering Foundation Fellowship, and an IBM grant
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Clarke, E.M., Emerson, E.A.: Design and Synthesis of Synchronization Skeletons using Branching Time Temporal Logic. In: Kozen, D. (ed.) Logic of Programs 1981. LNCS, vol. 131, Springer, Heidelberg (1982)
Davey, B.A., Priestley, H.A.: Introduction to Lattices and Order. Cambridge University Press, Cambridge (1990)
Fidge, C.: Logical Time in Distributed Computing Systems. IEEE Computer 24(8), 28–33 (1991)
Garg, V.K.: Elements of Distributed Computing. John Wiley & Sons, Chichester (2002)
Garg, V.K., Mittal, N.: On Slicing a Distributed Computation. In: Proc. of the 15th Int’l. Conference on Distributed Computing Systems, ICDCS (2001)
Godefroid, P., Wolper, P.: A partial approach to model checking. In: Proc. of the 6th IEEE Symposium on Logic in Computer Science, pp. 406–415 (1991)
Havelund, K., Rosu, G.: Monitoring Java Programs with Java Path Explorer. In: Runtime Verification 2001. ENTCS, vol. 55 (2001)
Holzmann, G.J.: The Model Checker SPIN. IEEE Transactions on Software Engineering 23(5) (May 1997)
Hurfin, M., Mizuno, M., Raynal, M., Singhal, M.: Efficient detection of conjunctions of local predicates. IEEE Transactions on Software Engineering 24(8), 664–677 (1998)
ISO. Specification of the Asynchronous Transfer Mode Ring Protocol (ATMR) (1993)
Kim, M., Kannan, S., Lee, I., Sokolsky, O., Viswanathan, M.: Java-MaC: A Run-time Assurance Tool for Java Programs. In: Runtime Verification 2001. ENTCS, vol. 55 (2001)
Lamport, L.: Time, Clocks, and the Ordering of Events in a Distributed System. Communications of the ACM 21(7), 558–565 (1978)
Mattern, F.: Virtual Time and Global States of Distributed Systems. In: Proc. of the Int’l Workshop on Parallel and Distributed Algorithms (1989)
McMillan, K.L.: Symbolic Model Checking. Kluwer Academic Publishers, Dordrecht (1993)
Mittal, N., Garg, V.K.: Computation Slicing: Techniques and Theory. In: Proc. of the 15th Int’l. Symposium on Distributed Computing, DISC (2001)
Mittal, N., Garg, V.K.: On Detecting Global Predicates in Distributed Computations. In: Proc. of the 15th Int’l. Conference on Distributed Computing Systems, ICDCS (2001)
Peng, H., Tahar, S., Khendek, F.: Comparison of SPIN and VIS for Protocol Verification. Software Tools for Technology Transfer 4(2), 234–245 (2003)
Sen, A., Garg, V.K.: Detecting Temporal Logic Predicates on the Happened-Before Model. In: Proc. of the Int’l Parallel and Distributed Processing Symposium, IPDPS (2002)
Sen, A., Garg, V.K.: Automatic Generation of Slices for Temporal Logic Predicate Detection. Technical Report TR-PDS-2003-001, PDSL, ECE Dept. Univ. of Texas at Austin (2003), Available at http://maple.ece.utexas.edu/
Sen, A., Garg, V.K.: Partial Order Trace Analyzer, POTA (2003), http://maple.ece.utexas.edu/~sen/POTA.html
Sen, A., Garg, V.K.: Partial Order Trace Analyzer (POTA) for Distributed Programs. In: Runtime Verification 2003. ENTCS, vol. 89 (2003)
Sen, K., Rosu, G., Agha, G.: Runtime Safety Analysis of Multithreaded Programs. In: Proc. of the 11th ACM Symposium on the Foundations of Software Engineering (2003)
Valmari, A.: A Stubborn Attack On State Explosion. In: Clarke, E., Kurshan, R.P. (eds.) CAV 1990. LNCS, vol. 531, pp. 156–165. Springer, Heidelberg (1991)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2004 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Sen, A., Garg, V.K. (2004). Detecting Temporal Logic Predicates in Distributed Programs Using Computation Slicing. In: Papatriantafilou, M., Hunel, P. (eds) Principles of Distributed Systems. OPODIS 2003. Lecture Notes in Computer Science, vol 3144. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-27860-3_17
Download citation
DOI: https://doi.org/10.1007/978-3-540-27860-3_17
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-22667-3
Online ISBN: 978-3-540-27860-3
eBook Packages: Springer Book Archive