Skip to main content
  • Textbook
  • © 2016

Decision Procedures

An Algorithmic Point of View

Authors:

(view affiliations)
  • New edition of successful textbook

  • Authors have expanded the chapter on propositional encodings, added further modern SAT heuristics, and added a chapter on the application of SMT for software engineering in industry

  • Suitable for advanced undergraduate and graduate students and researchers in theoretical computer science and software engineering

  • Includes supplementary material: sn.pub/extras

Buying options

eBook
USD 44.99
Price excludes VAT (USA)
  • ISBN: 978-3-662-50497-0
  • Instant PDF download
  • Readable on all devices
  • Own it forever
  • Exclusive offer for individuals only
  • Tax calculation will be finalised during checkout
Softcover Book
USD 59.99
Price excludes VAT (USA)
Hardcover Book
USD 89.99
Price excludes VAT (USA)

This is a preview of subscription content, access via your institution.

Table of contents (12 chapters)

  1. Front Matter

    Pages I-XXI
  2. Introduction and Basic concepts

    • Daniel Kroening, Ofer Strichman
    Pages 1-25
  3. Decision Procedures for Propositional Logic

    • Daniel Kroening, Ofer Strichman
    Pages 27-58
  4. From Propositional to Quantifier-Free Theories

    • Daniel Kroening, Ofer Strichman
    Pages 59-76
  5. Equality Logic and Uninterpreted Functions

    • Daniel Kroening, Ofer Strichman
    Pages 77-95
  6. Linear Arithmetic

    • Daniel Kroening, Ofer Strichman
    Pages 97-133
  7. Bit Vectors

    • Daniel Kroening, Ofer Strichman
    Pages 135-156
  8. Arrays

    • Daniel Kroening, Ofer Strichman
    Pages 157-172
  9. Pointer Logic

    • Daniel Kroening, Ofer Strichman
    Pages 173-198
  10. Quantified Formulas

    • Daniel Kroening, Ofer Strichman
    Pages 199-227
  11. Deciding a Combination of Theories

    • Daniel Kroening, Ofer Strichman
    Pages 229-244
  12. Propositional Encodings

    • Daniel Kroening, Ofer Strichman
    Pages 245-280
  13. Applications in Software Engineering and Computational Biology

    • Daniel Kroening, Ofer Strichman
    Pages 281-307
  14. Back Matter

    Pages 309-356

About this book

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 SAT, Satisfiability Modulo Theories (SMT) and the DPLL(T) framework. Then, in separate chapters, they study decision procedures for 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 based on the Nelson-Oppen procedure.

The first edition of this book was adopted as a textbook in courses worldwide. It was published in 2008 and the field now called SMT was then in its infancy, without the standard terminology and canonic algorithms it has now; this second edition reflects these changes. It brings forward the DPLL(T) framework. It also expands the SAT chapter with modern SAT heuristics, and includes a new section about incremental satisfiability, and the related Constraints Satisfaction Problem (CSP).  The chapter about quantifiers was expanded with a new section about general quantification using E-matching and a section about Effectively Propositional Reasoning (EPR). The book also includes a new chapter on the application of SMT in industrial software engineering and in computational biology, coauthored by Nikolaj Bjørner and Leonardo de Moura, and Hillel Kugler, respectively.

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.

Keywords

  • Decision Procedures
  • Propositional Logic
  • Pointer Logic
  • Boolean Satisfiability Solver (SAT)
  • Quantified Formulas
  • Satisfiability Modulo Theories (SMT)
  • Constraint Satisfaction Problem (CSP)

Reviews

“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)

Authors and Affiliations

  • Computing Laboratory, University of Oxford, Oxford, United Kingdom

    Daniel Kroening

  • William Davidson Faculty of Industrial Engineering and Management, Technion - Israel Institute of Technology, Haifa, Israel

    Ofer Strichman

About the authors

Daniel Kroening is a professor in the Dept. of Computer Science at the University of Oxford; his interests include automated verification, software engineering, and programming languages. Ofer Strichman is a professor in the faculty of industrial engineering and management at the Technion; his research interests include formal verification of software and hardware, and decision procedures for fragments of first-order logic.

Bibliographic Information

  • Book Title: Decision Procedures

  • Book Subtitle: An Algorithmic Point of View

  • Authors: Daniel Kroening, Ofer Strichman

  • Series Title: Texts in Theoretical Computer Science. An EATCS Series

  • DOI: https://doi.org/10.1007/978-3-662-50497-0

  • Publisher: Springer Berlin, Heidelberg

  • eBook Packages: Computer Science, Computer Science (R0)

  • Copyright Information: Springer-Verlag Berlin Heidelberg 2016

  • Hardcover ISBN: 978-3-662-50496-3

  • Softcover ISBN: 978-3-662-57065-4

  • eBook ISBN: 978-3-662-50497-0

  • Series ISSN: 1862-4499

  • Series E-ISSN: 1862-4502

  • Edition Number: 2

  • Number of Pages: XXI, 356

  • Number of Illustrations: 59 b/w illustrations, 5 illustrations in colour

  • Topics: Theory of Computation, Software Engineering, Optimization

Buying options

eBook
USD 44.99
Price excludes VAT (USA)
  • ISBN: 978-3-662-50497-0
  • Instant PDF download
  • Readable on all devices
  • Own it forever
  • Exclusive offer for individuals only
  • Tax calculation will be finalised during checkout
Softcover Book
USD 59.99
Price excludes VAT (USA)
Hardcover Book
USD 89.99
Price excludes VAT (USA)