Recognizing safety and liveness


A formal characterization for safety properties and liveness properties is given in terms of the structure of the Buchi automaton that specifies the property. The characterizations permit a property to be decomposed into a safety property and a liveness property whose conjunction is the original. The characterizations also give insight into techniques required to prove a large class of safety and liveness properties.

This is a preview of subscription content, access via your institution.


  1. Alpern B (1986) Proving temporal properties of concurrent programs: a non-temporal approach. PhD Thesis. Department of Computer Science, Cornell University (January 1986)

  2. Alpern B, Demers AJ, Schneider FB (1986) Safety without stuttering. Inf Proc Lett 23(4): 177–180

    Google Scholar 

  3. Alpern B, Schneider FB (1985) Defining liveness. Inf Proc Lett 21:181–185

    Google Scholar 

  4. Alpern B, Schneider FB (1985) Verifying temporal properties without using temporal logic. Tech Rep TR 85-723, Department of Computer Science, Cornell University (December 1985)

  5. Alpern B, Schneider FB (1987) Proving boolean combinations of deterministic properties. Proc 2nd Ann Symp Logic Comput Sci; IEEE Comput Soc, Ithaca, NY (June 1987)

  6. Clarke EM, Emerson, EA, Sistla AP (1986) Automatic verification of finite-state concurrent systems using temporal logic specifications. ACM Trans Programm Languages Syst 8(2):244–263

    Google Scholar 

  7. Eilenberg S (1974) Automata Languages and Machines, Vol A. Academic Press, NY

    Google Scholar 

  8. Hopcroft JE, Ullman JD (1979) Introduction to Automata Theory, Languages and Computation. Addison-Wesley

  9. Lamport L (1977) Proving the correctness of multiprocess programs. IEEE Trans Software Eng SE-3, 2:125–143

    Google Scholar 

  10. Lamport L (1983) What good is temporal logic. In: Magon REA (ed) Information Processing '83. North-Holland, Amsterdam, pp 657–668

    Google Scholar 

  11. Lamport L (1985) Logical foundation. In: Paul M, Siegert HJ (eds) Distributed Systems — Methods and Tools for Specification, vol 190. Lect Notes Comput. Springer-Verlag, Berlin Heidelberg New York

    Google Scholar 

  12. Lichtenstein O, Pnueli O, Zuck L (1985) The glory of the past. Proc Workshop on Logics of Programs, vol 193 (June 1985). Brooklyn, NY. Lect. Notes Comput Sci, pp 196–218

  13. Manna Z, Pnueli A (1981) Verification of concurrent programs: The temporal framework. In: Boyer RS, Moore JS (eds) The Correctness Problem in Computer Science (1981) International lectures in Computer Science. Academic Press, London, pp 141–154

    Google Scholar 

  14. Manna Z, Pnueli A (1987) Specification and Verification of Concurrent Programs by ∀-Automata. Proc 14th Symp Principles of Programming Languages. ACM, Munich, (January 1987), pp 1–12.

    Google Scholar 

  15. Sistla AP (1985) On characterization of safety and liveness properties in temporal logic. Proc 4th Symp Principles of Distributed Computing. ACM, Minaki, (August 1985), pp 39–48

    Google Scholar 

  16. Sistla AP (1986) On characterization of safety and liveness properties in temporal logic. Tech Rep, GTE Lab, Waltham MA, (March 1986, revised July 1986).

    Google Scholar 

  17. Sistla AP, Yardi MY, Wolper P (1985) The complementation problems for Buchi automata with applications to temporal logic (extended abstract). Proc 12th International Colloquium on Automata, Languages and Programming, ICALP'85. Nafplion Greece (July 1985) Lect Notes Comput Sci Springer Verlag, New York 194:465–474

    Google Scholar 

  18. Vardi M (1987) Verification of concurrent programs: The automata-theoretic framework. Proc 2nd Annual Symposium on Logic in Computer Science. IEEE Comput Soc, Ithaca, NY (June 1987)

    Google Scholar 

  19. Wolper P (1983) Temporal logic can be more expressive. Control 56(1–2):72–99

    Google Scholar 

Download references

Author information



Corresponding author

Correspondence to Fred B. Schneider.

Additional information

Bowen Alpern was born in 1952. He received a Ph.D. in Computer Science from Cornell University in 1986. Currently, he is a Research Staff Member in the Mathematics Department of the IBM T.J. Watson Research Center.

Fred B. Schneider is an associate professor in the Computer Science Department at Cornell University. He received a Ph.D. in Computer Science from S.U.N.Y. at Stony Brook in 1978 and a B.S. from Cornell in 1975. Schneider is a member of the editorial boards of Distributed Computing and Information Processing Letters. He is also a member of the U.S. Army Committee on Recommendations for Basic Research, the College Board Committe for Advanced Placement Computer Science, IFIP Working Group 2.3 (Programming Methodology), and the Standing Organizing Committee for Principles of Distributed Computing Conferences. He has served on the program committee for PODC, POPL, SOSP, and FTCS.

This work is supported, in part, by NSF Grant DCR-8320274 and Office of Naval Research contract N00014-86-K-0092

Rights and permissions

Reprints and Permissions

About this article

Cite this article

Alpern, B., Schneider, F.B. Recognizing safety and liveness. Distrib Comput 2, 117–126 (1987).

Download citation


  • Operating System
  • Communication Network
  • Computer System
  • System Organization
  • Large Class