“…Even the problems in which decisions are not Boolean often exhibit a rich Boolean structure, and their resolution involves Boolean reasoning. For instance in software verification [22,30,67] problems tend to be formulated as complex Boolean combinations of simple (e.g., numerical) constraints: the Boolean structure encodes the control flow of the program, and the numerical relations encode the basic operations (increment, assignment of integer variables, addition, etc.). But disjunctions, implications, and other logical combinations of constraints are in fact present in all other areas of applications: from disjunctive scheduling and resource allocation to configuration or computational biology.…”