Graph-Based Algorithms for Boolean Function Manipulation
IEEE Transactions on Computers
Efficient implementation of a BDD package
DAC '90 Proceedings of the 27th ACM/IEEE Design Automation Conference
Symbolic Boolean manipulation with ordered binary-decision diagrams
ACM Computing Surveys (CSUR)
Precise and efficient groundness analysis for logic programs
ACM Letters on Programming Languages and Systems (LOPLAS)
A logical model for relational abstract domains
ACM Transactions on Programming Languages and Systems (TOPLAS)
Two classes of Boolean functions for dependency analysis
Science of Computer Programming
Sharing and groundness dependencies in logic programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
Equational characterizations of Boolean function classes
Discrete Mathematics
Systematic design of program analysis frameworks
POPL '79 Proceedings of the 6th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Exception analysis for non-strict languages
Proceedings of the seventh ACM SIGPLAN international conference on Functional programming
The complexity of satisfiability problems
STOC '78 Proceedings of the tenth annual ACM symposium on Theory of computing
Efficient groundness analysis in Prolog
Theory and Practice of Logic Programming
Goal-independent suspension analysis for logic programs with dynamic scheduling
ESOP'03 Proceedings of the 12th European conference on Programming
Boolean approximation revisited
SARA'07 Proceedings of the 7th International conference on Abstraction, reformulation, and approximation
Boolean affine approximation with binary decision diagrams
CATS '09 Proceedings of the Fifteenth Australasian Symposium on Computing: The Australasian Theory - Volume 94
ICLP'06 Proceedings of the 22nd international conference on Logic Programming
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 |
Program analysis commonly makes use of Boolean functions to express information about run-time states. Many important classes of Boolean functions used this way, such as the monotone functions and the Boolean Horn functions, have simple semantic characterisations. They also have well-known syntactic characterisations in terms of Boolean formulae, say, in conjunctive normal form. Here we are concerned with characterisations using binary decision diagrams. Over the last decade, ROBDDs have become popular as representations of Boolean functions, mainly for their algorithmic properties. Assuming ROBDDs as representation, we address the following problems: Given a function ψ and a class of functions Δ, how to find the strongest ϕεΔ entailed by ψ (when such a ϕ is known to exist)? How to find the weakest ϕεΔ that entails ψ? How to determine that a function ψ belongs to a class Δ? Answers are important, not only for several program analyses, but for other areas of computer science, where Boolean approximation is used. We give, for many commonly used classes Δ of Boolean functions, algorithms to approximate functions represented as ROBDDs, in the sense described above. The algorithms implement upper closure operators, familiar from abstract interpretation. They immediately lead to algorithms for deciding class membership.