Revising UNITY Programs: Possibilities and Limitations

  • Ali Ebnenasir
  • Sandeep S. Kulkarni
  • Borzoo Bonakdarpour
Part of the Lecture Notes in Computer Science book series (LNCS, volume 3974)


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.


UNITY Formal Methods Program Synthesis 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Chandy, K.M., Misra, J.: Parallel Program Design: A Foundation. Addison-Wesley, Reading (1988)MATHGoogle Scholar
  2. 2.
    Alpern, B., Schneider, F.B.: Defining liveness. Information Processing Letters 21, 181–185 (1985)MathSciNetCrossRefMATHGoogle Scholar
  3. 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. 4.
    Dijkstra, E.W.: A Discipline of Programming. Prentice-Hall, Englewood Cliffs (1990)MATHGoogle Scholar
  5. 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)CrossRefMATHGoogle Scholar
  6. 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)CrossRefMATHGoogle Scholar
  7. 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. 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)CrossRefGoogle Scholar
  9. 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) CrossRefMATHGoogle Scholar
  10. 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)CrossRefGoogle Scholar
  11. 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) CrossRefGoogle Scholar
  12. 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. 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. 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. 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. 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. 17.
    Havelund, K., Rosu, G.: Runtime verification. Formal Methods in System Design. Special issue dedicated to RV 2001, 24(2) (2004)Google Scholar
  18. 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)CrossRefGoogle Scholar
  19. 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. 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. 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)CrossRefGoogle Scholar
  22. 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. 23.
    Emerson, E.A.: Handbook of Theoretical Computer Science: Chapter 16, Temporal and Modal Logic. Elsevier Science, Amsterdam (1990)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2006

Authors and Affiliations

  • Ali Ebnenasir
    • 1
  • Sandeep S. Kulkarni
    • 1
  • Borzoo Bonakdarpour
    • 1
  1. 1.Software Engineering and Network Systems Laboratory, Department of Computer Science and EngineeringMichigan State UniversityEast LansingUSA

Personalised recommendations