Papers
Topics
Authors
Recent
Gemini 2.5 Flash
Gemini 2.5 Flash
175 tokens/sec
GPT-4o
8 tokens/sec
Gemini 2.5 Pro Pro
47 tokens/sec
o3 Pro
5 tokens/sec
GPT-4.1 Pro
38 tokens/sec
DeepSeek R1 via Azure Pro
28 tokens/sec
2000 character limit reached

Counterexample-Guided Prophecy for Model Checking Modulo the Theory of Arrays (2101.06825v6)

Published 18 Jan 2021 in cs.LO

Abstract: We develop a framework for model checking infinite-state systems by automatically augmenting them with auxiliary variables, enabling quantifier-free induction proofs for systems that would otherwise require quantified invariants. We combine this mechanism with a counterexample-guided abstraction refinement scheme for the theory of arrays. Our framework can thus, in many cases, reduce inductive reasoning with quantifiers and arrays to quantifier-free and array-free reasoning. We evaluate the approach on a wide set of benchmarks from the literature. The results show that our implementation often outperforms state-of-the-art tools, demonstrating its practical potential.

Definition Search Book Streamline Icon: https://streamlinehq.com
References (72)
  1. Syntax-guided synthesis. In Dependable Software Systems Engineering, volume 40, pages 1–25. IOS Press, 2015.
  2. SAFARI: SMT-based abstraction for arrays with interpolants. In CAV, volume 7358 of Lecture Notes in Computer Science, pages 679–685. Springer, 2012.
  3. Booster: An acceleration-based verification framework for array programs. In ATVA, volume 8837 of Lecture Notes in Computer Science, pages 18–23. Springer, 2014.
  4. The existence of refinement mappings. In Proceedings of the 3rd Annual Symposium on Logic in Computer Science, pages 165–175, July 1988. LICS 1988 Test of Time Award. URL: https://www.microsoft.com/en-us/research/publication/the-existence-of-refinement-mappings/.
  5. Lemmas on demand for the extensional theory of arrays. In Proceedings of the Joint Workshops of the 6th International Workshop on Satisfiability Modulo Theories and 1st International Workshop on Bit-Precise Reasoning, SMT ’08/BPR ’08, page 6–11, New York, NY, USA, 2008. Association for Computing Machinery. doi:10.1145/1512464.1512467.
  6. Counterexample to induction-guided abstraction-refinement (CTIGAR). In CAV, volume 8559 of Lecture Notes in Computer Science, pages 831–848. Springer, 2014.
  7. Symbolic model checking without BDDs. In W. Rance Cleaveland, editor, Tools and Algorithms for the Construction and Analysis of Systems, pages 193–207, Berlin, Heidelberg, 1999. Springer Berlin Heidelberg.
  8. CVC4. In Ganesh Gopalakrishnan and Shaz Qadeer, editors, Proceedings of the 23rd International Conference on Computer Aided Verification (CAV ’11), volume 6806 of Lecture Notes in Computer Science, pages 171–177. Springer, July 2011. Snowbird, Utah. URL: http://www.cs.stanford.edu/~barrett/pubs/BCD+11.pdf.
  9. EUFicient reachability for software with arrays. In Formal Methods in Computer Aided Design, 2020.
  10. Dirk Beyer. Software verification with validation of results - (report on SV-COMP 2017). In TACAS (2), volume 10206 of Lecture Notes in Computer Science, pages 331–349, 2017.
  11. The Satisfiability Modulo Theories Library (SMT-LIB). www.SMT-LIB.org, 2016.
  12. Horn clause solvers for program verification. In Fields of Logic and Computation II, volume 9300 of Lecture Notes in Computer Science, pages 24–51. Springer, 2015.
  13. Quantifier-free interpolation of a theory of arrays. Logical Methods in Computer Science, 8, 04 2012. doi:10.2168/LMCS-8(2:4)2012.
  14. P. Bjesse. Word-level sequential memory abstraction for model checking. In 2008 Formal Methods in Computer Aided Design, pages 1–9, Nov 2008. doi:10.1109/FMCAD.2008.ECP.20.
  15. The calculus of computation - decision procedures with applications to verification. Springer, 2007.
  16. What’s decidable about arrays? In E. Allen Emerson and Kedar S. Namjoshi, editors, Verification, Model Checking, and Abstract Interpretation, pages 427–442, Berlin, Heidelberg, 2006. Springer Berlin Heidelberg.
  17. Aaron R. Bradley. SAT-based model checking without unrolling. In VMCAI, volume 6538 of Lecture Notes in Computer Science, pages 70–87. Springer, 2011.
  18. Satisfiability modulo theories. In Handbook of Model Checking, pages 305–343. Springer, 2018.
  19. Incremental linearization for satisfiability and verification modulo nonlinear arithmetic and transcendental functions. ACM Trans. Comput. Log., 19(3):19:1–19:52, 2018.
  20. FAR-cubicle - A new reachability algorithm for Cubicle. In FMCAD, pages 172–175. IEEE, 2017.
  21. Kratos - A software model checker for SystemC. In CAV, volume 6806 of Lecture Notes in Computer Science, pages 310–316. Springer, 2011.
  22. Infinite-state invariant checking with IC3 and predicate abstraction. Formal Methods in System Design, 49(3):190–218, 2016.
  23. Universal invariant checking of parametric systems with quantifier-free SMT reasoning. In CADE, volume 12699 of Lecture Notes in Computer Science, pages 131–147. Springer, 2021.
  24. Computing small unsatisfiable cores in satisfiability modulo theories. J. Artif. Intell. Res., 40:701–728, 2011.
  25. The MathSAT5 SMT Solver. In Nir Piterman and Scott Smolka, editors, Proceedings of TACAS, volume 7795 of LNCS. Springer, 2013.
  26. Weakly equivalent arrays. In Carsten Lutz and Silvio Ranise, editors, Frontiers of Combining Systems, pages 119–134, Cham, 2015. Springer International Publishing.
  27. Theory-specific reasoning about loops with arrays using Vampire. In Vampire@IJCAR, volume 44 of EPiC Series in Computing, pages 16–32. EasyChair, 2016.
  28. Edmund M. Clarke. Counterexample-guided abstraction refinement. In TIME, page 7. IEEE Computer Society, 2003.
  29. Local proofs for global safety properties. Formal Methods Syst. Des., 34(2):104–125, 2009.
  30. William Craig. Linear reasoning. A new form of the Herbrand-Gentzen theorem. J. Symb. Log., 22(3):250–268, 1957.
  31. Verification Modulo Theories. http://www.vmt-lib.org, 2011.
  32. L. de Moura and N. Bjørner. Generalized, efficient array decision procedures. In 2009 Formal Methods in Computer-Aided Design, pages 45–52, Nov 2009. doi:10.1109/FMCAD.2009.5351142.
  33. Z3: An efficient SMT solver. In C. R. Ramakrishnan and Jakob Rehof, editors, Tools and Algorithms for the Construction and Analysis of Systems, pages 337–340, Berlin, Heidelberg, 2008. Springer Berlin Heidelberg.
  34. Grigory Fedyukovich. Freqhorn benchmarks. URL: https://github.com/grigoryfedyukovich/aeval/tree/615f4c4abfd51550d939495841aa9a531d4f09e2/bench˙horn.
  35. Grigory Fedyukovich. Freqhorn implementation. URL: https://github.com/grigoryfedyukovich/aeval/commit/f5cc11808c1b73886a4e7d5a71daeffb45470b9a.
  36. Quantified invariants via syntax-guided synthesis. In CAV (1), volume 11561 of Lecture Notes in Computer Science, pages 259–277. Springer, 2019.
  37. Trace logic for inductive loop reasoning. In Formal Methods in Computer Aided Design, 2020.
  38. Deciding array formulas with frugal axiom instantiation. In Proceedings of the Joint Workshops of the 6th International Workshop on Satisfiability Modulo Theories and 1st International Workshop on Bit-Precise Reasoning, SMT ’08/BPR ’08, page 12–17, New York, NY, USA, 2008. Association for Computing Machinery. doi:10.1145/1512464.1512468.
  39. The SeaHorn verification framework. In CAV (1), volume 9206 of Lecture Notes in Computer Science, pages 343–361. Springer, 2015.
  40. SMT-based system verification with DVF. In SMT@IJCAR, volume 20 of EPiC Series in Computing, pages 32–43. EasyChair, 2012.
  41. MCMT: A model checker modulo theories. In Jürgen Giesl and Reiner Hähnle, editors, Automated Reasoning, pages 22–29, Berlin, Heidelberg, 2010. Springer Berlin Heidelberg.
  42. Alberto Griggio. Open-source IC3 modulo theories with implicit predicate abstraction. https://es-static.fbk.eu/people/griggio/ic3ia/index.html, Accessed 2020. URL: https://es-static.fbk.eu/people/griggio/ic3ia/index.html.
  43. SMT-based verification of parameterized systems. In SIGSOFT FSE, pages 338–348. ACM, 2016.
  44. Quantifiers on demand. In Shuvendu K. Lahiri and Chao Wang, editors, Automated Technology for Verification and Analysis, pages 248–266, Cham, 2018. Springer International Publishing.
  45. Tacas 21 artifact evaluation vm - ubuntu 20.04 lts, September 2020. doi:10.5281/zenodo.4041464.
  46. Wilfrid Hodges. Model theory, volume 42 of Encyclopedia of mathematics and its applications. Cambridge University Press, 1993.
  47. The future is ours: prophecy variables in separation logic. Proc. ACM Program. Lang., 4(POPL):45:1–45:32, 2020.
  48. Global guidance for local generalization in model checking. In CAV (2), volume 12225 of Lecture Notes in Computer Science, pages 101–125. Springer, 2020.
  49. Hari Govind Vediramana Krishnan and Arie Gurfinkel. Spacer CHC-COMP 2020 Submission, 2020. URL: https://www.starexec.org/starexec/secure/details/configuration.jsp?id=350966.
  50. SMT-based model checking for recursive programs. In Armin Biere and Roderick Bloem, editors, Computer Aided Verification, pages 17–34, Cham, 2014. Springer International Publishing.
  51. Quantified heap invariants for object-oriented programs. In LPAR, volume 46 of EPiC Series in Computing, pages 368–384. EasyChair, 2017.
  52. Interpolation for data structures. In SIGSOFT FSE, pages 105–116. ACM, 2006.
  53. Decision Procedures - An Algorithmic Point of View, Second Edition. Texts in Theoretical Computer Science. An EATCS Series. Springer, 2016.
  54. Finding loop invariants for programs over arrays using a theorem prover. In FASE, volume 5503 of Lecture Notes in Computer Science, pages 470–485. Springer, 2009.
  55. First-order theorem proving and Vampire. In CAV, volume 8044 of Lecture Notes in Computer Science, pages 1–35. Springer, 2013.
  56. Indexed predicate discovery for unbounded system verification. In CAV, volume 3114 of Lecture Notes in Computer Science, pages 135–147. Springer, 2004.
  57. Automatic invariant synthesis for arrays in simple programs. In 2016 IEEE International Conference on Software Quality, Reliability and Security (QRS), pages 108–119, Aug 2016. doi:10.1109/QRS.2016.23.
  58. J. Mccarthy. Towards a mathematical science of computation. In In IFIP Congress, pages 21–28. North-Holland, 1962.
  59. K. L. McMillan. Quantified invariant generation using an interpolating saturation prover. In C. R. Ramakrishnan and Jakob Rehof, editors, Tools and Algorithms for the Construction and Analysis of Systems, pages 413–427, Berlin, Heidelberg, 2008. Springer Berlin Heidelberg.
  60. Kenneth L. McMillan. Eager abstraction for symbolic model checking. In Hana Chockler and Georg Weissenbacher, editors, Computer Aided Verification, pages 191–208, Cham, 2018. Springer International Publishing.
  61. Cell morphing: From array programs to array-free horn clauses. In SAS, volume 9837 of Lecture Notes in Computer Science, pages 361–382. Springer, 2016.
  62. I4: incremental inference of inductive invariants for verification of distributed protocols. In SOSP, pages 370–384. ACM, 2019.
  63. Prophic3 prototype. URL: https://github.com/makaimann/prophic3/commit/497e2fbfb813bcf0a2c3bcb5b55ad47b2a678611.
  64. Counterexample-guided prophecy for model checking modulo the theory of arrays. In TACAS (1), volume 12651 of Lecture Notes in Computer Science, pages 113–132. Springer, 2021.
  65. An axiomatic proof technique for parallel programs I. Acta Informatica, 6:319–340, 1976.
  66. Temporal prophecy for proving temporal properties of infinite-state systems. Formal Methods in System Design, Jul 2021. doi:10.1007/s10703-021-00377-1.
  67. Amir Pnueli. The temporal logic of programs. In FOCS, pages 46–57. IEEE Computer Society, 1977.
  68. Synrg: Syntax guided synthesis of invariants with alternating quantifiers. CoRR, abs/2007.10519, 2020.
  69. Philipp Rümmer. CHC COMP 2020. https://chc-comp.github.io/, 2020.
  70. Philipp Rümmer. Competition Report: CHC-COMP-20, 2020. URL: https://arxiv.org/abs/2008.02939.
  71. Checking safety properties using induction and a SAT-solver. In FMCAD, volume 1954 of Lecture Notes in Computer Science, pages 108–125. Springer, 2000.
  72. A structural approach to prophecy variables. In TAMC, volume 7287 of Lecture Notes in Computer Science, pages 61–71. Springer, 2012.
Citations (8)

Summary

We haven't generated a summary for this paper yet.