Kroening D. Decision Procedures. An Algorithmic Point...2ed 2016
Download Torrent
Opens in your torrent client (e.g. qBittorrent)
Health
Dead0/0
Info Hash0AD0121EB5BFBA175E395821F1EBC60EA8FE29B0
Peers Updated7 hours ago (2026-03-28 07:58:08)
Description
Textbook in PDF format
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.
Introduction and Basic concepts
Decision Procedures for Propositional Logic
From Propositional to Quantifier-Free Theories
Equality Logic and Uninterpreted Functions
Linear Arithmetic
Bit Vectors
Arrays
Pointer Logic
Quantified Formulas
Deciding a Combination of Theories
Propositional Encodings
Applications in Software Engineering and Computational Biology