Skip to main content

Mechanical verification of distributed algorithms in higher-order logic

  • Invited Paper
  • Conference paper
  • First Online:
Book cover Higher Order Logic Theorem Proving and Its Applications (HUG 1994)

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

Included in the following conference series:

Abstract

The only way to verify the correctness of a distributed algorithm with a high degree of confidence is to construct a correctness proof that is so formal and rigorous as to be checkable by a machine. The chief aim of this paper is to show, via a simple but typical example, how such proofs can be constructed and checked using HOL—a mechanical theorem-proving system for higher-order logic. The secondary aim is to demonstrate a method for reasoning about distributed algorithms based on the notions of events and causality. The goal is to perform as much reasoning as possible in the events-and-causality view and then translate the results back to the processors-and-messages view, since the former is more abstract and easier to reason about than the latter. The example we use to illustrate our ideas is the verification of a simple distributed summation algorithm for trees. A companion paper [6] describes the formal graph theory needed for this task.

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

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Flemming Andersen, Kim Dam Petersen, and Jimmi S. Pettersson, “Program Verification Using HOL-UNITY”, in [14].

    Google Scholar 

  2. G.v. Bochmann and D.K. Probst (ed.), Computer-Aided Verification, 4th International Workshop, LNCS 663, Springer-Verlag, 1992.

    Google Scholar 

  3. K. Mani Chandy and Jayadev Misra, Parallel Program Design: A Foundation, Addison-Wesley, 1988.

    Google Scholar 

  4. Ching-Tsun Chou, “A Sequent Formulation of a Logic of Predicates in HOL”, pp. 71–80 of L.J.M. Claesen and M.J.C. Gordon (ed.), Higher Order Logic Theorem Proving and Its Applications, 5th International Workshop, IFIP Transactions A-20, North-Holland, 1992.

    Google Scholar 

  5. Ching-Tsun Chou, “Predicates, Temporal Logic, and Simulations”, in [14].

    Google Scholar 

  6. Ching-Tsun Chou, “A Formal Theory of Undirected Graphs in Higher-Order Logic”, in this Proceedings.

    Google Scholar 

  7. Ching-Tsun Chou, “Practical Use of the Notions of Events and Causality in Reasoning about Distributed Algorithms”, work in progress.

    Google Scholar 

  8. Ching-Tsun Chou and Eli Gafni, “Understanding and Verifying Distributed Algorithms Using Stratified Decomposition”, Proc. of the 7th ACM Symp. on Principles of Distributed Computing, pp. 44–65, Aug. 1988.

    Google Scholar 

  9. Urban Engberg, Peter Grønning, and Leslie Lamport, “Mechanical Verification of Concurrent Systems with TLA”, pp. 44–55 of [2].

    Google Scholar 

  10. R.G. Gallager, P.A. Humblet, and P.M. Spira, “A Distributed Algorithm for Minimum-Weight Spanning Trees”, ACM Trans. on Programming Languages and Systems, Vol. 5, No. 1, pp. 66–77, Jan. 1983.

    Google Scholar 

  11. David M. Goldschlag, “Mechanically Verifying Concutrent Programs with the Boyer-Moore Prover”, IEEE Trans. on Software Engineering, Vol. 16, No. 9, pp. 1005–1023, Sep. 1990.

    Google Scholar 

  12. Michael J.C. Gordon, “HOL: A Proof Generating System for Higher-Order Logic”, pp. 73–128 of G. Birtwistle and P.A. Subrahmanyam (ed.), VLSI Specification, Verification and Synthesis, Kluwer Academic Publishers, 1988.

    Google Scholar 

  13. Michael J.C. Gordon and Thomas F. Melham (ed.), Introduction to HOL: A Theorem-Proving Environment for Higher-Order Logic, Cambridge University Press, 1993.

    Google Scholar 

  14. J.J. Joyce and C.-J.H. Seger (ed.), Higher Order Logic Theorem Proving and Its Applications, 6th International Workshop, LNCS 780, Springer-Verlag, 1993.

    Google Scholar 

  15. Leslie Lamport, “The Temporal Logic of Actions”, DEC SRC technical report #79, Dec. 1991. (To appear in ACM Trans. on Programming Languages and Systems.)

    Google Scholar 

  16. Kenneth L. McMillan, Symbolic Model Checking, Kluwer Academic Publishers, 1993.

    Google Scholar 

  17. Thomas F. Melham, “Automating Recursive Type Definitions in Higher-Order Logic”, pp. 341–386 of G. Birtwistle and P.A. Subrahmanyam (ed.), Current Trends in Hardware Verification and Automated Theorem Proving, Springer-Verlag, 1989.

    Google Scholar 

  18. Adrian Segall, “Distributed Network Protocols”, IEEE Trans. on Information Theory, Vol. 29, No. 1, pp. 23–35, Jan. 1983.

    Google Scholar 

  19. Joakim von Wright, “Mechanising the Temporal Logic of Actions in HOL”, pp. 155–159 of M. Archer et al. (ed.), Proc. of 1991 Workshop on the HOL Theorem Proving System and Its Applications, IEEE Computer Society Press, 1992.

    Google Scholar 

  20. Joakim von Wright and Thomas Långbacka, “Using a Theorem Prover for Reasoning about Concurrent Algorithms”, pp. 56–68 of [2].

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Thomas F. Melham Juanito Camilleri

Rights and permissions

Reprints and permissions

Copyright information

© 1994 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Chou, CT. (1994). Mechanical verification of distributed algorithms in higher-order logic. In: Melham, T.F., Camilleri, J. (eds) Higher Order Logic Theorem Proving and Its Applications. HUG 1994. Lecture Notes in Computer Science, vol 859. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-58450-1_41

Download citation

  • DOI: https://doi.org/10.1007/3-540-58450-1_41

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-58450-6

  • Online ISBN: 978-3-540-48803-3

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics