skip to main content
research-article

Predicate abstraction in Java Pathfinder

Published:11 February 2014Publication History
Skip Abstract Section

Abstract

We present our ongoing effort to implement predicate abstraction in Abstract Pathfinder, which is an extension of Java Pathfinder. Our approach builds upon existing abstraction techniques that have been proposed mainly for low-level programs in C. We support predicates over variables having numerical data types. The main challenges that we have addressed include (1) the design of the predicate language, (2) support for arrays, (3) finding predicates affected by a given statement, (4) aliasing between variables, (5) propagating values of predicates over method call boundaries, and (6) computing weakest preconditions for complex predicates. We describe our solution to these challenges and selected details about the implementation. We also discuss our future plans and research ideas.

References

  1. S. Anand, C.S. Pasareanu, and W. Visser. Symbolic Execution with Abstraction. Journal of Software Tools for Technology Transfer, 11(1), 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. T. Ball, R. Majumdar, T. Millstein, and S.K. Rajamani. Automatic Predicate Abstraction of C Programs. In Proceedings of PLDI 2001, ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. D. Beyer, T.A. Henzinger, R. Jhala, and R. Majumdar. The Software Model Checker BLAST: Applications to Software Engineering, Journal of Software Tools for Technology Transfer, 9(5--6), 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. E.M. Clarke, O. Grumberg, S. Jha, Y. Lu, and H. Veith. Counterexample-Guided Abstraction Refinement. In Proceedings of CAV 2000, LNCS, vol. 1855. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. S. Graf and H. Saidi. Construction of Abstract State Graphs with PVS. In Proceedings of CAV 1997, LNCS, vol. 1254. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. G.J. Holzmann. The Model Checker SPIN. IEEE Transactions on Software Engineering, 23(5), 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Java Pathfinder: framework for verification of Java programs. http://babelfish.arc.nasa.gov/trac/jpf/.Google ScholarGoogle Scholar
  8. A. Khyzha, P. Parizek, and C.S. Pasareanu. Abstract Pathfinder. ACM SIGSOFT Software Engineering Notes, 37(6), 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. C.S. Pasareanu and N. Rungta. Symbolic PathFinder: Symbolic Execution of Java Bytecode. In Proceedings of ASE 2010, ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Predicate abstraction in Java Pathfinder

            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

            Full Access

            PDF Format

            View or Download as a PDF file.

            PDF

            eReader

            View online with eReader.

            eReader