{"product_id":"decision-procedures-an-algorithmic-point-of-view-hardcover","title":"Decision Procedures: An Algorithmic Point of View - Hardcover","description":"\u003cdiv\u003e\u003cp style=\"text-align: right;\"\u003e\u003ca href=\"https:\/\/reportcopyrightinfringement.com\/\" target=\"_blank\" rel=\"nofollow\"\u003e\u003cb\u003eReport copyright infringement\u003c\/b\u003e\u003c\/a\u003e\u003c\/p\u003e\u003c\/div\u003e\u003cp\u003eby \u003cb\u003eDaniel Kroening\u003c\/b\u003e (Author), \u003cb\u003eOfer Strichman\u003c\/b\u003e (Author)\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003eA 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. \u003c\/p\u003e \u003cp\u003eThe 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.\u003c\/p\u003e \u003cp\u003eThis 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.\u003c\/p\u003e\u003ch3\u003eBack Jacket\u003c\/h3\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003eA 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.\u003c\/p\u003e\u003cp\u003eThe authors introduce the basic terminology of SAT, Satisfiability Modulo Theories (SMT) and the DPLL(\u003ci\u003eT\u003c\/i\u003e) 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.\u003c\/p\u003e\u003cp\u003eThe 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(\u003ci\u003eT\u003c\/i\u003e) 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\u003cem\u003eø\u003c\/em\u003erner and Leonardo de Moura, and Hillel Kugler, respectively.\u003c\/p\u003e\u003cp\u003eEach 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.\u003c\/p\u003e\u003ch3\u003eAuthor Biography\u003c\/h3\u003e\u003cp\u003eDaniel 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.\u003c\/p\u003e\n            \u003cdiv\u003e\n\u003cstrong\u003eNumber of Pages:\u003c\/strong\u003e 356\u003c\/div\u003e\n            \u003cdiv\u003e\n\u003cstrong\u003eDimensions:\u003c\/strong\u003e 0.88 x 9.21 x 6.14 IN\u003c\/div\u003e\n            \u003cdiv\u003e\n\u003cstrong\u003eIllustrated:\u003c\/strong\u003e Yes\u003c\/div\u003e\n            \u003cdiv\u003e\n\u003cstrong\u003ePublication Date:\u003c\/strong\u003e January 27, 2017\u003c\/div\u003e\n            ","brand":"BooksCloud","offers":[{"title":"Default Title","offer_id":52493324779827,"sku":"9783662504963","price":152.78,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0300\/5595\/6612\/files\/SGFsTWh6S2JvSEJsUUdhQTV2WkZIQT09.webp?v=1759949860","url":"https:\/\/www.vysn.com\/en-ca\/products\/decision-procedures-an-algorithmic-point-of-view-hardcover","provider":"VYSN","version":"1.0","type":"link"}