Proceedings of the 30th ACM SIGPLAN Conference on Programming Language Design and Implementation 2009
DOI: 10.1145/1542476.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
36
0

Year Published

2010
2010
2022
2022

Publication Types

Select...
5
1
1

Relationship

1
6

Authors

Journals

citations
Cited by 68 publications
(37 citation statements)
references
References 19 publications
1
36
0
Order By: Relevance
“…Liquid Type Inference Finally, we use liquid type inference to infer refinement types and thus automatically discover data structure invariants. This step is similar to previous work [29,20]; we give a brief outline here. As before, we observe that our type checking rules encode an algorithm for type inference and so we perform type inference by attempting to produce a type derivation.…”
Section: Type Inferencementioning
confidence: 77%
See 3 more Smart Citations
“…Liquid Type Inference Finally, we use liquid type inference to infer refinement types and thus automatically discover data structure invariants. This step is similar to previous work [29,20]; we give a brief outline here. As before, we observe that our type checking rules encode an algorithm for type inference and so we perform type inference by attempting to produce a type derivation.…”
Section: Type Inferencementioning
confidence: 77%
“…ATS [35] combines linear types with stateful views and explicit programmer-provided proof terms to specify and verify safety properties of an imperative language. In contrast to the above, we have previously demonstrated [29,20] that for high-level languages the abstract interpretation enabled by Liquid Types can drastically reduce the annotations and automate verification. Our work brings those benefits to the low-level, imperative setting.…”
Section: Related Workmentioning
confidence: 92%
See 2 more Smart Citations
“…There are several studies [5,10,11,21,[24][25][26][27][28] that aim to infer dependent types for higher-order programs with recursive data structures. Rondon et al's liquid type inference [11,21] is a semi-automated verification method that requires users to provide templates of predicates, called logical qualifiers.…”
Section: Verification Of Higher-order Programs With Recursive Data Stmentioning
confidence: 99%