 
Summary: Small Formulas for Large Programs:
Online Constraint Simplification in
Scalable Static Analysis
Isil Dillig Thomas Dillig Alex Aiken
{isil, tdillig, aiken}@cs.stanford.edu
Department of Computer Science, Stanford University
Abstract. Static analysis techniques that represent program states as
formulas typically generate a large number of redundant formulas that
are incrementally constructed from previous formulas. In addition to
querying satisfiability and validity, analyses perform other operations on
formulas, such as quantifier elimination, substitution, and instantiation,
most of which are highly sensitive to formula size. Thus, the scalability
of many static analysis techniques requires controlling the size of the
generated formulas throughout the analysis. In this paper, we present
a practical algorithm for reducing SMT formulas to a simplified form
containing no redundant subparts. We present experimental evidence
that online simplification of formulas dramatically improves scalability.
1 Introduction
Software verification techniques have benefited greatly from recent advances in
SAT and SMT solving by encoding program states as formulas and determin
