Skip to main content

Mechanical Verification of Automatic Synthesis of Fault-Tolerant Programs

  • Conference paper

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 3573))

Abstract

Fault-tolerance is a crucial property in many systems. Thus, mechanical verification of algorithms associated with synthesis of faulttolerant programs is desirable to ensure their correctness. In this paper, we present the mechanized verification of algorithms that automate the addition of fault-tolerance to a given fault-intolerant program using the PVS theorem prover. By this verification, not only we prove the correctness of the synthesis algorithms, but also we guarantee that any program synthesized by these algorithms is correct by construction. Towards this end, we formally define a uniform framework for formal specification and verification of fault-tolerance that consists of abstract definitions for programs, specifications, faults, and levels of fault-tolerance, so that they are independent of platform and architecture. The essence of synthesis algorithms involves fixpoint calculations. Hence, we also develop a reusable library for fixpoint calculations on finite sets in PVS.

This work was partially sponsored by NSF CAREER CCR-0092724, DARPA Grant OSURS01-C-1901, ONR Grant N00014-01-1-0744, NSF grant EIA-0130724, and a grant from Michigan State University.

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

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Owre, S., Rushby, J., Shankar, N., von Henke, F.: Formal verification for fault-tolerant architectures: Prolegomena to the design of PVS. IEEE Transactions on Software Engineering 21(2), 107–125 (1995)

    Article  Google Scholar 

  2. Mantel, H., Gärtner, F.C.: A case study in the mechanical verification of fault-tolerance. Technical Report TUD-BS-1999-08, Department of Computer Science, Darmstadt University of Technology (1999)

    Google Scholar 

  3. Qadeer, S., Shankar, N.: Verifying a self-stabilizing mutual exclusion algorithm. In: Gries, D., de Roever, W.-P. (eds.) IFIP International Conference on Programming Concepts and Methods (PROCOMET 1998), pp. 424–443. Chapman and Hall, Shelter Island (1998)

    Google Scholar 

  4. Dijkstra, E.W.: Self-stabilizing systems in spite of distributed control. Communications of the ACM 17(11) (1974)

    Google Scholar 

  5. Kulkarni, S.S., Rushby, J., Shankar, N.: A case-study in component-based mechanical verification of fault-tolerant programs. In: Proceedings of the 19th IEEE International Conference on Distributed Computing Systems Workshop on Self-Stabilization (WSS1999), Austin, Texas, USA, June 1999, pp. 33–40 (1999)

    Google Scholar 

  6. Kulkarni, S.S.: Component-based design of fault-tolerance. PhD thesis, Ohio State University (1999)

    Google Scholar 

  7. Kulkarni, S.S., Arora, A.: Automating the addition of fault-tolerance. Formal Techniques in Real-Time and Fault-Tolerant Systems (2000)

    Google Scholar 

  8. Kulkarni, S.S., Arora, A.: Automating the addition of fault-tolerance. Technical Report MSU-CSE-00-13, Department of Computer Science and Engineering, Michigan State University, East Lansing, Michigan (2001)

    Google Scholar 

  9. Kulkarni, S.S., Ebnenasir, A.: Automated synthesis of multitolerance. IEEE Conference on Dependable and Network Systems(DSN2004) (2004)

    Google Scholar 

  10. Kulkarni, S.S., Ebnenasir, A.: Enhancing the fault-tolerance of nonmasking programs. In: International Conference on Distributed Computing Systems (2003)

    Google Scholar 

  11. Ebnenasir, A., Kulkarni, S.S.: A framework for automatic synthesis of fault-tolerance, http://www.cse.msu.edu/sandeep/software/Code/synthesis-framework/

  12. Alpern, B., Schneider, F.B.: Defining liveness. Information Processing Letters 21, 181–185 (1985)

    Article  MATH  MathSciNet  Google Scholar 

  13. Arora, A., Gouda, M.G.: Closure and convergence: A foundation of fault-tolerant computing. IEEE Transactions on Software Engineering 19(11), 1015–1027 (1993)

    Article  Google Scholar 

  14. Owre, S., Shankar, N., Rushby, J.M., Stringer-Calvert, D.W.J.: PVS Language Reference, Version 2.4. Computer Science Laboratory, SRI International, Menlo Park, CA (December 2001), http://pvs.csl.sri.com/manuals.html

  15. Bonakdarpour, B.: Mechanical verification of automatic synthesis of fault-tolerant programs. Master’s thesis, Michigan State University (2004)

    Google Scholar 

  16. Emerson, E.A., Clarke, E.M.: Using branching time temporal logic to synthesis synchronization skeletons. Science of Computer Programming 2(3), 241–266 (1982)

    Article  MATH  Google Scholar 

  17. Manna, Z., Wolper, P.: Synthesis of communicating processes from temporal logic specifications. ACM Transactions on Programming Languages and Systems 6(1), 68–93 (1984)

    Article  MATH  Google Scholar 

  18. Kupferman, O., Vardi, M.Y.: Synthesizing distributed systems. In: Proc. 16th IEEE Symp. on Logic in Computer Science (July 2001)

    Google Scholar 

  19. Attie, P., Emerson, E.: Synthesis of concurrent systems with many similar processes. ACM Transactions on Programming Languages and Systems 20(1), 51–115 (1998)

    Article  Google Scholar 

  20. Kulkarni, S.S., Arora, A., Chippada, A.: Polynomial Time Synthesis of Byzantine Agreement. In: Symposium on Reliable Distributed Systems (2001)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2005 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Kulkarni, S.S., Bonakdarpour, B., Ebnenasir, A. (2005). Mechanical Verification of Automatic Synthesis of Fault-Tolerant Programs. In: Etalle, S. (eds) Logic Based Program Synthesis and Transformation. LOPSTR 2004. Lecture Notes in Computer Science, vol 3573. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11506676_3

Download citation

  • DOI: https://doi.org/10.1007/11506676_3

  • Publisher Name: Springer, Berlin, Heidelberg

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

  • Online ISBN: 978-3-540-31683-1

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics