Advertisement

Underapproximation of Procedure Summaries for Integer Programs

  • Pierre Ganty
  • Radu Iosif
  • Filip Konečný
Part of the Lecture Notes in Computer Science book series (LNCS, volume 7795)

Abstract

We show how to underapproximate the procedure summaries of recursive programs over the integers using off-the-shelf analyzers for non-recursive programs. The novelty of our approach is that the non-recursive program we compute may capture unboundedly many behaviors of the original recursive program for which stack usage cannot be bounded. Moreover, we identify a class of recursive programs on which our method terminates and returns the precise summary relations without underapproximation. Doing so, we generalize a similar result for non-recursive programs to the recursive case. Finally, we present experimental results of an implementation of our method applied on a number of examples.

Keywords

Integer Program Transitive Closure Regular Language Procedure Call Control Word 
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.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Termination Competition 2011, http://termcomp.uibk.ac.at/termcomp/home.seam
  2. 2.
    Albarghouthi, A., Gurfinkel, A., Chechik, M.: Whale: An Interpolation-Based Algorithm for Inter-procedural Verification. In: Kuncak, V., Rybalchenko, A. (eds.) VMCAI 2012. LNCS, vol. 7148, pp. 39–55. Springer, Heidelberg (2012)CrossRefGoogle Scholar
  3. 3.
    Alur, R., Madhusudan, P.: Adding nesting structure to words. JACM 56(3), 16 (2009)MathSciNetCrossRefGoogle Scholar
  4. 4.
    Atig, M.F., Ganty, P.: Approximating petri net reachability along context-free traces. In: FSTTCS 2011. LIPIcs, vol. 13, pp. 152–163. Schloss Dagstuhl (2011)Google Scholar
  5. 5.
    Cook, B., Podelski, A., Rybalchenko, A.: Summarization for termination: no return! Formal Methods in System Design 35, 369–387 (2009)zbMATHCrossRefGoogle Scholar
  6. 6.
    Bardin, S., Finkel, A., Leroux, J., Petrucci, L.: FAST: Fast Acceleration of Symbolic Transition Systems. In: Hunt Jr., W.A., Somenzi, F. (eds.) CAV 2003. LNCS, vol. 2725, pp. 118–121. Springer, Heidelberg (2003)CrossRefGoogle Scholar
  7. 7.
    Bozga, M., Iosif, R., Konečný, F.: Fast Acceleration of Ultimately Periodic Relations. In: Touili, T., Cook, B., Jackson, P. (eds.) CAV 2010. LNCS, vol. 6174, pp. 227–242. Springer, Heidelberg (2010)CrossRefGoogle Scholar
  8. 8.
    Bozga, M., Iosif, R., Lakhnech, Y.: Flat parametric counter automata. Fundamenta Informaticae 91(2), 275–303 (2009)MathSciNetzbMATHGoogle Scholar
  9. 9.
    Cowles, J.: Knuth’s generalization of McCarthy’s 91 function. In: Computer-aided Reasoning, pp. 283–299 (2000)Google Scholar
  10. 10.
    Esparza, J., Kiefer, S., Luttenberger, M.: Newtonian program analysis. JACM 57(6), 33:1–33:47 (2010)Google Scholar
  11. 11.
    Ganty, P., Iosif, R., Konečný, F.: Underapproximation of procedure summaries for integer programs. CoRR abs/1210.4289 (2012)Google Scholar
  12. 12.
    Ginsburg, S.: The Mathematical Theory of Context-Free Languages. McGraw-Hill, Inc., New York (1966)zbMATHGoogle Scholar
  13. 13.
    Godefroid, P., Nori, A.V., Rajamani, S.K., Tetali, S.: Compositional may-must program analysis: unleashing the power of alternation. In: POPL 2010, pp. 43–56. ACM (2010)Google Scholar
  14. 14.
    Godoy, G., Tiwari, A.: Invariant Checking for Programs with Procedure Calls. In: Palsberg, J., Su, Z. (eds.) SAS 2009. LNCS, vol. 5673, pp. 326–342. Springer, Heidelberg (2009)CrossRefGoogle Scholar
  15. 15.
    Gruska, J.: A few remarks on the index of context-free grammars and languages. Information and Control 19(3), 216–223 (1971)MathSciNetzbMATHCrossRefGoogle Scholar
  16. 16.
    Hojjat, H., Konečný, F., Garnier, F., Iosif, R., Kuncak, V., Rümmer, P.: A Verification Toolkit for Numerical Transition Systems - Tool Paper. In: Giannakopoulou, D., Méry, D. (eds.) FM 2012. LNCS, vol. 7436, pp. 247–251. Springer, Heidelberg (2012)CrossRefGoogle Scholar
  17. 17.
  18. 18.
    Luker, M.: A family of languages having only finite-index grammars. Information and Control 39(1), 14–18 (1978)MathSciNetzbMATHCrossRefGoogle Scholar
  19. 19.
    Luker, M.: Control sets on grammars using depth-first derivations. Mathematical Systems Theory 13, 349–359 (1980)MathSciNetzbMATHCrossRefGoogle Scholar
  20. 20.
    Reps, T., Horwitz, S., Sagiv, M.: Precise interprocedural dataflow analysis via graph reachability. In: POPL 1995, pp. 49–61. ACM (1995)Google Scholar
  21. 21.
    Sharir, M., Pnueli, A.: Two approaches to interprocedural data flow analysis. In: Program Flow Analysis: Theory and Applications, ch. 7, pp. 189–233. Prentice-Hall, Inc. (1981)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2013

Authors and Affiliations

  • Pierre Ganty
    • 1
  • Radu Iosif
    • 2
  • Filip Konečný
    • 2
    • 3
  1. 1.IMDEA Software InstituteMadridSpain
  2. 2.VERIMAG/CNRSGrenobleFrance
  3. 3.École Polytechnique Fédérale de Lausanne (EPFL)Switzerland

Personalised recommendations