This paper introducesglobal guidanceto mitigate the limitations of the local rea- soning performed by SMT-basedIC3-style model checking algorithms. Global guidance is necessary to redirect such algorithms from divergence due to persis- tent local reasoning. To this end, we present three general rules that introduce new lemmas andpobs by taking a global view of the lemmas learned so far. The new rules are not theory-specific, and, as demonstrated by Algorithm 5, can
be incorporated to IC3-style solvers without modifying existing architecture.
We instantiate, and implement, the rules for LIA in GSpacer, which extends Spacer.
Our evaluation shows that global guidance brings significant improvements to local reasoning, and surpasses invariant inference based solely on global rea- soning. More importantly, global guidance decouples Spacer’s dependency on interpolation strategy and performs almost equally well under all three inter- polation schemes we consider. As such, using global guidance in the context of theories for which no good interpolation procedure exists, with bit-vectors being a primary example, arises as a promising direction for future research.
Acknowledgements. We thank Xujie Si for running theLArbexperiments and col- lecting results. We thank the ERC starting Grant SYMCAR 639270 and the Wallen- berg Academy Fellowship TheProSE for supporting the research visit. This research was partially supported by the United States-Israel Binational Science Foundation (BSF) grant No. 2016260, and the Israeli Science Foundation (ISF) grant No. 1810/18.
This research was partially supported by grants from Natural Sciences and Engineering Research Council Canada.
References
1. Albarghouthi, A., McMillan, K.L.: Beautiful interpolants. In: Sharygina, N., Veith, H. (eds.) CAV 2013. LNCS, vol. 8044, pp. 313–329. Springer, Heidelberg (2013).
https://doi.org/10.1007/978-3-642-39799-8 22
2. Benoy, F., King, A., Mesnard, F.: Computing convex hulls with a linear solver.
TPLP5(1–2), 259–271 (2005)
3. Birgmeier, J., Bradley, A.R., Weissenbacher, G.: Counterexample to induction- guided abstraction-refinement (CTIGAR). In: Biere, A., Bloem, R. (eds.) CAV 2014. LNCS, vol. 8559, pp. 831–848. Springer, Cham (2014).https://doi.org/10.
1007/978-3-319-08867-9 55
4. Bjørner, N., Gurfinkel, A.: Property directed polyhedral abstraction. In: D’Souza, D., Lal, A., Larsen, K.G. (eds.) VMCAI 2015. LNCS, vol. 8931, pp. 263–281.
Springer, Heidelberg (2015).https://doi.org/10.1007/978-3-662-46081-8 15 5. Bjørner, N., Janota, M.: Playing with quantified satisfaction. In: 20th International
Conferences on Logic for Programming, Artificial Intelligence and Reasoning - Short Presentations, LPAR 2015, Suva, Fiji, 24–28 November 2015, pp. 15–27 (2015)
6. Blicha, M., Hyv¨arinen, A.E.J., Kofroˇn, J., Sharygina, N.: Decomposing farkas inter- polants. In: Vojnar, T., Zhang, L. (eds.) TACAS 2019. LNCS, vol. 11427, pp. 3–20.
Springer, Cham (2019).https://doi.org/10.1007/978-3-030-17462-0 1
7. Bradley, A.R.: SAT-based model checking without unrolling. In: Jhala, R., Schmidt, D. (eds.) VMCAI 2011. LNCS, vol. 6538, pp. 70–87. Springer, Heidelberg (2011).https://doi.org/10.1007/978-3-642-18275-4 7
8. Bulychev, P.E., Kostylev, E.V., Zakharov, V.A.: Anti-unification algorithms and their applications in program analysis. In: Pnueli, A., Virbitskaite, I., Voronkov, A. (eds.) PSI 2009. LNCS, vol. 5947, pp. 413–423. Springer, Heidelberg (2010).
https://doi.org/10.1007/978-3-642-11486-1 35
9. Champion, A., Chiba, T., Kobayashi, N., Sato, R.: ICE-based refinement type discovery for higher-order functional programs. In: Beyer, D., Huisman, M. (eds.) TACAS 2018. LNCS, vol. 10805, pp. 365–384. Springer, Cham (2018).https://doi.
org/10.1007/978-3-319-89960-2 20
10. CHC-COMP. CHC-COMP.https://chc-comp.github.io
11. Cimatti, A., Griggio, A., Mover, S., Tonetta, S.: Infinite-state invariant checking with IC3 and predicate abstraction. Formal Methods Syst. Des. 49(3), 190–218 (2016).https://doi.org/10.1007/s10703-016-0257-4
12. Cousot, P., Cousot, R.: Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints. In: Conference Record of the Fourth ACM Symposium on Principles of Programming Languages, Los Angeles, California, USA, January 1977, pp. 238–252 (1977)
13. de Moura, L., Bjørner, N.: Z3: an efficient SMT solver. In: Ramakrishnan, C.R., Rehof, J. (eds.) TACAS 2008. LNCS, vol. 4963, pp. 337–340. Springer, Heidelberg (2008).https://doi.org/10.1007/978-3-540-78800-3 24
14. Fedyukovich, G., Kaufman, S.J., Bod´ık, R.: Sampling invariants from frequency distributions. In: 2017 Formal Methods in Computer Aided Design, FMCAD 2017, Vienna, Austria, 2–6 October 2017, pp. 100–107 (2017)
15. Flanagan, C., Leino, K.R.M.: Houdini, an annotation assistant for ESC/Java. In:
Oliveira, J.N., Zave, P. (eds.) FME 2001. LNCS, vol. 2021, pp. 500–517. Springer, Heidelberg (2001).https://doi.org/10.1007/3-540-45251-6 29
16. Garg, P., Neider, D., Madhusudan, P., Roth, D.: Learning invariants using decision trees and implication counterexamples. In: Proceedings of the 43rd Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL 2016, St. Petersburg, FL, USA, 20–22 January 2016, pp. 499–512 (2016)
17. Jovanovic, D., Dutertre, B.: Property-directed k-induction. In: 2016 Formal Meth- ods in Computer-Aided Design, FMCAD 2016, Mountain View, CA, USA, 3–6 October 2016, pp. 85–92 (2016)
18. Komuravelli, A., Gurfinkel, A., Chaki, S.: SMT-based model checking for recursive programs. In: Biere, A., Bloem, R. (eds.) CAV 2014. LNCS, vol. 8559, pp. 17–34.
Springer, Cham (2014).https://doi.org/10.1007/978-3-319-08867-9 2
19. Leroux, J., R¨ummer, P., Suboti´c, P.: Guiding Craig interpolation with domain- specific abstractions. Acta Informatica53(4), 387–424 (2015).https://doi.org/10.
1007/s00236-015-0236-z
20. McMillan, K.L.: Interpolation and SAT-based model checking. In: Hunt, W.A., Somenzi, F. (eds.) CAV 2003. LNCS, vol. 2725, pp. 1–13. Springer, Heidelberg (2003).https://doi.org/10.1007/978-3-540-45069-6 1
21. McMillan, K.L.: Lazy abstraction with interpolants. In: Ball, T., Jones, R.B. (eds.) CAV 2006. LNCS, vol. 4144, pp. 123–136. Springer, Heidelberg (2006).https://doi.
org/10.1007/11817963 14
22. McMillan, K.L., Kuehlmann, A., Sagiv, M.: Generalizing DPLL to richer logics. In:
Bouajjani, A., Maler, O. (eds.) CAV 2009. LNCS, vol. 5643, pp. 462–476. Springer, Heidelberg (2009).https://doi.org/10.1007/978-3-642-02658-4 35
23. Schindler, T., Jovanovi´c, D.: Selfless interpolation for infinite-state model checking.
VMCAI 2018. LNCS, vol. 10747, pp. 495–515. Springer, Cham (2018).https://doi.
org/10.1007/978-3-319-73721-8 23
24. SV-COMP. SV-COMP.https://sv-comp.sosy-lab.org/
25. The Sage Developers. SageMath, the Sage Mathematics Software System (Version 8.1.0) (2017).https://www.sagemath.org
26. Welp, T., Kuehlmann, A.: QF BV model checking with property directed reach- ability. In: Design, Automation and Test in Europe, DATE 13, Grenoble, France, 18–22 March 2013, pp. 791–796 (2013)
27. Yernaux, G., Vanhoof, W.: Anti-unification in constraint logic programming. TPLP 19(5–6), 773–789 (2019)
28. Zhu, H., Magill, S., Jagannathan, S.: A data-driven CHC solver. In: Proceedings of the 39th ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI 2018, Philadelphia, PA, USA, 18–22 June 2018, pp. 707–721 (2018)
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.