Symbolic Boolean manipulation with ordered binary-decision diagrams
ACM Computing Surveys (CSUR)
PRISC: programmable reduced instruction set computers
PRISC: programmable reduced instruction set computers
Knowledge compilation and theory approximation
Journal of the ACM (JACM)
Communications of the ACM
Approximation and decomposition of binary decision diagrams
DAC '98 Proceedings of the 35th annual Design Automation Conference
Using SAT for combinational equivalence checking
Proceedings of the conference on Design, automation and test in Europe
Complexity classifications of boolean constraint satisfaction problems
Complexity classifications of boolean constraint satisfaction problems
Principles of Program Analysis
Principles of Program Analysis
Comparing the Galois Connection and Widening/Narrowing Approaches to Abstract Interpretation
PLILP '92 Proceedings of the 4th International Symposium on Programming Language Implementation and Logic Programming
The complexity of satisfiability problems
STOC '78 Proceedings of the tenth annual ACM symposium on Theory of computing
Formal analysis of synchronous circuits
Formal analysis of synchronous circuits
Predicate Abstraction of ANSI-C Programs Using SAT
Formal Methods in System Design
Higher-Order and Symbolic Computation
Compiler Analysis of the Value Ranges for Variables
IEEE Transactions on Software Engineering
Widening ROBDDs with prime implicants
TACAS'06 Proceedings of the 12th international conference on Tools and Algorithms for the Construction and Analysis of Systems
Hi-index | 0.00 |
The class of affine Boolean functions is rich enough to express constant bits and dependencies between different bits of different words. For example, the function (x0) ∧ (¬y1) ∧ (x4 ⇔ y7) ∧ (x5 ⇔ ¬y9) is affine and expresses the invariant that the low bit (bit 0) of the variable x is true, that bit 1 of y is false, that the bits 4 and 7 of x and y coincide whereas bits 5 and 9 of x and y differ. This class of Boolean function is amenable to bit-precise reasoning since it satisfies strong chain properties which bound the number of times a system of semantic fixpoint equations need to be reapplied when reasoning about loops. This paper address the key problem of abstracting an arbitrary Boolean function to either a general affine function or a so-called affine function of width 2, when the function is represented as an ROBDD. Novel algorithms are presented for this task: one that manipulates Boolean vectors and another which is inspired by anti-unification. The speed and precision of both algorithms are compared on benchmark circuits, to draw conclusions on the tractability of affine abstraction.