Adding Decision Procedures to SMT Solvers using Axioms with Triggers

Claire Dross 1 Sylvain Conchon 2, 3 Johannes Kanig 1 Andrei Paskevich 2, 3
2 TOCCATA - Certified Programs, Certified Tools, Certified Floating-Point Computations
LRI - Laboratoire de Recherche en Informatique, UP11 - Université Paris-Sud - Paris 11, Inria Saclay - Ile de France, CNRS - Centre National de la Recherche Scientifique : UMR8623
Abstract : 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 quantifiers, SMT solvers are incomplete and exhibit unpredictable behavior. Consequently, this approach can not provide us with a complete and terminating treatment of the theory of interest. In this paper, we propose a framework to solve this problem, based on the notion of in-stantiation patterns, also known as triggers. Triggers are annotations that suggest instances which are more likely to be useful in proof search. They are implemented in all SMT solvers that handle first-order logic and are included in the SMT-LIB format. In our framework, the user provides a theory axiomatization with triggers, along with a proof of completeness and termination properties of this axiomatization, and obtains a sound, complete, and terminating solver for her theory in return. We describe and prove a corresponding extension of the traditional Abstract DPLL Modulo Theory framework. Implementing this mechanism in a given SMT solver requires a one-time development effort. We have implemented the proposed extension in the Alt-Ergo prover and we discuss some implementation details in the paper. To show that our framework can handle complex theories, we prove completeness and termination of a feature-rich axiomatization of doubly-linked lists. Our tests show that our approach results in a better performance of the solver on goals that stem from the verification of programs manipulating doubly-linked lists and sets.
Type de document :
Article dans une revue
Journal of Automated Reasoning, Springer Verlag, 2016, 56 (4), pp.387-457. 〈10.1007/s10817-015-9352-2〉
Liste complète des métadonnées

Littérature citée [33 références]  Voir  Masquer  Télécharger

https://hal.archives-ouvertes.fr/hal-01221066
Contributeur : Andrei Paskevich <>
Soumis le : mardi 27 octobre 2015 - 13:26:48
Dernière modification le : vendredi 17 février 2017 - 16:10:21
Document(s) archivé(s) le : vendredi 28 avril 2017 - 06:21:52

Fichier

main.pdf
Fichiers produits par l'(les) auteur(s)

Licence


Copyright (Tous droits réservés)

Identifiants

Citation

Claire Dross, Sylvain Conchon, Johannes Kanig, Andrei Paskevich. Adding Decision Procedures to SMT Solvers using Axioms with Triggers. Journal of Automated Reasoning, Springer Verlag, 2016, 56 (4), pp.387-457. 〈10.1007/s10817-015-9352-2〉. 〈hal-01221066〉

Partager

Métriques

Consultations de la notice

282

Téléchargements de fichiers

133