Counterexample-Guided Abstraction Refinement

Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1855)


We present an automatic iterative abstraction-refinement methodology in which the initial abstract model is generated by an automatic analysis of the control structures in the program to be verified. Abstract models may admit erroneous (or “spurious”) counterexamples. We devise new symbolic techniques which analyze such counterexamples and refine the abstract model correspondingly. The refinement algorithm keeps the size of the abstract state space small due to the use of abstraction functions which distinguish many degrees of abstraction for each program variable. We describe an implementation of our methodology in NuSMV. Practical experiments including a large Fujitsu IP core design with about 500 latches and 10000 lines of SMV code confirm the effectiveness of our approach.


Model Check Abstract Model Atomic Formula Kripke Structure Localization Reduction 
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.
    Fujitsu aims media processor at DVD. MicroProcessor Report, pp. 11–13 (1996)Google Scholar
  2. 2.
    Balarin, F., Sangiovanni-Vincentelli, A.L.: An iterative approach to language containment. In: Courcoubetis, C. (ed.) CAV 1993. LNCS, vol. 697, pp. 29–40. Springer, Heidelberg (1993)Google Scholar
  3. 3.
    Biere, A., Cimatti, A., Clarke, E., Fujita, M., Zhu, Y.: Symbolic model checking using SAT procedures instead of BDDs. In: Design Automation Conference, pp. 317–320 (1999)Google Scholar
  4. 4.
    Buccafurri, F., Eiter, T., Gottlob, G., Leone, N.: On ACTL formulas having deterministic counterexamples. Technical report, Vienna University of Technology (1999), available at
  5. 5.
    Chauhan, P., Clarke, E., Lu, Y., Wang, D.: Verifying IP-core based System-On-Chip design. In: IEEE ASIC (September 1999)Google Scholar
  6. 6.
    Cimatti, A., Clarke, E., Giunchiglia, F., Roveri, M.: NuSMV: a new symbolic model checker. Software Tools for Technology Transfer (1998)Google Scholar
  7. 7.
    Clarke, E., Grumberg, O., Jha, S., Lu, Y., Veith, H.: Counterexample-guided abstraction refinement. Technical Report CMU-CS-00-103, Computer Science, Carnegie Mellon University (2000)Google Scholar
  8. 8.
    Clarke, E., Grumberg, O., Peled, D.: Model Checking. MIT Publishers, Cambridge (1999)Google Scholar
  9. 9.
    Clarke, E., Jha, S., Lu, Y., Wang, D.: Abstract BDDs: a technique for using abstraction in model checking. In: Pierre, L., Kropf, T. (eds.) CHARME 1999. LNCS, vol. 1703, pp. 172–187. Springer, Heidelberg (1999)CrossRefGoogle Scholar
  10. 10.
    Clarke, E.M., Grumberg, O., Long, D.E.: Model checking and abstraction. ACM Transactions on Programming Languages and System (TOPLAS) 16(5), 1512–1542 (1994)CrossRefGoogle Scholar
  11. 11.
    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
  12. 12.
    Govindaraju, S.G., Dill, D.L.: Verification by approximate forward and backward reachability. In: Proceedings of International Conference on Computer-Aided Design (November 1998)Google 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
  14. 14.
    Kurshan, R.P.: Computer-AidedVerification of Coordinating Processes. Princeton University Press, Princeton (1994)Google Scholar
  15. 15.
    Lakhnech, Y.: personal communication (2000)Google Scholar
  16. 16.
    Lee, W., Pardo, A., Jang, J., Hachtel, G., Somenzi, F.: Tearing based abstraction for CTL model checking. In: Proceedings of the International Conference on Computer-Aided Design, November 1996, pp. 76–81 (1996)Google Scholar
  17. 17.
    Lind-Nielsen, J., Andersen, H.R.: Stepwise CTL model checking of state/event systems. In: Halbwachs, N., Peled, D.A. (eds.) CAV 1999. LNCS, vol. 1633, pp. 316–327. Springer, Heidelberg (1999)CrossRefGoogle Scholar
  18. 18.
    Pardo, A.: Automatic Abstraction Techniques for FormalVerification of Digital Systems. PhD thesis, University of Colorado at Boulder, Dept. of Computer Science (August 1997)Google Scholar
  19. 19.
    Pardo, A., Hachtel, G.D.: Incremental CTL model checking using BDD subsetting. In: Design Automation Conference, pp. 457–462 (1998)Google Scholar
  20. 20.
    Saidi, H., Shankar, N.: Abstract and model checking while you prove. In: Halbwachs, N., Peled, D.A. (eds.) CAV 1999. LNCS, vol. 1633, pp. 443–454. Springer, Heidelberg (1999)CrossRefGoogle Scholar
  21. 21.
    Somenzi, F.: CUDD: CUdecision diagram package. Technical report, University of Colorado at Boulder (1997)Google Scholar
  22. 22.
    Takayama, K., Satoh, T., Nakata, T., Hirose, F.: An approach to verify a large scale systemn- chip using symbolic model checking. In: International Conference of Computer Design, pp. 308–313 (1998)Google Scholar
  23. 23.
    Yang, B., et al.: A performance study of BDD-based model checking. In: Gopalakrishnan, G.C., Windley, P. (eds.) FMCAD 1998. LNCS, vol. 1522, pp. 255–289. Springer, Heidelberg (1998)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2000

Authors and Affiliations

  1. 1.Carnegie Mellon UniversityPittsburghUSA
  2. 2.TechnionHaifaIsrael
  3. 3.Vienna University of TechnologyAustria

Personalised recommendations