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
Journal ArticleDOI

Position paper: the science of deep specification.

TL;DR: This article introduces the key formal underpinnings of industrial-scale formal specifications of software and hardware components, and identifies an important class of specification that has already been used in a few experiments that connect strong component-correctness theorems across the work of different teams.
Journal ArticleDOI

The Dafny Integrated Development Environment

TL;DR: Dafny as mentioned in this paper is an integrated development environment for Dafny, a programming language, verifier and proof assistant that addresses issues present in most state-of-the-art verifiers: low responsiveness and lack of support for understanding non-obvious verification failures.
Book ChapterDOI

RustHorn: CHC-Based Verification for Rust Programs

TL;DR: In this paper, the authors propose a translation of pointer-manipulating Rust programs into constrained Horn clauses, which clears away pointers and heaps by leveraging ownership, and formalize the translation for a simplified core of Rust.
Journal ArticleDOI

A Framework for the Verification of Certifying Computations

TL;DR: A framework to seamlessly verify certifying computations and uses the automatic verifier VCC for establishing the correctness of the checker and the interactive theorem prover Isabelle/HOL for high-level mathematical properties of algorithms.
Book ChapterDOI

Deductive Software Verification : From Pen-and-Paper Proofs to Industrial Tools

TL;DR: The trajectory of the field from its inception in the late 1960s via its current state to its promises for the future is followed, from pen-and-paper proofs for programs written in small, idealized languages to highly automated proofs of complex library or system code written in mainstream languages.
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.