LTL Model Checking for Recursive Programs

  • Geng-Dian Huang
  • Lin-Zan Cai
  • Farn Wang
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 5799)


We propose a complete algorithm to model check LTL (Linear Temporal Logic) formulas with recursive programs. Our program models are control flow graphs extended with procedure calls. The LTL formulas may then be used to specify constraints on the global variables and the local variables in the current scope. Our algorithm is based on semi-symbolic simulation of control-flow graphs to search for counter-examples. We apply post-dominance relation to reduce the number of the exploration traces. The existence of counter-examples is reduced to Boolean satisfiability while the termination of the exploration is reduced to Boolean unsatisfiability. We report our implementation and experiment.


Model Check Transition Relation Tree Node Linear Temporal Logic Atomic Proposition 
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. 1.
    Burch, J.R., Clarke, E.M., McMillan, K.L., Dill, D.L., Hwang, L.J.: Symbolic Model Checking: 1020 States and Beyond. IEEE LICS (1990)Google Scholar
  2. 2.
    Basler, G., Kroening, D., Weissenbacher, G.: SAT-based Summarization for Boolean Programs. In: Bošnački, D., Edelkamp, S. (eds.) SPIN 2007. LNCS, vol. 4595, pp. 131–148. Springer, Heidelberg (2007)CrossRefGoogle Scholar
  3. 3.
    Basler, G., Kroening, D., Weissenbacher, G.: A Complete Bounded Model Checking Algorithm for Pushdown Systems. In: Yorav, K. (ed.) HVC 2007. LNCS, vol. 4899, pp. 202–217. Springer, Heidelberg (2008)CrossRefGoogle Scholar
  4. 4.
    Ball, T., Rajamani, S.: Bebop: A symbolic model checker for boolean programs. In: Havelund, K., Penix, J., Visser, W. (eds.) SPIN 2000. LNCS, vol. 1885. Springer, Heidelberg (2000)CrossRefGoogle Scholar
  5. 5.
    Biere, A., Cimatti, A., Clarke, E.M., Fujita, M., Zhu, Y.: Symbolic model checking using SAT procedures instead of BDDs. In: DAC, pp. 317–320. ACM Press, New York (1999)Google Scholar
  6. 6.
    Esparza, J., Hansel, D., Rossmanith, P., Schwoon, S.: Efficient algorithms for model checking pushdown systems. In: Emerson, E.A., Sistla, A.P. (eds.) CAV 2000. LNCS, vol. 1855, pp. 232–247. Springer, Heidelberg (2000)CrossRefGoogle Scholar
  7. 7.
    Esparza, J., Schwoon, S.: A BDD-based model checker for recursive programs. In: Berry, G., Comon, H., Finkel, A. (eds.) CAV 2001. LNCS, vol. 2102, pp. 324–336. Springer, Heidelberg (2001)Google Scholar
  8. 8.
    Ivancic, F., Yang, Z., Ganai, M., Gupta, A., Shlyakhter, I., Ashar, P.: F-Soft: Software Verification Platform. In: Etessami, K., Rajamani, S.K. (eds.) CAV 2005. LNCS, vol. 3576, pp. 301–306. Springer, Heidelberg (2005)Google Scholar
  9. 9.
    Gupta, R.: Generalized Dominators and Post-dominators. In: ACM Symp. on Principles of Programming Languages, pp. 246–257 (1992)Google Scholar
  10. 10.
    Gastin, P., Oddoux, D.: Fast LTL to Bchi Automata Translation. In: Berry, G., Comon, H., Finkel, A. (eds.) CAV 2001. LNCS, vol. 2102, pp. 53–65. Springer, Heidelberg (2001)Google Scholar
  11. 11.
    Huang, G.D., Wang, B.Y.: Complete SAT-based Model Checking for Context-Free Processes. In: Namjoshi, K.S., Yoneda, T., Higashino, T., Okamura, Y. (eds.) ATVA 2007. LNCS, vol. 4762, pp. 51–65. Springer, Heidelberg (2007)CrossRefGoogle Scholar
  12. 12.
    Hungar, H., Steffen, B.: Local model checking for context-free processes. Nordic Journal of Computing 1(3), 364–385 (1994)MathSciNetMATHGoogle Scholar
  13. 13.
    Reps, T., Horwitz, S., Sagiv, M.: Precise interprocedural dataflow analysis via graph reachability. In: Proc. of the ACM Symposium on Principles of Programming Languages (POPL 1995), pp. 49–61 (1995)Google Scholar
  14. 14.
    Rustan, K., Leino, M.: A SAT characterization of boolean-program correctness. In: Ball, T., Rajamani, S.K. (eds.) SPIN 2003. LNCS, vol. 2648, pp. 104–120. Springer, Heidelberg (2003)CrossRefGoogle Scholar
  15. 15.
    Vardi, M.Y.: Automata-Theoretic Model Checking Revisited. In: Cook, B., Podelski, A. (eds.) VMCAI 2007. LNCS, vol. 4349, pp. 137–150. Springer, Heidelberg (2007)CrossRefGoogle Scholar
  16. 16.
    Wang, B.Y.: Proving ∀ μ-calculus properties with SAT-based model checking. In: Wang, F. (ed.) FORTE 2005. LNCS, vol. 3731, pp. 113–127. Springer, Heidelberg (2005)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2009

Authors and Affiliations

  • Geng-Dian Huang
    • 1
  • Lin-Zan Cai
    • 1
  • Farn Wang
    • 1
    • 2
  1. 1.Dept. of Electrical EngineeringNational Taiwan University 
  2. 2.Grad. Inst. of Electronic EngineeringNational Taiwan University 

Personalised recommendations