8
views
0
recommends
+1 Recommend
0 collections
    0
    shares
      • Record: found
      • Abstract: found
      • Article: found
      Is Open Access

      Catamorphic Abstractions for Constrained Horn Clause Satisfiability

      Preprint

      Read this article at

          There is no author summary for this article yet. Authors can add summaries to their articles on ScienceOpen to make them more accessible to a non-specialist audience.

          Abstract

          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.

          Related collections

          Author and article information

          Journal
          13 August 2024
          Article
          2408.06988
          c14809de-e106-4878-b8ad-4d9cd1e92ad7

          http://arxiv.org/licenses/nonexclusive-distrib/1.0/

          History
          Custom metadata
          Under consideration in Theory and Practice of Logic Programming (TPLP)
          cs.LO cs.PL

          Theoretical computer science,Programming languages
          Theoretical computer science, Programming languages

          Comments

          Comment on this article

          Related Documents Log