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
Towards Assessing Isolation Properties in Partitioning Hypervisors
TL;DR: This work provides a systematic framework to provide a comprehensive, generalizable to different products that implement partitioning, and tied specifically to lower-level requirements.
Proceedings ArticleDOI
Issues in Trustworthy Software Systems
Mazen Ezzeddine,Haitham Akkary +1 more
TL;DR: This paper reviews and discusses the required and highly recommended properties that any code executing in the TEE must preserve, and shows how software, security and machine architects should cooperate for maintaining a secure TEE orthogonal to a rich REE in embedded computing devices.
Some Obstacles and Some Possibilities
Dines Bjørner,Klaus Havelund +1 more
TL;DR: Have formal methods for software development, in the sense of this paper been successful?
Journal ArticleDOI
Building an IDE for the Calculational Derivation of Imperative Programs
Dipak L. Chaudhari,Om P. Damani +1 more
TL;DR: In this paper, an IDE called CAPS (Calculational Assistant for Programming from Specifications) is described for the interactive, calculational derivation of imperative programs. But, it does not support the use of theorem prover assisted tactics during the derivations.
Prescriptive Safety-Checks through Automated Proofs for Control-Flow Integrity
TL;DR: This approach to CFI is the first to combine programmer-visible source-code enforcement mechanisms for CFI–enabling programmers to customize them and observe that their software is not inadvertently changed–with machine- code proofs of CFI that can be automated, and that does not require a trusted or verified compiler to ensure its proven properties hold in machine-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.