We gratefully acknowledge support from
the Simons Foundation and member institutions.
Full-text links:

Download:

Current browse context:

cs.PL

Change to browse by:

References & Citations

DBLP - CS Bibliography

Bookmark

(what is this?)
CiteULike logo BibSonomy logo Mendeley logo del.icio.us logo Digg logo Reddit logo

Computer Science > Programming Languages

Title: Removing Algebraic Data Types from Constrained Horn Clauses Using Difference Predicates

Authors: Emanuele De Angelis (1 and 3), Fabio Fioravanti (1), Alberto Pettorossi (2 and 3), Maurizio Proietti (3) ((1) DEC, University G. D'Annunzio, Pescara, Italy, (2) DICII, University of Rome Tor Vergata, Roma, Italy, (3) CNR-IASI, Roma, Italy)
Abstract: We address the problem of proving the satisfiability of Constrained Horn Clauses (CHCs) with Algebraic Data Types (ADTs), such as lists and trees. We propose a new technique for transforming CHCs with ADTs into CHCs where predicates are defined over basic types, such as integers and booleans, only. Thus, our technique avoids the explicit use of inductive proof rules during satisfiability proofs. The main extension over previous techniques for ADT removal is a new transformation rule, called differential replacement, which allows us to introduce auxiliary predicates corresponding to the lemmas that are often needed when making inductive proofs. We present an algorithm that uses the new rule, together with the traditional folding/unfolding transformation rules, for the automatic removal of ADTs. We prove that if the set of the transformed clauses is satisfiable, then so is the set of the original clauses. By an experimental evaluation, we show that the use of the differential replacement rule significantly improves the effectiveness of ADT removal, and we show that our transformation-based approach is competitive with respect to a well-established technique that extends the CVC4 solver with induction.
Comments: 10th International Joint Conference on Automated Reasoning (IJCAR 2020) - version with appendix; added DOI of the final authenticated Springer publication; minor corrections
Subjects: Programming Languages (cs.PL); Logic in Computer Science (cs.LO)
Journal reference: Lecture Notes in Computer Science, vol 12166. Springer, Cham, 2020, pp. 83-102
DOI: 10.1007/978-3-030-51074-9_6
Cite as: arXiv:2004.07749 [cs.PL]
  (or arXiv:2004.07749v3 [cs.PL] for this version)

Submission history

From: Alberto Pettorossi [view email]
[v1] Thu, 16 Apr 2020 16:30:17 GMT (54kb)
[v2] Mon, 6 Jul 2020 12:59:09 GMT (54kb)
[v3] Thu, 1 Oct 2020 21:24:23 GMT (54kb)

Link back to: arXiv, form interface, contact.