Model checking in practice: An analysis of the ACCESS.bus protocol using SPIN

  • Bernard Boigelot
  • Patrice Godefroid
Session 7a: Model Checking (1)
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1051)


This paper presents a case study of the use of model checking for analyzing an industrial protocol, the ACCESS.bus protocol. Our analysis of this protocol was carried out using SPIN, an automated verification system which includes an implementation of model-checking algorithms. A model of the protocol was developed, and properties expressed by linear-time temporal-logic formulas were checked on this model. This analysis revealed subtle flaws in the design of the protocol. Developers who worked on implementations of ACCESS.bus were unaware of these flaws at a very late stage of their development process. We also present suggestions for solving the detected problems.


Model Check Temporal Logic Base Protocol Device Driver Prototype Verification System 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


  1. [ACC94]
    ACCESS.bus Industry Group. Access.bus specifications, version 2.2. 370 Altair Way, Suite 215, Sunnyvale, California 94086, USA, 1994.Google Scholar
  2. [CES86]
    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, 8(2):244–263, January 1986.Google Scholar
  3. [CVWY90]
    C. Courcoubetis, M. Vardi, P. Wolper, and M. Yannakakis. Memory efficient algorithms for the verification of temporal properties. In Proc. 2nd Workshop on Computer Aided Verification, volume 531 of Lecture Notes in Computer Science, pages 233–242, Rutgers, June 1990.Google Scholar
  4. [DDHY92]
    D. L. Dill, A. J. Drexler, A. J. Hu, and C. H. Yang. Protocol verification as a hardware design aid. In 1992 IEEE International Conference on Computer Design: VLSI in Computers and Processors, pages 522–525, Cambridge, MA, October 1992. IEEE Computer Society.Google Scholar
  5. [Eme90]
    E. A. Emerson. Temporal and modal logic. In J. van Leeuwen, editor, Handbook of Theoretical Computer Science. Elsevier/MIT Press, Amsterdam/Cambridge, 1990.Google Scholar
  6. [FGM+92]
    J.C. Fernandez, H. Garavel, L. Mounier, A. Rasse, C. Rodriguez, and J. Sifakis. A toolbox for the verification of LOTOS programs. In Proc. of the 14th International Conference on Software Engineering ICSE'14, Melbourne, Australia, May 1992. ACM.Google Scholar
  7. [GH93]
    P. Godefroid and G. J. Holzmann. On the verification of temporal properties. In Proc. 13th IFIP WG 6.1 International Symposium on Protocol Specification, Testing, and Verification, pages 109–124, Liège, May 1993. North-Holland.Google Scholar
  8. [GPVW95]
    R. Gerth, D. Peled, M. Vardi, and P. Wolper. Simple on-the-fly automatic verification of linear temporal logic. In Protocol Specification Testing and Verification, pages 3–18, Warsaw, Poland, 1995. Chapman & Hall.Google Scholar
  9. [HK90]
    Z. Har'El and R. P. Kurshan. Software for analytical development of communication protocols. AT&T Technical Journal, 1990.Google Scholar
  10. [Hol91]
    G. J. Holzmann. Design and Validation of Computer Protocols. Prentice Hall, 1991.Google Scholar
  11. [Hoo95]
    J. Hooman. Verifying part of the ACCESS.bus protocol using PVS. To appear in the Proceedings of Foundations of Software Technology and Theoretical Computer Science, December 1995.Google Scholar
  12. [Liu89]
    M.T. Liu. Protocol engineering. Advances in Computing, 29:79–195, 1989.Google Scholar
  13. [LP85]
    O. Lichtenstein and A. Pnueli. Checking that finite state concurrent programs satisfy their linear specification. In Proceedings of the Twelfth ACM Symposium on Principles of Programming Languages, pages 97–107, New Orleans, January 1985.Google Scholar
  14. [MP92]
    Z. Manna and A. Pnueli. The Temporal Logic of Reactive and Concurrent Systems: Specification. Springer-Verlag, 1992.Google Scholar
  15. [ORS92]
    S. Owre, J. Rushby, and N. Shankar. PVS: A prototype verification system. In Proc. 11th Conference on Automated Deduction, volume 607 of Lecture Notes in Artificial Intelligence, pages 748–752. Springer-Verlag, 1992.Google Scholar
  16. [QS81]
    J.P. Quielle and J. Sifakis. Specification and verification of concurrent systems in CESAR. In Proc. 5th Int'l Symp. on Programming, volume 137 of Lecture Notes in Computer Science, pages 337–351. Springer-Verlag, 1981.Google Scholar
  17. [Rud87]
    H. Rudin. Network protocols and tools to help produce them. Annual Review of Computer Science, 2:291–316, 1987.Google Scholar
  18. [VW86]
    M.Y. Vardi and P. Wolper. An automata-theoretic approach to automatic program verification. In Proceedings of the First Symposium on Logic in Computer Science, pages 322–331, Cambridge, June 1986.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1996

Authors and Affiliations

  • Bernard Boigelot
    • 1
  • Patrice Godefroid
    • 2
  1. 1.Institut Montefiore B28Université de LiègeLiège Sart-TilmanBelgium
  2. 2.AT&T Bell LaboratoriesNapervilleUSA

Personalised recommendations