Decision Diagrams for Linear Arithmetic
Sagar
Chaki, Arie Gurfinkel, Ofer Strichman,
Proceedings of Formal Methods in Computer-Aided Design
(FMCAD), page 53-60, November 15-18, 2009
Abstract:
Boolean manipulation and existential quantification of numeric
variables from linear arithmetic (LA) formulas is at the core of many
program analysis and software model checking techniques (e.g.,
predicate abstraction). We present a new data structure, Linear
Decision Diagrams (LDDs), to represent formulas in LA and its
fragments, which has certain properties that make it efficient for
such tasks. LDDs can be seen as an extension of Difference Decision
Diagrams (DDDs) to full LA. Beyond this extension, we make three key
contributions. First, we extend sifting-based dynamic variable
ordering (DVO) from BDDs to LDDs. Second, we develop, implement, and
evaluate several algorithms for existential quantification. Third, we
implement LDDs inside CUDD, a state-of-the-art BDD package, and
evaluate them on a large benchmark consisting of 850 functions derived
from the source code of 25 open source programs. Overall, our
experiments indicate that LDDs are an effective data structure for
program analysis tasks.
PDF
Online
Presentation