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
Book ChapterDOI

Proof Pearl: Proving a Simple Von Neumann Machine Turing Complete

TL;DR: An ACL2-checked proof that a simple but unbounded Von Neumann machine model is Turing Complete, i.e., can do anything a Turing machine can do is sketched.
DissertationDOI

Formal verification of a small real-time operating system

TL;DR: The last section of this thesis presents an approach to pervasively verify applications that are executed under OLOS on a single ECU, and forms a simulation theorem between the abstract ECU model and a model that embeds the concrete OLOS implementation.

A Formal Approach for a Subset of the SPARK Programming Language

Eduardo Brito
TL;DR: This thesis believes that the SPARK programming language can be used as a workbench to further develop theories and tools about program verification, including concurrency, real-time and the verified compiler grand challenge, as well as other verification challenges, and that these studies may benefit both arenas.
Journal ArticleDOI

Automatic kernel code synthesis and verification

TL;DR: Iv6 introduces four key ideas to achieve proof automation: its interfaces and corresponding specifications are designed to be finite to avoid unbounded loops or recursion, and it partitions the modules of a kernel state machine according to a state transition function to improve verification performance.
Proceedings ArticleDOI

The e-ACSL perspective on runtime assertion checking

TL;DR: In this article, the authors revisited these three RAC's research areas by emphasizing the works done in E-Acsl, which is both a BISL and a RAC tool for C code.
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.