Skip to main content

Revising UNITY Programs: Possibilities and Limitations

  • Conference paper
Principles of Distributed Systems (OPODIS 2005)

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

Included in the following conference series:

Abstract

We concentrate on automatic addition of UNITY properties unless, stable, invariant, and leads-to to programs. We formally define the problem of adding UNITY properties to programs while preserving their existing properties. For cases where one simultaneously adds a single leads-to property along with a conjunction of unless, stable, and invariant properties to an existing program, we present a sound and complete algorithm with polynomial time complexity (in program state space). However, for cases where one simultaneously adds two leads-to properties to a program, we present a somewhat unexpected result that such addition is NP-complete. Therefore, in general, adding one leads-to property is significantly easier than adding two (or more) leads-to properties.

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 to check access.

Access this chapter

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

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Chandy, K.M., Misra, J.: Parallel Program Design: A Foundation. Addison-Wesley, Reading (1988)

    MATH  Google Scholar 

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

    Article  MathSciNet  MATH  Google Scholar 

  3. Ebnenasir, A., Kulkarni, S.: Automatic addition of liveness. Technical Report MSU-CSE-04-22, Department of Computer Science, Michigan State University, East Lansing, Michigan (June 2004)

    Google Scholar 

  4. Dijkstra, E.W.: A Discipline of Programming. Prentice-Hall, Englewood Cliffs (1990)

    MATH  Google Scholar 

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

    Article  MATH  Google Scholar 

  6. 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 

  7. Pnueli, A., Rosner, R.: On the synthesis of a reactive module. In: Proceedings of the 16th ACM Symposium on Principles of Programming Languages, pp. 179–190 (1989)

    Google Scholar 

  8. Pnueli, A., Rosner, R.: On the synthesis of an asynchronous reactive module. In: Ronchi Della Rocca, S., Ausiello, G., Dezani-Ciancaglini, M. (eds.) ICALP 1989. LNCS, vol. 372, pp. 652–671. Springer, Heidelberg (1989)

    Chapter  Google Scholar 

  9. Arora, A., Attie, P.C., Emerson, E.A.: Synthesis of fault-tolerant concurrent programs. ACM Transactions on Programming Languages and Systems (TOPLAS) 26(1), 125–185 (2004); A preliminary version of this paper appeared in Proceedings of the 17th ACM Symposium on Principles of Distributed Computing (1998)

    Article  MATH  Google Scholar 

  10. Attie, P.: Synthesis of large concurrent programs via pairwise composition. In: Baeten, J.C.M., Mauw, S. (eds.) CONCUR 1999. LNCS, vol. 1664, pp. 130–145. Springer, Heidelberg (1999)

    Chapter  Google Scholar 

  11. Attie, P., Emerson, A.: Synthesis of concurrent programs for an atomic read/write model of computation. ACM TOPLAS 23(2), 187–242 (2001); A preliminary version of this paper appeared in PODC (1996)

    Article  Google Scholar 

  12. Kulkarni, S.S., Arora, A.: Automating the addition of fault-tolerance. In: Proceedings of the 6th International Symposium of Formal Techniques in Real-Time and Fault-Tolerant Systems, pp. 82–93 (2000)

    Google Scholar 

  13. Kulkarni, S.S., Arora, A., Chippada, A.: Polynomial time synthesis of Byzantine agreement. In: Symposium on Reliable Distributed Systems, pp. 130–139 (2001)

    Google Scholar 

  14. Kulkarni, S.S., Ebnenasir, A.: The complexity of adding failsafe fault-tolerance. In: Proceedings of the 22nd International Conference on Distributed Computing Systems, pp. 337–344 (2002)

    Google Scholar 

  15. Kulkarni, S.S., Ebnenasir, A.: Enhancing the fault-tolerance of nonmasking programs. In: Proceedings of the 23rd International Conference on Distributed Computing Systems, pp. 441–449 (2003)

    Google Scholar 

  16. Kulkarni, S.S., Ebnenasir, A.: Automated Synthesis of Multitolerance. In: Proceedings of the International Conference on Dependable Systems and Networks, Palazzo dei Congressi, Florence, Italy, June 28-July 1, pp. 209–218 (2004)

    Google Scholar 

  17. Havelund, K., Rosu, G.: Runtime verification. Formal Methods in System Design. Special issue dedicated to RV 2001, 24(2) (2004)

    Google Scholar 

  18. Chen, F., D’Amorim, M., Rosu, G.: A Formal Monitoring-based Framework for Software Development and Analysis. In: Davies, J., Schulte, W., Barnett, M. (eds.) ICFEM 2004. LNCS, vol. 3308, pp. 357–372. Springer, Heidelberg (2004)

    Chapter  Google Scholar 

  19. Fisher, B., Schumann, J., Whalen, M.: Synthesizing Certified Code. In: Eriksson, L.-H., Lindsay, P.A. (eds.) FME 2002. LNCS, vol. 2391, pp. 431–450. Springer, Heidelberg (2002)

    Google Scholar 

  20. Denney, E., Fischer, B., Schumann, J.: Adding Assurance to Automatically Generated Code. In: Proceedings the 8th IEEE International Symposium on High Assurance Systems Engineering (HASE 2004), pp. 297–299 (March 2004)

    Google Scholar 

  21. Havelund, K., Rosu, G.: Synthesizing Monitors for Safety Properties. In: Katoen, J.-P., Stevens, P. (eds.) ETAPS 2002 and TACAS 2002. LNCS, vol. 2280, pp. 342–356. Springer, Heidelberg (2002)

    Chapter  Google Scholar 

  22. Sen, K., Rosu, G., Agha, G.: Runtime safety analysis of multithreaded programs. In: ACM SIGSOFT Conference on the Foundations of Software Engineering /European Software Engineering Conference, Helsinki, Finland, pp. 337–346 (2003)

    Google Scholar 

  23. Emerson, E.A.: Handbook of Theoretical Computer Science: Chapter 16, Temporal and Modal Logic. Elsevier Science, Amsterdam (1990)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2006 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Ebnenasir, A., Kulkarni, S.S., Bonakdarpour, B. (2006). Revising UNITY Programs: Possibilities and Limitations. In: Anderson, J.H., Prencipe, G., Wattenhofer, R. (eds) Principles of Distributed Systems. OPODIS 2005. Lecture Notes in Computer Science, vol 3974. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11795490_22

Download citation

  • DOI: https://doi.org/10.1007/11795490_22

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-36321-7

  • Online ISBN: 978-3-540-36322-4

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics