Book ChapterDOI
VCC: A Practical System for Verifying Concurrent C
Ernie Cohen,Markus Dahlweid,Mark Hillebrand,Dirk Leinenbach,Michal Moskal,Thomas Santen,Wolfram Schulte,Stephan Tobies +7 more
- Vol. 5674, pp 23-42
Reads0
Chats0
TLDR
This paper motivates VCC, describes the verification methodology, the architecture of VCC is described, and the experience using VCC to verify the Microsoft Hyper-V hypervisor is reported on.Abstract:
VCC is an industrial-strength verification environment for low-level concurrent system code written in C. VCC takes a program (annotated with function contracts, state assertions, and type invariants) and attempts to prove the correctness of these annotations. It includes tools for monitoring proof attempts and constructing partial counterexample executions for failed proofs. This paper motivates VCC, describes our verification methodology, describes the architecture of VCC, and reports on our experience using VCC to verify the Microsoft Hyper-V hypervisor.read more
Citations
More filters
Journal ArticleDOI
The AutoProof Verifier: Usability by Non-Experts and on Standard Code
TL;DR: In this article, the authors present their experiences of using AutoProof in two contrasting contexts representative of non-expert usage and report their experiences and lessons learnt, from which they derive some general suggestions for furthering the development of verification tools with respect to improving their usability.
Book ChapterDOI
A formalization of the C99 standard in HOL, isabelle and Coq
Robbert Krebbers,Freek Wiedijk +1 more
TL;DR: The Formalin project as mentioned in this paper formalizes the C99 standard for the C programming language, including the C preprocessor, the C standard library, floating point arithmetic, and dirty C features like signal handling and volatile variables.
Dissertation
Verifying Concurrent Programs by Controlling Alias Interference
TL;DR: Verifying Concurrent Programs by Controlling Alias Interference is demonstrated by controlling alias interference in the following manner:
Proceedings ArticleDOI
Joogie: from Java through Jimple to Boogie
TL;DR: This paper presents a translation of Java into logic that is suitable for proving the presence of contradictions in code, and shows that the translation can be used to analyze real-world programs, and discusses some issues that arise from differences between Java code and its bytecode.
Journal ArticleDOI
Towards deductive verification of MPI programs against session types
TL;DR: In this paper, the authors annotate MPI primitives and C code with session type contracts, written in the language of a software verifier for C. Annotated code is then checked for correctness with the verifier.
References
More filters
Book ChapterDOI
Z3: an efficient SMT solver
TL;DR: Z3 is a new and efficient SMT Solver freely available from Microsoft Research that is used in various software verification and analysis applications.
Book ChapterDOI
A Temporal Logic of Nested Calls and Returns
TL;DR: This work introduces a temporal logic of calls and returns (CaRet) for specification and algorithmic verification of correctness requirements of structured programs and presents a tableau construction that reduces the model checking problem to the emptiness problem for a Buchi pushdown system.
Proceedings ArticleDOI
Separation logic: a logic for shared mutable data structures
TL;DR: An extension of Hoare logic that permits reasoning about low-level imperative programs that use shared mutable data structure is developed, including extensions that permit unrestricted address arithmetic, dynamically allocated arrays, and recursive procedures.
Book ChapterDOI
Amortised Memory Analysis Using the Depth of Data Structures
TL;DR: A related system for bounding the stack space requirements is described which uses the depth of data structures, by expressing potential in terms of maxima as well as sums, by adding extra structure to typing contexts to describe the form of the bounds.