Finite Differencing of Logical Formulas for Static Analysis

Thomas Reps, Mooly Sagiv, and Alexey Loginov

This paper concerns mechanisms for maintaining the value of an instrumentation predicate (a.k.a. derived predicate or view), defined via a logical formula over core predicates, in response to changes in the values of the core predicates. It presents an algorithm for transforming the instrumentation predicate's defining formula into a predicate-maintenance formula that captures what the instrumentation predicate's new value should be.

This technique applies to program-analysis problems in which the semantics of statements is expressed using logical formulas that describe changes to core-predicate values, and provides a way to reflect those changes in the values of the instrumentation predicates.

(Click here to access the paper: PostScript, PDF.)