Skip to main content
Log in

Static Analysis for State-Space Reductions Preserving Temporal Logics

  • Published:
Formal Methods in System Design Aims and scope Submit manuscript

Abstract

In this paper we present two methods that use static analysis of parallel programs to create reduced models for them. Our algorithms examine the control-flow graph of a program (the syntax) and create a smaller transition system than would have been created otherwise. The smaller transition system is equivalent to the original transition system of the program with respect to temporal logic specifications.

The two methods are orthogonal in their approach. The first, called path reduction, reduces the state-space by compressing computation paths. This method reduces the number of steps each computation takes. The second method, called dead variable reduction, reduces according to the variable domains. It identifies classes of equivalent states which differ only on variable values (and not the program counter) and uses a representative for each class. We also consider a refinement of the dead variable reduction, based on partially dead variables, which may result in a greater reduction.

Our algorithms are based on syntactic manipulation of expressions, thus enabling us to handle programs with variables over finite as well as infinite domains. Both methods can easily be combined with either explicit state or symbolic methods (and with each other).

We used the Murphi verifier to test the amount of reduction achieved by both methods. We let Murphi perform a DFS search and compared the sizes of the original and reduced transition systems, for several examples and according to both reductions. The results show that path reduction and the reduction based on partially dead variables give significant reductions, while the effect of fully dead variables is less impressive. We discuss the differences between the approaches, and the reasons for these results.

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

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  1. A. Aho, R. Sethi, and J. Ullman, Compilers: Principles, Techniques and Tools, Adison-Wesley, 1986.

  2. R. Alur and B-Y. Wang, “'Next' heuristic for on-the-fly model checking,” in 10th International Conference on Concurrency Theory (CONCUR'99), LNCS 1664, Springer, Eindhoven, The Netherlands, Aug. 1999, pp. 98–113.

    Google Scholar 

  3. S. Bensalem, A. Bouajjani, C. Loiseaux, and J. Sifakis, “Property preserving simulations,” in G.V. Bochmann and D.K. Probst (Eds.), Proceedings of the Fourth Workshop on Computer-Aided Verification, July 1992, pp. 251-263.

  4. M. Bozga, J.-C. Fernandez, and L. Ghirvu, “State space reduction based on live variables analysis,” in Static Analysis Symposium, Venezia, Italy, Sept. 1999.

  5. M.C. Browne, E.M. Clarke, and O. Grumberg, “Characterizing finite kripke structures in propositional temporal logic,” Theoretical Computer Science, Vol. 59, Nos. 1/2, 1988.

  6. R.E. Bryant, “Graph-based algorithms for boolean function manipulation,” IEEE Transactions on Computers, Vol. C-35, No. 8, pp. 677–691, 1986.

    Google Scholar 

  7. J.R. Burch, E.M. Clarke, K.L. McMillan, D.L. Dill, and L.J. Hwang, “Symbolic model checking: 1020 states and beyond,” Information and Computation, Vol. 98, No. 2, pp. 142–170, 1992.

    Google Scholar 

  8. E.M. Clarke, O. Grumberg, and D.E. Long, “Model checking and abstraction,” ACM Transactions on Programming Languages and Systems (TOPLAS), Vol. 16, No. 5, pp. 1512–1542, 1994.

    Google Scholar 

  9. E.M. Clarke, E.A. Emerson, and A.P. Sistla, “Automatic verification of finite-state concurrent systems using temporal logic specifications,” ACM Transactions on Programming Languages and Systems (TOPLAS), Vol. 8, No. 2, pp. 244–263, 1986.

    Google Scholar 

  10. P. Cousot and R. Cousot, “Abstract interpretation: A unified lattice model for static analysis of programs by construction or approximation of fixpoints,” in Proceedings of the Fourth Annual ACM Symposium on Principles of Programming Languages, Jan. 1977.

  11. D.R. Dams, O. Grumberg, and R. Gerth, “Abstract interpretation of reactive systems: Abstractions preserving ACTL*, ECTL* and CTL*,” in IFIP working conference on Programming Concepts, Methods and Calculi (PROCOMET'94), San Miniato, Italy, June 1994.

  12. D. Dolev, M. Klawe, and M. Rodeh, “An O(nlogn) unidirectional distributed algorithm for extrema finding in a circle,” Journal of Algorithms, Vol. 3, pp. 245–260, 1992.

    Google Scholar 

  13. E.A. Emerson, “Temporal and modal logic,” in J. van Leeuwen (Ed.), Handbook of Theoretical Computer Science, Elsevier Science Publishers, 1990, Vol. B, Chap. 4, pp. 997-1072.

  14. J.-C. Fernandez, H. Garavel, A. Kerbrat, R. Mateescu, L. Mounier, and M. Sighireanu, “CADP: A protocol validation and verification toolbox,” in R. Alur and T.A. Henzinger (Eds.), 8th International Conference on Computer-Aided Verification (CAV'96), LNCS 1102, New Brunswick, NJ, July/Aug. 1996.

  15. N. Francez, Program Verification, Addison-Wesley, 1992.

  16. P. Godefroid, “Model checking for programming languages using VeriSoft,” in Principle of Programming Languages, Jan. 1997.

  17. C.A.R. Hoare, Communicating Sequential Processes, Prentice Hall, 1985.

  18. G. Holzmann, Design and Validation of Computer Protocols, Prentice-Hall International Editors, 1991.

  19. G.J. Holzmann and D. Peled, “An improvement in formal verification,” in Proc. of FORTE 1994 Conference, Bern, Switzerland, 1994.

  20. P. Kelb, “Model checking and abstraction:Aframework preserving both truth and failure information,” OFFIS, Oldenburg, Germany, 1994.

  21. R. Kurshan, V. Levin, M. Minea, D. Peled, and H. Yenigun, “Static partial order reduction,” in B. Steffen (Ed.), Proc. of TACAS'98, LNCS 1384, 1998, pp. 335-357.

  22. O. Lichtenstein and A. Pnueli, “Checking that finite state concurrent programs satisfy their linear specification,” in Proceedings of the Twelfth Annual ACM Symposium on Principles of Programming Languages, Jan. 1985.

  23. K.L. McMillan, Symbolic Model Checking: An Approach to the State Explosion Problem, Kluwer Academic Publishers, 1993.

  24. H. Miller and S. Katz, “Saving space by fully exploiting invisible transitions,” in Proc. of the 8th International Conference on Computer Aided Verification, 1996, pp. 336-347.

  25. R. Milner, A Calculus of Communicating Systems, Vol. 92 of Lecture Notes in Computer Science, Springer-Verlag, 1980.

  26. Murphi description languange and verifier, TheURLfor the home page of murphi is: http://sprout.stanford.edu/dill/murphi.html.

  27. D. Park, “Concurrency and automata on infinite sequences,” in 5th GI-Conference on Theoretical Computer Science, Springer-Verlag, LNCS 104, pp. 167-183, 1981.

  28. D. Peled, “Ten years of partial order reduction,” in A.J. Hu and M.Y.Vardi (Eds.), Proc. of the 10th International Conference on Computer Aided Verification, LNCS 1427, 1998.

  29. B. Steffen, “Data flow analysis as model checking,” in Proceedings of the Theoretical Aspects of Computer Science (TACS'91), Vol. 526 of LNCS, Springer-Verlag, Sendai, Japan, Sept. 1990, pp. 346–364.

    Google Scholar 

  30. A. Valmari, “A stubborn attack on the state explosion problem,” in R.P. Kurshan and E.M. Clarke (Eds.), Proceedings of the 1990 Workshop on Computer-Aided Verification, June 1990.

  31. P. Wolper and P. Godefroid, “Partial-order methods for temporal verification,” in Proceedings of CUNCUR'93, Vol. 715 of LNCS, Springer Verlag, 1993, pp. 233-246.

Download references

Author information

Authors and Affiliations

Authors

Rights and permissions

Reprints and permissions

About this article

Cite this article

Yorav, K., Grumberg, O. Static Analysis for State-Space Reductions Preserving Temporal Logics. Formal Methods in System Design 25, 67–96 (2004). https://doi.org/10.1023/B:FORM.0000033963.55470.9e

Download citation

  • Issue Date:

  • DOI: https://doi.org/10.1023/B:FORM.0000033963.55470.9e

Navigation