article

Model checking and abstraction

Abstract

We describe a method for using abstraction to reduce the complexity of temporal-logic model checking. Using techniques similar to those involved in abstract interpretation, we construct an abstract model of a program without ever examining the corresponding unabstracted model. We show how this abstract model can be used to verify properties of the original program. We have implemented a system based on these techniques, and we demonstrate their practicality using a number of examples, including a program representing a pipelined ALU circuit with over 101300 states.

References

  1. BEATTY, D. L., BRYANT, R. E., AND SEGER, C.-J. 1991. Formal hardware verification by symbolic ternary trajectory evaluation. In Proceedings of the 28th Design Automation Conference. IEEE Computer Society Press, Los Alamitos, Calif., 397-402. Google ScholarGoogle Scholar
  2. BENSALEM, S., BOUAJJANI, A., LOISEAUX, C., AND SIFAKIS, g. 1992. Property preserving simulations. In Proceedings of the 4th Workshop on Computer-Aided Verification, G. V. Bochmann and D. K. Probst, Eds. Lecture Notes in Computer Science, vol. 663. Springer-Verlag, New York, 260-273. Google ScholarGoogle Scholar
  3. BROWNE, M. C., CLARKE, E. M., DILL, D. L., AND MISHRA, B. 1986. Automatic verification of sequential circuits using temporal logic. IEEE Trans. Comput. C-35~ 12, 1035-1044. Google ScholarGoogle Scholar
  4. BRYANT. Z. E. 1986. Graph-based algorithms for Boolean function manipulation. IEEE Trans. Comput. C-35, 8, 677-691. Google ScholarGoogle Scholar
  5. BURCH, J. R., CLARKE, E. M., AND LONG, D. E. 1991. Representing circuits more efficiently !in symbolic model checking. In Proceedings of the 28th Design Automation Conference. IEEE Computer Society Press, Los Alamitos, Calif., 403-407. Google ScholarGoogle Scholar
  6. BURCH, J. R., CLARKE, E. M., MCMILLAN, K. L., AND DILL, D. L. 1990. Sequential circuit verification using symbolic model checking. In Proceedings of the 27th Design Automation Conference. IEEE Computer Society Press, Los Alamitos, Calif., 46-51. Google ScholarGoogle Scholar
  7. CLARKE. E. M., AND EMERSON, E. A. 1981. Synthesis of synchronization skeletons for branching time temporal logic. In Logic of Programs: Workshop, Yorktown Heights, NY, May 1981. Lecture Notes in Computer Science, vol. 131. Springer-Verlag, New York. Google ScholarGoogle Scholar
  8. CLARKE. E. M., AND I~MURA, S. 1990. A parallel algorithm for constructing binary decision diagrams. In Proceedings of the 1990 IEEE International Conference on Computer Design. IEEE Computer Society Press, Los Alamitos, Calif., 220-223.Google ScholarGoogle Scholar
  9. CLARKE,. E. M., EMERSON, E. A., AND SISTLA, A. P. 1986. Automatic verification of finite-state concurrent systems using temporal logic specifications. ACM Trans. Program. Lang. Syst. 8, 2 (April), 244-263. Google ScholarGoogle Scholar
  10. CLARKE:, E. M., EMERSON, E. A., AND SISTLA, A. P. 1983. Automatic verification of finite-state concurrent systems using temporal logic specifications. In Proceedings of the lOth Annual ACM Symposium on Principles of Programming Languages (Austin, Tx. Jan.). ACM, New York, 117-126. Google ScholarGoogle Scholar
  11. CLARKE. E. M., LONG, D. E., AND MCMILLAN, K. L. 1989. Compositional model checking. }in Proceedings of the 4th Annual Symposium on Logic in Computer Science. IEEE Computer Society Press, Los Alamitos, Calif., 46-51. Google ScholarGoogle Scholar
  12. CLEAVELAND, R. 1990. Tableau-based model checking in the propositional mucalculus. Acta Inf. 27, 8 (Sept.), 725-747. Google ScholarGoogle Scholar
  13. COUDER% O., AND MADRE, J. C. 1990. A unified framework for the formal verification of sequential circuits. In Proceedings of the 1990 International Conference on Computer-Aided Design. IEEE Computer Society Press, Los Alamitos, Calif., 126-129.Google ScholarGoogle Scholar
  14. COUSOT, P., AND COUSOT, R. 1979. Systematic design of program analysis frameworks. In Proceedings of the 6th Annual ACM Symposium on Principles of Programming Languages (San Antonio, Tx. Jan.). ACM, New York, 269-282. Google ScholarGoogle Scholar
  15. COUSOT., P., AND COUSOT, R. 1977. Abstract interpretation: A unified lattice model for static analysi~ of programs by construction or approximation of fixpoints. In Proceedings of the 4~h Annual ACM Symposium on Principles of Programming Languages (Los Angeles, Calif. Jan.). ACM, New York, 238-252. Google ScholarGoogle Scholar
  16. DILL, D. L. 1989. Trace Theory for Automatic Hierarchical Verification of Speed-Independent Circuits. ACM Distinguished Dissertations, MIT Press, Cambridge, Mass. Google ScholarGoogle Scholar
  17. FLOYD, R. W. 1967. Assigning meanings to programs. In Proceedings of the Symposium on Applied Mathematics 19 (Mathematical Aspects of Computer Science), J. T. Schwartz, Ed. American Mathematical Society, Providence, R.I.Google ScholarGoogle Scholar
  18. FUJITA, M., FUJISAWA, H., AND KAWATO, N. 1988. Evaluation and improvements of Boolean comparison method based on binary decision diagrams. In Proceedings of the 1988 Internationail Conference on Computer-Aided Design (Santa Clara, Calif. Nov.). IEEE Computer Society Press, Los Alamitos, Calif., 2-5.Google ScholarGoogle Scholar
  19. GRAF, S., AND STEFFEN, }~. 1990. Compositional minimization of finite state processes. In Proceedings of the 1990 Workshop on Computer-Aided Verification (New Brunswick, N.J. June), R. P. Kurshan and E. M. Clarke, Eds. Springer-Verlag, New York, 186-196. Google ScholarGoogle Scholar
  20. GRUMBERG, O., AND LONG, D. E. 1991. Model checking and modular verification. In Proceedings of CONCUR 91: 2nd International Conference on Concurrency Theory, J. C. M. Baeten and J. F. Groote, Eds. Lecture Notes in Computer Science, vol. 527. Springer-Verlag, New York, 250-265. Google ScholarGoogle Scholar
  21. GUNTER, C. A., AND SCOTT, D. S. 1990. Semantic domains. In Handbook of Theoretical Computer Science. Vol. B. J. van Leeuwen, Ed. Elsevier, New York, 633-674. Google ScholarGoogle Scholar
  22. HAR'EL, Z.,ANDKURSHAN, R.P. 1987. The COSPAN user's guide. Tech. Rep. 11211-871009-21TM, AT&T Bell Laboratories, Murray Hill, N.J.Google ScholarGoogle Scholar
  23. JOSKO, B. 1989. Verifying the correctness of AADL-modules using model checking. In Proceedings of the REX Workshop on Stepwise Refinement of Distributed Systems, Models, Formalisms, Correctness, J. W. de Bakker, W.-P. de Roever, and G. Rozenberg, Eds. Lecture Notes in Computer Science, vol. 430. Springer-Vertag, New York, 386-400. Google ScholarGoogle Scholar
  24. KURSHAN, R. P. 1989. Analysis of discrete event coordination. In Proceedings of the REX Workshop on Stepwise Refinement of Distributed Systems, Models, Formalisms, Correctness, J. W. de Bakker, W.-P. de Roever, and G. Rozenberg, Eds. Lecture Notes in Computer Science, vol. 430. Springer-Verlag, New York, 414-453. Google ScholarGoogle Scholar
  25. LICHTENSTEIN, O., AND PNUELI, A. 1985. Checking that finite state concurrent programs satisfy their linear specification. In Proceedings of the 12th Annual ACM Symposium on Principles of Programming Languages (New Orleans, LA. Jan.). ACM, New York, 97-107. Google ScholarGoogle Scholar
  26. LONG, D. E. 1993. Model checking, abstraction, and compositional verification. Ph.D. thesis, School of Computer Science, Carnegie Mellon Univ., Pittsburgh, Pa. Google ScholarGoogle Scholar
  27. MYCROFT, A. 1981. Abstract interpretation and optimizing transformations for applicative programs. Ph.D. thesis, Dept. of Computer Science, Univ. of Edinburgh, Scotland.Google ScholarGoogle Scholar
  28. NIELSON, F. 1982. A denotationat framework for data flow analysis. Acta Inf. 18, 3 (Dec.), 265-287.Google ScholarGoogle Scholar
  29. QUIELLE, J., AND SIFAKI{S, J. 1981. Specification and verification of concurrent systems in CESAR. In Proceedings of the 5th International Symposium in Programming.Google ScholarGoogle Scholar
  30. SHUREK, G., AND GRUMBERG, O. 1990. The modular framework of computer-aided verification: Motivation, solutions and evaluation criteria. In Proceedings of the 1990 Workshop on Computer-Aided Verification (New Brunswick, N.J. June), R. P. Kurshan and E. M. Clarke, Eds., Springer-Verlag, New York, 214-223. Google ScholarGoogle Scholar
  31. SISTLA, A. P., AND CLARKE, E. 1986. Complexity of Propositional temporal logics. J. ACM 32, 3 (July), 733-749. Google ScholarGoogle Scholar
  32. TOUATt, H., SAVOJ, H., LIN, B., BRAYTON, R. K., AND SANGIOVANNI-VINCENTELLI, A. 1990. Implicit state enumeration of finite state machines using BDD's. In Proceedings of the 1990 International Conference on Computer-Aided Design. IEEE Computer Society Press, Los Alamitos, Calif., 130-133.Google ScholarGoogle Scholar
  33. WOLPER, P. 1986. Expressing interesting properties of programs in propositional temporal logic. In Proceedings of the 13th Annual ACM Symposium on Principles of Programming Languages (St. Petersburg Beach, FL. Jan.). ACM, New York. Google ScholarGoogle Scholar

Index Terms

  1. Model checking and abstraction

          Comments

          Login options

          Check if you have access through your login credentials or your institution to get full access on this article.

          Sign in

          Full Access

          PDF Format

          View or Download as a PDF file.

          PDF

          eReader

          View online with eReader.

          eReader
          About Cookies On This Site

          We use cookies to ensure that we give you the best experience on our website.

          Learn more

          Got it!