{"title":"Saturating Sorting without Sorts","authors":"Pamina Georgiou, Márton Hajdu, Laura Kovács","doi":"arxiv-2403.03712","DOIUrl":null,"url":null,"abstract":"We present a first-order theorem proving framework for establishing the\ncorrectness of functional programs implementing sorting algorithms with\nrecursive data structures. We formalize the semantics of recursive programs in many-sorted first-order\nlogic and integrate sortedness/permutation properties within our first-order\nformalization. Rather than focusing on sorting lists of elements of specific\nfirst-order theories, such as integer arithmetic, our list formalization relies\non a sort parameter abstracting (arithmetic) theories and hence concrete sorts.\nWe formalize the permutation property of lists in first-order logic so that we\nautomatically prove verification conditions of such algorithms purely by\nsuperpositon-based first-order reasoning. Doing so, we adjust recent efforts\nfor automating inducion in saturation. We advocate a compositional approach for\nautomating proofs by induction required to verify functional programs\nimplementing and preserving sorting and permutation properties over\nparameterized list structures. Our work turns saturation-based first-order\ntheorem proving into an automated verification engine by (i) guiding automated\ninductive reasoning with manual proof splits and (ii) fully automating\ninductive reasoning in saturation. We showcase the applicability of our\nframework over recursive sorting algorithms, including Mergesort and Quicksort.","PeriodicalId":501033,"journal":{"name":"arXiv - CS - Symbolic Computation","volume":"54 1","pages":""},"PeriodicalIF":0.0000,"publicationDate":"2024-03-06","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"arXiv - CS - Symbolic Computation","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/arxiv-2403.03712","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 0
Abstract
We present a first-order theorem proving framework for establishing the
correctness of functional programs implementing sorting algorithms with
recursive data structures. We formalize the semantics of recursive programs in many-sorted first-order
logic and integrate sortedness/permutation properties within our first-order
formalization. Rather than focusing on sorting lists of elements of specific
first-order theories, such as integer arithmetic, our list formalization relies
on a sort parameter abstracting (arithmetic) theories and hence concrete sorts.
We formalize the permutation property of lists in first-order logic so that we
automatically prove verification conditions of such algorithms purely by
superpositon-based first-order reasoning. Doing so, we adjust recent efforts
for automating inducion in saturation. We advocate a compositional approach for
automating proofs by induction required to verify functional programs
implementing and preserving sorting and permutation properties over
parameterized list structures. Our work turns saturation-based first-order
theorem proving into an automated verification engine by (i) guiding automated
inductive reasoning with manual proof splits and (ii) fully automating
inductive reasoning in saturation. We showcase the applicability of our
framework over recursive sorting algorithms, including Mergesort and Quicksort.