Loading…

Adding Decision Procedures to SMT Solvers Using Axioms with Triggers

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...

Full description

Saved in:
Bibliographic Details
Published in:Journal of automated reasoning 2016-04, Vol.56 (4), p.387-457
Main Authors: Dross, Claire, Conchon, Sylvain, Kanig, Johannes, Paskevich, Andrei
Format: Article
Language:English
Subjects:
Citations: Items that this one cites
Items that cite this one
Online Access:Get full text
Tags: Add Tag
No Tags, Be the first to tag this record!
cited_by cdi_FETCH-LOGICAL-c426t-dd13bfc571e4eab2802fdc1512139e3b5c153d830b4a238eb7e717a5ae3e87cf3
cites cdi_FETCH-LOGICAL-c426t-dd13bfc571e4eab2802fdc1512139e3b5c153d830b4a238eb7e717a5ae3e87cf3
container_end_page 457
container_issue 4
container_start_page 387
container_title Journal of automated reasoning
container_volume 56
creator Dross, Claire
Conchon, Sylvain
Kanig, Johannes
Paskevich, Andrei
description 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 instantiation 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.
doi_str_mv 10.1007/s10817-015-9352-2
format article
fullrecord <record><control><sourceid>proquest_hal_p</sourceid><recordid>TN_cdi_hal_primary_oai_HAL_hal_01221066v1</recordid><sourceformat>XML</sourceformat><sourcesystem>PC</sourcesystem><sourcerecordid>1800498515</sourcerecordid><originalsourceid>FETCH-LOGICAL-c426t-dd13bfc571e4eab2802fdc1512139e3b5c153d830b4a238eb7e717a5ae3e87cf3</originalsourceid><addsrcrecordid>eNp1kUFLAzEQhYMoWKs_wNuCFz2sziSbTXosrVqhotD2HLK72Tay3WjSVv33pqwoCJ4yJN-beZlHyDnCNQKIm4AgUaSAPB0wTlN6QHrIBUshF3BIeoC5TEXG2DE5CeEFABjCoEfGw6qy7TIZm9IG69rk2bvSVFtvQrJxyexxnsxcszM-JIuwB4cf1q1D8m43q2Tu7XIZn07JUa2bYM6-zz5Z3N3OR5N0-nT_MBpO0zKj-SatKmRFXXKBJjO6oBJoXZXIkSIbGFbwWLNKMigyTZk0hTAChebaMCNFWbM-uer6rnSjXr1da_-pnLZqMpyq_R0gpQh5vsPIXnbsq3dvWxM2am1DaZpGt8Ztg0IJkA0kjyP75OIP-uK2vo0_URRyJgVwJiOFHVV6F4I39Y8DBLXPQHUZRBNc7TNQNGpopwmRbeOqfjv_L_oCTmeG-A</addsrcrecordid><sourcetype>Open Access Repository</sourcetype><iscdi>true</iscdi><recordtype>article</recordtype><pqid>2063870538</pqid></control><display><type>article</type><title>Adding Decision Procedures to SMT Solvers Using Axioms with Triggers</title><source>Springer Nature</source><creator>Dross, Claire ; Conchon, Sylvain ; Kanig, Johannes ; Paskevich, Andrei</creator><creatorcontrib>Dross, Claire ; Conchon, Sylvain ; Kanig, Johannes ; Paskevich, Andrei</creatorcontrib><description>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 instantiation 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.</description><identifier>ISSN: 0168-7433</identifier><identifier>EISSN: 1573-0670</identifier><identifier>DOI: 10.1007/s10817-015-9352-2</identifier><language>eng</language><publisher>Dordrecht: Springer Netherlands</publisher><subject>Annotations ; Arrays ; Artificial Intelligence ; Axioms ; Completeness ; Computer Science ; Decision theory ; Handles ; Lists ; Logic ; Logic in Computer Science ; Mathematical analysis ; Mathematical Logic and Formal Languages ; Mathematical Logic and Foundations ; Program verification (computers) ; Searching ; Solvers ; Stopping ; Symbolic and Algebraic Manipulation ; Vectors (mathematics)</subject><ispartof>Journal of automated reasoning, 2016-04, Vol.56 (4), p.387-457</ispartof><rights>Springer Science+Business Media Dordrecht 2015</rights><rights>Copyright Springer Science &amp; Business Media 2016</rights><rights>Copyright</rights><lds50>peer_reviewed</lds50><oa>free_for_read</oa><woscitedreferencessubscribed>false</woscitedreferencessubscribed><citedby>FETCH-LOGICAL-c426t-dd13bfc571e4eab2802fdc1512139e3b5c153d830b4a238eb7e717a5ae3e87cf3</citedby><cites>FETCH-LOGICAL-c426t-dd13bfc571e4eab2802fdc1512139e3b5c153d830b4a238eb7e717a5ae3e87cf3</cites></display><links><openurl>$$Topenurl_article</openurl><openurlfulltext>$$Topenurlfull_article</openurlfulltext><thumbnail>$$Tsyndetics_thumb_exl</thumbnail><link.rule.ids>230,314,780,784,885,27924,27925</link.rule.ids><backlink>$$Uhttps://hal.science/hal-01221066$$DView record in HAL$$Hfree_for_read</backlink></links><search><creatorcontrib>Dross, Claire</creatorcontrib><creatorcontrib>Conchon, Sylvain</creatorcontrib><creatorcontrib>Kanig, Johannes</creatorcontrib><creatorcontrib>Paskevich, Andrei</creatorcontrib><title>Adding Decision Procedures to SMT Solvers Using Axioms with Triggers</title><title>Journal of automated reasoning</title><addtitle>J Autom Reasoning</addtitle><description>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 instantiation 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.</description><subject>Annotations</subject><subject>Arrays</subject><subject>Artificial Intelligence</subject><subject>Axioms</subject><subject>Completeness</subject><subject>Computer Science</subject><subject>Decision theory</subject><subject>Handles</subject><subject>Lists</subject><subject>Logic</subject><subject>Logic in Computer Science</subject><subject>Mathematical analysis</subject><subject>Mathematical Logic and Formal Languages</subject><subject>Mathematical Logic and Foundations</subject><subject>Program verification (computers)</subject><subject>Searching</subject><subject>Solvers</subject><subject>Stopping</subject><subject>Symbolic and Algebraic Manipulation</subject><subject>Vectors (mathematics)</subject><issn>0168-7433</issn><issn>1573-0670</issn><fulltext>true</fulltext><rsrctype>article</rsrctype><creationdate>2016</creationdate><recordtype>article</recordtype><recordid>eNp1kUFLAzEQhYMoWKs_wNuCFz2sziSbTXosrVqhotD2HLK72Tay3WjSVv33pqwoCJ4yJN-beZlHyDnCNQKIm4AgUaSAPB0wTlN6QHrIBUshF3BIeoC5TEXG2DE5CeEFABjCoEfGw6qy7TIZm9IG69rk2bvSVFtvQrJxyexxnsxcszM-JIuwB4cf1q1D8m43q2Tu7XIZn07JUa2bYM6-zz5Z3N3OR5N0-nT_MBpO0zKj-SatKmRFXXKBJjO6oBJoXZXIkSIbGFbwWLNKMigyTZk0hTAChebaMCNFWbM-uer6rnSjXr1da_-pnLZqMpyq_R0gpQh5vsPIXnbsq3dvWxM2am1DaZpGt8Ztg0IJkA0kjyP75OIP-uK2vo0_URRyJgVwJiOFHVV6F4I39Y8DBLXPQHUZRBNc7TNQNGpopwmRbeOqfjv_L_oCTmeG-A</recordid><startdate>20160401</startdate><enddate>20160401</enddate><creator>Dross, Claire</creator><creator>Conchon, Sylvain</creator><creator>Kanig, Johannes</creator><creator>Paskevich, Andrei</creator><general>Springer Netherlands</general><general>Springer Nature B.V</general><general>Springer Verlag</general><scope>AAYXX</scope><scope>CITATION</scope><scope>7SC</scope><scope>8FD</scope><scope>JQ2</scope><scope>L7M</scope><scope>L~C</scope><scope>L~D</scope><scope>1XC</scope><scope>VOOES</scope></search><sort><creationdate>20160401</creationdate><title>Adding Decision Procedures to SMT Solvers Using Axioms with Triggers</title><author>Dross, Claire ; Conchon, Sylvain ; Kanig, Johannes ; Paskevich, Andrei</author></sort><facets><frbrtype>5</frbrtype><frbrgroupid>cdi_FETCH-LOGICAL-c426t-dd13bfc571e4eab2802fdc1512139e3b5c153d830b4a238eb7e717a5ae3e87cf3</frbrgroupid><rsrctype>articles</rsrctype><prefilter>articles</prefilter><language>eng</language><creationdate>2016</creationdate><topic>Annotations</topic><topic>Arrays</topic><topic>Artificial Intelligence</topic><topic>Axioms</topic><topic>Completeness</topic><topic>Computer Science</topic><topic>Decision theory</topic><topic>Handles</topic><topic>Lists</topic><topic>Logic</topic><topic>Logic in Computer Science</topic><topic>Mathematical analysis</topic><topic>Mathematical Logic and Formal Languages</topic><topic>Mathematical Logic and Foundations</topic><topic>Program verification (computers)</topic><topic>Searching</topic><topic>Solvers</topic><topic>Stopping</topic><topic>Symbolic and Algebraic Manipulation</topic><topic>Vectors (mathematics)</topic><toplevel>peer_reviewed</toplevel><toplevel>online_resources</toplevel><creatorcontrib>Dross, Claire</creatorcontrib><creatorcontrib>Conchon, Sylvain</creatorcontrib><creatorcontrib>Kanig, Johannes</creatorcontrib><creatorcontrib>Paskevich, Andrei</creatorcontrib><collection>CrossRef</collection><collection>Computer and Information Systems Abstracts</collection><collection>Technology Research Database</collection><collection>ProQuest Computer Science Collection</collection><collection>Advanced Technologies Database with Aerospace</collection><collection>Computer and Information Systems Abstracts – Academic</collection><collection>Computer and Information Systems Abstracts Professional</collection><collection>Hyper Article en Ligne (HAL)</collection><collection>Hyper Article en Ligne (HAL) (Open Access)</collection><jtitle>Journal of automated reasoning</jtitle></facets><delivery><delcategory>Remote Search Resource</delcategory><fulltext>fulltext</fulltext></delivery><addata><au>Dross, Claire</au><au>Conchon, Sylvain</au><au>Kanig, Johannes</au><au>Paskevich, Andrei</au><format>journal</format><genre>article</genre><ristype>JOUR</ristype><atitle>Adding Decision Procedures to SMT Solvers Using Axioms with Triggers</atitle><jtitle>Journal of automated reasoning</jtitle><stitle>J Autom Reasoning</stitle><date>2016-04-01</date><risdate>2016</risdate><volume>56</volume><issue>4</issue><spage>387</spage><epage>457</epage><pages>387-457</pages><issn>0168-7433</issn><eissn>1573-0670</eissn><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 instantiation 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.</abstract><cop>Dordrecht</cop><pub>Springer Netherlands</pub><doi>10.1007/s10817-015-9352-2</doi><tpages>71</tpages><oa>free_for_read</oa></addata></record>
fulltext fulltext
identifier ISSN: 0168-7433
ispartof Journal of automated reasoning, 2016-04, Vol.56 (4), p.387-457
issn 0168-7433
1573-0670
language eng
recordid cdi_hal_primary_oai_HAL_hal_01221066v1
source Springer Nature
subjects Annotations
Arrays
Artificial Intelligence
Axioms
Completeness
Computer Science
Decision theory
Handles
Lists
Logic
Logic in Computer Science
Mathematical analysis
Mathematical Logic and Formal Languages
Mathematical Logic and Foundations
Program verification (computers)
Searching
Solvers
Stopping
Symbolic and Algebraic Manipulation
Vectors (mathematics)
title Adding Decision Procedures to SMT Solvers Using Axioms with Triggers
url http://sfxeu10.hosted.exlibrisgroup.com/loughborough?ctx_ver=Z39.88-2004&ctx_enc=info:ofi/enc:UTF-8&ctx_tim=2025-01-02T19%3A21%3A24IST&url_ver=Z39.88-2004&url_ctx_fmt=infofi/fmt:kev:mtx:ctx&rfr_id=info:sid/primo.exlibrisgroup.com:primo3-Article-proquest_hal_p&rft_val_fmt=info:ofi/fmt:kev:mtx:journal&rft.genre=article&rft.atitle=Adding%20Decision%20Procedures%20to%20SMT%20Solvers%20Using%20Axioms%20with%20Triggers&rft.jtitle=Journal%20of%20automated%20reasoning&rft.au=Dross,%20Claire&rft.date=2016-04-01&rft.volume=56&rft.issue=4&rft.spage=387&rft.epage=457&rft.pages=387-457&rft.issn=0168-7433&rft.eissn=1573-0670&rft_id=info:doi/10.1007/s10817-015-9352-2&rft_dat=%3Cproquest_hal_p%3E1800498515%3C/proquest_hal_p%3E%3Cgrp_id%3Ecdi_FETCH-LOGICAL-c426t-dd13bfc571e4eab2802fdc1512139e3b5c153d830b4a238eb7e717a5ae3e87cf3%3C/grp_id%3E%3Coa%3E%3C/oa%3E%3Curl%3E%3C/url%3E&rft_id=info:oai/&rft_pqid=2063870538&rft_id=info:pmid/&rfr_iscdi=true