PARTI: A Multi-interval Theory Solver for Symbolic Execution
File(s)parti-ase18-av.pdf (1.04 MB)
Accepted version
Author(s)
Soria Dustmann, Oscar
Klaus, Wehrle
Cadar, C
Type
Conference Paper
Abstract
Symbolic execution is an effective program analysis technique whose scalability largely depends on the ability to quickly solve large numbers of first-order logic queries. We propose an effective general technique for speeding up the solving of queries in the theory of arrays and bit-vectors with a specific structure, while otherwise falling back to a complete solver.
The technique has two stages: a learning stage that determines the solution sets of each symbolic variable, and a decision stage that uses this information to quickly determine the satisfiability of certain types of queries. The main challenges involve deciding which operators to support and precisely dealing with integer type casts and arithmetic underflow and overflow.
We implemented this technique in an incomplete solver called PARTI (``PARtial Theory solver for Intervals''), directly integrating it into the popular KLEE symbolic execution engine. We applied KLEE with PARTI and a state-of-the-art SMT solver to synthetic and real-world benchmarks. We found that PARTI practically does not hurt performance while many times achieving order-of-magnitude speedups.
The technique has two stages: a learning stage that determines the solution sets of each symbolic variable, and a decision stage that uses this information to quickly determine the satisfiability of certain types of queries. The main challenges involve deciding which operators to support and precisely dealing with integer type casts and arithmetic underflow and overflow.
We implemented this technique in an incomplete solver called PARTI (``PARtial Theory solver for Intervals''), directly integrating it into the popular KLEE symbolic execution engine. We applied KLEE with PARTI and a state-of-the-art SMT solver to synthetic and real-world benchmarks. We found that PARTI practically does not hurt performance while many times achieving order-of-magnitude speedups.
Date Issued
2018-09-03
Date Acceptance
2018-07-03
Citation
ASE 2018 Proceedings of the 33rd ACM/IEEE International Conference on Automated Software Engineering, 2018, pp.430-440
ISBN
978-1-4503-5937-5
Start Page
430
End Page
440
Journal / Book Title
ASE 2018 Proceedings of the 33rd ACM/IEEE International Conference on Automated Software Engineering
Copyright Statement
© 2018 Copyright held by the owner/author(s). Publication rights licensed to ACM. This is the author's version of the work. It is posted here by permission of ACM for your personal use. Not for redistribution. The definitive version was published in ASE 2018 Proceedings of the 33rd ACM/IEEE International Conference on Automated Software Engineering, (3 Sept 2018) https://dl.acm.org/citation.cfm?id=3238179
Sponsor
Engineering & Physical Science Research Council (EPSRC)
Grant Number
EP/L002795/1
Source
IEEE/ACM International Conference on Automated Software Engineering
Place of Publication
ACM
Publication Status
Published
Start Date
2018-09-03
Finish Date
2018-09-07
Coverage Spatial
Montpellier, France