Reasoning with Propositional Knowledge: Frameworks for Boolean Satisfiability and Knowledge Compilation
     Public Defense
speaker:Knot Pipatsrisawat
occasion: May 12, 2010, 1 h 00 m
abstract: This dissertation is concerned with two fundamental problems that arise when reasoning about knowledge expressed in propositional logic. The first problem is the Boolean satisfiability problem, whereas the second problem is known as knowledge compilation. We introduce several frameworks for studying reasoning algorithms related to these problems. Based on the proposed frameworks, we derive practical algorithms for more efficient reasoning as well as theoretical results that shed lights on the strengths and limitations of various reasoning approaches. In the case of Boolean satisfiability, we propose a framework that captures the essences of the state-of-the-art algorithm for solving this problem. Based on this framework, we answer an open question by precisely characterizing the inferential power of this algorithm. Even though this algorithm has traditionally been regarded as a combinatorial search algorithm, we are able to achieve this characterization using only the language of proof complexity. We then propose two practical techniques for improving the efficiency of the algorithm from this perspective. In the case of knowledge compilation, we propose a new propositional language that could provide compact representations of propositional knowledge. This language also serves as a framework that unifies many well-known languages, including the influential ordered binary decision diagram (OBDD). We then study the new language, as well as some of its distinguished restrictions, in terms of (i) useful reasoning operations it allows and (ii) its ability to represent propositional knowledge compactly. We also introduce a framework for characterizing the sizes of Boolean functions represented in this language. We derive size lower and upper bounds that subsume existing bounds known for OBDD. We show that our bound results can be used to obtain interesting size bounds for various Boolean functions.