Conference paper Open Access

Gradual Verification of Recursive Heap Data Structures

Jenna Wise; Johannes Bader; Cameron Wong; Jonathan Aldrich; Éric Tanter; Joshua Sunshine

Current static verification techniques do not provide good support for incrementality, making it difficult
for developers to focus on specifying and verifying the properties and components that are most important.
Dynamic verification approaches support incrementality, but cannot provide static guarantees. To bridge
this gap, prior work proposed gradual verification, which supports incrementality by allowing every
assertion to be complete, partial, or omitted, and provides sound verification that smoothly scales from
dynamic to static checking. The prior approach to gradual verification, however, was limited to programs
without recursive data structures. This paper extends gradual verification to programs that manipulate
recursive, mutable data structures on the heap. We address several technical challenges, such as
semantically connecting iso- and equi-recursive interpretations of abstract predicates, and supporting
gradual verification of heap ownership. This work thus lays the foundation for future tools that work on
realistic programs and support verification within an engineering process in which cost-benefit trade-offs
can be made.

Files (8.2 MB)
Name Size
6.4 MB Download
1.7 MB Download
All versions This version
Views 6741
Downloads 3218
Data volume 60.3 MB36.0 MB
Unique views 4630
Unique downloads 2815


Cite as