# Adding Decision Procedures to SMT Solvers Using Axioms with Triggers

@article{Dross2015AddingDP, title={Adding Decision Procedures to SMT Solvers Using Axioms with Triggers}, author={Claire Dross and Sylvain Conchon and Johannes Kanig and Andrei Paskevich}, journal={Journal of Automated Reasoning}, year={2015}, volume={56}, pages={387-457} }

Satisfiability modulo theories (SMT) solvers are efficient tools to decide the satisfiability of ground formulas, including a number of built-in theories such as congruence, linear arithmetic, arrays, and bit-vectors. Adding a theory to that list requires delving into the implementation details of a given SMT solver, and is done mainly by the developers of the solver itself. For many useful theories, one can alternatively provide a first-order axiomatization. However, in the presence of… Expand

#### 16 Citations

Conflicts, Models and Heuristics for Quantifier Instantiation in SMT

- Computer Science
- Vampire@IJCAR
- 2016

An overview of recent advances in quantifier instantiation in SMT is given, including the well-known technique known as E-matching, and new instantiation-based techniques that are specialized to background theories such as linear real and integer arithmetic are mentioned. Expand

New techniques for instantiation and proof production in SMT solving. (Nouvelles techniques pour l'instanciation et la production des preuves dans SMT)

- Computer Science, Philosophy
- 2017

This thesis introduces a decision procedure to solve the problem of E-ground (dis)unification, a variation of the classic rigid E-unification problem, and presents a uniform framework for reasoning with quantified formulas in SMT solvers, in which generally various instantiation techniques are employed. Expand

Variant-based satisfiability in initial algebras

- Computer Science
- Sci. Comput. Program.
- 2018

This work studies how folding variant narrowing, a generic unification algorithm that offers good extensibility in unification theory, can be extended to a generic variant-based satisfiability algorithm for the initial algebras of user-specified input theories when such theories satisfy Comon and Delaune's finite variant property (FVP) and some extra conditions. Expand

Integrating rewriting, tableau and superposition into SMT

- Computer Science
- 2019

This PhD thesis presents ArchSAT, an automated theorem prover with formal proof outputs, which is used to study the integration of some first-order reasoning methods into SMT solvers to speed up reasoning on problems whose axioms can be turned into rewrite rules. Expand

Variant-Based Satisfiability in Initial Algebras

- Mathematics, Computer Science
- FTSCS
- 2015

This work studies how folding variant narrowing, a generic unification algorithm that offers good extensibility in unification theory, can be extended to a generic variant-based satisfiability algorithm for the initial algebras of its user-specified input theories when such theories satisfy Comon-Delaune’s finite variant property (FVP) and some extra conditions. Expand

Machine Learning for Instance Selection in SMT Solving

- Computer Science
- 2019

It is proposed to use a state-of-the-art machine learning algorithm as a predictor over the generated set of instances to filter out irrelevant instances, and thus decrease the number of instances given to the ground solver. Expand

Instrumenting a weakest precondition calculus for counterexample generation

- Computer Science
- J. Log. Algebraic Methods Program.
- 2018

This work exploits the ability of SMT solvers to propose, when a proof of a formula is not found, a counter-model to produce a counterexample, exhibiting values for the variables of the program where a given part of the specification fails to be validated. Expand

Variant-Based Decidable Satisfiability in Initial Algebras with Predicates

- Computer Science, Mathematics
- LOPSTR
- 2017

A theory-generic satisfiability decision procedure, and a prototype implementation, extending variant-based satisfiability to initial algebras with user-definable predicates under fairly general conditions are presented. Expand

ESVERIFY: Verifying Dynamically-Typed Higher-Order Functional Programs by SMT Solving

- Computer Science
- IFL
- 2018

ESVERIFY, a program verifier for JavaScript based on SMT solving, supporting functional correctness properties comparable to languages with refinement and dependent function types, and a bounded quantifier instantiation algorithm that prevents matching loops and avoids ad-hoc instantiation heuristics. Expand

Metalevel algorithms for variant satisfiability

- Mathematics, Computer Science
- J. Log. Algebraic Methods Program.
- 2018

A precise definition of several meta-level sub-algorithms needed for variant satisfiability checking is given; a reflective implementation of variant Satisfiability checking using these sub-Algorithms in Maude 2.7.1 is presented. Expand

#### References

SHOWING 1-10 OF 36 REFERENCES

Reasoning with Triggers

- Computer Science, Mathematics
- SMT@IJCAR
- 2012

This paper shows how to extend a generic SMT solver to accept a custom theory description and behave as a decision procedure for that theory, provided that the described theory is complete and terminating in a precise sense. Expand

Automating Separation Logic Using SMT

- Computer Science
- CAV
- 2013

This paper presents a reduction of decidable SL fragments to a decidable first-order theory that fits well into the satisfiability modulo theories (SMT) framework and shows how to use this reduction to automate satisfiability, entailment, frame inference, and abduction problems for separation logic using SMT solvers. Expand

Efficient E-Matching for SMT Solvers

- Computer Science
- CADE
- 2007

An index that works on E-graphs is introduced, called E-matching code treesthat combine features of substitution and code trees, used in saturation based theorem provers and shows substantial performance improvements over existing state-of-the-art SMT solvers. Expand

Sets with Cardinality Constraints in Satisfiability Modulo Theories

- Computer Science
- VMCAI
- 2011

This work extends the efficient SMT solver Z3 with the ability to reason about cardinality (QFBAPA) constraints and applies it to the verification of functional programs, showing it can automatically prove formulas that no automated approach was reported to be able to prove before. Expand

Complete Instantiation for Quantified Formulas in Satisfiabiliby Modulo Theories

- Computer Science
- CAV
- 2009

This work presents several decidable fragments of first order logic modulo theories, and shows how to construct models for satisfiable formulas in these fragments. Expand

Solving Quantified Verification Conditions Using Satisfiability Modulo Theories

- Mathematics, Computer Science
- CADE
- 2007

This paper describes a methodology for reasoning about quantifiers in SMT systems and introduces the notion of instantiation level which provides an effective mechanism for prioritizing and managing the large search space inherent in quantifier instantiation techniques. Expand

Engineering Theories with Z3

- Computer Science
- APLAS
- 2011

Different theories that extend Microsoft Research's SMT solver Z3's basic support are explored, some can be directly encoded or axiomatized, others make use of user theory plug-ins. Expand

Deciding Local Theory Extensions via E-matching

- Computer Science
- CAV
- 2015

Satisfiability Modulo Theories (SMT) solvers incorporate decision procedures for theories of data types that commonly occur in software. This makes them important tools for automating verification… Expand

What's Decidable About Arrays?

- Computer Science
- VMCAI
- 2006

This work studies a decision procedure for satisfiability in an expressive fragment of a theory of arrays, which is parameterized by the theories of the array elements, and proves that satisfiability is undecidable for several natural extensions to the fragment. Expand

Automatic decidability and combinability

- Mathematics, Computer Science
- Inf. Comput.
- 2011

This paper investigates how automated provers based on a form of equational reasoning, called paramodulation, can be used in verification tools and devise a procedure to answer the following questions. Expand