Book Chapter10.1007/978-3-031-22308-2_18
Parameterized Recursive Refinement Types for Automated Program Verification
2
TL;DR: In this paper , the authors introduce parameterized recursive refinement types (PRRT), which are recursive datatypes parameterized by integer parameters and refinement predicates, which can be used to express various properties of data structures such as the length/sortedness of a list and the depth/size of a tree.
read more
Abstract: Refinement types have recently been applied to program verification, where program verification problems are reduced to type checking or inference problems. For fully automated verification of programs with recursive data structures, however, previous refinement type systems have not been satisfactory: they were not expressive enough to state complex properties of data, such as the length and monotonicity of a list, or required explicit declarations of precise types by users. To address the problem above, we introduce parameterized recursive refinement types (PRRT), which are recursive datatypes parameterized by integer parameters and refinement predicates; those parameters can be used to express various properties of data structures such as the length/sortedness of a list and the depth/size of a tree. We propose an automated type inference algorithm for PRRT, by a reduction to the satisfiability problem for CHCs (Constrained Horn Clauses). We have implemented a prototype verification tool and evaluated the effectiveness of the proposed method through experiments.
read more
Chat with Paper
AI Agents for this Paper
Find similar papers on Google Scholar, PubMed and Arxiv
Write a critical review of this paper
Analyze citations of this paper to find unaddressed research gaps
Citations
Automated Catamorphism Synthesis for Solving Constrained Horn Clauses over Algebraic Data Types
Hiroyuki Katsura,Naoki Kobayashi,Ken Sakayori,Ryosuke Sato,Hiroyuki Katsura,Naoki Kobayashi,Ken Sakayori,Ryosuke Sato +7 more
References
Z3: an efficient SMT solver
Leonardo de Moura,Nikolaj Bjørner +1 more
- 29 Mar 2008
TL;DR: Z3 is a new and efficient SMT Solver freely available from Microsoft Research that is used in various software verification and analysis applications.
8.2K
Horn Clause Solvers for Program Verification
Nikolaj Bjørner,Arie Gurfinkel,Kenneth L. McMillan,Andrey Rybalchenko +3 more
- 01 Jan 2015
TL;DR: The authors summarize main useful properties of Horn clauses, illustrate encodings of procedural program verification into Horn clauses and then highlight a number of useful simplification strategies at the level of Horn clause.
289
The ELDARICA Horn Solver
Hossein Hojjat,Philipp Rümmer +1 more
- 01 Oct 2018
TL;DR: This paper presents the ELDARICA version 2 model checker and describes the high-level structure of the tool and the interface that it provides to other applications, the first tool paper describing ELDarICA in its entirety.
Verifying higher-order functional programs with pattern-matching algebraic data types
C.-H. Luke Ong,Steven J. Ramsay +1 more
- 26 Jan 2011
TL;DR: This paper introduces pattern-matching recursion schemes (PMRS) as an accurate model of computation for functional programs that manipulate algebraic data-types and shows that the (trivial automaton) model-checking problem for weak PMRS is decidable.
SMT-based model checking for recursive programs
Anvesh Komuravelli,Arie Gurfinkel,Sagar Chaki +2 more
- 01 Jun 2016
TL;DR: An SMT-based symbolic model checking algorithm for safety verification of recursive programs and shows that for programs and properties over a decidable theory, the algorithm is guaranteed to find a counterexample, if one exists.
120