Widening ROBDDs with Prime Implicants

Despite the ubiquity of ROBDDs in program analysis, and extensive literature on ROBDD minimisation, there is a dearth of work on approximating ROBDDs. The need for approximation arises because many ROBDD operations result in an ROBDD whose size is quadratic in the size of the inputs. Furthermore, if ROBDDs are used in abstract interpretation, the running time of the analysis is related not only to the complexity of the individual ROBDD operations but also the number of operations applied. The number of operations is, in turn, constrained by the number of times a Boolean function can be weakened before stability is achieved. This paper proposes a widening that can be used to both constrain the size of an ROBDD and also ensure that the number of times that it is weakened is bounded by some given constant. The widening can be used to either systematically approximate from above (i.e. derive a weaker function) or below (i.e. infer a stronger function).

[1]  George Markowsky,et al.  On the number of prime implicants , 1978, Discret. Math..

[2]  Peter Schachte,et al.  Closure Operators for ROBDDs , 2006, VMCAI.

[3]  Christopher Umans,et al.  On the Complexity and Inapproximability of Shortest Implicant Problems , 1999, ICALP.

[4]  John P. Gallagher,et al.  Techniques for Scaling Up Analyses Based on Pre-interpretations , 2005, ICLP.

[5]  A. Sangiovanni-Vincentelli,et al.  Formal analysis of synchronous circuits , 1996 .

[6]  Randal E. Bryant,et al.  Graph-Based Algorithms for Boolean Function Manipulation , 1986, IEEE Transactions on Computers.

[7]  Edmund M. Clarke,et al.  Symbolic Model Checking: 10^20 States and Beyond , 1990, Inf. Comput..

[8]  Roberto Bagnara,et al.  Factorizing Equivalent Variable Pairs in ROBDD-Based Implementations of Pos , 1999, AMAST.

[9]  Andy King,et al.  A simple polynomial groundness analysis for logic programs , 2000, J. Log. Program..

[10]  Christian Fecht,et al.  Abstrakte Interpretation logischer Programme - Theorie, Implementierung, Generierung , 1997 .

[11]  Patrick Cousot,et al.  Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints , 1977, POPL.

[12]  Monica S. Lam,et al.  Cloning-based context-sensitive pointer alias analysis using binary decision diagrams , 2004, PLDI '04.

[13]  Olivier Coudert,et al.  Implicit and incremental computation of primes and essential primes of Boolean functions , 1992, [1992] Proceedings 29th ACM/IEEE Design Automation Conference.

[14]  Laurent Mauborgne,et al.  Abstract Interpretation Using Typed Decision Graphs , 1998, Sci. Comput. Program..

[15]  Richard Rudell Dynamic variable ordering for ordered binary decision diagrams , 1993, ICCAD.

[16]  Randal E. Bryant,et al.  On the Complexity of VLSI Implementations and Graph Representations of Boolean Functions with Application to Integer Multiplication , 1991, IEEE Trans. Computers.

[17]  Michael Codish,et al.  Worst-Case Groundness Analysis Using Positive Boolean Functions , 1999, J. Log. Program..

[18]  Willard Van Orman Quine,et al.  The Problem of Simplifying Truth Functions , 1952 .

[19]  Daniel J. Kleitman,et al.  Maximal sized antichains in partial orders , 1971, Discret. Math..

[20]  Tadeusz Strzemecki,et al.  Polynomial-time algorithms for generation of prime implicants , 1992, J. Complex..

[21]  O. Coudert,et al.  A New Graph Based Prime Computation Technique , 1993 .

[22]  Kenneth L. McMillan,et al.  Approximation and decomposition of binary decision diagrams , 1998, Proceedings 1998 Design and Automation Conference. 35th DAC. (Cat. No.98CH36175).