Emanuele De AngelisIASI-CNR, Rome, Italy, Fabio FioravantiDEc, University 'G. d'Annunzio', Chieti-Pescara, Italy, Alberto PettorossiDICII, University of Rome 'Tor Vergata', Italy, Maurizio ProiettiIASI-CNR, Rome, Italy
{"title":"Catamorphic Abstractions for Constrained Horn Clause Satisfiability","authors":"Emanuele De AngelisIASI-CNR, Rome, Italy, Fabio FioravantiDEc, University 'G. d'Annunzio', Chieti-Pescara, Italy, Alberto PettorossiDICII, University of Rome 'Tor Vergata', Italy, Maurizio ProiettiIASI-CNR, Rome, Italy","doi":"arxiv-2408.06988","DOIUrl":null,"url":null,"abstract":"Catamorphisms are functions that are recursively defined on list and trees\nand, in general, on Algebraic Data Types (ADTs), and are often used to compute\nsuitable abstractions of programs that manipulate ADTs. Examples of\ncatamorphisms include functions that compute size of lists, orderedness of\nlists, and height of trees. It is well known that program properties specified\nthrough catamorphisms can be proved by showing the satisfiability of suitable\nsets of Constrained Horn Clauses (CHCs). We address the problem of checking the\nsatisfiability of those sets of CHCs, and we propose a method for transforming\nsets of CHCs into equisatisfiable sets where catamorphisms are no longer\npresent. As a consequence, clauses with catamorphisms can be handled without\nextending the satisfiability algorithms used by existing CHC solvers. Through\nan experimental evaluation on a non-trivial benchmark consisting of many list\nand tree processing algorithms expressed as sets of CHCs, we show that our\ntechnique is indeed effective and significantly enhances the performance of\nstate-of-the-art CHC solvers.","PeriodicalId":501197,"journal":{"name":"arXiv - CS - Programming Languages","volume":null,"pages":null},"PeriodicalIF":0.0000,"publicationDate":"2024-08-13","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"arXiv - CS - Programming Languages","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/arxiv-2408.06988","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 0
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.