scispace - formally typeset
Book ChapterDOI

VCC: A Practical System for Verifying Concurrent C

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

Content maybe subject to copyright    Report

Citations
More filters

Theory and Implementation of Software Bounded Model Checking

Florian Merz
TL;DR: LLBMC not only won multiple medals throughout the years but in 2013 it was also the only tool that did not generate a single incorrect result (section 6.3).
Book ChapterDOI

Gillian, Part II: Real-World Verification for JavaScript and C

TL;DR: In this article, the authors introduce verification based on separation logic to Gillian, a multi-language platform for the development of symbolic analysis tools which is parametric on the memory model of the target language.
Journal ArticleDOI

State Transfer for Hypervisor-Based Proactive Recovery of Heterogeneous Replicated Services

TL;DR: This paper presents two novel efficient state transfer protocols for a hypervisor-based replication architecture that supports proactive recovery, and applies the generic algorithm to a realistic three-tier application (RUBiS) and study the impact of recovery and state transfer on system performance.
DissertationDOI

Ownership-based order reduction and simulation in shared-memory concurrent computer systems

TL;DR: A general order reduction theorem is proved establishing a model where processes are executing blocks of steps, being only interleaved at selectable interleavingpoints, and a general simulation theorem between two abstract concurrent systems including the transfer of safety properties is proved.

Rely-Guarantee References for Refinement Types Over Aliased Mutable Data (Extended Version)

TL;DR: This work presents a new type system approach to reasoning about safe assumptions in the presence of aliasing and side effects, unifying ideas from reference immutability type systems and rely-guarantee program logics.
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.