Skip to main content

Advertisement

SpringerLink
Book cover

International Conference on Tools and Algorithms for the Construction and Analysis of Systems

TACAS 2020: Tools and Algorithms for the Construction and Analysis of Systems pp 413–422Cite as

AVR: Abstractly Verifying Reachability

AVR: Abstractly Verifying Reachability

  • Aman Goel  ORCID: orcid.org/0000-0003-0520-889010 &
  • Karem Sakallah10 
  • Conference paper
  • Open Access
  • First Online: 17 April 2020
  • 6433 Accesses

  • 6 Citations

Part of the Lecture Notes in Computer Science book series (LNTCS,volume 12078)

Abstract

We present AVR, a push-button model checker for verifying state transition systems directly at the source-code level. AVR uses information embedded in the word-level syntax of the design representation to automatically perform scalable model checking by combining a novel syntax-guided abstraction-refinement technique with a word-level implementation of the IC3 algorithm. AVR provides independently-verifiable certificates that offer provable assurance and are easy to relate to the word-level system. Moreover, proof certificates can be further used in innovative ways to extract key design information and are useful in a growing number of applications.

Download conference paper PDF

References

  1. Apache HTTP server project. https://httpd.apache.org

  2. AVR (github). https://github.com/aman-goel/avr

  3. Btor2Tools. https://github.com/Boolector/btor2tools

  4. BtorSIM. https://github.com/Boolector/btor2tools/tree/master/src/btorsim

  5. Experiments. https://github.com/aman-goel/tacas20ae

  6. National Vulnerability Database - CVE-2004-0940. https://nvd.nist.gov/vuln/detail/CVE-2004-0940

  7. National Vulnerability Database - CVE-2006-3747. https://nvd.nist.gov/vuln/detail/CVE-2006-3747

  8. Verification Modulo Theories. http://www.vmt-lib.org

  9. Ieee standard for systemverilog-unified hardware design, specification, and verification language. IEEE Std 1800-2017 (Revision of IEEE Std 1800-2012) pp. 1–1315 (Feb 2018). https://doi.org/10.1109/IEEESTD.2018.8299595

  10. Andraus, Z.S., Sakallah, K.A.: Automatic abstraction and verification of verilog models. In: Proceedings. 41st Design Automation Conference, 2004. pp. 218–223 (July 2004). https://doi.org/10.1145/996566.996629

  11. Babić, D., Hu, A.J.: Structural abstraction of software verification conditions. In: Damm, W., Hermanns, H. (eds.) Computer Aided Verification. pp. 366–378. Springer Berlin Heidelberg, Berlin, Heidelberg (2007)

    Google Scholar 

  12. Barrett, C., Deters, M., de Moura, L., Oliveras, A., Stump, A.: 6 years of SMT-COMP. Journal of Automated Reasoning 50(3), 243–277 (Apr 2012). https://doi.org/10.1007/s10817-012-9246-5

  13. Barrett, C., Fontaine, P., Tinelli, C.: The Satisfiability Modulo Theories Library (SMT-LIB). www.SMT-LIB.org (2016)

  14. Berkeley Logic Synthesis and Verification Group: ABC: A system for sequential synthesis and verification. http://www.eecs.berkeley.edu/~alanmi/abc/ (2017)

  15. Biere, A., Cimatti, A., Clarke, E., Zhu, Y.: Symbolic model checking without bdds. In: Cleaveland, W.R. (ed.) Tools and Algorithms for the Construction and Analysis of Systems. pp. 193–207. Springer Berlin Heidelberg, Berlin, Heidelberg (1999)

    Google Scholar 

  16. Biere, A., van Dijk, T., Heljanko, K.: Hardware model checking competition 2017. In: 2017 Formal Methods in Computer Aided Design (FMCAD). pp. 9–9. IEEE (2017)

    Google Scholar 

  17. Biere, A., Preiner, M.: Hardware model checking competition (HWMCC) 2019. http://fmv.jku.at/hwmcc19

  18. Birgmeier, J., Bradley, A.R., Weissenbacher, G.: Counterexample to induction-guided abstraction-refinement (ctigar). In: Biere, A., Bloem, R. (eds.) Computer Aided Verification. pp. 831–848. Springer International Publishing, Cham (2014)

    Google Scholar 

  19. Bradley, A.R.: Sat-based model checking without unrolling. In: Jhala, R., Schmidt, D. (eds.) Verification, Model Checking, and Abstract Interpretation. pp. 70–87. Springer Berlin Heidelberg, Berlin, Heidelberg (2011)

    Google Scholar 

  20. Burch, J.R., Dill, D.L.: Automatic verification of pipelined microprocessor control. In: Dill, D.L. (ed.) Computer Aided Verification. pp. 68–80. Springer Berlin Heidelberg, Berlin, Heidelberg (1994)

    Google Scholar 

  21. Cabodi, G., Loiacono, C., Palena, M., Pasini, P., Patti, D., Quer, S., Vendraminetto, D., Biere, A., Heljanko, K.: Hardware model checking competition 2014: An analysis and comparison of model checkers and benchmarks. Journal on Satisfiability, Boolean Modeling and Computation 9(1), 135172 (Jan 2016). https://doi.org/10.3233/SAT190106

  22. Cimatti, A., Griggio, A., Mover, S., Tonetta, S.: Ic3 modulo theories via implicit predicate abstraction. In: Ábrahám, E., Havelund, K. (eds.) Tools and Algorithms for the Construction and Analysis of Systems. pp. 46–61. Springer Berlin Heidelberg, Berlin, Heidelberg (2014)

    Google Scholar 

  23. Cimatti, A., Griggio, A., Mover, S., Tonetta, S.: Infinite-state invariant checking with IC3 and predicate abstraction. Formal Methods in System Design 49(3), 190–218 (Sep 2016). https://doi.org/10.1007/s10703-016-0257-4

  24. Cimatti, A., Griggio, A., Schaafsma, B.J., Sebastiani, R.: The mathsat5 smt solver. In: International Conference on Tools and Algorithms for the Construction and Analysis of Systems. pp. 93–107. Springer (2013)

    Google Scholar 

  25. Clarke, E., Grumberg, O., Jha, S., Lu, Y., Veith, H.: Counterexample-guided abstraction refinement. In: Emerson, E.A., Sistla, A.P. (eds.) Computer Aided Verification. pp. 154–169. Springer Berlin Heidelberg, Berlin, Heidelberg (2000)

    Google Scholar 

  26. Clarke, E., Grumberg, O., Jha, S., Lu, Y., Veith, H.: Progress on the state explosion problem in model checking. In: Informatics. pp. 176–194. Springer (2001)

    Google Scholar 

  27. Clarke, E.M., Emerson, E.A., Sifakis, J.: Model checking: algorithmic verification and debugging. Communications of the ACM 52(11), 74–84 (2009)

    Google Scholar 

  28. Clarke Jr, E.M., Grumberg, O., Kroening, D., Peled, D., Veith, H.: Model checking. MIT press (2018)

    Google Scholar 

  29. Dureja, R., Rozier, K.Y.: Fuseic3: An algorithm for checking large design spaces. In: 2017 Formal Methods in Computer Aided Design (FMCAD). pp. 164–171 (Oct 2017). https://doi.org/10.23919/FMCAD.2017.8102255

  30. Dutertre, B.: Yices 2.2. In: Biere, A., Bloem, R. (eds.) Computer Aided Verification. pp. 737–744. Springer International Publishing, Cham (2014)

    Google Scholar 

  31. Een, N., Mishchenko, A., Brayton, R.: Efficient implementation of property directed reachability. In: 2011 Formal Methods in Computer-Aided Design (FMCAD). pp. 125–134. IEEE (2011)

    Google Scholar 

  32. Ghassabani, E., Gacek, A., Whalen, M.W.: Efficient generation of inductive validity cores for safety properties. In: Proceedings of the 2016 24th ACM SIGSOFT International Symposium on Foundations of Software Engineering. pp. 314–325 (2016)

    Google Scholar 

  33. Goel, A., Sakallah, K.: Empirical evaluation of ic3-based model checking techniques on verilog rtl designs. In: 2019 Design, Automation Test in Europe Conference Exhibition (DATE). pp. 618–621 (March 2019). https://doi.org/10.23919/DATE.2019.8715289

  34. Goel, A., Sakallah, K.: Model checking of verilog rtl using ic3 with syntax-guided abstraction. In: Badger, J.M., Rozier, K.Y. (eds.) NASA Formal Methods. pp. 166–185. Springer International Publishing, Cham (2019)

    Google Scholar 

  35. Goel, A., Sakallah, K.: AVR: Abstractly Verifying Reachability (Feb 2020). https://doi.org/10.5281/zenodo.3677545

  36. Goldberg, E., Gdemann, M., Kroening, D., Mukherjee, R.: Efficient verification of multi-property designs (the benefit of wrong assumptions). In: 2018 Design, Automation Test in Europe Conference Exhibition (DATE). pp. 43–48 (March 2018). https://doi.org/10.23919/DATE.2018.8341977

  37. Henzinger, T.A., Qadeer, S., Rajamani, S.K.: You assume, we guarantee: Methodology and case studies. In: Hu, A.J., Vardi, M.Y. (eds.) Computer Aided Verification. pp. 440–451. Springer Berlin Heidelberg, Berlin, Heidelberg (1998)

    Google Scholar 

  38. Jefferson, C., Miguel, A., Miguel, I., Tarim, S.A.: Modelling and solving english peg solitaire. Computers & Operations Research 33(10), 2935–2959 (Oct 2006). https://doi.org/10.1016/j.cor.2005.01.018

  39. Kotovsky, K., Hayes, J., Simon, H.: Why are some problems hard? evidence from tower of hanoi. Cognitive Psychology 17(2), 248–294 (Apr 1985). https://doi.org/10.1016/0010-0285(85)90009-x

  40. Ku, K., Hart, T.E., Chechik, M., Lie, D.: A buffer overflow benchmark for software model checkers. In: Proceedings of the Twenty-Second IEEE/ACM International Conference on Automated Software Engineering. p. 389–392. ASE07, Association for Computing Machinery, New York, NY, USA (2007). https://doi.org/10.1145/1321631.1321691

  41. Lee, S., Sakallah, K.A.: Unbounded scalable verification based on approximate property-directed reachability and datapath abstraction. In: Biere, A., Bloem, R. (eds.) Computer Aided Verification. pp. 849–865. Springer International Publishing, Cham (2014)

    Google Scholar 

  42. Liffiton, M.H., Sakallah, K.A.: Algorithms for computing minimal unsatisfiable subsets of constraints. Journal of Automated Reasoning 40(1), 1–33 (Sep 2007). https://doi.org/10.1007/s10817-007-9084-z

  43. Lowe, G.: An attack on the needham-schroeder public-key authentication protocol. Information Processing Letters 56(3), 131 – 133 (1995). https://doi.org/10.1016/0020-0190(95)00144-2

  44. Ma, H., Goel, A., Jeannin, J.B., Kapritsos, M., Kasikci, B., Sakallah, K.A.: I4: Incremental inference of inductive invariants for verification of distributed protocols. In: Proceedings of the 27th ACM Symposium on Operating Systems Principles. p. 370–384. SOSP 19, Association for Computing Machinery, New York, NY, USA (2019). https://doi.org/10.1145/3341301.3359651

  45. Ma, H., Goel, A., Jeannin, J.B., Kapritsos, M., Kasikci, B., Sakallah, K.A.: Towards automatic inference of inductive invariants. In: Proceedings of the Workshop on Hot Topics in Operating Systems. p. 30–36. HotOS 19, Association for Computing Machinery, New York, NY, USA (2019). https://doi.org/10.1145/3317550.3321451

  46. McMillan, K.L.: Applications of craig interpolants in model checking. In: Halbwachs, N., Zuck, L.D. (eds.) Tools and Algorithms for the Construction and Analysis of Systems. pp. 1–12. Springer Berlin Heidelberg, Berlin, Heidelberg (2005)

    Google Scholar 

  47. Mishchenko, A., Case, M., Brayton, R., Jang, S.: Scalable and scalably-verifiable sequential synthesis. In: 2008 IEEE/ACM International Conference on Computer-Aided Design. pp. 234–241. IEEE (2008)

    Google Scholar 

  48. de Moura, L., Bjørner, N.: Z3: An efficient smt solver. In: Ramakrishnan, C.R., Rehof, J. (eds.) Tools and Algorithms for the Construction and Analysis of Systems. pp. 337–340. Springer Berlin Heidelberg, Berlin, Heidelberg (2008)

    Google Scholar 

  49. Needham, R.M., Schroeder, M.D.: Using encryption for authentication in large networks of computers. Commun. ACM 21(12), 993999 (Dec 1978). https://doi.org/10.1145/359657.359659

  50. Niemetz, A., Preiner, M., Biere, A.: Boolector 2.0. Journal on Satisfiability, Boolean Modeling and Computation 9(1), 53–58 (Jun 2015). https://doi.org/10.3233/SAT190101

  51. Niemetz, A., Preiner, M., Wolf, C., Biere, A.: Btor2, btormc and boolector 3.0. In: Chockler, H., Weissenbacher, G. (eds.) Computer Aided Verification. pp. 587–595. Springer International Publishing, Cham (2018)

    Google Scholar 

  52. Pelánek, R.: Beem: Benchmarks for explicit model checkers. In: Bošnački, D., Edelkamp, S. (eds.) Model Checking Software. pp. 263–267. Springer Berlin Heidelberg, Berlin, Heidelberg (2007)

    Google Scholar 

  53. Swamy, N., Hriţcu, C., Keller, C., Rastogi, A., Delignat-Lavaud, A., Forest, S., Bhargavan, K., Fournet, C., Strub, P.Y., Kohlweiss, M., et al.: Dependent types and multi-monadic effects in f. In: Proceedings of the 43rd Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages. pp. 256–270 (2016)

    Google Scholar 

  54. Weber, T., Conchon, S., Dharbe, D., Heizmann, M., Niemetz, A., Reger, G.: The smt competition 2015–2018. Journal on Satisfiability, Boolean Modeling and Computation 11(1), 221–259 (Sep 2019). https://doi.org/10.3233/SAT190123

  55. Wolf, C.: Yosys open synthesis suite. http://www.clifford.at/yosys/

Download references

Author information

Authors and Affiliations

  1. University of Michigan, Ann Arbor, MI, 48105, USA

    Aman Goel & Karem Sakallah

Authors
  1. Aman Goel
    View author publications

    You can also search for this author in PubMed Google Scholar

  2. Karem Sakallah
    View author publications

    You can also search for this author in PubMed Google Scholar

Corresponding author

Correspondence to Aman Goel .

Editor information

Editors and Affiliations

  1. Johannes Kepler University, Linz, Austria

    Prof. Armin Biere

  2. University of Birmingham, Birmingham, UK

    Prof. David Parker

Rights and permissions

Open Access This chapter is licensed under the terms of the Creative Commons Attribution 4.0 International License (http://creativecommons.org/licenses/by/4.0/), which permits use, sharing, adaptation, distribution and reproduction in any medium or format, as long as you give appropriate credit to the original author(s) and the source, provide a link to the Creative Commons license and indicate if changes were made.

The images or other third party material in this chapter are included in the chapter's Creative Commons license, unless indicated otherwise in a credit line to the material. If material is not included in the chapter's Creative Commons license and your intended use is not permitted by statutory regulation or exceeds the permitted use, you will need to obtain permission directly from the copyright holder.

Reprints and Permissions

Copyright information

© 2020 The Author(s)

About this paper

Verify currency and authenticity via CrossMark

Cite this paper

Goel, A., Sakallah, K. (2020). AVR: Abstractly Verifying Reachability. In: Biere, A., Parker, D. (eds) Tools and Algorithms for the Construction and Analysis of Systems. TACAS 2020. Lecture Notes in Computer Science(), vol 12078. Springer, Cham. https://doi.org/10.1007/978-3-030-45190-5_23

Download citation

  • .RIS
  • .ENW
  • .BIB
  • DOI: https://doi.org/10.1007/978-3-030-45190-5_23

  • Published: 17 April 2020

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-030-45189-9

  • Online ISBN: 978-3-030-45190-5

  • eBook Packages: Computer ScienceComputer Science (R0)

Share this paper

Anyone you share the following link with will be able to read this content:

Sorry, a shareable link is not currently available for this article.

Provided by the Springer Nature SharedIt content-sharing initiative

Over 10 million scientific documents at your fingertips

Switch Edition
  • Academic Edition
  • Corporate Edition
  • Home
  • Impressum
  • Legal information
  • Privacy statement
  • California Privacy Statement
  • How we use cookies
  • Manage cookies/Do not sell my data
  • Accessibility
  • FAQ
  • Contact us
  • Affiliate program

Not affiliated

Springer Nature

© 2023 Springer Nature Switzerland AG. Part of Springer Nature.