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

11/23/2021
by   Emanuele De Angelis, et al.
0

We address the problem of checking the satisfiability of Constrained Horn Clauses (CHCs) defined on Algebraic Data Types (ADTs), such as lists and trees. We propose a new technique for transforming CHCs defined on ADTs into CHCs where the arguments of the predicates have only basic types, such as integers and booleans. Thus, our technique avoids, during satisfiability checking, the explicit use of proof rules based on induction over the ADTs. The main extension over previous techniques for ADT removal is a new transformation rule, called differential replacement, which allows us to introduce auxiliary predicates, whose definitions correspond to lemmas that are used when making inductive proofs. We present an algorithm that performs the automatic removal of ADTs by applying the new rule, together with the traditional folding/unfolding rules. We prove that, under suitable hypotheses, the set of the transformed clauses is satisfiable if and only if so is the set of the original clauses. By an experimental evaluation, we show that the use of the new rule significantly improves the effectiveness of ADT removal. We also show that our approach is competitive with respect to tools that extend CHC solvers with the use of inductive rules.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
04/16/2020

Removing Algebraic Data Types from Constrained Horn Clauses Using Difference Predicates

We address the problem of proving the satisfiability of Constrained Horn...
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
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
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/04/2017

Predicate Pairing for Program Verification

It is well-known that the verification of partial correctness properties...
research
06/29/2023

Exploiting Strict Constraints in the Cylindrical Algebraic Covering

One of the few available complete methods for checking the satisfiabilit...

Please sign up or login with your details

Forgot password? Click here to reset