Predicate Abstraction with Minimum Predicates

  • Sagar Chaki
  • Edmund Clarke
  • Alex Groce
  • Ofer Strichman
Part of the Lecture Notes in Computer Science book series (LNCS, volume 2860)


Predicate abstraction is a popular abstraction technique employed in formal software verification. A crucial requirement to make predicate abstraction effective is to use as few predicates as possible, since the abstraction process is in the worst case exponential (in both time and memory requirements) in the number of predicates involved. If a property can be proven to hold or not hold based on a given finite set of predicates \(\mathcal{P}\), the procedure we propose in this paper finds automatically a minimal subset of \(\mathcal{P}\) that is sufficient for the proof. We explain how our technique can be used for more efficient verification of C programs. Our experiments show that predicate minimization can result in a significant reduction of both verification time and memory usage compared to earlier methods.


Model Check Assignment Statement Safety Property Satisfying Assignment Predicate Abstraction 
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.


  1. 1.
    Aloul, F., Ramani, A., Markov, I., Sakallah, K.: PBS: A backtrack search pseudo Boolean solver. In: Symposium on the theory and applications os satisfiability testing (SAT), pp. 346–353 (2002)Google Scholar
  2. 2.
    Ball, T., Rajamani, S.: Automatically validating temporal safety properties of interfaces. In: Dwyer, M.B. (ed.) SPIN 2001. LNCS, vol. 2057, p. 103. Springer, Heidelberg (2001)CrossRefGoogle Scholar
  3. 3.
    Ball, T., Rajamani, S.K.: Generating abstract explanations of spurious counterexamples in C programs. Technical Report MSR-TR-2002-09, Microsoft Research, Redmond (January 2002)Google Scholar
  4. 4.
    Chaki, S., Clarke, E., Groce, A., Jha, S., Veith, H.: Modular verification of software components in C. In: International Conference on Software Engineering, ICSE (2003) (to appear)Google Scholar
  5. 5.
    Clarke, E., Grumberg, O., Talupur, M., Wang, D.: Making predicate abstraction efficient: eliminating redundant predicates. In: Hunt Jr., W.A., Somenzi, F. (eds.) CAV 2003. LNCS, vol. 2725, pp. 126–140. Springer, Heidelberg (2003)CrossRefGoogle Scholar
  6. 6.
    Clarke, E., Gupta, A., Kukula, J., Strichman, O.: SAT based abstraction – refinement using ILP and machine learning techniques. In: Brinksma, E., Larsen, K.G. (eds.) CAV 2002. LNCS, vol. 2404, p. 265. Springer, Heidelberg (2002)CrossRefGoogle Scholar
  7. 7.
    Dams, D., Namjoshi, K.S.: Shape analysis through predicate abstraction and model checking. In: Zuck, L.D., Attie, P.C., Cortesi, A., Mukhopadhyay, S. (eds.) VMCAI 2003. LNCS, vol. 2575, pp. 310–323. Springer, Heidelberg (2002)CrossRefGoogle Scholar
  8. 8.
    Das, S., Dill, D.L., Park, S.: Experience with predicate abstraction. In: Halbwachs, N., Peled, D.A. (eds.) CAV 1999. LNCS, vol. 1633, pp. 160–171. Springer, Heidelberg (1999)CrossRefGoogle Scholar
  9. 9.
    Henzinger, T.A., Jhala, R., Majumdar, R., Sutre, G.: Lazy abstraction. In: Symposium on Principles of Programming Languages, pp. 58–70 (2002)Google Scholar
  10. 10.
    Kurshan, R.P.: Computer-Aided Verification of Coordinating Processes: The Automata-Theoretic Approach. Princeton University Press, Princeton (1995)zbMATHGoogle Scholar
  11. 11.
    Nelson, G.: Techniques for Program Verification. PhD thesis, Stanford (1980)Google Scholar
  12. 12.
    Rusu, V., Singerman, E.: On proving safety properties by integrating static analysis, theorem proving and abstraction. In: Cleaveland, W.R. (ed.) TACAS 1999. LNCS, vol. 1579, pp. 178–192. Springer, Heidelberg (1999)CrossRefGoogle Scholar
  13. 13.
    Graf, S., Saidi, H.: Construction of abstract state graphs with PVS. In: Grumberg, O. (ed.) CAV 1997. LNCS, vol. 1254, pp. 72–83. Springer, Heidelberg (1997)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2003

Authors and Affiliations

  • Sagar Chaki
    • 1
  • Edmund Clarke
    • 1
  • Alex Groce
    • 1
  • Ofer Strichman
    • 1
  1. 1.Computer Science DepartmentCarnegie Mellon UniversityPittsburgh

Personalised recommendations