Removing Algebraic Data Types from Constrained Horn Clauses Using Difference Predicates

04/16/2020
by   Emanuele De Angelis, et al.
0

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.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
11/23/2021

Satisfiability of Constrained Horn Clauses on Algebraic Data Types: A Transformation-based Approach

We address the problem of checking the satisfiability of Constrained Hor...
research
04/24/2018

Solving Horn Clauses on Inductive Data Types Without Induction

We address the problem of verifying the satisfiability of Constrained Ho...
research
11/28/2022

Multiple Query Satisfiability of Constrained Horn Clauses

We address the problem of checking the satisfiability of a set of constr...
research
05/12/2022

Verifying Catamorphism-Based Contracts using Constrained Horn Clauses

We address the problem of verifying that the functions of a program meet...
research
08/20/2019

Lemma Generation for Horn Clause Satisfiability: A Preliminary Study

It is known that the verification of imperative, functional, and logic p...
research
12/22/2022

Towards Mechanised Proofs in Double-Pushout Graph Transformation

We formalise the basics of the double-pushout approach to graph transfor...
research
09/13/2018

A Simple Functional Presentation and an Inductive Correctness Proof of the Horn Algorithm

We present a recursive formulation of the Horn algorithm for deciding th...

Please sign up or login with your details

Forgot password? Click here to reset