Decision Procedures: An Algorithmic Point of View

Front Cover
Springer Science & Business Media, May 23, 2008 - Computers - 306 pages

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.

 

Contents

Introduction and Basic Concepts
1
Decision Procedures for Propositional Logic 25
24
Equality Logic and Uninterpreted Functions
59
Decision Procedures for Equality Logic and Uninterpreted
81
Linear Arithmetic
111
Bit Vectors 149
148
Arrays
171
Pointer Logic
181
Quantified Formulas
207
Deciding a Combination of Theories
225
Propositional Encodings 241
240
A The SMTLIB Initiative
269
References 285
284
Index
299
Copyright

Other editions - View all

Common terms and phrases

Popular passages

Page 284 - C. Barrett, D. Dill, and J. Levitt. Validity checking for combinations of theories with equality.
Page 284 - A. Armando and E. Giunchiglia. Embedding complex decision procedures inside an interactive theorem prover. Annals of Mathematics and Artificial Intelligence, 8(3-4):475-502, 1993.

Bibliographic information