Advertisement

A Method for Symbolic Computation of Abstract Operations

  • Aditya Thakur
  • Thomas Reps
Part of the Lecture Notes in Computer Science book series (LNCS, volume 7358)

Abstract

This paper helps to bridge the gap between (i) the use of logic for specifying program semantics and performing program analysis, and (ii) abstract interpretation. Many operations needed by an abstract interpreter can be reduced to the problem of symbolic abstraction: the symbolic abstraction of a formula ϕ in logic Open image in new window , denoted by Open image in new window , is the most-precise value in abstract domain Open image in new window that over-approximates the meaning of ϕ. We present a parametric framework that, given Open image in new window and Open image in new window , implements Open image in new window . The algorithm computes successively better over-approximations of Open image in new window . Because it approaches Open image in new window from “above”, if it is taking too much time, a safe answer can be returned at any stage.

Moreover, the framework is“dual-use”: in addition to its applications in abstract interpretation, it provides a new way for an SMT (Satisfiability Modulo Theories) solver to perform unsatisfiability checking: given Open image in new window , the condition Open image in new window implies that ϕ is unsatisfiable.

Keywords

Basic Block Symbolic Computation Integrity Constraint Abstract Interpretation Satisfiability Modulo Theory 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

References

  1. 1.
    Armando, A., Castellini, C., Giunchiglia, E.: SAT-Based Procedures for Temporal Reasoning. In: Biundo, S., Fox, M. (eds.) ECP 1999. LNCS, vol. 1809, pp. 97–108. Springer, Heidelberg (2000)CrossRefGoogle Scholar
  2. 2.
    Ball, T., Podelski, A., Rajamani, S.K.: Boolean and Cartesian Abstraction for Model Checking C Programs. In: Margaria, T., Yi, W. (eds.) TACAS 2001. LNCS, vol. 2031, pp. 268–283. Springer, Heidelberg (2001)CrossRefGoogle Scholar
  3. 3.
    Björk, M.: First order Stålmarck. J. Autom. Reasoning 42(1), 99–122 (2009)MATHCrossRefGoogle Scholar
  4. 4.
    Bjørner, N., de Moura, L.: Accelerated lemma learning using joins–DPLL(⊔). In: LPAR (2008)Google Scholar
  5. 5.
    Bryant, R.E., Velev, M.N.: Boolean satisfiability with transitivity constraints. Trans. on Computational Logic 3(4) (2002)Google Scholar
  6. 6.
    Clarke, E., Kroening, D., Sharygina, N., Yorav, K.: Predicate abstraction of ANSI-C programs using SAT. FMSD 25(2-3) (2004)Google Scholar
  7. 7.
    Cousot, P., Cousot, R.: Systematic design of program analysis frameworks. In: POPL (1979)Google Scholar
  8. 8.
    Cousot, P., Halbwachs, N.: Automatic discovery of linear constraints among variables of a program. In: POPL (1978)Google Scholar
  9. 9.
    Davis, M., Logemann, G., Loveland, D.: A machine program for theorem-proving. Commun. ACM 5(7) (1962)Google Scholar
  10. 10.
    Davis, M., Putnam, H.: A computing procedure for quantification theory. J. ACM 7(3) (1960)Google Scholar
  11. 11.
    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)CrossRefGoogle Scholar
  12. 12.
    Elder, M., Lim, J., Sharma, T., Andersen, T., Reps, T.: Abstract Domains of Affine Relations. In: Yahav, E. (ed.) SAS 2011. LNCS, vol. 6887, pp. 198–215. Springer, Heidelberg (2011)CrossRefGoogle Scholar
  13. 13.
    Flanagan, C., Joshi, R., Ou, X., Saxe, J.B.: Theorem Proving Using Lazy Proof Explication. In: Hunt Jr., W.A., Somenzi, F. (eds.) CAV 2003. LNCS, vol. 2725, pp. 355–367. Springer, Heidelberg (2003)CrossRefGoogle Scholar
  14. 14.
    Graf, S., Saïdi, H.: Construction of Abstract State Graphs with PVS. In: Grumberg, O. (ed.) CAV 1997. LNCS, vol. 1254, pp. 72–83. Springer, Heidelberg (1997)CrossRefGoogle Scholar
  15. 15.
    Graham, S., Wegman, M.: A fast and usually linear algorithm for data flow analysis. J. ACM 23(1), 172–202 (1976)MathSciNetMATHCrossRefGoogle Scholar
  16. 16.
    Granger, P.: Improving the Results of Static Analyses Programs by Local Decreasing Iteration. In: Shyamasundar, R.K. (ed.) FSTTCS 1992. LNCS, vol. 652, pp. 68–79. Springer, Heidelberg (1992)CrossRefGoogle Scholar
  17. 17.
    Gulwani, S., Musuvathi, M.: Cover Algorithms and Their Combination. In: Gairing, M. (ed.) ESOP 2008. LNCS, vol. 4960, pp. 193–207. Springer, Heidelberg (2008)CrossRefGoogle Scholar
  18. 18.
    Harrison, J.: Stålmarck’s Algorithm as a HOL Derived Rule. In: von Wright, J., Harrison, J., Grundy, J. (eds.) TPHOLs 1996. LNCS, vol. 1125, pp. 221–234. Springer, Heidelberg (1996)CrossRefGoogle Scholar
  19. 19.
    Karr, M.: Affine relationship among variables of a program. Acta Inf. 6 (1976)Google Scholar
  20. 20.
    Kidd, N., Lal, A., Reps, T.: WALi: The Weighted Automaton Library (2007), www.cs.wisc.edu/wpis/wpds/download.php
  21. 21.
    King, A., Søndergaard, H.: Automatic Abstraction for Congruences. In: Barthe, G., Hermenegildo, M. (eds.) VMCAI 2010. LNCS, vol. 5944, pp. 197–213. Springer, Heidelberg (2010)CrossRefGoogle Scholar
  22. 22.
    Knoop, J., Steffen, B.: Interprocedural Coincidence Theorem. In: Pfahler, P., Kastens, U. (eds.) CC 1992. LNCS, vol. 641, pp. 125–140. Springer, Heidelberg (1992)CrossRefGoogle Scholar
  23. 23.
    Lal, A., Reps, T.: Improving Pushdown System Model Checking. In: Ball, T., Jones, R.B. (eds.) CAV 2006. LNCS, vol. 4144, pp. 343–357. Springer, Heidelberg (2006)CrossRefGoogle Scholar
  24. 24.
    Lal, A., Reps, T., Balakrishnan, G.: Extended Weighted Pushdown Systems. In: Etessami, K., Rajamani, S.K. (eds.) CAV 2005. LNCS, vol. 3576, pp. 434–448. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  25. 25.
    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)CrossRefGoogle Scholar
  26. 26.
    Monniaux, D.: Automatic modular abstractions for template numerical constraints. LMCS 6(3) (2010)Google Scholar
  27. 27.
    Müller-Olm, M., Seidl, H.: Analysis of modular arithmetic. TOPLAS (2007)Google Scholar
  28. 28.
    PPL: The Parma polyhedra library, http://www.cs.unipr.it/ppl/
  29. 29.
    Reps, T., Sagiv, M., Yorsh, G.: Symbolic Implementation of the Best Transformer. In: Steffen, B., Levi, G. (eds.) VMCAI 2004. LNCS, vol. 2937, pp. 252–266. Springer, Heidelberg (2004)CrossRefGoogle Scholar
  30. 30.
    Sagiv, M., Reps, T., Wilhelm, R.: Parametric shape analysis via 3-valued logic. TOPLAS 24(3), 217–298 (2002)CrossRefGoogle Scholar
  31. 31.
    Sankaranarayanan, S., Sipma, H.B., Manna, Z.: Scalable Analysis of Linear Systems Using Mathematical Programming. In: Cousot, R. (ed.) VMCAI 2005. LNCS, vol. 3385, pp. 25–41. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  32. 32.
    Sharir, M., Pnueli, A.: Two approaches to interprocedural data flow analysis. In: Program Flow Analysis: Theory and Applications. Prentice-Hall (1981)Google Scholar
  33. 33.
    Sheeran, M., Stålmarck, G.: A tutorial on Stålmarck’s proof procedure for propositional logic. FMSD 16(1) (2000)Google Scholar
  34. 34.
    Strichman, O.: On Solving Presburger and Linear Arithmetic with SAT. In: Aagaard, M.D., O’Leary, J.W. (eds.) FMCAD 2002. LNCS, vol. 2517, pp. 160–170. Springer, Heidelberg (2002)CrossRefGoogle Scholar
  35. 35.
    Thakur, A., Reps, T.: A generalization of Stålmarck’s method. TR 1699. CS Dept., Univ. of Wisconsin, Madison, WI (October 2011)Google Scholar
  36. 36.
    Thakur, A., Reps, T.: A method for symbolic computation of precise abstract operations. TR 1708. CS Dept., Univ. of Wisconsin, Madison, WI (January 2012)Google Scholar
  37. 37.
    Yorsh, G., Reps, T., Sagiv, M.: Symbolically Computing Most-Precise Abstract Operations for Shape Analysis. In: Jensen, K., Podelski, A. (eds.) TACAS 2004. LNCS, vol. 2988, pp. 530–545. Springer, Heidelberg (2004)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2012

Authors and Affiliations

  • Aditya Thakur
    • 1
  • Thomas Reps
    • 1
    • 2
  1. 1.Computer Sciences DepartmentUniversity of WisconsinMadisonUSA
  2. 2.GrammaTech, Inc.IthacaUSA

Personalised recommendations