35,114 research outputs found
Decision lists and related Boolean functions
AbstractWe consider Boolean functions represented by decision lists, and study their relationships to other classes of Boolean functions. It turns out that the elementary class of 1-decision lists has interesting relationships to independently defined classes such as disguised Horn functions, read-once functions, nested differences of concepts, threshold functions, and 2-monotonic functions. In particular, 1-decision lists coincide with fragments of the mentioned classes. We further investigate the recognition problem for this class, as well as the extension problem in the context of partially defined Boolean functions (pdBfs). We show that finding an extension of a given pdBf in the class of 1-decision lists is possible in linear time. This improves on previous results. Moreover, we present an algorithm for enumerating all such extensions with polynomial delay
Invariant Synthesis for Incomplete Verification Engines
We propose a framework for synthesizing inductive invariants for incomplete
verification engines, which soundly reduce logical problems in undecidable
theories to decidable theories. Our framework is based on the counter-example
guided inductive synthesis principle (CEGIS) and allows verification engines to
communicate non-provability information to guide invariant synthesis. We show
precisely how the verification engine can compute such non-provability
information and how to build effective learning algorithms when invariants are
expressed as Boolean combinations of a fixed set of predicates. Moreover, we
evaluate our framework in two verification settings, one in which verification
engines need to handle quantified formulas and one in which verification
engines have to reason about heap properties expressed in an expressive but
undecidable separation logic. Our experiments show that our invariant synthesis
framework based on non-provability information can both effectively synthesize
inductive invariants and adequately strengthen contracts across a large suite
of programs
Chain Reduction for Binary and Zero-Suppressed Decision Diagrams
Chain reduction enables reduced ordered binary decision diagrams (BDDs) and
zero-suppressed binary decision diagrams (ZDDs) to each take advantage of the
others' ability to symbolically represent Boolean functions in compact form.
For any Boolean function, its chain-reduced ZDD (CZDD) representation will be
no larger than its ZDD representation, and at most twice the size of its BDD
representation. The chain-reduced BDD (CBDD) of a function will be no larger
than its BDD representation, and at most three times the size of its CZDD
representation. Extensions to the standard algorithms for operating on BDDs and
ZDDs enable them to operate on the chain-reduced versions. Experimental
evaluations on representative benchmarks for encoding word lists, solving
combinatorial problems, and operating on digital circuits indicate that chain
reduction can provide significant benefits in terms of both memory and
execution time
Binary Decision Diagrams: from Tree Compaction to Sampling
Any Boolean function corresponds with a complete full binary decision tree.
This tree can in turn be represented in a maximally compact form as a direct
acyclic graph where common subtrees are factored and shared, keeping only one
copy of each unique subtree. This yields the celebrated and widely used
structure called reduced ordered binary decision diagram (ROBDD). We propose to
revisit the classical compaction process to give a new way of enumerating
ROBDDs of a given size without considering fully expanded trees and the
compaction step. Our method also provides an unranking procedure for the set of
ROBDDs. As a by-product we get a random uniform and exhaustive sampler for
ROBDDs for a given number of variables and size
- …