Indexing Operators to Extend the Reach of Symbolic Execution
Earl T. Barr, David Clark, Mark Harman, and Alexandru Marginean

TL;DR
This paper introduces Indexify, a program transformation technique that extends symbolic execution by replacing complex operators with simpler, finite-domain versions, enabling better analysis of real-world programs involving strings and floats.
Contribution
The paper presents Indexify, a novel operator indexing method that enhances symbolic execution by transforming operators to handle complex data types more effectively.
Findings
Significantly reduces analysis time on coreutils from 49.5m to 6.0m
Increases branch coverage on coreutils from 30.10% to 66.83%
Doubles the number of branches covered in coreutils compared to previous techniques
Abstract
Traditional program analysis analyses a program language, that is, all programs that can be written in the language. There is a difference, however, between all possible programs that can be written and the corpus of actual programs written in a language. We seek to exploit this difference: for a given program, we apply a bespoke program transformation Indexify to convert expressions that current SMT solvers do not, in general, handle, such as constraints on strings, into equisatisfiable expressions that they do handle. To this end, Indexify replaces operators in hard-to-handle expressions with homomorphic versions that behave the same on a finite subset of the domain of the original operator, and return bottom denoting unknown outside of that subset. By focusing on what literals and expressions are most useful for analysing a given program, Indexify constructs a small, finite theory…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsSoftware Testing and Debugging Techniques · Advanced Malware Detection Techniques · Formal Methods in Verification
