Title
Constraint normalization and parameterized caching for quantitative program analysis
Abstract
Symbolic program analysis techniques rely on satisfiability-checking constraint solvers, while quantitative program analysis techniques rely on model-counting constraint solvers. Hence, the efficiency of satisfiability checking and model counting is crucial for efficiency of modern program analysis techniques. In this paper, we present a constraint caching framework to expedite potentially expensive satisfiability and model-counting queries. Integral to this framework is our new constraint normalization procedure under which the cardinality of the solution set of a constraint, but not necessarily the solution set itself, is preserved. We extend these constraint normalization techniques to string constraints in order to support analysis of string-manipulating code. A group-theoretic framework which generalizes earlier results on constraint normalization is used to express our normalization techniques. We also present a parameterized caching approach where, in addition to storing the result of a model-counting query, we also store a model-counter object in the constraint store that allows us to efficiently recount the number of satisfying models for different maximum bounds. We implement our caching framework in our tool Cashew, which is built as an extension of the Green caching framework, and integrate it with the symbolic execution tool Symbolic PathFinder (SPF) and the model-counting constraint solver ABC. Our experiments show that constraint caching can significantly improve the performance of symbolic and quantitative program analyses. For instance, Cashew can normalize the 10,104 unique constraints in the SMC/Kaluza benchmark down to 394 normal forms, achieve a 10x speedup on the SMC/Kaluza-Big dataset, and an average 3x speedup in our SPF-based side-channel analysis experiments.
Year
DOI
Venue
2017
10.1145/3106237.3106303
ESEC/SIGSOFT FSE
Keywords
Field
DocType
Constraint caching,quantitative program analysis,model counting,string constraints
Constraint satisfaction,Computer science,Constraint programming,Constraint graph,Algorithm,Constraint satisfaction problem,Theoretical computer science,Constraint learning,Constraint logic programming,Hybrid algorithm (constraint satisfaction),Binary constraint
Conference
ISBN
Citations 
PageRank 
978-1-4503-5105-8
1
0.37
References 
Authors
40
5
Name
Order
Citations
PageRank
Tegan Brennan193.48
Nestan Tsiskaridze210.71
Nicolás Rosner3685.14
Abdulbaki Aydin4603.89
Tevfik Bultan52481157.95