Skip to main content
Log in

Formal Verification of a Distributed Computer System

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

Abstract

Modeling distributed computer systems is known to be a challenging enterprise. Typically, distributed systems are comprised of large numbers of components whose coordination may require complex interactions. Modeling such systems more often than not leads to the nominal intractability of the resulting state space. Various formal methods have been proposed to address the modeling of coordination among distributed systems components. For the most part, however, these methods do not support formal verification mechanisms. By way of contrast, the L-automata/L-processes model supports formal verification mechanisms which in many examples can successfully circumvent state space explosion problems, and allow verification proofs to be extended to an arbitrary number of components. After reviewing L-automata/L-processes formalisms, we present here the formal specification of a fault-tolerant algorithm for a distributed computer system. We also expose the L-automata/L-processes verification of the distributed system, demonstrating how various techniques such as homomorphic reduction, induction, and linearization, can be used to overcome various problems which surface as one models large, complex systems.

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.

Institutional subscriptions

Similar content being viewed by others

References

  1. Y. Afek, D.S. Greenberg, M. Merritt, and G. Taubenfeld, "Computing with faulty shared memory," in Proceedings of 11th ACM Symp. on Principles of Distributed Computing, 1992.

  2. Y. Afek, D.S. Greenberg, M. Merritt, and G. Taubenfeld, "Computing with faulty shared memory," submitted, 1993.

  3. J.R. Buchi, "On a decision method in restricted second order arithmetic," in Logic, Methodology and Philosophy of Science, Proceedings of the 1960 International Congress, Stanford University Press, Stanford, CA, 1962, pp. 1–11.

    Google Scholar 

  4. E.M. Clarke and E.A. Emerson, "Synthesis of synchronization skeletons for branching time temporal logic," in Proc. Logic of Programs Workshop, Lecture Notes in Computer Science, Springer-Verlag, 1981, Vol. 131, pp. 52–71.

    Google Scholar 

  5. Z. Har'El and R.P. Kurshan, COSPAN User's Guide, AT&T Bell Laboratories, Murray Hill, NJ, 1987.

    Google Scholar 

  6. Z. Har'El and R.P. Kurshan, "Modelling concurrent processes," in Proceedings of Internat. Conf. Syst. Sci. Eng., pp. 382–385, 1988.

  7. R.P. Kurshan, Formal Verification of Coordination Processes: The Automata-Theoretic Approach, Princeton University Press, 1994.

  8. R.P. Kurshan, M. Merritt, A. Orda, and S.R. Sachs, "A structural linearization principle for processes," Formal Methods in System Design, Vol. 5, pp. 227–244, 1994.

    Google Scholar 

  9. R.P. Kurshan, M. Merritt, A. Orda, and S.R. Sachs, "Modelling asynchrony with a synchronous model," in Proceedings of Computer-Aided Verification Conference CAV'95 (LNCS 939), Liege, Belgium, July 1995, pp. 339–352.

  10. N. Lynch and M. Tuttle, "Hierarchical correctness proofs for distributed algorithms," in Proceedings of 6th ACM Symp. on Principles of Distributed Computing, 1987, pp. 137–151.

  11. N. Lynch and M. Tuttle, "An introduction to input/output automata," CWI-Quarterly, Vol. 2, No. 3, pp. 219–246, Sept. 1989.

    Google Scholar 

  12. M. Merritt and A. Orda, "Efficient test&set constructions for faulty shared memory," Tech. Rep., AT&T Bell Laboratories, 1993.

  13. D.E. Muller, "Infinite sequences and finite machines," in Proceedings of the 4th Annual Symposium on Switching Circuit Theory and Logical Design, Oct. 1963, pp. 3–16.

  14. J. Peterson and A. Silberschatz, Operating System Concepts, Addison-Wesley, 1985.

  15. A. Pnueli, "The temporal logic of programs," in Proceedings of the Eighteenth Annual Symposium on Foundations of Computer Science, Oct. 1977.

  16. M.O. Rabin, "Automata on infinite objects and church's problem," in Conference Board of the Mahtematical Sciences Regional Conference Series in Mathematics, American Mathematical Society, Providence, Rhode Island, 1972, pp. 8–12.

  17. R.S. Streett, "A propositional dynamic logic of looping and converse," Tr-263, MIT Laboratory for Computer Sciences, MIT, 1981.

  18. P. Varaiya, "Smart cars on smart roads: Problems of control," IEEE Transactions on Automatic Control, Vol. 38, No. 2, pp. 195–207, Feb. 1993.

    Google Scholar 

  19. P. Varaiya and S. Shladover, "Sketch of an IVHS system architecture," in Proceedings of Vehicle Navigation and Information Systems Conference, Dearborn, MI, 1991, pp. 909–922.

Download references

Author information

Authors and Affiliations

Authors

Rights and permissions

Reprints and permissions

About this article

Cite this article

Merritt, M., Orda, A. & Sachs, S. Formal Verification of a Distributed Computer System. Formal Methods in System Design 10, 93–125 (1997). https://doi.org/10.1023/A:1008667631119

Download citation

  • Issue Date:

  • DOI: https://doi.org/10.1023/A:1008667631119

Navigation