Making Predicate Abstraction Efficient:

How to Eliminate Redundant Predicates
  • Edmund Clarke
  • Orna Grumberg
  • Muralidhar Talupur
  • Dong Wang
Part of the Lecture Notes in Computer Science book series (LNCS, volume 2725)


In this paper we consider techniques to identify and remove redundant predicates during predicate abstraction. We give three criteria for identifying redundancy. A predicate is redundant if any of the following three holds (i) the predicate is equivalent to a propositional function of other predicates. (ii) removing the predicate preserves safety properties satisfied by the abstract model (iii) removing it preserves bisimulation equivalence. We also show how to efficiently remove the redundant predicates once they are identified. Experimental results are included to demonstrate the effectiveness of our methods.


predicate abstraction redundancy simulation bisimulation safety properties 


  1. 1.
    Ball, T., Majumdar, R., Millstein, T., Rajamani, S.K.: Automatic Predicate Abstraction of C Programs. In: PLDI (2001)Google Scholar
  2. 2.
    Ball, T., Podelski, A., Rajamani, S.K.: Boolean and cartesian abstractions for model checking c programs. In: Margaria, T., Yi, W. (eds.) TACAS 2001. LNCS, vol. 2031, pp. 268–283. Springer, Heidelberg (2001)CrossRefGoogle Scholar
  3. 3.
    Bensalem, S., Lakhnech, Y., Owre, S.: Computing abstractions of infinite state systems compositionally and automatically. In: Y. Vardi, M. (ed.) CAV 1998. LNCS, vol. 1427, pp. 319–331. Springer, Heidelberg (1998)CrossRefGoogle Scholar
  4. 4.
    Bryant, R.E.: Graph-based Algorithms for Boolean Function Manipulation. IEEE Transactions on Computers C-35(8), 677–691 (1986)CrossRefGoogle Scholar
  5. 5.
    Chang, C.-L., Lee, R.C.-T.: Symbolic Logic and Mechanical Theorem Proving. Computer Science and Applied Mathematics Series. Academic Press, New York (1973)zbMATHGoogle Scholar
  6. 6.
    Clarke, E., Grumberg, O., Long, D.: Model checking and abstraction. In: Proc. of the 19th Annual Symposium on Principles of Programming Languages, pp. 343–354 (1992)Google Scholar
  7. 7.
    Clarke, E., Grumberg, O., Jha, S., Lu, Y., Veith, H.: Counterexampleguided Abstraction Refinement. In: Emerson, E.A., Sistla, A.P. (eds.) CAV 2000. LNCS, vol. 1855, Springer, Heidelberg (2000)CrossRefGoogle Scholar
  8. 8.
    Clarke, E., Talupur, M., Wang, D.: SAT based Predicate Abstraction for Hardware Verification. In: Sixth International Conference on Theory and Applications of Satisfiability Testing (2003)Google Scholar
  9. 9.
    Clarke, E.M., Grumberg, O., Peled, D.: Model Checking. MIT Press, Cambridge (1999)Google Scholar
  10. 10.
    Clarke, E.M., Emerson, E.A.: Design and synthesis of synchronization skeletons using branching time temporal logic. In: Kozen, D. (ed.) Logic of Programs 1981. LNCS, vol. 131, pp. 52–71. Springer, Heidelberg (1982)CrossRefGoogle Scholar
  11. 11.
    Colon, M., Uribe, T.E.: Generating finite-state abstractions of reactive systems using decision procedures. In: Computer Aided Verification, pp. 293–304 (1998)Google Scholar
  12. 12.
    Das, S., Dill, D.L., Park, S.: Experience with predicate abstraction. In: Computer Aided Verification, 160–171 (1999)Google Scholar
  13. 13.
    Glusman, M., Kamhi, G., Mador-Haim, S., Fraer, R., Vardi, M.Y.: Multiple-counterexample guided iterative abstraction refinement: An industrial evaluation. In: Garavel, H., Hatcliff, J. (eds.) TACAS 2003. LNCS, vol. 2619, pp. 176–191. Springer, Heidelberg (2003)CrossRefGoogle Scholar
  14. 14.
    Henzinger, T.A., Jhala, R., Majumdar, R., Sutre, G.: Lazy abstraction. In: Proceedings of the 29th Annual Symposium on Principles of Programming Languages, pp. 58–70 (2002)Google Scholar
  15. 15.
    Hu, A.J., Dill, D.L.: Reducing BDD size by exploiting functional dependencies. In: Design Automation Conference, pp. 266–271 (1993)Google Scholar
  16. 16.
    Lachnech, Y., Bensalem, S., Berezin, S., Owre, S.: Incremental verification by abstraction. In: Margaria, T., Yi, W. (eds.) TACAS 2001. LNCS, vol. 2031, pp. 98–112. Springer, Heidelberg (2001)CrossRefGoogle Scholar
  17. 17.
    Loiseaux, C., Graf, S., Sifakis, J., Bouajjani, A., Bensalem, S.: Property preserving abstractions for the verification of concurrent systems. Formal Methods in System Design: An International Journal 6(1), 11–44 (1995)zbMATHCrossRefGoogle Scholar
  18. 18.
    McMillan, K.L., Amla, N.: Automatic abstraction without counterexamples. In: Garavel, H., Hatcliff, J. (eds.) TACAS 2003. LNCS, vol. 2619, pp. 2–17. Springer, Heidelberg (2003)CrossRefGoogle Scholar
  19. 19.
    Namjoshi, K.S., Kurshan, R.P.: Syntactic program transformations for automatic abstraction. In: Emerson, E.A., Sistla, A.P. (eds.) CAV 2000. LNCS, vol. 1855, Springer, Heidelberg (2000)Google Scholar
  20. 20.
    Pasareanu, C., Dwyer, M., Visser, W.: Finding feasible counter-examples when model checking abstracted java programs. In: Margaria, T., Yi, W. (eds.) TACAS 2001. LNCS, vol. 2031, p. 284. Springer, Heidelberg (2001)CrossRefGoogle Scholar
  21. 21.
    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
  22. 22.
    Saidi, H., Shankar, N.: Abstract and model check while you prove. In: Halbwachs, N., Peled, D.A. (eds.) CAV 1999. LNCS, vol. 1633, pp. 443–454. Springer, Heidelberg (1999)CrossRefGoogle Scholar
  23. 23.
    Zhang, L., Madigan, C.F., Moskewicz, M.W., Malik, S.: Efficient conflict driven learning in a Boolean satisfiability solver. In: Proceedings of ICCAD 2001 (November 2001)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2003

Authors and Affiliations

  • Edmund Clarke
    • 1
  • Orna Grumberg
    • 2
  • Muralidhar Talupur
    • 1
  • Dong Wang
    • 1
  1. 1.Carnegie Mellon University 
  2. 2.TECHNION – Israel Institute of Technology 

Personalised recommendations