2009
DOI: 10.1145/1543135.1542510
|View full text |Cite
|
Sign up to set email alerts
|

Type-based data structure verification

Abstract: We present a refinement type-based approach for the static verification of complex data structure invariants. Our approach is based on the observation that complex data structures are typically fashioned from two elements: recursion (e.g., lists and trees), and maps (e.g., arrays and hash tables). We introduce two novel type-based mechanisms targeted towards these elements: recursive refinements and polymorphic refinements. These mechanisms automate the challenging work of generalizing and instantiating rich u… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

1
37
0

Year Published

2010
2010
2022
2022

Publication Types

Select...
6
1

Relationship

2
5

Authors

Journals

citations
Cited by 23 publications
(38 citation statements)
references
References 25 publications
1
37
0
Order By: Relevance
“…We have evaluated HSOLVE over the following list of benchmarks which, in total, represent the different kinds of reasoning described in § 2. While we can prove, and previously have proved [16], many so-called "functional correctness" properties of these data structures using refinement types, in this work we focus on the key invariants which are captured by abstract refinements.…”
Section: Discussionmentioning
confidence: 99%
See 2 more Smart Citations
“…We have evaluated HSOLVE over the following list of benchmarks which, in total, represent the different kinds of reasoning described in § 2. While we can prove, and previously have proved [16], many so-called "functional correctness" properties of these data structures using refinement types, in this work we focus on the key invariants which are captured by abstract refinements.…”
Section: Discussionmentioning
confidence: 99%
“…Refinement types have been applied to the verification of a variety of program properties [26,7,2,10]. In the most closely related work to our own, Kawaguchi et al [16] introduce recursive and polymorphic refinements for data structure properties. The present work unifies and generalizes these two somewhat ad-hoc notions into a single, strictly and significantly more expressive mechanism of abstract refinements.…”
Section: Related Workmentioning
confidence: 99%
See 1 more Smart Citation
“…Vazou et al [VSJ14] apply these techniques to verify termination, memory safety, and selected functional properties of over 10,000 lines of Haskell code from realistic libraries. Kawaguchi et al [KRJ09] apply similar techniques to verify ML implementations of lists, vectors, maps, and trees. As they target quantifier-free constraints, Liquid Haskell's techniques are completely automatic: whenever they are applicable, type inference algorithms supply all the intermediate type annotations (including invariants).…”
Section: Functional Programming Languagesmentioning
confidence: 99%
“…Meanwhile, we can utilise such works as our pure solver, for example the disjunction inference [10]. Semi-automatic approaches [37,38] are also used to infer numerical constraints for given type templates in functional programs, where data structures are mostly immutable.…”
Section: Related Workmentioning
confidence: 99%