Skip to main content

Unfold/Fold Transformations for Automated Verification of Parameterized Concurrent Systems

  • Chapter
Program Development in Computational Logic

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 3049))

Abstract

Formal verification of reactive concurrent systems is important since many hardware and software components of our computing environment can be modeled as reactive concurrent systems. Algorithmic techniques for verifying concurrent systems such as model checking can be applied to finite state systems only. This chapter investigates the verification of a common class of infinite state systems, namely parameterized systems. Such systems are parameterized by the number of component processes, for example an n-process token ring for any n. Verifying the entire infinite family represented by a parameterized system lies beyond the reach of traditional model checking. On the other hand, deductive techniques to verify infinite state systems often require substantial user guidance.

The goal of this work is to integrate algorithmic and deductive techniques for automating proofs of temporal properties of parameterized concurrent systems. Here, the parameterized system to be verified and the temporal property are encoded together as a logic program. The problem of verifying the temporal property is then reduced to the problem of determining equivalence of predicates in this logic program. These predicate equivalences are established by transforming the program such that the semantic equivalence of the predicates can be inferred from the structure of their clauses in the transformed program.

For transforming the predicates, we use the well-established unfold/fold transformations of logic programs. Unfolding represents a step of resolution and can be used to evaluate the base case and the finite part of the induction step in an induction proof. Folding and other transformations represent deductive reasoning and can be used to recognize the induction hypothesis. Together these transformations are used to construct induction proofs of temporal properties. Strategies are developed to help guide the application of the transformation rules. The transformation rules and strategies have been implemented to yield an automatic and programmable first order theorem prover for parameterized systems. Case studies include multi-processor cache coherence protocols and the Java Meta-Locking protocol from Sun Microsystems. The program transformation based prover has been used to automatically prove various safety properties of these protocols.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Agesen, O., Detlefs, D., Garthwaite, A., Knippel, R., Ramakrishna, Y.S., White, D.: An efficient meta-lock for implementing ubiquitous synchronization. In: ACM SIGPLAN International Conference on Object-Oriented Programming Systems, Languages and Applications, OOPSLA (1999)

    Google Scholar 

  2. Alur, R., Henzinger, T.A. (eds.): CAV 1996. LNCS, vol. 1102. Springer, Heidelberg (1996)

    MATH  Google Scholar 

  3. Apt, K., Kozen, D.: Limits for automatic verification of finite-state systems. Information Processing Letters 15, 307–309 (1986)

    Article  MathSciNet  Google Scholar 

  4. Archibald, J., Baer, J.-L.: Cache coherence protocols: Evaluation using a multiprocessor simulation model. ACM Transactions on Computer Systems 4(4), 273–298 (1986)

    Article  Google Scholar 

  5. Basu, S., Smolka, S.A., Ward, O.R.: Model checking the Java meta-locking algorithm. In: IEEE International Conference on the Engineering of Computer Based Systems, April 2000, IEEE Press, Los Alamitos (2000)

    Google Scholar 

  6. Bundy, A.: The Automation of Proof by Mathematical Induction. Handbook of Automated Reasoning, vol. 1, pp. 845–911. Elsevier and MIT Press (2001)

    Google Scholar 

  7. Chen, W., Warren, D.S.: Tabled evaluation with delaying for general logic programs. Journal of the ACM 43(1), 20–74 (1996)

    Article  MATH  MathSciNet  Google Scholar 

  8. Clarke, E.M., Emerson, E.A., Sistla, A.P.: Automatic verification of finitestate concurrent systems using temporal logic specifications. ACM Transactions on Programming Languages and Systems (TOPLAS) 8(2) (1986)

    Google Scholar 

  9. Clarke, E.M., Grumberg, O., Peled, D.: Model Checking. MIT Press, Cambridge (1999)

    Google Scholar 

  10. Das, S.K.: Deductive Databases and Logic Programming. Addison-Wesley, Reading (1992)

    MATH  Google Scholar 

  11. De Schreye, D., Glück, R., Jørgensen, J., Leuschel, M., Martens, B., Sørensen, M.H.: Conjunctive partial deduction: Foundations, control, algorithms, and experiments. Journal of Logic Programming 41(2-3), 231–277 (1999)

    Article  MATH  MathSciNet  Google Scholar 

  12. Delzanno, G.: Automatic verification of parameterized cache coherence protocols. In: Emerson, E.A., Sistla, A.P. (eds.) CAV 2000. LNCS, vol. 1855, Springer, Heidelberg (2000)

    Chapter  Google Scholar 

  13. Delzanno, G., Podelski, A.: Model checking in CLP. In: Cleaveland, W.R. (ed.) TACAS 1999. LNCS, vol. 1579, pp. 74–88. Springer, Heidelberg (1999)

    Google Scholar 

  14. Emerson, E., Namjoshi, K.S.: Reasoning about rings. In: ACM SIGPLAN International Conference on Principles of Programming Languages (POPL), pp. 85–94 (1995)

    Google Scholar 

  15. Emerson, E., Namjoshi, K.S.: On model checking for non-deterministic infinite state systems. In: IEEE Annual Symposium on Logic in Computer Science (LICS), pp. 70–80 (1998)

    Google Scholar 

  16. Emerson, E.A.: Temporal and Modal Logic. Handbook of Theoretical Computer Science, vol. B, pp. 995–1072. Elsevier/North-Holland (1990)

    Google Scholar 

  17. Emerson, E.A., Namjoshi, K.S.: Automated verification of parameterized synchronous systems. In: Alur and Henzinger [2]

    Google Scholar 

  18. Esparza, J., Finkel, A., Mayr, R.: On the verification of broadcast protocols. In: IEEE Annual Symposium on Logic in Computer Science (LICS), pp. 352–359 (1999)

    Google Scholar 

  19. Fioravanti, F., Pettorossi, A., Proietti, M.: Verifying CTL properties of infinite state systems by specializing constraint logic programs. In: Pettorossi, A. (ed.) LOPSTR 2001. LNCS, vol. 2372, Springer, Heidelberg (2002)

    Chapter  Google Scholar 

  20. Gergatsoulis, M., Katzouraki, M.: Unfold/fold transformations for definite clause programs. In: Penjam, J. (ed.) PLILP 1994. LNCS, vol. 844, pp. 340–354. Springer, Heidelberg (1994)

    Google Scholar 

  21. German, S., Sistla, A.: Reasoning about systems with many processes. Journal of the ACM 39, 675–735 (1992)

    Article  MATH  MathSciNet  Google Scholar 

  22. Holzmann, G.J.: The model checker SPIN. IEEE Transactions on Software Engineering 23(5), 279–295 (1997)

    Article  MathSciNet  Google Scholar 

  23. Hsiang, J., Srivas, M.: Automatic inductive theorem proving using Prolog. Theoretical Computer Science 54, 3–28 (1987)

    Article  MATH  MathSciNet  Google Scholar 

  24. INRIA Rocquencourt, Paris, France. The Coq Proof Assistant: Reference Manual (1999), http://pauillac.inria.fr/coq/doc/main.html

  25. Kanamori, T., Fujita, H.: Formulation of Induction Formulas in Verification of Prolog Programs. In: Siekmann, J.H. (ed.) CADE 1986. LNCS, vol. 230, pp. 281–299. Springer, Heidelberg (1986)

    Google Scholar 

  26. Kanamori, T., Fujita, H.: Unfold/fold transformation of logic programs with counters. In: USA-Japan Seminar on Logics of Programs (1987)

    Google Scholar 

  27. Kanamori, T., Seki, H.: Verification of prolog programs using an extension of execution. In: Shapiro, E. (ed.) ICLP 1986. LNCS, vol. 225, Springer, Heidelberg (1986)

    Google Scholar 

  28. Leuschel, M., Bruynooghe, M.: Logic program specialisation through partial deduction: Control issues. Theory and Practice of Logic Programming 2(4&5), 461–515 (2002)

    Article  MATH  MathSciNet  Google Scholar 

  29. Leuschel, M., Massart, T.: Infinite state model checking by abstract interpretation and program specialisation. In: Bossi, A. (ed.) LOPSTR 1999. LNCS, vol. 1817, pp. 63–82. Springer, Heidelberg (2000)

    Chapter  Google Scholar 

  30. Lloyd, J.W.: Foundations of Logic Programming, 2nd edn. Springer, Heidelberg (1993)

    MATH  Google Scholar 

  31. Manna, Z., Pnueli, A.: The Temporal Logic of Reactive and Concurrent Systems. Springer, Heidelberg (1991)

    MATH  Google Scholar 

  32. Martens, B., De Schreye, D., Horváth, T.: Sound and complete partial deduction with unfolding based on well-founded measures. Theoretical Computer Science 122, 97–117 (1994)

    Article  MATH  MathSciNet  Google Scholar 

  33. Namjoshi, K.S.: Ameliorating the State Explosion Problem. PhD thesis, University of Texas at Austin (1998)

    Google Scholar 

  34. Nilsson, U., Lubcke, J.: Constraint logic programming for local and symbolic model checking. In: Palamidessi, C., Moniz Pereira, L., Lloyd, J.W., Dahl, V., Furbach, U., Kerber, M., Lau, K.-K., Sagiv, Y., Stuckey, P.J. (eds.) CL 2000. LNCS (LNAI), vol. 1861, p. 384. Springer, Heidelberg (2000)

    Chapter  Google Scholar 

  35. Pettorossi, A., Proietti, M.: Transformation of logic programs. Handbook of Logic in Artificial Intelligence, vol. 5, pp. 697–787. Oxford University Press, Oxford (1998)

    Google Scholar 

  36. Pettorossi, A., Proietti, M.: Synthesis and transformation of logic programs using unfold/fold proofs. Journal of Logic Programming 41(2-3), 197–230 (1999)

    Article  MATH  MathSciNet  Google Scholar 

  37. Pettorossi, A., Proietti, M.: Perfect model checking via unfold/fold transformations. In: Palamidessi, C., Moniz Pereira, L., Lloyd, J.W., Dahl, V., Furbach, U., Kerber, M., Lau, K.-K., Sagiv, Y., Stuckey, P.J. (eds.) CL 2000. LNCS (LNAI), vol. 1861, p. 613. Springer, Heidelberg (2000)

    Chapter  Google Scholar 

  38. Pettorossi, A., Proietti, M., Renault, S.: Reducing nondeterminism while specializing logic programs. In: ACM SIGPLAN International Conference on Principles of Programming Languages (POPL), pp. 414–427 (1997)

    Google Scholar 

  39. Rajan, S., Shankar, N., Srivas, M.K.: An integration of model checking with automated proof checking. In: Wolper, P. (ed.) CAV 1995. LNCS, vol. 939, Springer, Heidelberg (1995)

    Google Scholar 

  40. Ramakrishna, Y.S., Ramakrishnan, C.R., Ramakrishnan, I.V., Smolka, S.A., Swift, T.L., Warren, D.S.: Efficient model checking using tabled resolution. In: Grumberg, O. (ed.) CAV 1997. LNCS, vol. 1254, Springer, Heidelberg (1997)

    Google Scholar 

  41. Roychoudhury, A.: Program Transformations for Verifying Parameterized Systems. PhD thesis, State University of New York at Stony Brook (2000), Available from http://www.comp.nus.edu.sg/~abhik/papers.html

  42. Roychoudhury, K., Narayan Kumar, C.R., Ramakrishnan, I.V.: Verification of parameterized systems using logic program transformations. In: Schwartzbach, M.I., Graf, S. (eds.) TACAS 2000. LNCS, vol. 1785, pp. 172–187. Springer, Heidelberg (2000)

    Chapter  Google Scholar 

  43. Roychoudhury, A., Narayan Kumar, K., Ramakrishnan, C.R., Ramakrishnan, I.V.: An unfold/fold transformation framework for definite logic programs. ACM Transactions on Programming Languages and Systems (TOPLAS) (to appear); Preliminary version appeared in Nadathur, G. (ed.) PPDP 1999. LNCS, vol. 1702, Springer, Heidelberg (1999)

    Google Scholar 

  44. Roychoudhury, A., Ramakrishnan, I.V.: Inductively verifying invariant properties of parameterized systems. Automated Software Engineering Journal (2004); Preliminary version appeared in Berry, G., Comon, H., Finkel, A. (eds.): CAV 2001. LNCS, vol. 2102. Springer, Heidelberg (2001)

    Google Scholar 

  45. Seger, C.: Combining functional programming and hardware verification. In: ACM SIGPLAN International Conference on International Conference on Functional Programming (2000) (Invited Talk)

    Google Scholar 

  46. Tamaki, H., Sato, T.: Unfold/fold transformations of logic programs. In: Proceedings of International Conference on Logic Programming, pp. 127–138 (1984)

    Google Scholar 

  47. Tamaki, H., Sato, T.: A generalized correctness proof of the unfold/ fold logic program transformation. Technical report, Ibaraki University, Japan (1986)

    Google Scholar 

  48. Tamaki, H., Sato, T.: OLDT resolution with tabulation. In: Third International Conference on Logic Programming, pp. 84–98 (1986)

    Google Scholar 

  49. Urbina, L.: Analysis of hybrid systems in CLP(R). In: Alur, R., Henzinger, T.A. (eds.) CAV 1996. LNCS, vol. 1102, Springer, Heidelberg (1996)

    Google Scholar 

  50. XSB. The XSB logic programming system v2.2 (2000), Available for downloading from http://xsb.sourceforge.net/

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2004 Springer-Verlag Berlin Heidelberg

About this chapter

Cite this chapter

Roychoudhury, A., Ramakrishnan, C.R. (2004). Unfold/Fold Transformations for Automated Verification of Parameterized Concurrent Systems. In: Bruynooghe, M., Lau, KK. (eds) Program Development in Computational Logic. Lecture Notes in Computer Science, vol 3049. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-25951-0_9

Download citation

  • DOI: https://doi.org/10.1007/978-3-540-25951-0_9

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-22152-4

  • Online ISBN: 978-3-540-25951-0

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics