Catamorphic Abstractions for Constrained Horn Clause Satisfiability

Fuente: arXiv
Saved in:
Bibliographic Details
Main Authors: De Angelis, Emanuele, Fioravanti, Fabio, Pettorossi, Alberto, Proietti, Maurizio
Format: Preprint
Published: 2024
Subjects:
Online Access:
Tags: Add Tag
No Tags, Be the first to tag this record!
_version_ 1866915158780018688
author De Angelis, Emanuele
Fioravanti, Fabio
Pettorossi, Alberto
Proietti, Maurizio
author_facet De Angelis, Emanuele
Fioravanti, Fabio
Pettorossi, Alberto
Proietti, Maurizio
contents Catamorphisms are functions that are recursively defined on list and trees and, in general, on Algebraic Data Types (ADTs), and are often used to compute suitable abstractions of programs that manipulate ADTs. Examples of catamorphisms include functions that compute size of lists, orderedness of lists, and height of trees. It is well known that program properties specified through catamorphisms can be proved by showing the satisfiability of suitable sets of Constrained Horn Clauses (CHCs). We address the problem of checking the satisfiability of those sets of CHCs, and we propose a method for transforming sets of CHCs into equisatisfiable sets where catamorphisms are no longer present. As a consequence, clauses with catamorphisms can be handled without extending the satisfiability algorithms used by existing CHC solvers. Through an experimental evaluation on a non-trivial benchmark consisting of many list and tree processing algorithms expressed as sets of CHCs, we show that our technique is indeed effective and significantly enhances the performance of state-of-the-art CHC solvers.
format Preprint
id arxiv_https___arxiv_org_abs_2408_06988
institution arXiv
publishDate 2024
record_format arxiv
spellingShingle Catamorphic Abstractions for Constrained Horn Clause Satisfiability
De Angelis, Emanuele
Fioravanti, Fabio
Pettorossi, Alberto
Proietti, Maurizio
Logic in Computer Science
Programming Languages
Catamorphisms are functions that are recursively defined on list and trees and, in general, on Algebraic Data Types (ADTs), and are often used to compute suitable abstractions of programs that manipulate ADTs. Examples of catamorphisms include functions that compute size of lists, orderedness of lists, and height of trees. It is well known that program properties specified through catamorphisms can be proved by showing the satisfiability of suitable sets of Constrained Horn Clauses (CHCs). We address the problem of checking the satisfiability of those sets of CHCs, and we propose a method for transforming sets of CHCs into equisatisfiable sets where catamorphisms are no longer present. As a consequence, clauses with catamorphisms can be handled without extending the satisfiability algorithms used by existing CHC solvers. Through an experimental evaluation on a non-trivial benchmark consisting of many list and tree processing algorithms expressed as sets of CHCs, we show that our technique is indeed effective and significantly enhances the performance of state-of-the-art CHC solvers.
title Catamorphic Abstractions for Constrained Horn Clause Satisfiability
topic Logic in Computer Science
Programming Languages
url https://arxiv.org/abs/2408.06988