2020
DOI: 10.1145/3428296
|View full text |Cite
|
Sign up to set email alerts
|

Gradual verification of recursive heap data structures

Abstract: 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 scal… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
5
0

Year Published

2020
2020
2023
2023

Publication Types

Select...
4
2
1

Relationship

0
7

Authors

Journals

citations
Cited by 13 publications
(5 citation statements)
references
References 26 publications
0
5
0
Order By: Relevance
“…The withdraw call in Figure 3 elicits this check before the termination of monthEnd in order to ensure a valid account balance, but only for the path denoted by the conditional branch. Wise et al (2020) extended gradual verification to support heap-allocated data structures using implicit dynamic frames (IDF) (Smans et al, 2009). In addition, Viper uses IDF in its implementation of static verification.…”
Section: Gradual Verifier Architecturementioning
confidence: 99%
See 2 more Smart Citations
“…The withdraw call in Figure 3 elicits this check before the termination of monthEnd in order to ensure a valid account balance, but only for the path denoted by the conditional branch. Wise et al (2020) extended gradual verification to support heap-allocated data structures using implicit dynamic frames (IDF) (Smans et al, 2009). In addition, Viper uses IDF in its implementation of static verification.…”
Section: Gradual Verifier Architecturementioning
confidence: 99%
“…In addition to previously mentioned programs, our test suite is expanded to include tests that implement failing implementations from each issue in the issue tracker. A particularly interesting and significant issue was originally caught with the formalization of Gradual Verification from Wise et al (2020) regarding the internal output of Gradual C0 after the behavior had been formalized-Footprint Splitting. In this issue, Gradual C0 was not removing information from the optimistic heap, framed by an imprecise specification, when it should.…”
Section: Tool Analysismentioning
confidence: 99%
See 1 more Smart Citation
“…Following the example of Gradual Dafny [18] and Gradual Verification [3,5,48] more generally should make testing easier. Ideally students would be able to run programs in a "test mode" where Dafny checks as many assertions, assumptions, and preand postconditions as possible dynamically.…”
Section: Experience With Dafnymentioning
confidence: 99%
“…Whereas the Dafny tool, although interactive, requires programmers to verify their whole program statically, Gradual Dafny [18] allows programmers to choose between static ("assert") and dynamic (run time "assume") verification for each invariant. Other gradual verification approaches have shown similar promise at partial verification, but with choices embodied in the tools themselves [3,45,5,48]. Coming at the problem from the other side, Müller & Ruskiewicz [41] demonstrated how standard program debuggers could be used to debug verification failures, by generating a modified program that reproduced the failure when run, and Christakis [12] integrated concolic testing tools and lower level solver debuggers into Dafny's IDE.…”
Section: Introductionmentioning
confidence: 99%