Published online by Cambridge University Press: 01 June 2011
The solution of Boolean equations is arguably the most fundamental problem arising in the theory of Boolean functions. Actually, the quote at the beginning of Chapter 1 shows that an important aspect of Boole's original research program was essentially to reduce logic to the solution of Boolean equations. Although his hopes eventually proved overly optimistic, it will become clear in subsequent chapters of this book that Boolean equations often arise as subproblems to be solved in the course of tackling more complex problems. Therefore, their solution is a cornerstone of many Boolean algorithms.
In this chapter, we present some representative models involving Boolean equations and describe various algorithmic procedures for their solution: branching, variable elimination, the consensus method, and mathematical programming approaches. In view of the importance of this topic, we spend quite a lot of time discussing the details of classical procedures, their interrelations, respective merits, and complexity. In the last section, we generalize the basic consistency-testing problem in several ways: We examine the problems of counting and of generating all solutions of a Boolean equation and briefly discuss the maximum satisfiability (Max Sat) problem.
Definitions and applications
Definition 2.1.A Boolean equation is an equation of the form ϕ(X) = ψ(X), where X = (x1,x2,…, xn) is a vector of Boolean variables, and ϕ,ψ are Boolean expressions in these variables. A solution of the equation is a point X* ∈ Bn such that ϕ(X*) = ψ(X*).