Lemma Generation for Horn Clause Satisfiability: A Preliminary Study

08/20/2019
by   Emanuele De Angelis, et al.
0

It is known that the verification of imperative, functional, and logic programs can be reduced to the satisfiability of constrained Horn clauses (CHCs), and this satisfiability check can be performed by using CHC solvers, such as Eldarica and Z3. These solvers perform well when they act on simple constraint theories, such as Linear Integer Arithmetic and the theory of Booleans, but their efficacy is very much reduced when the clauses refer to constraints on inductively defined structures, such as lists or trees. Recently, we have presented a transformation technique for eliminating those inductively defined data structures, and hence avoiding the need for incorporating induction principles into CHC solvers. However, this technique may fail when the transformation requires the use of lemmata whose generation needs ingenuity. In this paper we show, through an example, how during the process of transforming CHCs for eliminating inductively defined structures one can introduce suitable predicates, called difference predicates, whose definitions correspond to the lemmata to be introduced. Through a second example, we show that, whenever difference predicates cannot be introduced, we can introduce, instead, auxiliary queries which also correspond to lemmata, and the proof of these lemmata can be done by showing the satisfiability of those queries.

READ FULL TEXT

page 1

page 2

page 3

page 4

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
07/09/2019

Proving Properties of Sorting Programs: A Case Study in Horn Clause Verification

The proof of a program property can be reduced to the proof of satisfiab...
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
08/07/2020

Transformational Verification of Quicksort

Many transformation techniques developed for constraint logic programs, ...
research
08/04/2017

Predicate Pairing for Program Verification

It is well-known that the verification of partial correctness properties...
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
06/05/2014

On the satisfiability problem for SPARQL patterns

The satisfiability problem for SPARQL patterns is undecidable in general...

Please sign up or login with your details

Forgot password? Click here to reset