skip to main content
10.1145/1706299.1706353acmconferencesArticle/Chapter ViewAbstractPublication PagespoplConference Proceedingsconference-collections
research-article

Nested interpolants

Published:17 January 2010Publication History

ABSTRACT

In this paper, we explore the potential of the theory of nested words for partial correctness proofs of recursive programs. Our conceptual contribution is a simple framework that allows us to shine a new light on classical concepts such as Floyd/Hoare proofs and predicate abstraction in the context of recursive programs. Our technical contribution is an interpolant-based software model checking method for recursive programs. The method avoids the costly construction of the abstract transformer by constructing a nested word automaton from an inductive sequence of `nested interpolants' (i.e., interpolants for a nested word which represents an infeasible error trace).

References

  1. R. Alur, K. Etessami, and P. Madhusudan. A temporal logic of nested calls and returns. In TACAS '04, pages 467--481. Springer, 2004.Google ScholarGoogle ScholarCross RefCross Ref
  2. R. Alur and P. Madhusudan. Adding nesting structure to words. In DLT '06, pages 1--13. Springer, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. R. Alur and P. Madhusudan. Adding nesting structure to words. JACM, 56(3), 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. K.-R. Apt, F. de Boer, and E.-R. Olderog. Verification of Sequential and Concurrent Programs. Third, extended edition. Springer, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. T. Ball and S. K. Rajamani. The SLAM project: debugging system software via static analysis. In POPL '02, pages 1--3. ACM, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. M. Barnett, B.-Y. E. Chang, R. DeLine, B. Jacobs, and K. R. M. Leino. Boogie: A modular reusable verifier for object-oriented programs. In FMCO '05, pages 364--387. Springer, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. N. Beckman, A. V. Nori, S. K. Rajamani, and R. J. Simmons. Proofs from tests. In ISSTA '08, pages 3--14. ACM, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. I. Brückner, K. Dräger, B. Finkbeiner, and H. Wehrheim. Slicing abstractions. In FSEN '07, pages 17--32. Springer, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. S. Chaki, E. M. Clarke, A. Groce, S. Jha, and H. Veith. Modular verification of software components in C. IEEE Trans. Software Eng., 30(6):388--402, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. E. M. Clarke, O. Grumberg, S. Jha, Y. Lu, and H. Veith. Counterexample-guided abstraction refinement. In CAV '00, pages 154--169. Springer, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. J. Esparza, S. Kiefer, and S. Schwoon. Abstraction refinement with Craig interpolation and symbolic pushdown systems. JSAT, 5:27--56, June 2008. Special Issue on Constraints to Formal Verification.Google ScholarGoogle Scholar
  12. B. S. Gulavani, S. Chakraborty, A. V. Nori, and S. K. Rajamani. Automatically refining abstract interpretations. In TACAS '08, pages 443--458. Springer, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. M. Heizmann, J. Hoenicke, and A. Podelski. Refinement of trace abstraction. In SAS '09, pages 69--85. Springer, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. T. A. Henzinger, R. Jhala, R. Majumdar, and K. L. McMillan. Abstractions from proofs. In POPL '04, pages 232--244. ACM, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. T. A. Henzinger, R. Jhala, R. Majumdar, and G. Sutre. Lazy abstraction. In POPL '02, pages 58--70. ACM, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. F. Ivancic, I. Shlyakhter, A. Gupta, and M. K. Ganai. Model checking C programs using F-SOFT. In ICCD '05, pages 297--308. IEEE Computer Society, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. R. Jhala and K. L. McMillan. Interpolant-based transition relation approximation. In CAV '05, pages 39--51. Springer, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. R. Jhala and K. L. McMillan. A practical and complete approach to predicate refinement. In TACAS '06, pages 459--473. Springer, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. K. L. McMillan. Lazy abstraction with interpolants. In CAV '06, pages 123--136. Springer, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. A. Podelski and A. Rybalchenko. ARMC: The logical choice for software model checking with abstraction refinement. In PADL '07, pages 245--259. Springer, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. T. W. Reps, S. Horwitz, and S. Sagiv. Precise interprocedural dataflow analysis via graph reachability. In POPL '95, pages 49--61. ACM, 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Nested interpolants

              Recommendations

              Comments

              Login options

              Check if you have access through your login credentials or your institution to get full access on this article.

              Sign in
              • Published in

                cover image ACM Conferences
                POPL '10: Proceedings of the 37th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
                January 2010
                520 pages
                ISBN:9781605584799
                DOI:10.1145/1706299
                • cover image ACM SIGPLAN Notices
                  ACM SIGPLAN Notices  Volume 45, Issue 1
                  POPL '10
                  January 2010
                  500 pages
                  ISSN:0362-1340
                  EISSN:1558-1160
                  DOI:10.1145/1707801
                  Issue’s Table of Contents

                Copyright © 2010 ACM

                Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

                Publisher

                Association for Computing Machinery

                New York, NY, United States

                Publication History

                • Published: 17 January 2010

                Permissions

                Request permissions about this article.

                Request Permissions

                Check for updates

                Qualifiers

                • research-article

                Acceptance Rates

                Overall Acceptance Rate824of4,130submissions,20%

                Upcoming Conference

                POPL '25

              PDF Format

              View or Download as a PDF file.

              PDF

              eReader

              View online with eReader.

              eReader