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.
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Chandy, K.M., Misra, J.: Parallel Program Design: A Foundation. Addison-Wesley, Reading (1988)
Alpern, B., Schneider, F.B.: Defining liveness. Information Processing Letters 21, 181–185 (1985)
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)
Dijkstra, E.W.: A Discipline of Programming. Prentice-Hall, Englewood Cliffs (1990)
Emerson, E.A., Clarke, E.M.: Using branching time temporal logic to synthesize synchronization skeletons. Science of Computer Programming 2(3), 241–266 (1982)
Manna, Z., Wolper, P.: Synthesis of communicating processes from temporal logic specifications. ACM Transactions on Programming Languages and Systems 6(1), 68–93 (1984)
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)
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)
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)
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)
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)
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)
Kulkarni, S.S., Arora, A., Chippada, A.: Polynomial time synthesis of Byzantine agreement. In: Symposium on Reliable Distributed Systems, pp. 130–139 (2001)
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)
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)
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)
Havelund, K., Rosu, G.: Runtime verification. Formal Methods in System Design. Special issue dedicated to RV 2001, 24(2) (2004)
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)
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)
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)
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)
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)
Emerson, E.A.: Handbook of Theoretical Computer Science: Chapter 16, Temporal and Modal Logic. Elsevier Science, Amsterdam (1990)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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)