Pragmatic equivalence and safety checking in Cryptol
Proceedings of the 3rd workshop on Programming languages meets program verification
A theory-based decision heuristic for DPLL(T)
Proceedings of the 2008 International Conference on Formal Methods in Computer-Aided Design
Boolector: An Efficient SMT Solver for Bit-Vectors and Arrays
TACAS '09 Proceedings of the 15th International Conference on Tools and Algorithms for the Construction and Analysis of Systems: Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2009,
High assurance programming in Cryptol
Proceedings of the 5th Annual Workshop on Cyber Security and Information Intelligence Research: Cyber Security and Information Intelligence Challenges and Strategies
Automated deduction for verification
ACM Computing Surveys (CSUR)
Proceedings of the the 7th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering
Volume Computation for Boolean Combination of Linear Arithmetic Constraints
CADE-22 Proceedings of the 22nd International Conference on Automated Deduction
Proceedings of the 46th Annual Design Automation Conference
On Teaching Formal Methods: Behavior Models and Code Analysis
TFM '09 Proceedings of the 2nd International Conference on Teaching Formal Methods
Efficient generation of craig interpolants in satisfiability modulo theories
ACM Transactions on Computational Logic (TOCL)
Symbolic heap abstraction with demand-driven axiomatization of memory invariants
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
Theory-specific automated reasoning
A 25-year perspective on logic programming
Automatically inferring quantified loop invariants by algorithmic learning from simple templates
APLAS'10 Proceedings of the 8th Asian conference on Programming languages and systems
Bakar Kiasan: flexible contract checking for critical systems using symbolic execution
NFM'11 Proceedings of the Third international conference on NASA Formal methods
CORAL: solving complex constraints for symbolic pathfinder
NFM'11 Proceedings of the Third international conference on NASA Formal methods
Predicate generation for learning-based quantifier-free loop invariant inference
TACAS'11/ETAPS'11 Proceedings of the 17th international conference on Tools and algorithms for the construction and analysis of systems: part of the joint European conferences on theory and practice of software
Efficient Generation of Stimuli for Functional Verification by Backjumping Across Extended FSMs
Journal of Electronic Testing: Theory and Applications
Integrating ICP and LRA solvers for deciding nonlinear real arithmetic problems
Proceedings of the 2010 Conference on Formal Methods in Computer-Aided Design
On software verification for sensor nodes
Journal of Systems and Software
Some results on Parametric Temporal Logic
Information Processing Letters
A quantifier elimination algorithm for linear modular equations and disequations
CAV'11 Proceedings of the 23rd international conference on Computer aided verification
Virtual substitution for SMT-solving
FCT'11 Proceedings of the 18th international conference on Fundamentals of computation theory
Past time LTL runtime verification for microcontroller binary code
FMICS'11 Proceedings of the 16th international conference on Formal methods for industrial critical systems
Precise control flow reconstruction using boolean logic
EMSOFT '11 Proceedings of the ninth ACM international conference on Embedded software
Enhancing spark's contract checking facilities using symbolic execution
SIGAda '11 Proceedings of the 2011 ACM annual international conference on Special interest group on the ada programming language
Deriving invariants by algorithmic learning, decision procedures, and predicate abstraction
VMCAI'10 Proceedings of the 11th international conference on Verification, Model Checking, and Abstract Interpretation
Algebraic approach to arithmetic design verification
Proceedings of the International Conference on Formal Methods in Computer-Aided Design
ESOP'10 Proceedings of the 19th European conference on Programming Languages and Systems
An alternative to SAT-Based approaches for bit-vectors
TACAS'10 Proceedings of the 16th international conference on Tools and Algorithms for the Construction and Analysis of Systems
Extending coq with imperative features and its application to SAT verification
ITP'10 Proceedings of the First international conference on Interactive Theorem Proving
Fast LCF-Style proof reconstruction for z3
ITP'10 Proceedings of the First international conference on Interactive Theorem Proving
Reconstruction of z3's bit-vector proofs in HOL4 and Isabelle/HOL
CPP'11 Proceedings of the First international conference on Certified Programs and Proofs
Decision procedures for region logic
VMCAI'12 Proceedings of the 13th international conference on Verification, Model Checking, and Abstract Interpretation
Experience of improving the blast static verification tool
Programming and Computing Software
FDCC: a combined approach for solving constraints over finite domains and arrays
CPAIOR'12 Proceedings of the 9th international conference on Integration of AI and OR Techniques in Constraint Programming for Combinatorial Optimization Problems
A simplex-based extension of fourier-motzkin for solving linear integer arithmetic
IJCAR'12 Proceedings of the 6th international joint conference on Automated Reasoning
EPR-based bounded model checking at word level
IJCAR'12 Proceedings of the 6th international joint conference on Automated Reasoning
δ-complete decision procedures for satisfiability over the reals
IJCAR'12 Proceedings of the 6th international joint conference on Automated Reasoning
Learning boolean functions incrementally
CAV'12 Proceedings of the 24th international conference on Computer Aided Verification
Implicative simultaneous satisfiability and applications
HVC'11 Proceedings of the 7th international Haifa Verification conference on Hardware and Software: verification and testing
Preface to the special issue "SI: Satisfiability Modulo Theories"
Formal Methods in System Design
Extending quantifier elimination to linear inequalities on bit-vectors
TACAS'13 Proceedings of the 19th international conference on Tools and Algorithms for the Construction and Analysis of Systems
Local Reasoning for Global Invariants, Part II: Dynamic Boundaries
Journal of the ACM (JACM)
JST: an automatic test generation tool for industrial Java applications with strings
Proceedings of the 2013 International Conference on Software Engineering
Loop invariants: Analysis, classification, and examples
ACM Computing Surveys (CSUR)
Solving difference constraints over modular arithmetic
CADE'13 Proceedings of the 24th international conference on Automated Deduction
Runtime verification of microcontroller binary code
Science of Computer Programming
Hi-index | 0.00 |
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.