**Decision Procedures: An Algorithmic Point of View (Texts in Theoretical Computer Science. An EATCS Series)**

| 2008-05-07 00:00:00 | | 0 | Computer Science

A decision procedure is an algorithm that, given a decision problem, terminates with a correct yes/no answer. Here, the authors focus on theories that are expressive enough to model real problems, but are still decidable. Specifically, the book concentrates on decision procedures for first-order theories that are commonly used in automated verification and reasoning, theorem-proving, compiler optimization and operations research. The techniques described in the book draw from fields such as graph theory and logic, and are routinely used in industry.

The authors introduce the basic terminology of satisfiability modulo theories and then, in separate chapters, study decision procedures for each of the following theories: propositional logic; equalities and uninterpreted functions; linear arithmetic; bit vectors; arrays; pointer logic; and quantified formulas. They also study the problem of deciding combined theories and dedicate a chapter to modern techniques based on an interplay between a SAT solver and a decision procedure for the investigated theory.

This textbook has been used to teach undergraduate and graduate courses at ETH Zurich, at the Technion, Haifa, and at the University of Oxford. Each chapter includes a detailed bibliography and exercises. Lecturers' slides and a C++ library for rapid prototyping of decision procedures are available from the authors' website.

**User review**

Exactly what I needed

I'm in the EDA business, and the book gave me exactly what I needed, and in a very accessible way, too. In my case I needed to learn about SAT and about algorithms for handling bitvectors (I will probably need arrays and pointers at some point later on, given the project I am involved in). Many of the things there I assumed I knew (I read some papers in this field and I discuss it regularly with colleagues at work. I also looked at code of a SAT solver), but reading it really organized things for me very well.

**User review**

Disappointing

I am very familiar with the field of decision procedures, but I bought this book to use it as a quick reference and a refresher in certain areas. However, when I read the book I was very disappointed. The only good thing about the book is the table of contents and the list of references. Many important results and theorems are missing. No explanations or derivations of any of the presented results are provided.

I was hoping that this book would be a good introduction (or reference) to the field of decision procedures, but unfortunately, going directly to the research papers is a much better investment of your time (and money).

The following references provide an excellent coverage of the field:

1. `Constraint Processing`, by Rina Dechter. This is an excellent reference on Constraint Solving, which is similar to decision procedures, but focuses more on finite-domain problems.

2. `Decision Procedures for Bit-Vectors, Arrays and Integers`, Ph.D. Thesis by Vijay Ganesh, 2007.

3. `Searching for Truth: Techniques for Satisfiability of Boolean Formulas`, Ph.D. Thesis by Lintao Zhang, 2003.

4. `Efficient Algorithms for Clause-Learning SAT Solvers`, M.Sc. Thesis by Lawrence Ryan, 2003.

## 0 comments:

Posting Komentar