Exploiting transition locality in automatic verification of finite-state concurrent systems

  • Giuseppe Della Penna
  • Benedetto Intrigila
  • Igor Melatti
  • Enrico Tronci
  • Marisa Venturini Zilli
Regular contribution

Abstract

In this paper we show that statistical properties of the transition graph of a system to be verified can be exploited to improve memory or time performances of verification algorithms.

We show experimentally that protocols exhibit transition locality. That is, with respect to levels of a breadth-first state space exploration, state transitions tend to be between states belonging to close levels of the transition graph. We support our claim by measuring transition locality for the set of protocols included in the Murϕ verifier distribution .

We present a cache-based verification algorithm that exploits transition locality to decrease memory usage and a disk-based verification algorithm that exploits transition locality to decrease disk read accesses, thus reducing the time overhead due to disk usage. Both algorithms have been implemented within the Murϕ verifier.

Our experimental results show that our cache-based algorithm can typically save more than 40% of memory with an average time penalty of about 50% when using (Murϕ) bit compression and 100% when using bit compression and hash compaction, whereas our disk-based verification algorithm is typically more than ten times faster than a previously proposed disk-based verification algorithm and, even when using 10% of the memory needed to complete verification, it is only between 40 and 530% (300% on average) slower than (RAM) Murϕ with enough memory to complete the verification task at hand. Using just 300 MB of memory our disk-based Murϕ was able to complete verification of a protocol with about 109 reachable states. This would require more than 5 GB of memory using standard Murϕ .

Keywords

Automatic verification Model checking Explicit state space exploration 

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    A user guide to hytech: http://www.eecs.berkeley.edu/∼tah/HyTechGoogle Scholar
  2. 2.
    Alur R, Henzinger TA, Ho PH (1996) Automatic symbolic verification of embedded systems. IEEE Trans Softw Eng 22:2–11CrossRefGoogle Scholar
  3. 3.
    Bryant R (1986) Graph-based algorithms for boolean function manipulation. IEEE Trans Comput C-35(8):677–691Google Scholar
  4. 4.
    Burch JR, Clarke EM, McMillan KL, Dill DL, Hwang LJ (1992) Symbolic model checking: 1020 states and beyond. Inf Comput 98(2):142–170MathSciNetCrossRefGoogle Scholar
  5. 5.
    Cached murphi Web page: http://www.dsi.uniroma1.it/∼tronci/cached.murphi.htmlGoogle Scholar
  6. 6.
    Chernikova NV (1968) Algorithm for discovering the set of all solutions of a linear programming problem. USSR Comput Math Math Phys 8(6):282–293CrossRefGoogle Scholar
  7. 7.
    Dill DL, Drexler AJ, Hu AJ, Yang CH (1992) Protocol verification as a hardware design aid. In: Proceedings of the IEEE international conference on computer design: VLSI in computers and processors, pp 522–525Google Scholar
  8. 8.
    Godefroid P, Holzmann GJ, Pirottin D (1992) State space caching revisited. In: Bochmann GV, Probst D (eds) Proceedings of the 4th international workshop on computer aided verification (CAV), Montreal. Lecture notes in computer science, vol 663. Springer, Berlin Heidelberg New York, pp 178–191Google Scholar
  9. 9.
    Halbwachs N (1993) Delay analysis in synchronous programs. In: Courcoubetis C (ed) Proceedings of Computer Aided Verification (CAV). Lecture notes in computer science, vol 697. Springer, Berlin Heidelberg New York, pp 333–346Google Scholar
  10. 10.
    Halbwachs N, Raymond P, Proy Y-E (1994) Verification of linear hybrid systems by means of convex approximation. In: LeCharlier B (ed) Proceedings of the symposium on static analysis (SAS). Lecture notes in computer science, vol 864. Springer, Berlin Heidelberg New York, pp 223–237Google Scholar
  11. 11.
    Henzinger TA, Ho P-H, Wong-Toi H (1995) Hytech: the next generation. In: Proceedings of the 16th annual IEEE real-time systems symposium (RTSS). IEEE, New York, pp 56–65Google Scholar
  12. 12.
    Henzinger TA, Ho P-H, Wong-Toi H (1997) Hytech: a model checker for hybrid systems. Int J Softw Tools Technol Transfer 1:110–122CrossRefGoogle Scholar
  13. 13.
    Holzmann GJ (1985) Tracing protocols. AT&T Tech J 64(10):2413–2433Google Scholar
  14. 14.
    Holzmann GJ (1987) Automated protocol validation in argos, assertion proving and scatter searching. IEEE Trans Softw Eng 13(6):683–697CrossRefGoogle Scholar
  15. 15.
    Holzmann GJ (1997) The spin model checker. IEEE Trans Softw Eng 23(5):279–295CrossRefGoogle Scholar
  16. 16.
    Holzmann GJ (1998) An analysis of bitstate hashing. Formal Methods Sys Des 13(3):289–307CrossRefGoogle Scholar
  17. 17.
    Holzmann GJ, Peled D (1995) An improvement in formal verification. In: Proceedings of the FORTE conference, Proceedings of IFIP. Chapman & Hall, London, 6:197–211Google Scholar
  18. 18.
    Hu AJ, York G, Dill DL (1994) New techniques for efficient verification with implicitily conjoined bdds. In: Proceedings of the 31st IEEE conference on design automation, pp 276–282Google Scholar
  19. 19.
    Ip CN, Dill DL (1993) Better verification through symmetry. In: Agnew D, Claesen L, Camposano R (eds) Proceedings of the 11th international conference on: computer hardware description languages and their applications. Elsevier, Amsterdam, pp 97–111Google Scholar
  20. 20.
    Ip CN, Dill DL (1993) Efficient verification of symmetric concurrent systems. In: Proceedings of the IEEE international conference on computer design: VLSI in computers and processors, pp 230–234Google Scholar
  21. 21.
    Larsen KG, Pettersson P, Yi W (1997) Uppaal: Status and developments. In: Grumberg O (ed) Proceedings of CAV97, June 1997. Lecture notes in computer science, vol 1254. Springer, Berlin Heidelberg New York, pp 456–459Google Scholar
  22. 22.
    Liaw H-T, Lin C-S (1992) On the obdd-representation of general boolean functions. IEEE Trans Comput C-41(6):661–664Google Scholar
  23. 23.
    Murphi Web page: http://sprout.stanford.edu/dill/murphi.htmlGoogle Scholar
  24. 24.
    Papoulis A (1965) Probability, random variables and stochastic processes. McGraw-Hill Series in System SciencesGoogle Scholar
  25. 25.
    Patterson DA, Hennessy JL (1996) Computer architecture: a quantitative approach. Morgan Kaufmann, San FranciscoGoogle Scholar
  26. 26.
    Della Penna G, Intrigila B, Melatti I, Minichino M, Ciancamerla E, Parisse A, Tronci E, Zilli MV (2003) Automatic verification of a turbogas control system with the murϕ verifier. In: Pnueli A, Maler O (eds) Proceedings of the 6th international workshop Hybrid Systems: Computation and Control (HSCC), Prague, Czech Republic, April 2003. Lecture notes in computer science, vol 2623. Springer, Berlin Heidelberg New York, pp 141–155Google Scholar
  27. 27.
    Della Penna G, Intrigila B, Tronci E, Venturini Zilli M (2002) Exploiting transition locality in the disk based murϕ verifier. In: Aagaard MD, O’Leary JW (eds) Proceedings of the 4th international conference on formal methods in computer aided design (FMCAD), Portland, OR, November 2002. Lecture notes in computer science, vol 2517. Springer, Berlin Heidelberg New York, pp 202–219Google Scholar
  28. 28.
    Puri A, Holzmann GJ (2000) A minimized automaton representation of reachable states. Int J Softw Tools Technol Transfer 2(3):270–278Google Scholar
  29. 29.
    Ranjan RK, Sanghavi JV, Brayton RK, Sangiovanni-Vincentelli A (1996) Binary decision diagrams on network of workstations. In: Proceedings of the IEEE international conference on computer design, pp 358–364Google Scholar
  30. 30.
    Sanghavi JV, Ranjan RK, Brayton RK, Sangiovanni-Vincentelli A (1996) High performance bdd package by exploiting memory hierarchy. In: Proceedings of the 33rd IEEE conference on design automation, pp 635–640Google Scholar
  31. 31.
    Smv Web page: http://www.cs.cmu.edu/∼modelcheck/Google Scholar
  32. 32.
    Spin Web page: http://spinroot.comGoogle Scholar
  33. 33.
    Stern U, Dill D (1997) Parallelizing the murϕ verifier. In: Grumberg O (ed) Proceedings of the 9th international conference on computer aided verification, Haifa, Israel. Lecture notes in computer science, vol 1254. Springer, Berlin Heidelberg New York, pp 256–267Google Scholar
  34. 34.
    Stern U, Dill D (1998) Using magnetic disk instead of main memory in the murϕ verifier. In: Hu AJ, Vardi MY (eds) Proceedings of the 10th international conference on computer aided verification, Vancouver, BC, Canada. Lecture notes in computer science, vol 1427. Springer, Berlin Heidelberg New York, pp 172–183Google Scholar
  35. 35.
    Stern U, Dill DL (1995) Improved probabilistic verification by hash compaction. In: Camurati P, Eveking H (eds) Proceedings of the IFIP WG 10.5 advanced research working conference on correct hardware design and verification methods (CHARME). Lecture notes in computer science, vol 987. Springer, Berlin Heidelberg New York, pp 206–224Google Scholar
  36. 36.
    Stern U, Dill DL (1996) A new scheme for memory-efficient probabilistic verification. In: Gotzhein R, Bredereke J (eds) Proceedings of the IFIP TC6/WG6.1 joint international conference on formal description techniques for distributed systems and communication protocols, and Protocol specification, testing, and verification, Proceedings of IFIP, vol 69. Kluwer, Dordrecht, pp 333–348Google Scholar
  37. 37.
    Steven Ulrich web page: http://verify.stanford.edu/uli/research.htmlGoogle Scholar
  38. 38.
    Stornetta T, Brewer F (1996) Implementation of an efficient parallel bdd package. In: Proceedings of the 33rd annual conference on design automation. ACM Press, New York, pp 641–644Google Scholar
  39. 39.
    Tronci E, Della Penna G, Intrigila B, Venturini Zilli M (2001) Exploiting transition locality in automatic verification. In: Margaria T, Melham T (eds) Proceedings of the IFIP WG 10.5 advanced research working conference on correct hardware design and verification methods (CHARME), September 2001. Lecture notes in computer science, vol 2144. Springer, Berlin Heidelberg New York, pp 259–274Google Scholar
  40. 40.
    Tronci E, Della Penna G, Intrigila B, Venturini Zilli M (2001) A probabilistic approach to space-time trading in automatic verification of concurrent systems. In: Proceedings of the 8th IEEE Asia-Pacific conference on software engineering (APSEC), Macau SAR, China, December 2001. IEEE Press, New York, pp 317–324Google Scholar
  41. 41.
    Uppaal web page: http://www.docs.uu.se/docs/rtmv/uppaal/Google Scholar
  42. 42.
    Wolper P, Leroy D (1993) Reliable hashing without collision detection. In: Courcoubetis C (ed) Proceedings of the 5th international conference on computer aided verification, Elounda, Greece. Lecture notes in computer science, vol 697. Springer, Berlin Heidelberg New York, pp 59–70Google Scholar
  43. 43.
    German S, private communicationGoogle Scholar

Copyright information

© Springer-Verlag 2004

Authors and Affiliations

  • Giuseppe Della Penna
    • 1
  • Benedetto Intrigila
    • 1
  • Igor Melatti
    • 1
  • Enrico Tronci
    • 2
  • Marisa Venturini Zilli
    • 2
  1. 1.Dipartimento di InformaticaUniversità di L’AquilaL’AquilaItaly
  2. 2.Dip. di Scienze dell’InformazioneUniversità di Roma “La Sapienza”RomaItaly

Personalised recommendations