VCC: A Practical System for Verifying Concurrent C

  • Authors:
  • Ernie Cohen;Markus Dahlweid;Mark Hillebrand;Dirk Leinenbach;Michał Moskal;Thomas Santen;Wolfram Schulte;Stephan Tobies

  • Affiliations:
  • Microsoft Corporation, Redmond, USA;European Microsoft Innovation Center, Aachen, Germany;German Research Center for Artificial Intelligence (DFKI), Saarbrücken, Germany;German Research Center for Artificial Intelligence (DFKI), Saarbrücken, Germany;European Microsoft Innovation Center, Aachen, Germany;European Microsoft Innovation Center, Aachen, Germany;Microsoft Research, Redmond, USA;European Microsoft Innovation Center, Aachen, Germany

  • Venue:
  • TPHOLs '09 Proceedings of the 22nd International Conference on Theorem Proving in Higher Order Logics
  • Year:
  • 2009

Quantified Score

Hi-index 0.04

Visualization

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.