On the Construction of Fine Automata for Safety Properties

  • Orna Kupferman
  • Robby Lampert
Part of the Lecture Notes in Computer Science book series (LNCS, volume 4218)


Of special interest in formal verification are safety properties, which assert that the system always stays within some allowed region. Each safety property ψ can be associated with a set of bad prefixes: a set of finite computations such that an infinite computation violates ψ iff it has a prefix in the set. By translating a safety property to an automaton for its set of bad prefixes, verification can be reduced to reasoning about finite words: a system is correct if none of its computations has a bad prefix. Checking the latter circumvents the need to reason about cycles and simplifies significantly methods like symbolic fixed-point based verification, bounded model checking, and more.

A drawback of the translation lies in the size of the automata: while the translation of a safety LTL formula ψ to a nondeterministic Büchi automaton is exponential, its translation to a tight bad-prefix automaton — one that accepts all the bad prefixes of ψ, is doubly exponential. Kupferman and Vardi showed that for the purpose of verification, one can replace the tight automaton by a fine automaton — one that accepts at least one bad prefix of each infinite computation that violates ψ. They also showed that for many safety LTL formulas, a fine automaton has the same structure as the Büchi automaton for the formula. The problem of constructing fine automata for general safety LTL formulas was left open. In this paper we solve this problem and show that while a fine automaton cannot, in general, have the same structure as the Büchi automaton for the formula, the size of a fine automaton is still only exponential in the length of the formula.


Model Check Linear Temporal Logic Safety Property Tree Automaton Bound Model Check 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. [AKT+06]
    Armoni, R., Korchemny, D., Tiemeyer, A., Vardi, M.Y., Zbar, Y.: Deterministic dynamic monitors for linear-Time assertions. In: Havelund, K., Núñez, M., Roşu, G., Wolff, B. (eds.) FATES 2006 and RV 2006. LNCS, vol. 4262, Springer, Heidelberg (2006)CrossRefGoogle Scholar
  2. [BCM+92]
    Burch, J.R., Clarke, E.M., McMillan, K.L., Dill, D.L., Hwang, L.J.: Symbolic model checking: 1020 states and beyond. I& C 98(2), 142–170 (1992)zbMATHMathSciNetGoogle Scholar
  3. [BM83]
    Boyer, R.S., Moore, J.S.: Proof-checking, theorem-proving and program verification. Technical Report 35, Institute for Computing Science and Computer Applications, University of Texas at Austin (January 1983)Google Scholar
  4. [CBRZ01]
    Clarke, E.M., Bierea, A., Raimi, R., Zhu, Y.: Bounded model checking using satisfiability solving. Formal Methods in System Design 19(1), 7–34 (2001)zbMATHCrossRefGoogle Scholar
  5. [CVWY92]
    Courcoubetis, C., Vardi, M.Y., Wolper, P., Yannakakis, M.: Memory efficient algorithms for the verification of temporal properties. Formal Methods in System Design 1, 275–288 (1992)CrossRefGoogle Scholar
  6. [GH01]
    Giannakopoulou, D., Havelund, K.: Automata-based verification of temporal properties on running programs. In: Proc. 16th International Conference on Automated Software Engineering, pp. 412–416. IEEE Computer Society Press, Los Alamitos (2001)CrossRefGoogle Scholar
  7. [GPVW95]
    Gerth, R., Peled, D., Vardi, M.Y., Wolper, P.: Simple on-the-fly automatic verification of linear temporal logic. In: Dembiski, P., Sredniawa, M. (eds.) Protocol Specification, Testing, and Verification, pp. 3–18. Chapman and Hall, Boca Raton (1995)Google Scholar
  8. [GW91]
    Godefroid, P., Wolper, P.: Using partial orders for the efficient verification of deadlock freedom and safety properties. In: Larsen, K.G., Skou, A. (eds.) CAV 1991. LNCS, vol. 575, pp. 332–342. Springer, Heidelberg (1992)Google Scholar
  9. [Hol04]
    Holzmann, G.J.: The Spin Model Checker: primer and reference manual. Addison-Wesley, Reading (2004)Google Scholar
  10. [HKSV97]
    Hardin, R.H., Kurshan, R.P., Shukla, S.K., Vardi, M.Y.: A new heuristic for bad cycle detection using BDDs. In: Grumberg, O. (ed.) CAV 1997. LNCS, vol. 1254, pp. 268–278. Springer, Heidelberg (1997)Google Scholar
  11. [IN97]
    Iwashita, H., Nakata, T.: Forward model checking techniques oriented to buggy designs. In: Proc. ICCAD, pp. 400–404 (1997)Google Scholar
  12. [KMM04]
    Kupferman, O., Morgenstern, G., Murano, A.: Typeness for ω-regular automata. In: Wang, F. (ed.) ATVA 2004. LNCS, vol. 3299, pp. 324–338. Springer, Heidelberg (2004)CrossRefGoogle Scholar
  13. [KPB94]
    Krishnan, S.C., Puri, A., Brayton, R.K.: Deterministic ω-automata vis-a-vis deterministic Büchi automata. In: Du, D.-Z., Zhang, X.-S. (eds.) ISAAC 1994. LNCS, vol. 834, pp. 378–386. Springer, Heidelberg (1994)Google Scholar
  14. [KSV96]
    Kupferman, O., Safra, S., Vardi, M.Y.: Relating word and tree automata. In: Proc. 11th LICS, DIMACS, pp. 322–333 (June 1996)Google Scholar
  15. [KV01a]
    Kupferman, O., Vardi, M.Y.: Model checking of safety properties. Formal methods in System Design 19(3), 291–314 (2001)zbMATHCrossRefMathSciNetGoogle Scholar
  16. [KV01b]
    Kupferman, O., Vardi, M.Y.: On bounded specifications. In: Nieuwenhuis, R., Voronkov, A. (eds.) LPAR 2001. LNCS (LNAI), vol. 2250, pp. 24–38. Springer, Heidelberg (2001)CrossRefGoogle Scholar
  17. [KV05a]
    Kupferman, O., Vardi, M.Y.: From linear time to branching time. ACM Trans. on Computational Logic 6(2), 273–294 (2005)CrossRefMathSciNetGoogle Scholar
  18. [KV05b]
    Kupferman, O., Vardi, M.Y.: Safraless decision procedures. In: Proc. 46th FOCS, Pittsburgh, pp. 531–540 (October 2005)Google Scholar
  19. [Lan69]
    Landweber, L.H.: Decision problems for ω–automata. Mathematical Systems Theory 3, 376–384 (1969)zbMATHCrossRefMathSciNetGoogle Scholar
  20. [Lat03]
    Latvala, T.: Efficient model checking of safety properties. In: Ball, T., Rajamani, S.K. (eds.) SPIN 2003. LNCS, vol. 2648, pp. 74–88. Springer, Heidelberg (2003)CrossRefGoogle Scholar
  21. [MAB+94]
    Manna, Z., Anuchitanukul, A., Bjorner, N., Browne, A., Chang, E., Colon, M., De Alfaro, L., Devarajan, H., Sipma, H., Uribe, T.: STeP: The Stanford Temporal Prover. TR STAN-CS-TR-94-1518, Dept. of Computer Science, Stanford University (1994)Google Scholar
  22. [McM92]
    McMillan, K.L.: Using unfolding to avoid the state explosion problem in the verification of asynchronous circuits. In: Probst, D.K., von Bochmann, G. (eds.) CAV 1992. LNCS, vol. 663, pp. 164–174. Springer, Heidelberg (1993)Google Scholar
  23. [MF71]
    Meyer, A.R., Fischer, M.J.: Economy of description by automata, grammars, and formal systems. In: Proc. 12th IEEE Symp. on Switching and Automata Theory, pp. 188–191 (1971)Google Scholar
  24. [MH84]
    Miyano, S., Hayashi, T.: Alternating finite automata on ω-words. Theoretical Computer Science 32, 321–330 (1984)zbMATHCrossRefMathSciNetGoogle Scholar
  25. [MP92]
    Manna, Z., Pnueli, A.: The Temporal Logic of Reactive and Concurrent Systems: Specification. Springer, Berlin (1992)Google Scholar
  26. [MP95]
    Manna, Z., Pnueli, A.: The Temporal Logic of Reactive and Concurrent Systems: Safety. Springer, New York (1995)Google Scholar
  27. [MR97]
    Melzer, S., Roemer, S.: Deadlock checking using net unfoldings. In: Grumberg, O. (ed.) CAV 1997. LNCS, vol. 1254, pp. 364–375. Springer, Heidelberg (1997)Google Scholar
  28. [OSR95]
    Owre, S., Shankar, R.E., Rushby, J.M.: User guide for the PVS specification and verification system. CSL (1995)Google Scholar
  29. [Pnu81]
    Pnueli, A.: The temporal semantics of concurrent programs. Theoretical Computer Science 13, 45–60 (1981)zbMATHCrossRefMathSciNetGoogle Scholar
  30. [SC85]
    Sistla, A.P., Clarke, E.M.: The complexity of propositional linear temporal logic. Journal ACM 32, 733–749 (1985)zbMATHCrossRefMathSciNetGoogle Scholar
  31. [Sis94]
    Sistla, A.P.: Safety, liveness and fairness in temporal logic. Formal Aspects of Computing 6, 495–511 (1994)zbMATHCrossRefGoogle Scholar
  32. [SS78]
    Sakoda, W., Sipser, M.: Non-determinism and the size of two-way automata. In: Proc. 10th STOC, pp. 275–286 (1978)Google Scholar
  33. [Val93]
    Valmari, A.: On-the-fly verification with stubborn sets. In: Courcoubetis, C. (ed.) CAV 1993. LNCS, vol. 697, Springer, Heidelberg (1993)Google Scholar
  34. [VW86]
    Vardi, M.Y., Wolper, P.: An automata-theoretic approach to automatic program verification. In: Proc. 1st LICS, Cambridge, pp. 332–344 (June 1986)Google Scholar
  35. [VW94]
    Vardi, M.Y., Wolper, P.: Reasoning about infinite computations. Information and Computation 115(1), 1–37 (1994)zbMATHCrossRefMathSciNetGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2006

Authors and Affiliations

  • Orna Kupferman
    • 1
  • Robby Lampert
    • 1
  1. 1.School of Engineering and Computer ScienceHebrew UniversityJerusalemIsrael

Personalised recommendations