2011
DOI: 10.1007/978-3-642-20398-5_4
|View full text |Cite
|
Sign up to set email alerts
|

VeriFast: A Powerful, Sound, Predictable, Fast Verifier for C and Java

Abstract: VeriFast is a prototype verification tool for single-threaded and multithreaded C and Java programs. In this paper, we first describe the basic symbolic execution approach in some formal detail. Then we zoom in on two technical aspects: the approach to permission accounting, including fractional permissions, precise predicates, and counting permissions; and the approach to lemma function termination in the presence of dynamically-bound lemma function calls. Finally, we describe three ongoing efforts: applicati… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1
1

Citation Types

0
248
0

Year Published

2014
2014
2019
2019

Publication Types

Select...
7
2

Relationship

0
9

Authors

Journals

citations
Cited by 287 publications
(271 citation statements)
references
References 6 publications
0
248
0
Order By: Relevance
“…To the best of our knowledge, our method so far is the only one that uses Dynamic Frames in the explicit form with permissions [1] and in this paper we have shown the necessary extensions and modifications to the Java Dynamic Logic (JDL) used in the KeY verifier to build a fully functional verification system for this combination. The existing approaches to (fractional) permissionbased reasoning with functional tools are based on Separation Logic (SL) [2] or Implicit Dynamic Frames (IDF) [4], e.g., our own VerCors toolset [5,18], VeriFast [25], Silicon [26], or Chalice [3].…”
Section: Discussionmentioning
confidence: 99%
See 1 more Smart Citation
“…To the best of our knowledge, our method so far is the only one that uses Dynamic Frames in the explicit form with permissions [1] and in this paper we have shown the necessary extensions and modifications to the Java Dynamic Logic (JDL) used in the KeY verifier to build a fully functional verification system for this combination. The existing approaches to (fractional) permissionbased reasoning with functional tools are based on Separation Logic (SL) [2] or Implicit Dynamic Frames (IDF) [4], e.g., our own VerCors toolset [5,18], VeriFast [25], Silicon [26], or Chalice [3].…”
Section: Discussionmentioning
confidence: 99%
“…Our client code (ls. [24][25] specifies that in the locked state it holds a complete write permission to val, while in the unlocked state it holds no permission at all. Note that in this case these two are not the binary opposites of each other, hence the need for the locked parameter in status.…”
Section: Modular Specifications For Synchronisersmentioning
confidence: 99%
“…ProB [23] is an animator and model checker for B specifications that can detect deadlocks and invariant violations. The Verifast tool [24] provides support for verifying fractional permissions in a similar fashion to Plural. Validating temporal properties of software has been proposed in [25] and applied to Windows NT drivers.…”
Section: Related Workmentioning
confidence: 99%
“…These connectives support modularity, though they complicate proof theory (they cannot be axiomatized [15]). Tools that support separation logic for static verification of programs include: VeriFAST [42], jStar [26], Slayer [11] and Smallfoot [10].…”
Section: Context-free Grammarsmentioning
confidence: 99%