2022
DOI: 10.1017/s1471068422000175
|View full text |Cite
|
Sign up to set email alerts
|

Verifying Catamorphism-Based Contracts using Constrained Horn Clauses

Abstract: We address the problem of verifying that the functions of a program meet their contracts, specified by pre/postconditions. We follow an approach based on constrained Horn clauses (CHCs) by which the verification problem is reduced to the problem of checking satisfiability of a set of clauses derived from the given program and contracts. We consider programs that manipulate algebraic data types (ADTs) and a class of contracts specified by catamorphisms, that is, functions defined by simple recursion schemata on… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
7
0

Year Published

2022
2022
2024
2024

Publication Types

Select...
4
2

Relationship

1
5

Authors

Journals

citations
Cited by 11 publications
(7 citation statements)
references
References 39 publications
0
7
0
Order By: Relevance
“…Our technique is based on the translation of the program functions and their contracts for which STAINLESS is not successful, into a set of constrained Horn clauses (CHCs) [5,13]. Then, in the case where programs manipulate Algebraic Data Structures, those clauses are transformed by VeriCaT [9], so that their satisfiability can hopefully be proved by SPACER (or a different CHC solver) in the domain of integers and/or booleans. If satisfiability is proved and a model for those clauses is found (which is defined by constraints on integers and/or booleans), then via a final translation step, we derive from that model suitable strengthened postconditions for the contracts.…”
Section: Discussionmentioning
confidence: 99%
See 4 more Smart Citations
“…Our technique is based on the translation of the program functions and their contracts for which STAINLESS is not successful, into a set of constrained Horn clauses (CHCs) [5,13]. Then, in the case where programs manipulate Algebraic Data Structures, those clauses are transformed by VeriCaT [9], so that their satisfiability can hopefully be proved by SPACER (or a different CHC solver) in the domain of integers and/or booleans. If satisfiability is proved and a model for those clauses is found (which is defined by constraints on integers and/or booleans), then via a final translation step, we derive from that model suitable strengthened postconditions for the contracts.…”
Section: Discussionmentioning
confidence: 99%
“…Then, we proceed according to Step (ii) of our technique, which consists in applying a transformation that removes all ADT terms from ReverseCHCs. Indeed, we apply Algorithm T cata [9], implemented in the VeriCaT tool, and we get the new set TransfReverseCHCs of clauses (see Figure 3), whose satisfibility implies the satisfiability of the set ReverseCHCs. In particular, starting from goal GR, by transformation we obtain clauses T1-T5, and starting goal GS, by transformation we obtain clauses T6-T8.…”
Section: Verifying Contracts Via Chc Satisfiabilitymentioning
confidence: 99%
See 3 more Smart Citations