Skip to main content
Log in

Abstract Interpretation as Automated Deduction

  • Published:
Journal of Automated Reasoning Aims and scope Submit manuscript

Abstract

Automata theory, algorithmic deduction and abstract interpretation provide the foundation behind three approaches to implementing program verifiers. This article is a first step towards a mathematical translation between these approaches. By extending Büchi’s theorem, we show that reachability in a control flow graph can be encoded as satisfiability in an extension of the weak, monadic, second-order logic of one successor. Abstract interpreters are, in a precise sense, sound but incomplete solvers for such formulae. The three components of an abstract interpreter: the lattice, transformers and iteration algorithm, respectively represent a fragment of a first-order theory, deduction in that theory, and second-order constraint propagation. By inverting the Lindenbaum–Tarski construction, we show that lattices used in practice are subclassical first-order theories.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6

Similar content being viewed by others

References

  1. Abramsky, S.: Domain theory and the logic of observable properties. PhD thesis, University of London (1987)

  2. Aiken, A.: Introduction to set constraint-based program analysis. Sci. Comput. Program. 35, 79–111 (1999)

    Article  MathSciNet  MATH  Google Scholar 

  3. Bjørner, N., de Moura, L.: Applications of SMT solvers to program verification. In: Notes for the Summer School on Formal Techniques (2014)

  4. Bjørner, N., Duterte, B., de Moura, L.: Accelerating lemma learning using joins – DPLL(\(\sqcup \)). In: Proceedings of Logic for Programming, Artificial Intelligence and Reasoning (2008)

  5. Brain, M., D’silva, V., Griggio, A., Haller, L., Kroening, D.: Deciding floating-point logic with abstract conflict driven clause learning. Form. Methods Syst. Des. 45(2), 213–245 (2014)

  6. Brain, M., Hadarean, L., Kroening, D., Martins, R., Automatic generation of propagation complete SAT encodings. In: Proceedings of Verification, Model Checking and Abstract Interpretation, Springer, pp. 536–556. (2016)

  7. Büchi, J. R.: On a decision method in restricted second order arithmetic. In: Logic, Methodology and Philosophy of Science, Stanford Univ. Press, pp 1–11 (1960)

  8. Cachera, D., Pichardie, D., Comparing techniques for certified static analysis. In: The NASA Formal Methods Symposium (NFM), NASA Ames Research Center, pp. 111–115. (2009)

  9. Cousot, P., Cousot, R.: Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints. In: Proceedings of Principles of Programming Languages, ACM Press, pp. 238–252. (1977)

  10. Cousot, P., Cousot, R.: Systematic design of program analysis frameworks. In: Proceedings of Principles of Programming Languages, ACM Press, pp. 269–282. (1979)

  11. Cousot, P., Cousot, R., Mauborgne, L.: Theories, solvers and static analysis by abstract interpretation. J. ACM 59(6), 31:1–31:56 (2013)

    MathSciNet  MATH  Google Scholar 

  12. Dalla Preda, M., Giacobazzi, R., Lakhotia, A., Mastroeni, I.: Abstract symbolic automata: Mixed syntactic/semantic similarity analysis of executables. In: Proceedings of Principles of Programming Languages, ACM Press, pp. 329–341. (2015)

  13. D’antoni, L.: Extended symbolic finite automata and transducers. Form. Methods Syst. Des. 47(1), 93–119 (2015)

    Article  MATH  Google Scholar 

  14. D’Silva, V., Urban, C.: Abstract interpretation as automated deduction. In: Proceedings of Automated Deduction, pp. 450–464. (2015a)

  15. D’Silva, V., Urban, C.: Conflict-driven conditional termination. In: Proceedings of Computer Aided Verification, pp. 471–286. (2015b)

  16. D’Silva, V., Haller, L., Kroening, D.: Abstract conflict driven learning. In: Proceedings of Principles of Programming Languages, ACM Press, pp. 143–154. (2013)

  17. D’Silva, V., Haller, L., Kroening, D.: Abstract satisfaction. In: Proceedings of Principles of Programming Languages, ACM Press, pp. 139–150. (2014)

  18. van den Elsen, S.: Weak monadic second-order theory of one successor. Seminar: Decision Procedures, (2012) http://www.mpi-sws.org/~piskac/teaching/decpro-ws12/slides/WS1S.pdf

  19. Grebenshchikov, S., Lopes, N. P., Popeea, C., Rybalchenko, A.: Synthesizing software verifiers from proof rules. In: Proceedings of Programming Language Design and Implementation, ACM Press, pp. 405–416. (2012)

  20. Gulavani, B. S., Chakraborty, S., Nori, A. V., Rajamani, S. K.: Automatically refining abstract interpretations. In: Proceedings of Tools and Algorithms for the Construction and Analysis of Systems, Springer, LNCS, vol 4963, pp. 443–458. (2008)

  21. Gulwani, S., Tiwari, A.: Combining abstract interpreters. In: Proceedings of Programming Language Design and Implementation, ACM Press, pp. 376–386. (2006)

  22. Haller, L.C.R.: Abstract satisfaction. PhD thesis, University of Oxford (2014)

  23. Harris, W.R., Sankaranarayanan, S., Ivančić, F., Gupta, A.: Program analysis via satisfiability modulo path programs. In: Proceedings of Principles of Programming Languages, pp. 71–82. (2010)

  24. Heizmann, M., Hoenicke, J., Podelski, A.: Software model checking for people who love automata. In: Proceedings of Computer Aided Verification, Springer, pp. 36–52. (2013)

  25. Jensen, T. P.: Strictness analysis in logical form. In: FPCA, Springer, pp. 352–366. (1991)

  26. Johnstone, P.: Stone Spaces. Cambridge Studies in Advanced Mathematics. Cambridge University Press, Cambridge (1986)

    Google Scholar 

  27. Jourdan, J. H., Laporte, V., Blazy, S., Leroy, X., Pichardie, D.: A formally-verified c static analyzer. In: Proceedings of Principles of Programming Languages, ACM Press, pp. 247–259. (2015)

  28. Kroening, D., Reps, T.W., Seshia, S.A., Thakur, A.V.: Decision procedures and abstract interpretation (Dagstuhl seminar 14351). Dagstuhl Rep. 4(8), 89–106 (2014)

    Google Scholar 

  29. Leino, K.R.M., Logozzo, F.: Using widenings to infer loop invariants inside an SMT solver, or: A theorem prover as abstract domain. In: Workshop on Invariant Generation, RISC Report 07–07, pp. 70–84. (2007)

  30. Nieuwenhuis, R., Oliveras, A., Tinelli, C.: Solving SAT and SAT modulo theories: from an abstract Davis–Putnam–Logemann–Loveland procedure to DPLL(T). J. ACM 53, 937–977 (2006)

    Article  MathSciNet  MATH  Google Scholar 

  31. Pelleau, M., Truchet, C., Benhamou, F.: Octagonal domains for continuous constraints. In: CP, pp. 706–720. (2011)

  32. Rasiowa, H., Sikorski, R.: The mathematics of metamathematics. Polish Academy of Science, Warsaw (1963)

    MATH  Google Scholar 

  33. Schmidt, D. A.: Internal and external logics of abstract interpretations. In: Proceedings of Verification, Model Checking and Abstract Interpretation, Springer-Verlag, Berlin, Heidelberg, pp. 263–278. (2008)

  34. Surma, S. J.: On the origin and subsequent applications of the concept of the lindenbaum algebra. In: L Jonathan Cohen HP Jerzy Loś, Podewski KP (eds) Logic, Methodology and Philosophy of Science VI, Proceedings of the Sixth International Congress of Logic, Methodology and Philosophy of Science, Studies in Logic and the Foundations of Mathematics, vol 104, Elsevier, pp. 719–734. (1982)

  35. Thakur, A.V: Symbolic abstraction: Algorithms and applications. PhD thesis, The University of Wisconsin—Madison (2014)

  36. Thakur, A.V., Reps, T.: A generalization of Stålmarck’s method. In: Proceedings of Static Analysis Symposium, Springer (2012a)

  37. Thakur, A.V., Reps, T.W.: A method for symbolic computation of abstract operations. In: Proceedings of Computer Aided Verification (2012b)

  38. Thomas, W.: Languages, automata, and logic. In: Rozenberg G, Salomaa A (eds) Handbook of Formal Languages, vol. 3, Springer, pp. 389–455. (1997)

  39. Tiwari, A., Gulwani, S.: Logical interpretation: Static program analysis using theorem proving. In: Proceedings of Automated Deduction, pp. 147–166. (2007)

  40. Truchet, C., Pelleau, M., Benhamou, F.: Abstract domains for constraint programming, with the example of octagons. In: Symbolic and Numeric Algorithms for Scientific Computing, pp. 72–79. (2010)

  41. Vardi, M. Y., Wilke, T.: Automata: from logics to algorithms. In: Logic and Automata: History and Perspectives [in Honor of Wolfgang Thomas]., pp. 629–736. (2008)

  42. Vardi, M.Y., Wolper, P.: Reasoning about infinite computations. Inform. Comput. 115(1), 1–37 (1994)

    Article  MathSciNet  MATH  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Vijay D’Silva.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

D’Silva, V., Urban, C. Abstract Interpretation as Automated Deduction. J Autom Reasoning 58, 363–390 (2017). https://doi.org/10.1007/s10817-016-9382-4

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10817-016-9382-4

Keywords

Navigation