
Decision Procedures
Description
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.
Reviews / Votes
"This is an excellent book, which I am delighted to have the chance to review. ... The text and the supporting material have been invaluable, stepping the reader through decision procedures and their combinations. ... I highly recommend the book to those interested in understanding and contributing to the world of SAT and SMT solving ... ." (Rosemary Monahan, Formal Aspects of Computing, Vol. 30 (06), November, 2018)More details
Other editions
Additional editions


Previous edition

Persons
Content
Introduction and Basic Concepts.- Decision Procedures for Propositional Logic.- From Propositional to Quantifier-Free Theories.- Equalities and Uninterpreted Functions.- Linear Arithmetic.- Bit Vectors.- Arrays.- Pointer Logic.- Quantified Formulas.- Deciding a Combination of Theories.- Propositional Encodings.- Applications in Software Engineering.- SMT-LIB 2.0: A Brief Tutorial.- A C++ Library for Developing Decision Procedures.