<?xml version="1.0"?><?xml-stylesheet type="text/xsl" href="/rss.xsl"?><rss version="2.0"><channel><title>VCC Wiki &amp; Documentation Rss Feed</title><link>http://vcc.codeplex.com/Wiki/View.aspx?title=Home</link><description>VCC Wiki Rss Description</description><item><title>Updated Wiki: Install</title><link>https://vcc.codeplex.com/wikipage?title=Install&amp;version=11</link><description>&lt;div class="wikidoc"&gt;&lt;h1&gt;VCC Installation&lt;/h1&gt;
&lt;h2&gt;Prerequisites&lt;/h2&gt;The following prerequisites are needed to successfully run VCC:&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;&lt;b&gt;.Net v4.0 or later&lt;/b&gt; - &lt;a href="http://www.microsoft.com/en-us/download/details.aspx?id=17851"&gt;Download installer.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;F# 2.0 Redistributable&lt;/b&gt; - &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=5f0a79f8-925f-4297-9ae2-86e2fdcff33c&amp;amp;displaylang=en"&gt;Download installer.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;F# Power Pack&lt;/b&gt; -  &lt;a href="https://fsharppowerpack.codeplex.com/downloads/get/122710"&gt;Download installer.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Microsoft Visual C++ 2010 Redistributable Package&lt;/b&gt; - &lt;a href="http://www.microsoft.com/de-de/download/details.aspx?id=5555"&gt;Download installer.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Visual Studio 2010 or 2012&lt;/b&gt; (any edition with C++ support). Note, however, that the express editions are not recommended, because they will not allow you to use VCC from the IDE. &lt;a href="http://www.microsoft.com/visualstudio/11"&gt;Download installer.&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;
&lt;br /&gt;Once you have all the required prerequisites you can download the latest installer or VCC using the link on the right hand side of this web page, or the Downloads tab above.&lt;br /&gt;&lt;br /&gt;If you want to run VCC from the IDE, you need to have the VCC headers in your included paths. (The installer adds them for the command-line, but these are not picked up by Visual Studio). To add the VCC headers to your path in the IDE, do the following after installing VCC:&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;Run visual studio, and create a new empty C++ project.&lt;/li&gt;
&lt;li&gt;Click view-&amp;gt;Other Windows-&amp;gt;PropertyManager. This should open the property manager for your project.&lt;/li&gt;
&lt;li&gt;In the property manager, if you only want to add the paths for this project, double-click on the project name to open up its property sheet. If you want to add the paths for all projects, click on the triangle next to the project name to open up its configurations (probably (Debug | Win32) and (Release | Win32)), open up (Debug | Win32) and double-click on Microsoft.Cpp.Win32.User.&lt;/li&gt;
&lt;li&gt;In the property sheet, click on &amp;quot;VC++ Directories&amp;quot;, click on &amp;quot;Include Directories&amp;quot;, click on the down-arrow on the right hand side of the directory list, and click &amp;quot;edit&amp;quot;. &lt;/li&gt;
&lt;li&gt;Click on the little folder icon to add a new directory, and add $(INCLUDE). Alternatively, navigate to Program Files (x86)\Microsoft Research\Vcc\Headers, and click &amp;quot;select folder&amp;quot; to add it to the path. (The (x86) will be in this path only if you are running 64 bit Windows.)&lt;/li&gt;&lt;/ol&gt;
&lt;br /&gt;After you have done this, check that your installation works:&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;Go to the solution explorer pane&lt;/li&gt;
&lt;li&gt;Right-click on the project (not the solution) and choose &amp;quot;add-&amp;gt;New Item&amp;quot;. Choose &amp;quot;C++ file&amp;quot;, and choose a file name (e.g. test.c) in the box below, but give it the extension .c. Click &amp;quot;add&amp;quot;.&lt;/li&gt;
&lt;li&gt;The new file should open up in the code editor. Add the following text to the window:&lt;/li&gt;&lt;/ol&gt;
&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
#include &amp;lt;vcc.h&amp;gt;

&lt;span style="color:Blue;"&gt;void&lt;/span&gt; test() {
}
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;Right-click on the function and choose &amp;quot;Verify test.c&amp;quot;. After a moment, you should see &amp;quot;Verification succeeded&amp;quot; in the lower-left-hand corner of the IDE.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>erniecohen</author><pubDate>Fri, 17 May 2013 14:00:21 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Install 20130517020021P</guid></item><item><title>Updated Wiki: VCC Applications</title><link>http://vcc.codeplex.com/wikipage?title=VCC Applications&amp;version=15</link><description>&lt;div class="wikidoc"&gt;
&lt;p&gt;This paper lists papers significant parts of which are directly related to VCC.&lt;/p&gt;
&lt;h2&gt;2013&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Wolfgang Paul,&amp;nbsp;Sabina Schmaltz, Ernie Cohen&amp;nbsp;: &lt;strong&gt;Theory of Multicore Hypervisor Verification&lt;/strong&gt;.&lt;br&gt;
In &lt;em&gt;SOFSEM 2013&lt;/em&gt;. &lt;/li&gt;&lt;/ul&gt;
&lt;h2&gt;2012&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Eyad Alkassar, Ernie Cohen, Mikhail Kovalev, Wolfgang J. Paul: &lt;strong&gt;Verification of TLB Virtualization Implemented in C&lt;/strong&gt;.&lt;br&gt;
In &lt;em&gt;Verified Software: Theories, Tools, Experiments (VSTTE 2012)&lt;/em&gt;, 2012. [&lt;a href="http://research.microsoft.com/en-us/um/people/moskal/vccbibs/Alkassar_VSTTE2012.bib"&gt;BIB&lt;/a&gt; |
&lt;a href="http://www-wjp.cs.uni-saarland.de/publikationen/ACKP12.pdf"&gt;PDF&lt;/a&gt;]&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;Jianqi Shi, Jifeng He, Huibiao Zhum Huixing Fang, Yanhong Huang, Xiaoxian Zhang:&amp;nbsp;&amp;nbsp;&lt;strong&gt;ORIENTAIS: Formal Verified OSEK/VDX Real-Time Operating System&lt;/strong&gt;.&lt;br&gt;
In &lt;em&gt;17th International Conference on Engineering of Complex Computer Systems (ICECCS),
&lt;/em&gt;2012&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;Nadia Polikarpova, Michał Moskal: &lt;strong&gt;Verifying implementations of security protocols by refinement&lt;/strong&gt;.&lt;br&gt;
In &lt;em&gt;Verified Software: Theories, Tools, Experiments (VSTTE 2012)&lt;/em&gt;, 2012. [&lt;a href="http://research.microsoft.com/en-us/um/people/moskal/vccbibs/Polikarpova_VSTTE2012.bib"&gt;BIB&lt;/a&gt; |
&lt;a href="http://research.microsoft.com/en-us/um/people/moskal/pdf/crypto-refinement.pdf"&gt;
PDF&lt;/a&gt;]&lt;/p&gt;
&lt;/li&gt;&lt;/ul&gt;
&lt;h2&gt;2011&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Eyad Alkassar, Sascha B&amp;ouml;hme, Kurt Mehlhorn, Christine Rizkallah: &lt;strong&gt;
Verification of Certifying Computations&lt;/strong&gt;.&lt;br&gt;
In &lt;em&gt;Computer Aided Verification (CAV 2011)&lt;/em&gt;, 2011. [&lt;a href="http://research.microsoft.com/en-us/um/people/moskal/vccbibs/Alkassar_CAV2011-.bib"&gt;BIB&lt;/a&gt; |
&lt;a href="http://www-wjp.cs.uni-saarland.de/publikationen/Alkassar-CAV2011.pdf"&gt;PDF&lt;/a&gt;]&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;Christoph Baumann, Holger Blasum, Thorsten Bormer, Sergey Tverdyshev: &lt;strong&gt;
Proving Memory Separation in a Microkernel by Code Level Verification&lt;/strong&gt;.&lt;br&gt;
In &lt;em&gt;1st International Workshop on Architectures and Applications for Mixed-Criticality Systems (AMICS 2011)&lt;/em&gt;, 2011. [&lt;a href="http://research.microsoft.com/en-us/um/people/moskal/vccbibs/Baumann_AMICS2011.bib"&gt;BIB&lt;/a&gt; |
&lt;a href="http://www-wjp.cs.uni-saarland.de/publikationen/Baumann-AMICS2011.pdf"&gt;PDF&lt;/a&gt;]&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;Eyad Alkassar, Sascha B&amp;ouml;hme, Kurt Mehlhorn, Christine Rizkallah, and Pascal Schweitzer:
&lt;strong&gt;An Introduction to Certifying Algorithms.&lt;/strong&gt; &lt;br&gt;
&lt;em&gt;Information Technology: Vol. 53, No. 6&lt;/em&gt;&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;Fran&amp;ccedil;ois Dupressoir, Andrew D. Gordon, Jan J&amp;uuml;rjens, David A. Naumann:
&lt;strong&gt;Guiding a General-Purpose C Verifier to Prove Cryptographic Protocols&lt;/strong&gt;.&lt;br&gt;
In &lt;em&gt;Computer Security Foundations (CSF 2011)&lt;/em&gt;, 2011. [&lt;a href="http://research.microsoft.com/en-us/um/people/moskal/vccbibs/Dupressoir_CSF-.bib"&gt;BIB&lt;/a&gt; |
&lt;a href="http://fdupress.net/files/confs/CSF11/guiding-preprint.pdf"&gt;PDF&lt;/a&gt;]&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;Claire Le Goues, K. Rustan M. Leino, Michał Moskal: &lt;strong&gt;The Boogie Verification Debugger&lt;/strong&gt;.&lt;br&gt;
In &lt;em&gt;Software Engineering and Formal Methods (SEFM 2011)&lt;/em&gt;, 2011. [&lt;a href="http://research.microsoft.com/en-us/um/people/moskal/vccbibs/Goues_SEFM2011.bib"&gt;BIB&lt;/a&gt; |
&lt;a href="http://research.microsoft.com/en-us/um/people/moskal/pdf/bvd.pdf"&gt;PDF&lt;/a&gt;]&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;Vladimir Klebanov, Peter M&amp;uuml;ller, Natarajan Shankar, Gary T. Leavens, Valentin W&amp;uuml;stholz, Eyad Alkassar, Rob Arthan, Derek Bronish, Rod Chapman, Ernie Cohen, Mark Hillebrand, Bart Jacobs, K. Rustan M. Leino, Rosemary Monahan, Frank Piessens, Nadia
 Polikarpova, Tom Ridge, Jan Smans, Stephan Tobies, Thomas Tuerk, Mattias Ulbrich, Benjamin Wei&amp;szlig;:
&lt;strong&gt;The 1st Verified Software Competition: Experience Report&lt;/strong&gt;.&lt;br&gt;
In &lt;em&gt;Formal Methods (FM 2011)&lt;/em&gt;, 2011. [&lt;a href="http://research.microsoft.com/en-us/um/people/moskal/vccbibs/Klebanov_FM2011-.bib"&gt;BIB&lt;/a&gt;]&lt;/p&gt;
&lt;/li&gt;&lt;/ul&gt;
&lt;h2&gt;2010&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Eyad Alkassar, Ernie Cohen, Mark A. Hillebrand, Hristo Pentchev: &lt;strong&gt;Modular Specification and Verification of Interprocess Communication&lt;/strong&gt;.&lt;br&gt;
In &lt;em&gt;Formal Methods in Computer-Aided Design, 10th International Conference (FMCAD 2010)&lt;/em&gt;, 2010. [&lt;a href="http://research.microsoft.com/en-us/um/people/moskal/vccbibs/Alkassar_FMCAD2010-a.bib"&gt;BIB&lt;/a&gt; |
&lt;a href="http://fmcad10.iaik.tugraz.at/Papers/papers/08Session7/023Alkassar.pdf"&gt;
PDF&lt;/a&gt;]&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;Eyad Alkassar, Ernie Cohen, Mark A. Hillebrand, Mikhail Kovalev, Wolfgang Paul:
&lt;strong&gt;Verifying Shadow Page Table Algorithms&lt;/strong&gt;.&lt;br&gt;
In &lt;em&gt;Formal Methods in Computer-Aided Design, 10th International Conference (FMCAD 2010)&lt;/em&gt;, 2010. [&lt;a href="http://research.microsoft.com/en-us/um/people/moskal/vccbibs/Alkassar_FMCAD2010-b.bib"&gt;BIB&lt;/a&gt; |
&lt;a href="http://fmcad10.iaik.tugraz.at/Papers/papers/12Session11/035Alkassar.pdf"&gt;
PDF&lt;/a&gt;]&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;Eyad Alkassar, Mark A. Hillebrand, Wolfgang Paul, Elena Petrova: &lt;strong&gt;Automated Verification of a Small Hypervisor&lt;/strong&gt;.&lt;br&gt;
In &lt;em&gt;Verified Software: Theories, Tools, Experiments (VSTTE 2010)&lt;/em&gt;, 2010. [&lt;a href="http://research.microsoft.com/en-us/um/people/moskal/vccbibs/Alkassar_VSTTE2010-40.bib"&gt;BIB&lt;/a&gt; |
&lt;a href="http://www-wjp.cs.uni-saarland.de/publikationen/AHPP10.pdf"&gt;PDF&lt;/a&gt;]&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;Christoph Baumann, Bernhard Beckert, Holger Blasum, Thorsten Bormer: &lt;strong&gt;Ingredients of Operating System Correctness&lt;/strong&gt;.&lt;br&gt;
In &lt;em&gt;Embedded World 2010 Conference&lt;/em&gt;, 2010. [&lt;a href="http://research.microsoft.com/en-us/um/people/moskal/vccbibs/Baumann_EMBEDDEDWORLD2010-.bib"&gt;BIB&lt;/a&gt; |
&lt;a href="http://www-wjp.cs.uni-sb.de/publikationen/Ba10EW.pdf"&gt;PDF&lt;/a&gt;]&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;Bernhard Beckert, Michał Moskal: &lt;strong&gt;Deductive Verification of System Software in the Verisoft XT Project&lt;/strong&gt;.&lt;br&gt;
In &lt;em&gt;K&amp;uuml;nstliche Intelligenz&lt;/em&gt; vol. 24(1), 2010. [&lt;a href="http://research.microsoft.com/en-us/um/people/moskal/vccbibs/Beckert_KI-24-1-57.bib"&gt;BIB&lt;/a&gt;]&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;Sascha B&amp;ouml;hme, Michał Moskal, Wolfram Schulte, Burkhart Wolff: &lt;strong&gt;HOL-Boogie: An Interactive Prover-Backend for the Verifiying C Compiler&lt;/strong&gt;.&lt;br&gt;
In &lt;em&gt;Journal of Automated Reasoning&lt;/em&gt; vol. 44(1--2), 2010. [&lt;a href="http://research.microsoft.com/en-us/um/people/moskal/vccbibs/Boehme_JAR-44-1-111.bib"&gt;BIB&lt;/a&gt; |
&lt;a href="http://research.microsoft.com/en-us/um/people/moskal/pdf/hol-boogie.pdf"&gt;
PDF&lt;/a&gt;]&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;Ernie Cohen, Michał Moskal, Wolfram Schulte, Stephan Tobies: &lt;strong&gt;Local Verification of Global Invariants in Concurrent Programs&lt;/strong&gt;.&lt;br&gt;
In &lt;em&gt;Computer Aided Verification (CAV 2010)&lt;/em&gt;, 2010. [&lt;a href="http://research.microsoft.com/en-us/um/people/moskal/vccbibs/Cohen_CAV2010-480.bib"&gt;BIB&lt;/a&gt; |
&lt;a href="http://research.microsoft.com/en-us/um/people/moskal/pdf/local.pdf"&gt;PDF&lt;/a&gt;]&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;Ernie Cohen, Bert Schirmer: &lt;strong&gt;From Total Store Order to Sequential Consistency: A Practical Reduction Theorem&lt;/strong&gt;.&lt;br&gt;
In &lt;em&gt;Interactive Theorem Proving (ITP 2010)&lt;/em&gt;, 2010. [&lt;a href="http://research.microsoft.com/en-us/um/people/moskal/vccbibs/Cohen_ITP2010-403.bib"&gt;BIB&lt;/a&gt;]&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;Dirk Leinenbach, Thomas Santen: &lt;strong&gt;Verifying the Microsoft Hyper-V Hypervisor with VCC&lt;/strong&gt;.&lt;br&gt;
In &lt;em&gt;09381 Extended Abstracts Collection -- Refinement Based Methods for the Construction of Dependable Systems&lt;/em&gt;, 2010. [&lt;a href="http://research.microsoft.com/en-us/um/people/moskal/vccbibs/Leinenbach_DSP_2010_2374-104.bib"&gt;BIB&lt;/a&gt;]&lt;/p&gt;
&lt;/li&gt;&lt;/ul&gt;
&lt;h2&gt;2009&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Christoph Baumann, Thorsten Bormer: &lt;strong&gt;Verifying the PikeOS Microkernel: First Results in the Verisoft XT Avionics Project&lt;/strong&gt;.&lt;br&gt;
In &lt;em&gt;Doctoral Symposium on Systems Software Verification (DS SSV 2009)&lt;/em&gt;, 2009. [&lt;a href="http://research.microsoft.com/en-us/um/people/moskal/vccbibs/Baumann_DSSSV2009-20.bib"&gt;BIB&lt;/a&gt; |
&lt;a href="http://aib.informatik.rwth-aachen.de/2009/2009-14.pdf"&gt;PDF&lt;/a&gt;]&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;Christoph Baumann, Bernhard Beckert, Holger Blasum, Thorsten Bormer: &lt;strong&gt;Better Avionics Software Reliability by Code Verification -- A Glance at Code Verification Methodology in the Verisoft XT Project&lt;/strong&gt;.&lt;br&gt;
In &lt;em&gt;Embedded World 2009 Conference&lt;/em&gt;, 2009. [&lt;a href="http://research.microsoft.com/en-us/um/people/moskal/vccbibs/Baumann_EMBEDDEDWORLD2009-.bib"&gt;BIB&lt;/a&gt; |
&lt;a href="http://www.uni-koblenz.de/~beckert/pub/embeddedworld2009.pdf"&gt;PDF&lt;/a&gt;]&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;Christoph Baumann, Bernhard Beckert, Holger Blasum, Thorsten Bormer: &lt;strong&gt;Formal Verification of a Microkernel Used in Dependable Software Systems&lt;/strong&gt;.&lt;br&gt;
In &lt;em&gt;Computer Safety, Reliability, and Security (SAFECOMP 2009)&lt;/em&gt;, 2009. [&lt;a href="http://research.microsoft.com/en-us/um/people/moskal/vccbibs/Baumann_SAFECOMP2009-187.bib"&gt;BIB&lt;/a&gt; |
&lt;a href="http://www.uni-koblenz.de/~beckert/pub/safecomp2009.pdf"&gt;PDF&lt;/a&gt;]&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;Ernie Cohen, Norbert Schirmer: &lt;strong&gt;A Better Reduction Theorem for Store Buffers&lt;/strong&gt;.&lt;br&gt;
Technical Report arXiv:0909.4637, arXiv, 2009. [&lt;a href="http://research.microsoft.com/en-us/um/people/moskal/vccbibs/Cohen_BRTSB09.bib"&gt;BIB&lt;/a&gt; |
&lt;a href="http://arxiv.org/pdf/0909.4637v1&amp;.pdf"&gt;PDF&lt;/a&gt;]&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;Ernie Cohen, Eyad Alkassar, Vladimir Boyarinov, Markus Dahlweid, Ulan Degenbaev, Mark Hillebrand, Bruno Langenstein, Dirk Leinenbach, Michał Moskal, Steven Obua, Wolfgang Paul, Hristo Pentchev, Elena Petrova, Thomas Santen, Norbert Schirmer, Sabine Schmaltz,
 Wolfram Schulte, Andrey Shadrin, Stephan Tobies, Alexandra Tsyban, Sergey Tverdyshev:
&lt;strong&gt;Invariants, Modularity, and Rights&lt;/strong&gt;.&lt;br&gt;
In &lt;em&gt;Perspectives of Systems Informatics (PSI 2009)&lt;/em&gt;, 2009. [&lt;a href="http://research.microsoft.com/en-us/um/people/moskal/vccbibs/Cohen_PSI2009-43.bib"&gt;BIB&lt;/a&gt; |
&lt;a href="http://research.microsoft.com/en-us/um/people/moskal/pdf/psi.pdf"&gt;PDF&lt;/a&gt;]&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;Ernie Cohen, Michał Moskal, Wolfram Schulte, Stephan Tobies: &lt;strong&gt;A Precise Yet Efficient Memory Model for C&lt;/strong&gt;.&lt;br&gt;
In &lt;em&gt;Workshop on Systems Software Verification (SSV 2009)&lt;/em&gt;, 2009. [&lt;a href="http://research.microsoft.com/en-us/um/people/moskal/vccbibs/Cohen_SSV2009-85.bib"&gt;BIB&lt;/a&gt; |
&lt;a href="http://research.microsoft.com/en-us/um/people/moskal/pdf/ssv2009.pdf"&gt;PDF&lt;/a&gt;]&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;Ernie Cohen, Markus Dahlweid, Mark Hillebrand, Dirk Leinenbach, Michał Moskal, Thomas Santen, Wolfram Schulte, Stephan Tobies:
&lt;strong&gt;VCC: A Practical System for Verifying Concurrent C&lt;/strong&gt;.&lt;br&gt;
In &lt;em&gt;Theorem Proving in Higher Order Logics (TPHOLs 2009)&lt;/em&gt;, 2009. [&lt;a href="http://research.microsoft.com/en-us/um/people/moskal/vccbibs/Cohen_TPHOLs2009-23.bib"&gt;BIB&lt;/a&gt; |
&lt;a href="http://research.microsoft.com/en-us/um/people/moskal/pdf/tphol2009.pdf"&gt;
PDF&lt;/a&gt;]&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;Markus Dahlweid, Michał Moskal, Thomas Santen, Stephan Tobies, Wolfram Schulte:
&lt;strong&gt;VCC: Contract-based Modular Verification of Concurrent C&lt;/strong&gt;.&lt;br&gt;
In &lt;em&gt;ICSE Companion 2009: 31st International Conference on Software Engineering&lt;/em&gt;, 2009. [&lt;a href="http://research.microsoft.com/en-us/um/people/moskal/vccbibs/Dahlweid_ICSE2009-429.bib"&gt;BIB&lt;/a&gt; |
&lt;a href="http://research.microsoft.com/en-us/um/people/moskal/pdf/icse-demo.pdf"&gt;
PDF&lt;/a&gt;]&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;Mark A. Hillebrand, Dirk C. Leinenbach: &lt;strong&gt;Formal Verification of a Reader-Writer Lock Implementation in C&lt;/strong&gt;.&lt;br&gt;
In &lt;em&gt;Workshop on Systems Software Verification (SSV 2009)&lt;/em&gt;, 2009. [&lt;a href="http://research.microsoft.com/en-us/um/people/moskal/vccbibs/Hillebrand_SSV2009-123.bib"&gt;BIB&lt;/a&gt;]&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;Dirk Leinenbach, Thomas Santen: &lt;strong&gt;Verifying the Microsoft Hyper-V Hypervisor with VCC&lt;/strong&gt;.&lt;br&gt;
In &lt;em&gt;Formal Methods (FM 2009)&lt;/em&gt;, 2009. [&lt;a href="http://research.microsoft.com/en-us/um/people/moskal/vccbibs/Leinenbach_FM2009-806.bib"&gt;BIB&lt;/a&gt;]&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;Ernie Cohen, Michał Moskal, Wolfram Schulte, Stephan Tobies: &lt;strong&gt;A Practical Verification Methodology for Concurrent Programs&lt;/strong&gt;.&lt;br&gt;
Technical Report MSR-TR-2009-15, Microsoft Research, 2009. [&lt;a href="http://research.microsoft.com/en-us/um/people/moskal/vccbibs/MSR-TR-2009-15.bib"&gt;BIB&lt;/a&gt; |
&lt;a href="http://research.microsoft.com/en-us/um/people/moskal/pdf/concurrency3.pdf"&gt;
PDF&lt;/a&gt;]&lt;/p&gt;
&lt;/li&gt;&lt;/ul&gt;
&lt;h2&gt;2008&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Sascha B&amp;ouml;hme, Rustan Leino, Burkhart Wolff: &lt;strong&gt;HOL-Boogie -- An Interactive Prover for the Boogie Program Verifier&lt;/strong&gt;.&lt;br&gt;
In &lt;em&gt;Theorem Proving in Higher Order Logics (TPHOLs 2008)&lt;/em&gt;, 2008. [&lt;a href="http://research.microsoft.com/en-us/um/people/moskal/vccbibs/Boehme_TPHOLs2008-150.bib"&gt;BIB&lt;/a&gt; |
&lt;a href="http://www-wjp.cs.uni-sb.de/publikationen/boehme_tphols_2008.pdf"&gt;PDF&lt;/a&gt;]&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;Stefan Maus, Michał Moskal, Wolfram Schulte: &lt;strong&gt;Vx86: x86 Assembler Simulated in C Powered by Automated Theorem Proving&lt;/strong&gt;.&lt;br&gt;
In &lt;em&gt;Algebraic Methodology and Software Technology (AMAST 2008)&lt;/em&gt;, 2008. [&lt;a href="http://research.microsoft.com/en-us/um/people/moskal/vccbibs/Maus_AMAST2008-284.bib"&gt;BIB&lt;/a&gt; |
&lt;a href="http://research.microsoft.com/en-us/um/people/moskal/pdf/vx86.pdf"&gt;PDF&lt;/a&gt;]&lt;/p&gt;
&lt;/li&gt;&lt;/ul&gt;
&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>erniecohen</author><pubDate>Wed, 10 Oct 2012 00:12:38 GMT</pubDate><guid isPermaLink="false">Updated Wiki: VCC Applications 20121010121238A</guid></item><item><title>Updated Wiki: VCC Applications</title><link>http://vcc.codeplex.com/wikipage?title=VCC Applications&amp;version=14</link><description>&lt;div class="wikidoc"&gt;
&lt;p&gt;This paper lists papers significant parts of which are directly related to VCC.&lt;/p&gt;
&lt;h2&gt;2013&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Wolfgang Paul,&amp;nbsp;Sabina Schmaltz, Ernie Cohen&amp;nbsp;: &lt;strong&gt;Theory of Multicore Hypervisor Verification&lt;/strong&gt;.&lt;br&gt;
In &lt;em&gt;SOFSEM 2013&lt;/em&gt;. &lt;/li&gt;&lt;/ul&gt;
&lt;h2&gt;2012&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Eyad Alkassar, Ernie Cohen, Mikhail Kovalev, Wolfgang J. Paul: &lt;strong&gt;Verification of TLB Virtualization Implemented in C&lt;/strong&gt;.&lt;br&gt;
In &lt;em&gt;Verified Software: Theories, Tools, Experiments (VSTTE 2012)&lt;/em&gt;, 2012. [&lt;a href="http://research.microsoft.com/en-us/um/people/moskal/vccbibs/Alkassar_VSTTE2012.bib"&gt;BIB&lt;/a&gt; |
&lt;a href="http://www-wjp.cs.uni-saarland.de/publikationen/ACKP12.pdf"&gt;PDF&lt;/a&gt;]&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;Jianqi Shi, Jifeng He, Huibiao Zhum Huixing Fang, Yanhong Huang, Xiaoxian Zhang:&amp;nbsp;&amp;nbsp;&lt;strong&gt;ORIENTAIS: Formal Verified OSEK/VDX Real-Time Operating System&lt;/strong&gt;.&lt;br&gt;
In &lt;em&gt;17th International Conference on Engineering of Complex Computer Systems (ICECCS),
&lt;/em&gt;2012&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;Nadia Polikarpova, Michał Moskal: &lt;strong&gt;Verifying implementations of security protocols by refinement&lt;/strong&gt;.&lt;br&gt;
In &lt;em&gt;Verified Software: Theories, Tools, Experiments (VSTTE 2012)&lt;/em&gt;, 2012. [&lt;a href="http://research.microsoft.com/en-us/um/people/moskal/vccbibs/Polikarpova_VSTTE2012.bib"&gt;BIB&lt;/a&gt; |
&lt;a href="http://research.microsoft.com/en-us/um/people/moskal/pdf/crypto-refinement.pdf"&gt;
PDF&lt;/a&gt;]&lt;/p&gt;
&lt;/li&gt;&lt;/ul&gt;
&lt;h2&gt;2011&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Eyad Alkassar, Sascha B&amp;ouml;hme, Kurt Mehlhorn, Christine Rizkallah: &lt;strong&gt;
Verification of Certifying Computations&lt;/strong&gt;.&lt;br&gt;
In &lt;em&gt;Computer Aided Verification (CAV 2011)&lt;/em&gt;, 2011. [&lt;a href="http://research.microsoft.com/en-us/um/people/moskal/vccbibs/Alkassar_CAV2011-.bib"&gt;BIB&lt;/a&gt; |
&lt;a href="http://www-wjp.cs.uni-saarland.de/publikationen/Alkassar-CAV2011.pdf"&gt;PDF&lt;/a&gt;]&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;Christoph Baumann, Holger Blasum, Thorsten Bormer, Sergey Tverdyshev: &lt;strong&gt;
Proving Memory Separation in a Microkernel by Code Level Verification&lt;/strong&gt;.&lt;br&gt;
In &lt;em&gt;1st International Workshop on Architectures and Applications for Mixed-Criticality Systems (AMICS 2011)&lt;/em&gt;, 2011. [&lt;a href="http://research.microsoft.com/en-us/um/people/moskal/vccbibs/Baumann_AMICS2011.bib"&gt;BIB&lt;/a&gt; |
&lt;a href="http://www-wjp.cs.uni-saarland.de/publikationen/Baumann-AMICS2011.pdf"&gt;PDF&lt;/a&gt;]&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;Fran&amp;ccedil;ois Dupressoir, Andrew D. Gordon, Jan J&amp;uuml;rjens, David A. Naumann:
&lt;strong&gt;Guiding a General-Purpose C Verifier to Prove Cryptographic Protocols&lt;/strong&gt;.&lt;br&gt;
In &lt;em&gt;Computer Security Foundations (CSF 2011)&lt;/em&gt;, 2011. [&lt;a href="http://research.microsoft.com/en-us/um/people/moskal/vccbibs/Dupressoir_CSF-.bib"&gt;BIB&lt;/a&gt; |
&lt;a href="http://fdupress.net/files/confs/CSF11/guiding-preprint.pdf"&gt;PDF&lt;/a&gt;]&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;Claire Le Goues, K. Rustan M. Leino, Michał Moskal: &lt;strong&gt;The Boogie Verification Debugger&lt;/strong&gt;.&lt;br&gt;
In &lt;em&gt;Software Engineering and Formal Methods (SEFM 2011)&lt;/em&gt;, 2011. [&lt;a href="http://research.microsoft.com/en-us/um/people/moskal/vccbibs/Goues_SEFM2011.bib"&gt;BIB&lt;/a&gt; |
&lt;a href="http://research.microsoft.com/en-us/um/people/moskal/pdf/bvd.pdf"&gt;PDF&lt;/a&gt;]&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;Vladimir Klebanov, Peter M&amp;uuml;ller, Natarajan Shankar, Gary T. Leavens, Valentin W&amp;uuml;stholz, Eyad Alkassar, Rob Arthan, Derek Bronish, Rod Chapman, Ernie Cohen, Mark Hillebrand, Bart Jacobs, K. Rustan M. Leino, Rosemary Monahan, Frank Piessens, Nadia
 Polikarpova, Tom Ridge, Jan Smans, Stephan Tobies, Thomas Tuerk, Mattias Ulbrich, Benjamin Wei&amp;szlig;:
&lt;strong&gt;The 1st Verified Software Competition: Experience Report&lt;/strong&gt;.&lt;br&gt;
In &lt;em&gt;Formal Methods (FM 2011)&lt;/em&gt;, 2011. [&lt;a href="http://research.microsoft.com/en-us/um/people/moskal/vccbibs/Klebanov_FM2011-.bib"&gt;BIB&lt;/a&gt;]&lt;/p&gt;
&lt;/li&gt;&lt;/ul&gt;
&lt;h2&gt;2010&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Eyad Alkassar, Ernie Cohen, Mark A. Hillebrand, Hristo Pentchev: &lt;strong&gt;Modular Specification and Verification of Interprocess Communication&lt;/strong&gt;.&lt;br&gt;
In &lt;em&gt;Formal Methods in Computer-Aided Design, 10th International Conference (FMCAD 2010)&lt;/em&gt;, 2010. [&lt;a href="http://research.microsoft.com/en-us/um/people/moskal/vccbibs/Alkassar_FMCAD2010-a.bib"&gt;BIB&lt;/a&gt; |
&lt;a href="http://fmcad10.iaik.tugraz.at/Papers/papers/08Session7/023Alkassar.pdf"&gt;
PDF&lt;/a&gt;]&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;Eyad Alkassar, Ernie Cohen, Mark A. Hillebrand, Mikhail Kovalev, Wolfgang Paul:
&lt;strong&gt;Verifying Shadow Page Table Algorithms&lt;/strong&gt;.&lt;br&gt;
In &lt;em&gt;Formal Methods in Computer-Aided Design, 10th International Conference (FMCAD 2010)&lt;/em&gt;, 2010. [&lt;a href="http://research.microsoft.com/en-us/um/people/moskal/vccbibs/Alkassar_FMCAD2010-b.bib"&gt;BIB&lt;/a&gt; |
&lt;a href="http://fmcad10.iaik.tugraz.at/Papers/papers/12Session11/035Alkassar.pdf"&gt;
PDF&lt;/a&gt;]&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;Eyad Alkassar, Mark A. Hillebrand, Wolfgang Paul, Elena Petrova: &lt;strong&gt;Automated Verification of a Small Hypervisor&lt;/strong&gt;.&lt;br&gt;
In &lt;em&gt;Verified Software: Theories, Tools, Experiments (VSTTE 2010)&lt;/em&gt;, 2010. [&lt;a href="http://research.microsoft.com/en-us/um/people/moskal/vccbibs/Alkassar_VSTTE2010-40.bib"&gt;BIB&lt;/a&gt; |
&lt;a href="http://www-wjp.cs.uni-saarland.de/publikationen/AHPP10.pdf"&gt;PDF&lt;/a&gt;]&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;Christoph Baumann, Bernhard Beckert, Holger Blasum, Thorsten Bormer: &lt;strong&gt;Ingredients of Operating System Correctness&lt;/strong&gt;.&lt;br&gt;
In &lt;em&gt;Embedded World 2010 Conference&lt;/em&gt;, 2010. [&lt;a href="http://research.microsoft.com/en-us/um/people/moskal/vccbibs/Baumann_EMBEDDEDWORLD2010-.bib"&gt;BIB&lt;/a&gt; |
&lt;a href="http://www-wjp.cs.uni-sb.de/publikationen/Ba10EW.pdf"&gt;PDF&lt;/a&gt;]&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;Bernhard Beckert, Michał Moskal: &lt;strong&gt;Deductive Verification of System Software in the Verisoft XT Project&lt;/strong&gt;.&lt;br&gt;
In &lt;em&gt;K&amp;uuml;nstliche Intelligenz&lt;/em&gt; vol. 24(1), 2010. [&lt;a href="http://research.microsoft.com/en-us/um/people/moskal/vccbibs/Beckert_KI-24-1-57.bib"&gt;BIB&lt;/a&gt;]&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;Sascha B&amp;ouml;hme, Michał Moskal, Wolfram Schulte, Burkhart Wolff: &lt;strong&gt;HOL-Boogie: An Interactive Prover-Backend for the Verifiying C Compiler&lt;/strong&gt;.&lt;br&gt;
In &lt;em&gt;Journal of Automated Reasoning&lt;/em&gt; vol. 44(1--2), 2010. [&lt;a href="http://research.microsoft.com/en-us/um/people/moskal/vccbibs/Boehme_JAR-44-1-111.bib"&gt;BIB&lt;/a&gt; |
&lt;a href="http://research.microsoft.com/en-us/um/people/moskal/pdf/hol-boogie.pdf"&gt;
PDF&lt;/a&gt;]&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;Ernie Cohen, Michał Moskal, Wolfram Schulte, Stephan Tobies: &lt;strong&gt;Local Verification of Global Invariants in Concurrent Programs&lt;/strong&gt;.&lt;br&gt;
In &lt;em&gt;Computer Aided Verification (CAV 2010)&lt;/em&gt;, 2010. [&lt;a href="http://research.microsoft.com/en-us/um/people/moskal/vccbibs/Cohen_CAV2010-480.bib"&gt;BIB&lt;/a&gt; |
&lt;a href="http://research.microsoft.com/en-us/um/people/moskal/pdf/local.pdf"&gt;PDF&lt;/a&gt;]&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;Ernie Cohen, Bert Schirmer: &lt;strong&gt;From Total Store Order to Sequential Consistency: A Practical Reduction Theorem&lt;/strong&gt;.&lt;br&gt;
In &lt;em&gt;Interactive Theorem Proving (ITP 2010)&lt;/em&gt;, 2010. [&lt;a href="http://research.microsoft.com/en-us/um/people/moskal/vccbibs/Cohen_ITP2010-403.bib"&gt;BIB&lt;/a&gt;]&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;Dirk Leinenbach, Thomas Santen: &lt;strong&gt;Verifying the Microsoft Hyper-V Hypervisor with VCC&lt;/strong&gt;.&lt;br&gt;
In &lt;em&gt;09381 Extended Abstracts Collection -- Refinement Based Methods for the Construction of Dependable Systems&lt;/em&gt;, 2010. [&lt;a href="http://research.microsoft.com/en-us/um/people/moskal/vccbibs/Leinenbach_DSP_2010_2374-104.bib"&gt;BIB&lt;/a&gt;]&lt;/p&gt;
&lt;/li&gt;&lt;/ul&gt;
&lt;h2&gt;2009&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Christoph Baumann, Thorsten Bormer: &lt;strong&gt;Verifying the PikeOS Microkernel: First Results in the Verisoft XT Avionics Project&lt;/strong&gt;.&lt;br&gt;
In &lt;em&gt;Doctoral Symposium on Systems Software Verification (DS SSV 2009)&lt;/em&gt;, 2009. [&lt;a href="http://research.microsoft.com/en-us/um/people/moskal/vccbibs/Baumann_DSSSV2009-20.bib"&gt;BIB&lt;/a&gt; |
&lt;a href="http://aib.informatik.rwth-aachen.de/2009/2009-14.pdf"&gt;PDF&lt;/a&gt;]&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;Christoph Baumann, Bernhard Beckert, Holger Blasum, Thorsten Bormer: &lt;strong&gt;Better Avionics Software Reliability by Code Verification -- A Glance at Code Verification Methodology in the Verisoft XT Project&lt;/strong&gt;.&lt;br&gt;
In &lt;em&gt;Embedded World 2009 Conference&lt;/em&gt;, 2009. [&lt;a href="http://research.microsoft.com/en-us/um/people/moskal/vccbibs/Baumann_EMBEDDEDWORLD2009-.bib"&gt;BIB&lt;/a&gt; |
&lt;a href="http://www.uni-koblenz.de/~beckert/pub/embeddedworld2009.pdf"&gt;PDF&lt;/a&gt;]&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;Christoph Baumann, Bernhard Beckert, Holger Blasum, Thorsten Bormer: &lt;strong&gt;Formal Verification of a Microkernel Used in Dependable Software Systems&lt;/strong&gt;.&lt;br&gt;
In &lt;em&gt;Computer Safety, Reliability, and Security (SAFECOMP 2009)&lt;/em&gt;, 2009. [&lt;a href="http://research.microsoft.com/en-us/um/people/moskal/vccbibs/Baumann_SAFECOMP2009-187.bib"&gt;BIB&lt;/a&gt; |
&lt;a href="http://www.uni-koblenz.de/~beckert/pub/safecomp2009.pdf"&gt;PDF&lt;/a&gt;]&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;Ernie Cohen, Norbert Schirmer: &lt;strong&gt;A Better Reduction Theorem for Store Buffers&lt;/strong&gt;.&lt;br&gt;
Technical Report arXiv:0909.4637, arXiv, 2009. [&lt;a href="http://research.microsoft.com/en-us/um/people/moskal/vccbibs/Cohen_BRTSB09.bib"&gt;BIB&lt;/a&gt; |
&lt;a href="http://arxiv.org/pdf/0909.4637v1&amp;.pdf"&gt;PDF&lt;/a&gt;]&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;Ernie Cohen, Eyad Alkassar, Vladimir Boyarinov, Markus Dahlweid, Ulan Degenbaev, Mark Hillebrand, Bruno Langenstein, Dirk Leinenbach, Michał Moskal, Steven Obua, Wolfgang Paul, Hristo Pentchev, Elena Petrova, Thomas Santen, Norbert Schirmer, Sabine Schmaltz,
 Wolfram Schulte, Andrey Shadrin, Stephan Tobies, Alexandra Tsyban, Sergey Tverdyshev:
&lt;strong&gt;Invariants, Modularity, and Rights&lt;/strong&gt;.&lt;br&gt;
In &lt;em&gt;Perspectives of Systems Informatics (PSI 2009)&lt;/em&gt;, 2009. [&lt;a href="http://research.microsoft.com/en-us/um/people/moskal/vccbibs/Cohen_PSI2009-43.bib"&gt;BIB&lt;/a&gt; |
&lt;a href="http://research.microsoft.com/en-us/um/people/moskal/pdf/psi.pdf"&gt;PDF&lt;/a&gt;]&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;Ernie Cohen, Michał Moskal, Wolfram Schulte, Stephan Tobies: &lt;strong&gt;A Precise Yet Efficient Memory Model for C&lt;/strong&gt;.&lt;br&gt;
In &lt;em&gt;Workshop on Systems Software Verification (SSV 2009)&lt;/em&gt;, 2009. [&lt;a href="http://research.microsoft.com/en-us/um/people/moskal/vccbibs/Cohen_SSV2009-85.bib"&gt;BIB&lt;/a&gt; |
&lt;a href="http://research.microsoft.com/en-us/um/people/moskal/pdf/ssv2009.pdf"&gt;PDF&lt;/a&gt;]&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;Ernie Cohen, Markus Dahlweid, Mark Hillebrand, Dirk Leinenbach, Michał Moskal, Thomas Santen, Wolfram Schulte, Stephan Tobies:
&lt;strong&gt;VCC: A Practical System for Verifying Concurrent C&lt;/strong&gt;.&lt;br&gt;
In &lt;em&gt;Theorem Proving in Higher Order Logics (TPHOLs 2009)&lt;/em&gt;, 2009. [&lt;a href="http://research.microsoft.com/en-us/um/people/moskal/vccbibs/Cohen_TPHOLs2009-23.bib"&gt;BIB&lt;/a&gt; |
&lt;a href="http://research.microsoft.com/en-us/um/people/moskal/pdf/tphol2009.pdf"&gt;
PDF&lt;/a&gt;]&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;Markus Dahlweid, Michał Moskal, Thomas Santen, Stephan Tobies, Wolfram Schulte:
&lt;strong&gt;VCC: Contract-based Modular Verification of Concurrent C&lt;/strong&gt;.&lt;br&gt;
In &lt;em&gt;ICSE Companion 2009: 31st International Conference on Software Engineering&lt;/em&gt;, 2009. [&lt;a href="http://research.microsoft.com/en-us/um/people/moskal/vccbibs/Dahlweid_ICSE2009-429.bib"&gt;BIB&lt;/a&gt; |
&lt;a href="http://research.microsoft.com/en-us/um/people/moskal/pdf/icse-demo.pdf"&gt;
PDF&lt;/a&gt;]&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;Mark A. Hillebrand, Dirk C. Leinenbach: &lt;strong&gt;Formal Verification of a Reader-Writer Lock Implementation in C&lt;/strong&gt;.&lt;br&gt;
In &lt;em&gt;Workshop on Systems Software Verification (SSV 2009)&lt;/em&gt;, 2009. [&lt;a href="http://research.microsoft.com/en-us/um/people/moskal/vccbibs/Hillebrand_SSV2009-123.bib"&gt;BIB&lt;/a&gt;]&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;Dirk Leinenbach, Thomas Santen: &lt;strong&gt;Verifying the Microsoft Hyper-V Hypervisor with VCC&lt;/strong&gt;.&lt;br&gt;
In &lt;em&gt;Formal Methods (FM 2009)&lt;/em&gt;, 2009. [&lt;a href="http://research.microsoft.com/en-us/um/people/moskal/vccbibs/Leinenbach_FM2009-806.bib"&gt;BIB&lt;/a&gt;]&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;Ernie Cohen, Michał Moskal, Wolfram Schulte, Stephan Tobies: &lt;strong&gt;A Practical Verification Methodology for Concurrent Programs&lt;/strong&gt;.&lt;br&gt;
Technical Report MSR-TR-2009-15, Microsoft Research, 2009. [&lt;a href="http://research.microsoft.com/en-us/um/people/moskal/vccbibs/MSR-TR-2009-15.bib"&gt;BIB&lt;/a&gt; |
&lt;a href="http://research.microsoft.com/en-us/um/people/moskal/pdf/concurrency3.pdf"&gt;
PDF&lt;/a&gt;]&lt;/p&gt;
&lt;/li&gt;&lt;/ul&gt;
&lt;h2&gt;2008&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Sascha B&amp;ouml;hme, Rustan Leino, Burkhart Wolff: &lt;strong&gt;HOL-Boogie -- An Interactive Prover for the Boogie Program Verifier&lt;/strong&gt;.&lt;br&gt;
In &lt;em&gt;Theorem Proving in Higher Order Logics (TPHOLs 2008)&lt;/em&gt;, 2008. [&lt;a href="http://research.microsoft.com/en-us/um/people/moskal/vccbibs/Boehme_TPHOLs2008-150.bib"&gt;BIB&lt;/a&gt; |
&lt;a href="http://www-wjp.cs.uni-sb.de/publikationen/boehme_tphols_2008.pdf"&gt;PDF&lt;/a&gt;]&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;Stefan Maus, Michał Moskal, Wolfram Schulte: &lt;strong&gt;Vx86: x86 Assembler Simulated in C Powered by Automated Theorem Proving&lt;/strong&gt;.&lt;br&gt;
In &lt;em&gt;Algebraic Methodology and Software Technology (AMAST 2008)&lt;/em&gt;, 2008. [&lt;a href="http://research.microsoft.com/en-us/um/people/moskal/vccbibs/Maus_AMAST2008-284.bib"&gt;BIB&lt;/a&gt; |
&lt;a href="http://research.microsoft.com/en-us/um/people/moskal/pdf/vx86.pdf"&gt;PDF&lt;/a&gt;]&lt;/p&gt;
&lt;/li&gt;&lt;/ul&gt;
&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>erniecohen</author><pubDate>Tue, 09 Oct 2012 23:45:45 GMT</pubDate><guid isPermaLink="false">Updated Wiki: VCC Applications 20121009114545P</guid></item><item><title>Updated Wiki: VCC Applications</title><link>http://vcc.codeplex.com/wikipage?title=VCC Applications&amp;version=13</link><description>&lt;div class="wikidoc"&gt;
&lt;p&gt;This paper lists papers significant parts of which are directly related to VCC.&lt;/p&gt;
&lt;h2&gt;2013&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Wolfgang Paul,&amp;nbsp;Sabina Schmaltz, Ernie Cohen&amp;nbsp;: &lt;strong&gt;Theory of Multicore Hypervisor Verification&lt;/strong&gt;.&lt;br&gt;
In &lt;em&gt;SOFSEM 2013&lt;/em&gt;. &lt;/li&gt;&lt;/ul&gt;
&lt;h2&gt;2012&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Eyad Alkassar, Ernie Cohen, Mikhail Kovalev, Wolfgang J. Paul: &lt;strong&gt;Verification of TLB Virtualization Implemented in C&lt;/strong&gt;.&lt;br&gt;
In &lt;em&gt;Verified Software: Theories, Tools, Experiments (VSTTE 2012)&lt;/em&gt;, 2012. [&lt;a href="http://research.microsoft.com/en-us/um/people/moskal/vccbibs/Alkassar_VSTTE2012.bib"&gt;BIB&lt;/a&gt; |
&lt;a href="http://www-wjp.cs.uni-saarland.de/publikationen/ACKP12.pdf"&gt;PDF&lt;/a&gt;] &lt;/li&gt;&lt;li&gt;
&lt;p&gt;Nadia Polikarpova, Michał Moskal: &lt;strong&gt;Verifying implementations of security protocols by refinement&lt;/strong&gt;.&lt;br&gt;
In &lt;em&gt;Verified Software: Theories, Tools, Experiments (VSTTE 2012)&lt;/em&gt;, 2012. [&lt;a href="http://research.microsoft.com/en-us/um/people/moskal/vccbibs/Polikarpova_VSTTE2012.bib"&gt;BIB&lt;/a&gt; |
&lt;a href="http://research.microsoft.com/en-us/um/people/moskal/pdf/crypto-refinement.pdf"&gt;
PDF&lt;/a&gt;]&lt;/p&gt;
&lt;/li&gt;&lt;/ul&gt;
&lt;h2&gt;2011&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Eyad Alkassar, Sascha B&amp;ouml;hme, Kurt Mehlhorn, Christine Rizkallah: &lt;strong&gt;
Verification of Certifying Computations&lt;/strong&gt;.&lt;br&gt;
In &lt;em&gt;Computer Aided Verification (CAV 2011)&lt;/em&gt;, 2011. [&lt;a href="http://research.microsoft.com/en-us/um/people/moskal/vccbibs/Alkassar_CAV2011-.bib"&gt;BIB&lt;/a&gt; |
&lt;a href="http://www-wjp.cs.uni-saarland.de/publikationen/Alkassar-CAV2011.pdf"&gt;PDF&lt;/a&gt;]&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;Christoph Baumann, Holger Blasum, Thorsten Bormer, Sergey Tverdyshev: &lt;strong&gt;
Proving Memory Separation in a Microkernel by Code Level Verification&lt;/strong&gt;.&lt;br&gt;
In &lt;em&gt;1st International Workshop on Architectures and Applications for Mixed-Criticality Systems (AMICS 2011)&lt;/em&gt;, 2011. [&lt;a href="http://research.microsoft.com/en-us/um/people/moskal/vccbibs/Baumann_AMICS2011.bib"&gt;BIB&lt;/a&gt; |
&lt;a href="http://www-wjp.cs.uni-saarland.de/publikationen/Baumann-AMICS2011.pdf"&gt;PDF&lt;/a&gt;]&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;Fran&amp;ccedil;ois Dupressoir, Andrew D. Gordon, Jan J&amp;uuml;rjens, David A. Naumann:
&lt;strong&gt;Guiding a General-Purpose C Verifier to Prove Cryptographic Protocols&lt;/strong&gt;.&lt;br&gt;
In &lt;em&gt;Computer Security Foundations (CSF 2011)&lt;/em&gt;, 2011. [&lt;a href="http://research.microsoft.com/en-us/um/people/moskal/vccbibs/Dupressoir_CSF-.bib"&gt;BIB&lt;/a&gt; |
&lt;a href="http://fdupress.net/files/confs/CSF11/guiding-preprint.pdf"&gt;PDF&lt;/a&gt;]&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;Claire Le Goues, K. Rustan M. Leino, Michał Moskal: &lt;strong&gt;The Boogie Verification Debugger&lt;/strong&gt;.&lt;br&gt;
In &lt;em&gt;Software Engineering and Formal Methods (SEFM 2011)&lt;/em&gt;, 2011. [&lt;a href="http://research.microsoft.com/en-us/um/people/moskal/vccbibs/Goues_SEFM2011.bib"&gt;BIB&lt;/a&gt; |
&lt;a href="http://research.microsoft.com/en-us/um/people/moskal/pdf/bvd.pdf"&gt;PDF&lt;/a&gt;]&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;Vladimir Klebanov, Peter M&amp;uuml;ller, Natarajan Shankar, Gary T. Leavens, Valentin W&amp;uuml;stholz, Eyad Alkassar, Rob Arthan, Derek Bronish, Rod Chapman, Ernie Cohen, Mark Hillebrand, Bart Jacobs, K. Rustan M. Leino, Rosemary Monahan, Frank Piessens, Nadia
 Polikarpova, Tom Ridge, Jan Smans, Stephan Tobies, Thomas Tuerk, Mattias Ulbrich, Benjamin Wei&amp;szlig;:
&lt;strong&gt;The 1st Verified Software Competition: Experience Report&lt;/strong&gt;.&lt;br&gt;
In &lt;em&gt;Formal Methods (FM 2011)&lt;/em&gt;, 2011. [&lt;a href="http://research.microsoft.com/en-us/um/people/moskal/vccbibs/Klebanov_FM2011-.bib"&gt;BIB&lt;/a&gt;]&lt;/p&gt;
&lt;/li&gt;&lt;/ul&gt;
&lt;h2&gt;2010&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Eyad Alkassar, Ernie Cohen, Mark A. Hillebrand, Hristo Pentchev: &lt;strong&gt;Modular Specification and Verification of Interprocess Communication&lt;/strong&gt;.&lt;br&gt;
In &lt;em&gt;Formal Methods in Computer-Aided Design, 10th International Conference (FMCAD 2010)&lt;/em&gt;, 2010. [&lt;a href="http://research.microsoft.com/en-us/um/people/moskal/vccbibs/Alkassar_FMCAD2010-a.bib"&gt;BIB&lt;/a&gt; |
&lt;a href="http://fmcad10.iaik.tugraz.at/Papers/papers/08Session7/023Alkassar.pdf"&gt;
PDF&lt;/a&gt;]&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;Eyad Alkassar, Ernie Cohen, Mark A. Hillebrand, Mikhail Kovalev, Wolfgang Paul:
&lt;strong&gt;Verifying Shadow Page Table Algorithms&lt;/strong&gt;.&lt;br&gt;
In &lt;em&gt;Formal Methods in Computer-Aided Design, 10th International Conference (FMCAD 2010)&lt;/em&gt;, 2010. [&lt;a href="http://research.microsoft.com/en-us/um/people/moskal/vccbibs/Alkassar_FMCAD2010-b.bib"&gt;BIB&lt;/a&gt; |
&lt;a href="http://fmcad10.iaik.tugraz.at/Papers/papers/12Session11/035Alkassar.pdf"&gt;
PDF&lt;/a&gt;]&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;Eyad Alkassar, Mark A. Hillebrand, Wolfgang Paul, Elena Petrova: &lt;strong&gt;Automated Verification of a Small Hypervisor&lt;/strong&gt;.&lt;br&gt;
In &lt;em&gt;Verified Software: Theories, Tools, Experiments (VSTTE 2010)&lt;/em&gt;, 2010. [&lt;a href="http://research.microsoft.com/en-us/um/people/moskal/vccbibs/Alkassar_VSTTE2010-40.bib"&gt;BIB&lt;/a&gt; |
&lt;a href="http://www-wjp.cs.uni-saarland.de/publikationen/AHPP10.pdf"&gt;PDF&lt;/a&gt;]&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;Christoph Baumann, Bernhard Beckert, Holger Blasum, Thorsten Bormer: &lt;strong&gt;Ingredients of Operating System Correctness&lt;/strong&gt;.&lt;br&gt;
In &lt;em&gt;Embedded World 2010 Conference&lt;/em&gt;, 2010. [&lt;a href="http://research.microsoft.com/en-us/um/people/moskal/vccbibs/Baumann_EMBEDDEDWORLD2010-.bib"&gt;BIB&lt;/a&gt; |
&lt;a href="http://www-wjp.cs.uni-sb.de/publikationen/Ba10EW.pdf"&gt;PDF&lt;/a&gt;]&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;Bernhard Beckert, Michał Moskal: &lt;strong&gt;Deductive Verification of System Software in the Verisoft XT Project&lt;/strong&gt;.&lt;br&gt;
In &lt;em&gt;K&amp;uuml;nstliche Intelligenz&lt;/em&gt; vol. 24(1), 2010. [&lt;a href="http://research.microsoft.com/en-us/um/people/moskal/vccbibs/Beckert_KI-24-1-57.bib"&gt;BIB&lt;/a&gt;]&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;Sascha B&amp;ouml;hme, Michał Moskal, Wolfram Schulte, Burkhart Wolff: &lt;strong&gt;HOL-Boogie: An Interactive Prover-Backend for the Verifiying C Compiler&lt;/strong&gt;.&lt;br&gt;
In &lt;em&gt;Journal of Automated Reasoning&lt;/em&gt; vol. 44(1--2), 2010. [&lt;a href="http://research.microsoft.com/en-us/um/people/moskal/vccbibs/Boehme_JAR-44-1-111.bib"&gt;BIB&lt;/a&gt; |
&lt;a href="http://research.microsoft.com/en-us/um/people/moskal/pdf/hol-boogie.pdf"&gt;
PDF&lt;/a&gt;]&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;Ernie Cohen, Michał Moskal, Wolfram Schulte, Stephan Tobies: &lt;strong&gt;Local Verification of Global Invariants in Concurrent Programs&lt;/strong&gt;.&lt;br&gt;
In &lt;em&gt;Computer Aided Verification (CAV 2010)&lt;/em&gt;, 2010. [&lt;a href="http://research.microsoft.com/en-us/um/people/moskal/vccbibs/Cohen_CAV2010-480.bib"&gt;BIB&lt;/a&gt; |
&lt;a href="http://research.microsoft.com/en-us/um/people/moskal/pdf/local.pdf"&gt;PDF&lt;/a&gt;]&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;Ernie Cohen, Bert Schirmer: &lt;strong&gt;From Total Store Order to Sequential Consistency: A Practical Reduction Theorem&lt;/strong&gt;.&lt;br&gt;
In &lt;em&gt;Interactive Theorem Proving (ITP 2010)&lt;/em&gt;, 2010. [&lt;a href="http://research.microsoft.com/en-us/um/people/moskal/vccbibs/Cohen_ITP2010-403.bib"&gt;BIB&lt;/a&gt;]&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;Dirk Leinenbach, Thomas Santen: &lt;strong&gt;Verifying the Microsoft Hyper-V Hypervisor with VCC&lt;/strong&gt;.&lt;br&gt;
In &lt;em&gt;09381 Extended Abstracts Collection -- Refinement Based Methods for the Construction of Dependable Systems&lt;/em&gt;, 2010. [&lt;a href="http://research.microsoft.com/en-us/um/people/moskal/vccbibs/Leinenbach_DSP_2010_2374-104.bib"&gt;BIB&lt;/a&gt;]&lt;/p&gt;
&lt;/li&gt;&lt;/ul&gt;
&lt;h2&gt;2009&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Christoph Baumann, Thorsten Bormer: &lt;strong&gt;Verifying the PikeOS Microkernel: First Results in the Verisoft XT Avionics Project&lt;/strong&gt;.&lt;br&gt;
In &lt;em&gt;Doctoral Symposium on Systems Software Verification (DS SSV 2009)&lt;/em&gt;, 2009. [&lt;a href="http://research.microsoft.com/en-us/um/people/moskal/vccbibs/Baumann_DSSSV2009-20.bib"&gt;BIB&lt;/a&gt; |
&lt;a href="http://aib.informatik.rwth-aachen.de/2009/2009-14.pdf"&gt;PDF&lt;/a&gt;]&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;Christoph Baumann, Bernhard Beckert, Holger Blasum, Thorsten Bormer: &lt;strong&gt;Better Avionics Software Reliability by Code Verification -- A Glance at Code Verification Methodology in the Verisoft XT Project&lt;/strong&gt;.&lt;br&gt;
In &lt;em&gt;Embedded World 2009 Conference&lt;/em&gt;, 2009. [&lt;a href="http://research.microsoft.com/en-us/um/people/moskal/vccbibs/Baumann_EMBEDDEDWORLD2009-.bib"&gt;BIB&lt;/a&gt; |
&lt;a href="http://www.uni-koblenz.de/~beckert/pub/embeddedworld2009.pdf"&gt;PDF&lt;/a&gt;]&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;Christoph Baumann, Bernhard Beckert, Holger Blasum, Thorsten Bormer: &lt;strong&gt;Formal Verification of a Microkernel Used in Dependable Software Systems&lt;/strong&gt;.&lt;br&gt;
In &lt;em&gt;Computer Safety, Reliability, and Security (SAFECOMP 2009)&lt;/em&gt;, 2009. [&lt;a href="http://research.microsoft.com/en-us/um/people/moskal/vccbibs/Baumann_SAFECOMP2009-187.bib"&gt;BIB&lt;/a&gt; |
&lt;a href="http://www.uni-koblenz.de/~beckert/pub/safecomp2009.pdf"&gt;PDF&lt;/a&gt;]&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;Ernie Cohen, Norbert Schirmer: &lt;strong&gt;A Better Reduction Theorem for Store Buffers&lt;/strong&gt;.&lt;br&gt;
Technical Report arXiv:0909.4637, arXiv, 2009. [&lt;a href="http://research.microsoft.com/en-us/um/people/moskal/vccbibs/Cohen_BRTSB09.bib"&gt;BIB&lt;/a&gt; |
&lt;a href="http://arxiv.org/pdf/0909.4637v1&amp;.pdf"&gt;PDF&lt;/a&gt;]&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;Ernie Cohen, Eyad Alkassar, Vladimir Boyarinov, Markus Dahlweid, Ulan Degenbaev, Mark Hillebrand, Bruno Langenstein, Dirk Leinenbach, Michał Moskal, Steven Obua, Wolfgang Paul, Hristo Pentchev, Elena Petrova, Thomas Santen, Norbert Schirmer, Sabine Schmaltz,
 Wolfram Schulte, Andrey Shadrin, Stephan Tobies, Alexandra Tsyban, Sergey Tverdyshev:
&lt;strong&gt;Invariants, Modularity, and Rights&lt;/strong&gt;.&lt;br&gt;
In &lt;em&gt;Perspectives of Systems Informatics (PSI 2009)&lt;/em&gt;, 2009. [&lt;a href="http://research.microsoft.com/en-us/um/people/moskal/vccbibs/Cohen_PSI2009-43.bib"&gt;BIB&lt;/a&gt; |
&lt;a href="http://research.microsoft.com/en-us/um/people/moskal/pdf/psi.pdf"&gt;PDF&lt;/a&gt;]&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;Ernie Cohen, Michał Moskal, Wolfram Schulte, Stephan Tobies: &lt;strong&gt;A Precise Yet Efficient Memory Model for C&lt;/strong&gt;.&lt;br&gt;
In &lt;em&gt;Workshop on Systems Software Verification (SSV 2009)&lt;/em&gt;, 2009. [&lt;a href="http://research.microsoft.com/en-us/um/people/moskal/vccbibs/Cohen_SSV2009-85.bib"&gt;BIB&lt;/a&gt; |
&lt;a href="http://research.microsoft.com/en-us/um/people/moskal/pdf/ssv2009.pdf"&gt;PDF&lt;/a&gt;]&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;Ernie Cohen, Markus Dahlweid, Mark Hillebrand, Dirk Leinenbach, Michał Moskal, Thomas Santen, Wolfram Schulte, Stephan Tobies:
&lt;strong&gt;VCC: A Practical System for Verifying Concurrent C&lt;/strong&gt;.&lt;br&gt;
In &lt;em&gt;Theorem Proving in Higher Order Logics (TPHOLs 2009)&lt;/em&gt;, 2009. [&lt;a href="http://research.microsoft.com/en-us/um/people/moskal/vccbibs/Cohen_TPHOLs2009-23.bib"&gt;BIB&lt;/a&gt; |
&lt;a href="http://research.microsoft.com/en-us/um/people/moskal/pdf/tphol2009.pdf"&gt;
PDF&lt;/a&gt;]&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;Markus Dahlweid, Michał Moskal, Thomas Santen, Stephan Tobies, Wolfram Schulte:
&lt;strong&gt;VCC: Contract-based Modular Verification of Concurrent C&lt;/strong&gt;.&lt;br&gt;
In &lt;em&gt;ICSE Companion 2009: 31st International Conference on Software Engineering&lt;/em&gt;, 2009. [&lt;a href="http://research.microsoft.com/en-us/um/people/moskal/vccbibs/Dahlweid_ICSE2009-429.bib"&gt;BIB&lt;/a&gt; |
&lt;a href="http://research.microsoft.com/en-us/um/people/moskal/pdf/icse-demo.pdf"&gt;
PDF&lt;/a&gt;]&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;Mark A. Hillebrand, Dirk C. Leinenbach: &lt;strong&gt;Formal Verification of a Reader-Writer Lock Implementation in C&lt;/strong&gt;.&lt;br&gt;
In &lt;em&gt;Workshop on Systems Software Verification (SSV 2009)&lt;/em&gt;, 2009. [&lt;a href="http://research.microsoft.com/en-us/um/people/moskal/vccbibs/Hillebrand_SSV2009-123.bib"&gt;BIB&lt;/a&gt;]&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;Dirk Leinenbach, Thomas Santen: &lt;strong&gt;Verifying the Microsoft Hyper-V Hypervisor with VCC&lt;/strong&gt;.&lt;br&gt;
In &lt;em&gt;Formal Methods (FM 2009)&lt;/em&gt;, 2009. [&lt;a href="http://research.microsoft.com/en-us/um/people/moskal/vccbibs/Leinenbach_FM2009-806.bib"&gt;BIB&lt;/a&gt;]&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;Ernie Cohen, Michał Moskal, Wolfram Schulte, Stephan Tobies: &lt;strong&gt;A Practical Verification Methodology for Concurrent Programs&lt;/strong&gt;.&lt;br&gt;
Technical Report MSR-TR-2009-15, Microsoft Research, 2009. [&lt;a href="http://research.microsoft.com/en-us/um/people/moskal/vccbibs/MSR-TR-2009-15.bib"&gt;BIB&lt;/a&gt; |
&lt;a href="http://research.microsoft.com/en-us/um/people/moskal/pdf/concurrency3.pdf"&gt;
PDF&lt;/a&gt;]&lt;/p&gt;
&lt;/li&gt;&lt;/ul&gt;
&lt;h2&gt;2008&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Sascha B&amp;ouml;hme, Rustan Leino, Burkhart Wolff: &lt;strong&gt;HOL-Boogie -- An Interactive Prover for the Boogie Program Verifier&lt;/strong&gt;.&lt;br&gt;
In &lt;em&gt;Theorem Proving in Higher Order Logics (TPHOLs 2008)&lt;/em&gt;, 2008. [&lt;a href="http://research.microsoft.com/en-us/um/people/moskal/vccbibs/Boehme_TPHOLs2008-150.bib"&gt;BIB&lt;/a&gt; |
&lt;a href="http://www-wjp.cs.uni-sb.de/publikationen/boehme_tphols_2008.pdf"&gt;PDF&lt;/a&gt;]&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;Stefan Maus, Michał Moskal, Wolfram Schulte: &lt;strong&gt;Vx86: x86 Assembler Simulated in C Powered by Automated Theorem Proving&lt;/strong&gt;.&lt;br&gt;
In &lt;em&gt;Algebraic Methodology and Software Technology (AMAST 2008)&lt;/em&gt;, 2008. [&lt;a href="http://research.microsoft.com/en-us/um/people/moskal/vccbibs/Maus_AMAST2008-284.bib"&gt;BIB&lt;/a&gt; |
&lt;a href="http://research.microsoft.com/en-us/um/people/moskal/pdf/vx86.pdf"&gt;PDF&lt;/a&gt;]&lt;/p&gt;
&lt;/li&gt;&lt;/ul&gt;
&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>erniecohen</author><pubDate>Tue, 09 Oct 2012 23:04:24 GMT</pubDate><guid isPermaLink="false">Updated Wiki: VCC Applications 20121009110424P</guid></item><item><title>New Comment on "Install"</title><link>http://vcc.codeplex.com/wikipage?title=Install&amp;ANCHOR#C24821</link><description>This has now been fixed in the installation instructions.</description><author>stobies</author><pubDate>Mon, 27 Aug 2012 07:41:40 GMT</pubDate><guid isPermaLink="false">New Comment on "Install" 20120827074140A</guid></item><item><title>Updated Wiki: Home</title><link>http://vcc.codeplex.com/wikipage?version=86</link><description>&lt;div class="wikidoc"&gt;&lt;h2&gt;News&lt;/h2&gt;
There is now a draft manual! (see below).&lt;br /&gt;
&lt;h2&gt;Intro&lt;/h2&gt;
VCC is a mechanical verifier for concurrent C programs. VCC takes a C program, annotated with function specifications, data invariants, loop invariants, and ghost code, and tries to prove these annotations correct. If it succeeds, VCC promises that your program actually meets its specifications.&lt;br /&gt;
&lt;h2&gt;Features&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt;VCC is &lt;b&gt;sound&lt;/b&gt; -- if VCC verifies your program, it really is correct (modulo bugs in VCC itself).&lt;/li&gt;
&lt;li&gt;VCC verification is &lt;b&gt;modular&lt;/b&gt; -- VCC verifies your program one function/type definition at a time, using only the specifications of the functions it calls and the data structures it uses. This means that you can verify your code even if the functions you call haven&amp;#39;t been written yet.&lt;/li&gt;
&lt;li&gt;VCC supports &lt;b&gt;concurrency&lt;/b&gt; -- you can use VCC to verify programs that use both coarse-grained and fine-grained concurrency. You can even use it to verify your concurrency control primitives. Verifying a function implicitly guarantees its thread safety in any concurrent environment that respects the contracts on its functions and data structures.&lt;/li&gt;
&lt;li&gt;VCC supports &lt;b&gt;low-level C&lt;/b&gt; features (e.g. bitfields, unions, wrap-around arithmetic). &lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;The nicest way to run VCC is as Visual Studio plugin, in Visual Studio 2012 or 2010. You can also run it from the command line.&lt;br /&gt;
&lt;h2&gt;Getting Started&lt;/h2&gt;
You get a taste of VCC by running it in your browser from &lt;a href="http://rise4fun.com/vcc"&gt;RiSE4Fun website&lt;/a&gt;. (Note however that this version is not updated very often.)&lt;br /&gt;&lt;br /&gt;Daily builds are published here automatically; we strongly encourage always using the latest build.&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Consult the &lt;a href="http://vcc.codeplex.com/wikipage?title=Install&amp;referringTitle=Home"&gt;Install&lt;/a&gt; page before installing VCC for the first time.&lt;/li&gt;&lt;/ul&gt;
 
&lt;ul&gt;&lt;li&gt;You can also download the sources and build VCC yourself. (See the &lt;a href="http://vcc.codeplex.com/wikipage?title=Build%20Instructions&amp;referringTitle=Home"&gt;Build Instructions&lt;/a&gt;.)&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;We strongly recommend working through the VCC tutorial (below).&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;For reference purposes, you should refer to the VCC manual (below).&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;You can also download some &lt;a href="http://vcc.codeplex.com/wikipage?title=Samples&amp;referringTitle=Home"&gt;Samples&lt;/a&gt;. Many more examples can be found in the VCC source distribution tree, or in the samples package that can be installed after installing VCC (see &amp;quot;All Programs -&amp;gt; Microsoft Research Vcc -&amp;gt; (Re-)Install Samples&amp;quot;) &lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;
&lt;h2&gt;Papers&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;Verifying Concurrent C Programs with VCC.&lt;/b&gt;  Ernie Cohen, Mark Hillebrand, Michał Moskal, Wolfram Schulte, Stephan Tobies. &lt;a href="http://www.codeplex.com/Download?ProjectName=VCC&amp;DownloadId=476508"&gt;PDF &amp;#40;2-column, &amp;#126;25 pages&amp;#41;&lt;/a&gt; &lt;a href="http://www.codeplex.com/Download?ProjectName=VCC&amp;DownloadId=476506"&gt;PDF &amp;#40;1-column, &amp;#126;65pages&amp;#41;&lt;/a&gt; &lt;a href="http://www.codeplex.com/Download?ProjectName=VCC&amp;DownloadId=476507"&gt;PDF &amp;#40;screen-reading&amp;#41;&lt;/a&gt; (A working draft of VCC tutorial - the recommended place to start)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;The VCC Manual&lt;/b&gt; &lt;a href="http://www.codeplex.com/Download?ProjectName=VCC&amp;DownloadId=476953"&gt;PDF &amp;#40;2-column&amp;#41;&lt;/a&gt;&lt;a href="http://www.codeplex.com/Download?ProjectName=VCC&amp;DownloadId=476509"&gt;PDF &amp;#40;1-column&amp;#41;&lt;/a&gt; (A working draft of the VCC manual.)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;VCC: A Practical System for Verifying Concurrent C.&lt;/b&gt;  Ernie Cohen, Markus Dahlweid, Mark Hillebrand, Dirk Leinenbach, Michał Moskal, Thomas Santen, Wolfram Schulte, Stephan Tobies. 22nd International Conference on Theorem Proving in Higher Order Logics (TPHOLs 2009). (LNCS 5674). &lt;a href="http://research.microsoft.com/en-us/um/people/moskal/pdf/tphol2009.pdf"&gt;PDF&lt;/a&gt; (Provides a good overall system description of VCC; the paper to cite for VCC)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Local Verification of Global Invariants in Concurrent Programs.&lt;/b&gt; Ernie Cohen, Michał Moskal, Wolfram Schulte, Stephan Tobies. Computer Aided Verification (CAV2010). &lt;a href="http://research.microsoft.com/en-us/um/people/moskal/pdf/local.pdf"&gt;PDF&lt;/a&gt; (The best description of the underlying methodology)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;A Practical Verification Methodology for Concurrent Programs.&lt;/b&gt;  Ernie Cohen, Michał Moskal, Wolfram Schulte, Stephan Tobies. MSR-TR-2009-15. &lt;a href="http://research.microsoft.com/en-us/um/people/moskal/pdf/concurrency3.pdf"&gt;PDF&lt;/a&gt; (The methodological description is out-of-date, but this provides some detail on how programs are actually verified).&lt;/li&gt;
&lt;li&gt;&lt;b&gt;A Precise Yet Efficient Memory Model For C.&lt;/b&gt;  Ernie Cohen, Michał Moskal, Wolfram Schulte, Stephan Tobies. 4th International Workshop on Systems Software Verification (SSV2009). &lt;a href="http://research.microsoft.com/en-us/um/people/moskal/pdf/ssv2009.pdf"&gt;PDF&lt;/a&gt; (Describes the VCC typestate)&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;Also check out papers about &lt;a href="http://vcc.codeplex.com/wikipage?title=VCC%20Applications&amp;referringTitle=Home"&gt;VCC Applications&lt;/a&gt;!&lt;br /&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>erniecohen</author><pubDate>Mon, 27 Aug 2012 04:44:27 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20120827044427A</guid></item><item><title>Updated Wiki: Home</title><link>http://vcc.codeplex.com/wikipage?version=85</link><description>&lt;div class="wikidoc"&gt;&lt;h2&gt;News&lt;/h2&gt;
There is now a draft manual! (see below).&lt;br /&gt;
&lt;h2&gt;Intro&lt;/h2&gt;
VCC is a mechanical verifier for concurrent C programs. VCC takes a C program, annotated with function specifications, data invariants, loop invariants, and ghost code, and tries to prove these annotations correct. If it succeeds, VCC promises that your program actually meets its specifications.&lt;br /&gt;
&lt;h2&gt;Features&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt;VCC is &lt;b&gt;sound&lt;/b&gt; -- if VCC verifies your program, it really is correct (modulo bugs in VCC itself).&lt;/li&gt;
&lt;li&gt;VCC verification is &lt;b&gt;modular&lt;/b&gt; -- VCC verifies your program one function/type definition at a time, using only the specifications of the functions it calls and the data structures it uses. This means that you can verify your code even if the functions you call haven&amp;#39;t been written yet.&lt;/li&gt;
&lt;li&gt;VCC supports &lt;b&gt;concurrency&lt;/b&gt; -- you can use VCC to verify programs that use both coarse-grained and fine-grained concurrency. You can even use it to verify your concurrency control primitives. Verifying a function implicitly guarantees its thread safety in any concurrent environment that respects the contracts on its functions and data structures.&lt;/li&gt;
&lt;li&gt;VCC supports &lt;b&gt;low-level C&lt;/b&gt; features (e.g. bitfields, unions, wrap-around arithmetic). &lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;The nicest way to run VCC is as Visual Studio plugin, in Visual Studio 2012 or 2010. You can also run it from the command line.&lt;br /&gt;
&lt;h2&gt;Getting Started&lt;/h2&gt;
You get a taste of VCC by running it in your browser from &lt;a href="http://rise4fun.com/vcc"&gt;RiSE4Fun website&lt;/a&gt;. (Note however that this version is not updated very often.)&lt;br /&gt;&lt;br /&gt;Daily builds are published here automatically; we strongly encourage always using the latest build.&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Consult the &lt;a href="http://vcc.codeplex.com/wikipage?title=Install&amp;referringTitle=Home"&gt;Install&lt;/a&gt; page before installing VCC for the first time.&lt;/li&gt;&lt;/ul&gt;
 
&lt;ul&gt;&lt;li&gt;You can also download the sources and build VCC yourself. (See the &lt;a href="http://vcc.codeplex.com/wikipage?title=Build%20Instructions&amp;referringTitle=Home"&gt;Build Instructions&lt;/a&gt;.)&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;We strongly recommend working through the VCC tutorial (below).&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;For reference purposes, you should refer to the VCC manual (below).&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;You can also download some &lt;a href="http://vcc.codeplex.com/wikipage?title=Samples&amp;referringTitle=Home"&gt;Samples&lt;/a&gt;. Many more examples can be found in the VCC source distribution tree, or in the samples package that can be installed after installing VCC (see &amp;quot;All Programs -&amp;gt; Microsoft Research Vcc -&amp;gt; (Re-)Install Samples&amp;quot;) &lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;
&lt;h2&gt;Papers&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;Verifying Concurrent C Programs with VCC.&lt;/b&gt;  Ernie Cohen, Mark Hillebrand, Michał Moskal, Wolfram Schulte, Stephan Tobies. &lt;a href="http://www.codeplex.com/Download?ProjectName=VCC&amp;DownloadId=476508"&gt;PDF &amp;#40;2-column, &amp;#126;25 pages&amp;#41;&lt;/a&gt; &lt;a href="http://www.codeplex.com/Download?ProjectName=VCC&amp;DownloadId=476506"&gt;PDF &amp;#40;1-column, &amp;#126;65pages&amp;#41;&lt;/a&gt; &lt;a href="http://www.codeplex.com/Download?ProjectName=VCC&amp;DownloadId=476507"&gt;PDF &amp;#40;screen-reading&amp;#41;&lt;/a&gt; (A working draft of VCC tutorial - the recommended place to start)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;The VCC Manual&lt;/b&gt; &lt;span class="unresolved"&gt;Cannot resolve file macro, invalid file name or id.&lt;/span&gt;&lt;a href="http://www.codeplex.com/Download?ProjectName=VCC&amp;DownloadId=476509"&gt;PDF &amp;#40;1-column&amp;#41;&lt;/a&gt; (A working draft of the VCC manual.)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;VCC: A Practical System for Verifying Concurrent C.&lt;/b&gt;  Ernie Cohen, Markus Dahlweid, Mark Hillebrand, Dirk Leinenbach, Michał Moskal, Thomas Santen, Wolfram Schulte, Stephan Tobies. 22nd International Conference on Theorem Proving in Higher Order Logics (TPHOLs 2009). (LNCS 5674). &lt;a href="http://research.microsoft.com/en-us/um/people/moskal/pdf/tphol2009.pdf"&gt;PDF&lt;/a&gt; (Provides a good overall system description of VCC; the paper to cite for VCC)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Local Verification of Global Invariants in Concurrent Programs.&lt;/b&gt; Ernie Cohen, Michał Moskal, Wolfram Schulte, Stephan Tobies. Computer Aided Verification (CAV2010). &lt;a href="http://research.microsoft.com/en-us/um/people/moskal/pdf/local.pdf"&gt;PDF&lt;/a&gt; (The best description of the underlying methodology)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;A Practical Verification Methodology for Concurrent Programs.&lt;/b&gt;  Ernie Cohen, Michał Moskal, Wolfram Schulte, Stephan Tobies. MSR-TR-2009-15. &lt;a href="http://research.microsoft.com/en-us/um/people/moskal/pdf/concurrency3.pdf"&gt;PDF&lt;/a&gt; (The methodological description is out-of-date, but this provides some detail on how programs are actually verified).&lt;/li&gt;
&lt;li&gt;&lt;b&gt;A Precise Yet Efficient Memory Model For C.&lt;/b&gt;  Ernie Cohen, Michał Moskal, Wolfram Schulte, Stephan Tobies. 4th International Workshop on Systems Software Verification (SSV2009). &lt;a href="http://research.microsoft.com/en-us/um/people/moskal/pdf/ssv2009.pdf"&gt;PDF&lt;/a&gt; (Describes the VCC typestate)&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;Also check out papers about &lt;a href="http://vcc.codeplex.com/wikipage?title=VCC%20Applications&amp;referringTitle=Home"&gt;VCC Applications&lt;/a&gt;!&lt;br /&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>erniecohen</author><pubDate>Sat, 25 Aug 2012 20:38:08 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20120825083808P</guid></item><item><title>Updated Wiki: Build Instructions</title><link>http://vcc.codeplex.com/wikipage?title=Build Instructions&amp;version=18</link><description>&lt;div class="wikidoc"&gt;&lt;h1&gt;Build Instructions&lt;/h1&gt;
To build Vcc, you need Visual Studio 2012, RC or later &lt;a href="http://www.microsoft.com/visualstudio/11"&gt;http://www.microsoft.com/visualstudio/11&lt;/a&gt;.  &lt;br /&gt;To build &lt;span class="codeInline"&gt;VSPackage&lt;/span&gt;, you also need the &lt;a href="http://www.microsoft.com/en-us/download/details.aspx?id=29930"&gt;VS 2012 SDK&lt;/a&gt; and the  &lt;a href="http://vcc.codeplex.com/wikipage?title=http%3a%2f%2fwww.microsoft.com%2fdownload%2fen%2fdetails.aspx%3fid%3d21835&amp;referringTitle=Build%20Instructions"&gt;VS 2010 SP1 SDK &amp;#91;url&amp;#58;Visual Studio 2010 SP1 SDK&lt;/a&gt;) and the &lt;a href="http://fsharppowerpack.codeplex.com/"&gt;F# PowerPack&lt;/a&gt;. To build the installer, you will also need &lt;a href="http://wix.codeplex.com/releases/view/88566"&gt;WiX 3.6 RC&lt;/a&gt; and the &lt;a href="http://msbuildtasks.tigris.org/"&gt;MSBuild Community Tasks&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;To build Vcc, build &lt;span class="codeInline"&gt;vcc.sln&lt;/span&gt; either from within Visual Studio or from command line with &lt;span class="codeInline"&gt;msbuild vcc.sln&lt;/span&gt;. In the latter case, you will have to have at least Visual C++ Express installed (see &lt;a href="http://vcc.codeplex.com/wikipage?title=Installation%20Prerequisites&amp;referringTitle=Build%20Instructions"&gt;Installation Prerequisites&lt;/a&gt;) , otherwise the compilation of the Visual Studio AddIn will fail with missing references. &lt;br /&gt;&lt;br /&gt;If you do not have Visual Studio installed, this full build will fail because of dependencies on VS DLLs in the VS AddIn project. You can still compile the command line tool with &lt;span class="codeInline"&gt;msbuild vcc.sln /p:Configuration=CompilerOnly&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Note that you will need &lt;span class="codeInline"&gt;msbuild&lt;/span&gt; from the &lt;a href="http://msdn.microsoft.com/en-us/netframework/aa569263.aspx"&gt;.net Framework 3.5&lt;/a&gt; or later - earlier versions will report an error. This will create the &lt;span class="codeInline"&gt;vcc.exe&lt;/span&gt; compiler at &lt;span class="codeInline"&gt;vcc\Host\bin\CompilerOnly&lt;/span&gt;, which can be run from that location.&lt;br /&gt;&lt;br /&gt;We are currently not building directly against the sources of &lt;a href="http://boogie.codeplex.com/"&gt;Boogie&lt;/a&gt; or &lt;a href="http://cciast.codeplex.com"&gt;CCI&lt;/a&gt; but instead have a binary dependency.&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>erniecohen</author><pubDate>Thu, 23 Aug 2012 13:09:21 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Build Instructions 20120823010921P</guid></item><item><title>Updated Wiki: Install</title><link>http://vcc.codeplex.com/wikipage?title=Install&amp;version=10</link><description>&lt;div class="wikidoc"&gt;&lt;h1&gt;VCC Installation&lt;/h1&gt;
&lt;h2&gt;Prerequisites&lt;/h2&gt;The following prerequisites are needed to successfully run VCC:&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;&lt;b&gt;.Net v4.0 or later&lt;/b&gt; - &lt;a href="http://www.microsoft.com/en-us/download/details.aspx?id=17851"&gt;Download installer.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;F# 2.0 Redistributable&lt;/b&gt; - &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=5f0a79f8-925f-4297-9ae2-86e2fdcff33c&amp;amp;displaylang=en"&gt;Download installer.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Microsoft Visual C++ 2010 Redistributable Package&lt;/b&gt; - &lt;a href="http://www.microsoft.com/de-de/download/details.aspx?id=5555"&gt;Download installer.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Visual Studio 2010 or 2012&lt;/b&gt; (any edition with C++ support). Note, however, that the express editions are not recommended, because they will not allow you to use VCC from the IDE. &lt;a href="http://www.microsoft.com/visualstudio/11"&gt;Download installer.&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;
&lt;br /&gt;Once you have all the required prerequisites you can download the latest installer or VCC using the link on the right hand side of this web page, or the Downloads tab above.&lt;br /&gt;&lt;br /&gt;If you want to run VCC from the IDE, you need to have the VCC headers in your included paths. (The installer adds them for the command-line, but these are not picked up by Visual Studio). To add the VCC headers to your path in the IDE, do the following after installing VCC:&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;Run visual studio, and create a new empty C++ project.&lt;/li&gt;
&lt;li&gt;Click view-&amp;gt;Other Windows-&amp;gt;PropertyManager. This should open the property manager for your project.&lt;/li&gt;
&lt;li&gt;In the property manager, if you only want to add the paths for this project, double-click on the project name to open up its property sheet. If you want to add the paths for all projects, click on the triangle next to the project name to open up its configurations (probably (Debug | Win32) and (Release | Win32)), open up (Debug | Win32) and double-click on Microsoft.Cpp.Win32.User.&lt;/li&gt;
&lt;li&gt;In the property sheet, click on &amp;quot;VC++ Directories&amp;quot;, click on &amp;quot;Include Directories&amp;quot;, click on the down-arrow on the right hand side of the directory list, and click &amp;quot;edit&amp;quot;. &lt;/li&gt;
&lt;li&gt;Click on the little folder icon to add a new directory, and add $(INCLUDE). Alternatively, navigate to Program Files (x86)\Microsoft Research\Vcc\Headers, and click &amp;quot;select folder&amp;quot; to add it to the path. (The (x86) will be in this path only if you are running 64 bit Windows.)&lt;/li&gt;&lt;/ol&gt;
&lt;br /&gt;After you have done this, check that your installation works:&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;Go to the solution explorer pane&lt;/li&gt;
&lt;li&gt;Right-click on the project (not the solution) and choose &amp;quot;add-&amp;gt;New Item&amp;quot;. Choose &amp;quot;C++ file&amp;quot;, and choose a file name (e.g. test.c) in the box below, but give it the extension .c. Click &amp;quot;add&amp;quot;.&lt;/li&gt;
&lt;li&gt;The new file should open up in the code editor. Add the following text to the window:&lt;/li&gt;&lt;/ol&gt;
&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
#include &amp;lt;vcc.h&amp;gt;

&lt;span style="color:Blue;"&gt;void&lt;/span&gt; test() {
}
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;Right-click on the function and choose &amp;quot;Verify test.c&amp;quot;. After a moment, you should see &amp;quot;Verification succeeded&amp;quot; in the lower-left-hand corner of the IDE.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>erniecohen</author><pubDate>Tue, 21 Aug 2012 15:30:05 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Install 20120821033005P</guid></item><item><title>Updated Wiki: Install</title><link>http://vcc.codeplex.com/wikipage?title=Install&amp;version=9</link><description>&lt;div class="wikidoc"&gt;&lt;h1&gt;VCC Installation&lt;/h1&gt;
&lt;h2&gt;Prerequisites&lt;/h2&gt;The following prerequisites are needed to successfully run VCC:&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;&lt;b&gt;.Net v4.0 or later&lt;/b&gt; - &lt;a href="http://www.microsoft.com/en-us/download/details.aspx?id=17851"&gt;Download installer.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;F# 2.0 Redistributable&lt;/b&gt; - &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=5f0a79f8-925f-4297-9ae2-86e2fdcff33c&amp;amp;displaylang=en"&gt;Download installer.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Microsoft Visual C++ 2010 Redistributable Package&lt;/b&gt; - &lt;a href="http://www.microsoft.com/de-de/download/details.aspx?id=5555"&gt;Download installer.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Visual Studio 2010 or 2012&lt;/b&gt; (any edition with C++ support). Note, however, that the express editions are not recommended, because they will not allow you to use VCC from the IDE. &lt;a href="http://www.microsoft.com/visualstudio/11"&gt;Download installer.&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;
&lt;br /&gt;We depend on Visual C as the C preprocessor, therefore VS is required even if you only want to run VCC from command line. Note that the Express version of VS does not allow plugins, and therefore the &lt;b&gt;click-through interface will not work with it&lt;/b&gt; --- it &lt;b&gt;requires the Standard or higher version&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;Once you have all the required prerequisites you can download the latest installer or VCC using the link on the right hand side of this web page, or the Downloads tab above.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>erniecohen</author><pubDate>Tue, 21 Aug 2012 14:54:04 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Install 20120821025404P</guid></item><item><title>Updated Wiki: Install</title><link>http://vcc.codeplex.com/wikipage?title=Install&amp;version=8</link><description>&lt;div class="wikidoc"&gt;&lt;h1&gt;VCC Installation&lt;/h1&gt;
&lt;h2&gt;Prerequisites&lt;/h2&gt;The following prerequisites are needed to successfully run VCC:&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;&lt;b&gt;.Net v4.0 or later&lt;/b&gt; - &lt;a href="http://www.microsoft.com/en-us/download/details.aspx?id=17851"&gt;Download installer.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;F# 2.0 Redistributable&lt;/b&gt; - &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=5f0a79f8-925f-4297-9ae2-86e2fdcff33c&amp;amp;displaylang=en"&gt;Download installer.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Microsoft Visual C++ 2010 Redistributable Package&lt;/b&gt; - &lt;a href="http://www.microsoft.com/de-de/download/details.aspx?id=5555"&gt;Download installer.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Visual C++ 2010 Express&lt;/b&gt; or any other version of Visual Studio 2010 with C++ support - &lt;a href="http://www.microsoft.com/express/vc/"&gt;Download installer.&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;
&lt;br /&gt;We depend on Visual C as the C preprocessor, therefore VS is required even if you only want to run VCC from command line. Note that the Express version of VS does not allow plugins, and therefore the &lt;b&gt;click-through interface will not work with it&lt;/b&gt; --- it &lt;b&gt;requires the Standard or higher version&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;Once you have all the required prerequisites you can download the latest installer or VCC using the link on the right hand side of this web page, or the Downloads tab above.&lt;br /&gt;
&lt;h2&gt;Include Directories&lt;/h2&gt;
The VCC installer adds the directory with the &lt;span class="codeInline"&gt;&amp;lt;vcc.h&amp;gt;&lt;/span&gt; header file to the &lt;span class="codeInline"&gt;INCLUDE&lt;/span&gt; environment variable. This is automatically picked up by the &lt;span class="codeInline"&gt;cl.exe&lt;/span&gt; command line compiler, but not by VS. To make VS use it go to: &lt;b&gt;Tools -&amp;gt; Options -&amp;gt; Projects and Solutions -&amp;gt; VC++ Directories -&amp;gt; Include Files&lt;/b&gt; and add &lt;span class="codeInline"&gt;$(INCLUDE)&lt;/span&gt; at the end of the list. This will apply to all projects.&lt;br /&gt;&lt;br /&gt;Alternatively you can add it for each project separately by right-clicking on project and &lt;b&gt;Properties -&amp;gt; Configuration Properties -&amp;gt; C/C++ -&amp;gt; General -&amp;gt; Additional Include Directories&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;In both places you can use &lt;span class="codeInline"&gt;C:\Program Files\Microsoft Research\Vcc\Headers&lt;/span&gt; (or the actual installation location) instead of &lt;span class="codeInline"&gt;$(INCLUDE)&lt;/span&gt;.&lt;br /&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>stobies</author><pubDate>Fri, 17 Aug 2012 10:41:07 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Install 20120817104107A</guid></item><item><title>Updated Wiki: Home</title><link>http://vcc.codeplex.com/wikipage?version=84</link><description>&lt;div class="wikidoc"&gt;&lt;h2&gt;News&lt;/h2&gt;
There is now a draft manual! (see below).&lt;br /&gt;
&lt;h2&gt;Intro&lt;/h2&gt;
VCC is a mechanical verifier for concurrent C programs. VCC takes a C program, annotated with function specifications, data invariants, loop invariants, and ghost code, and tries to prove these annotations correct. If it succeeds, VCC promises that your program actually meets its specifications.&lt;br /&gt;
&lt;h2&gt;Features&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt;VCC is &lt;b&gt;sound&lt;/b&gt; -- if VCC verifies your program, it really is correct (modulo bugs in VCC itself).&lt;/li&gt;
&lt;li&gt;VCC verification is &lt;b&gt;modular&lt;/b&gt; -- VCC verifies your program one function/type definition at a time, using only the specifications of the functions it calls and the data structures it uses. This means that you can verify your code even if the functions you call haven&amp;#39;t been written yet.&lt;/li&gt;
&lt;li&gt;VCC supports &lt;b&gt;concurrency&lt;/b&gt; -- you can use VCC to verify programs that use both coarse-grained and fine-grained concurrency. You can even use it to verify your concurrency control primitives. Verifying a function implicitly guarantees its thread safety in any concurrent environment that respects the contracts on its functions and data structures.&lt;/li&gt;
&lt;li&gt;VCC supports &lt;b&gt;low-level C&lt;/b&gt; features (e.g. bitfields, unions, wrap-around arithmetic). &lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;The nicest way to run VCC is as Visual Studio plugin, in Visual Studio 2012 or 2010. You can also run it from the command line.&lt;br /&gt;
&lt;h2&gt;Getting Started&lt;/h2&gt;
You get a taste of VCC by running it in your browser from &lt;a href="http://rise4fun.com/vcc"&gt;RiSE4Fun website&lt;/a&gt;. (Note however that this version is not updated very often.)&lt;br /&gt;&lt;br /&gt;Daily builds are published here automatically; we strongly encourage always using the latest build.&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Consult the &lt;a href="http://vcc.codeplex.com/wikipage?title=Install&amp;referringTitle=Home"&gt;Install&lt;/a&gt; page before installing VCC for the first time.&lt;/li&gt;&lt;/ul&gt;
 
&lt;ul&gt;&lt;li&gt;You can also download the sources and build VCC yourself. (See the &lt;a href="http://vcc.codeplex.com/wikipage?title=Build%20Instructions&amp;referringTitle=Home"&gt;Build Instructions&lt;/a&gt;.)&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;We strongly recommend working through the VCC tutorial (below).&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;For reference purposes, you should refer to the VCC manual (below).&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;You can also download some &lt;a href="http://vcc.codeplex.com/wikipage?title=Samples&amp;referringTitle=Home"&gt;Samples&lt;/a&gt;. Many more examples can be found in the VCC source distribution tree, or in the samples package that can be installed after installing VCC (see &amp;quot;All Programs -&amp;gt; Microsoft Research Vcc -&amp;gt; (Re-)Install Samples&amp;quot;) &lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;
&lt;h2&gt;Papers&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;Verifying Concurrent C Programs with VCC.&lt;/b&gt;  Ernie Cohen, Mark Hillebrand, Michał Moskal, Wolfram Schulte, Stephan Tobies. &lt;a href="http://www.codeplex.com/Download?ProjectName=VCC&amp;DownloadId=468959"&gt;PDF &amp;#40;2-column, &amp;#126;25 pages&amp;#41;&lt;/a&gt; &lt;a href="http://www.codeplex.com/Download?ProjectName=VCC&amp;DownloadId=468956"&gt;PDF &amp;#40;1-column, &amp;#126;65pages&amp;#41;&lt;/a&gt; &lt;a href="http://www.codeplex.com/Download?ProjectName=VCC&amp;DownloadId=468962"&gt;PDF &amp;#40;screen-reading&amp;#41;&lt;/a&gt; (A working draft of VCC tutorial - the recommended place to start)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;The VCC Manual&lt;/b&gt; &lt;a href="http://www.codeplex.com/Download?ProjectName=VCC&amp;DownloadId=468952"&gt;PDF &amp;#40;2-column&amp;#41;&lt;/a&gt;&lt;a href="http://www.codeplex.com/Download?ProjectName=VCC&amp;DownloadId=468950"&gt;PDF &amp;#40;1-column&amp;#41;&lt;/a&gt; (A working draft of the VCC manual.)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;VCC: A Practical System for Verifying Concurrent C.&lt;/b&gt;  Ernie Cohen, Markus Dahlweid, Mark Hillebrand, Dirk Leinenbach, Michał Moskal, Thomas Santen, Wolfram Schulte, Stephan Tobies. 22nd International Conference on Theorem Proving in Higher Order Logics (TPHOLs 2009). (LNCS 5674). &lt;a href="http://research.microsoft.com/en-us/um/people/moskal/pdf/tphol2009.pdf"&gt;PDF&lt;/a&gt; (Provides a good overall system description of VCC; the paper to cite for VCC)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Local Verification of Global Invariants in Concurrent Programs.&lt;/b&gt; Ernie Cohen, Michał Moskal, Wolfram Schulte, Stephan Tobies. Computer Aided Verification (CAV2010). &lt;a href="http://research.microsoft.com/en-us/um/people/moskal/pdf/local.pdf"&gt;PDF&lt;/a&gt; (The best description of the underlying methodology)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;A Practical Verification Methodology for Concurrent Programs.&lt;/b&gt;  Ernie Cohen, Michał Moskal, Wolfram Schulte, Stephan Tobies. MSR-TR-2009-15. &lt;a href="http://research.microsoft.com/en-us/um/people/moskal/pdf/concurrency3.pdf"&gt;PDF&lt;/a&gt; (The methodological description is out-of-date, but this provides some detail on how programs are actually verified).&lt;/li&gt;
&lt;li&gt;&lt;b&gt;A Precise Yet Efficient Memory Model For C.&lt;/b&gt;  Ernie Cohen, Michał Moskal, Wolfram Schulte, Stephan Tobies. 4th International Workshop on Systems Software Verification (SSV2009). &lt;a href="http://research.microsoft.com/en-us/um/people/moskal/pdf/ssv2009.pdf"&gt;PDF&lt;/a&gt; (Describes the VCC typestate)&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;Also check out papers about &lt;a href="http://vcc.codeplex.com/wikipage?title=VCC%20Applications&amp;referringTitle=Home"&gt;VCC Applications&lt;/a&gt;!&lt;br /&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>MarkHillebrand</author><pubDate>Fri, 17 Aug 2012 07:04:47 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20120817070447A</guid></item><item><title>Updated Wiki: Home</title><link>http://vcc.codeplex.com/wikipage?version=83</link><description>&lt;div class="wikidoc"&gt;&lt;h2&gt;News&lt;/h2&gt;
There is now a draft manual! (see below).&lt;br /&gt;
&lt;h2&gt;Intro&lt;/h2&gt;
VCC is a mechanical verifier for concurrent C programs. VCC takes a C program, annotated with function specifications, data invariants, loop invariants, and ghost code, and tries to prove these annotations correct. If it succeeds, VCC promises that your program actually meets its specifications.&lt;br /&gt;
&lt;h2&gt;Features&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt;VCC is &lt;b&gt;sound&lt;/b&gt; -- if VCC verifies your program, it really is correct (modulo bugs in VCC itself).&lt;/li&gt;
&lt;li&gt;VCC verification is &lt;b&gt;modular&lt;/b&gt; -- VCC verifies your program one function/type definition at a time, using only the specifications of the functions it calls and the data structures it uses. This means that you can verify your code even if the functions you call haven&amp;#39;t been written yet.&lt;/li&gt;
&lt;li&gt;VCC supports &lt;b&gt;concurrency&lt;/b&gt; -- you can use VCC to verify programs that use both coarse-grained and fine-grained concurrency. You can even use it to verify your concurrency control primitives. Verifying a function implicitly guarantees its thread safety in any concurrent environment that respects the contracts on its functions and data structures.&lt;/li&gt;
&lt;li&gt;VCC supports &lt;b&gt;low-level C&lt;/b&gt; features (e.g. bitfields, unions, wrap-around arithmetic). &lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;The nicest way to run VCC is as Visual Studio pluggin, in Visual Studio 2012 or 2010. You can also run it from the command line.&lt;br /&gt;
&lt;h2&gt;Getting Started&lt;/h2&gt;
You get a taste of VCC by running it in your browser from &lt;a href="http://rise4fun.com/vcc"&gt;RiSE4Fun website&lt;/a&gt;. (Note however that this version is not updated very often.)&lt;br /&gt;&lt;br /&gt;Daily builds are published here automatically; we strongly encourage always using the latest build.&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Consult the &lt;a href="http://vcc.codeplex.com/wikipage?title=Install&amp;referringTitle=Home"&gt;Install&lt;/a&gt; page before installing VCC for the first time.&lt;/li&gt;&lt;/ul&gt;
 
&lt;ul&gt;&lt;li&gt;You can also download the sources and build VCC yourself. (See the &lt;a href="http://vcc.codeplex.com/wikipage?title=Build%20Instructions&amp;referringTitle=Home"&gt;Build Instructions&lt;/a&gt;.)&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;We strongly recommend working through the VCC tutorial (below).&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;For reference purposes, you should refer to the VCC manual (below).&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;You can also download some &lt;a href="http://vcc.codeplex.com/wikipage?title=Samples&amp;referringTitle=Home"&gt;Samples&lt;/a&gt;. Many more examples can be found in the VCC source distribution tree, or in the samples package that can be installed after installing VCC (see &amp;quot;All Programs -&amp;gt; Microsoft Research Vcc -&amp;gt; (Re-)Install Samples&amp;quot;) &lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;
&lt;h2&gt;Papers&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;Verifying Concurrent C Programs with VCC.&lt;/b&gt;  Ernie Cohen, Mark Hillebrand, Michał Moskal, Wolfram Schulte, Stephan Tobies. &lt;a href="http://www.codeplex.com/Download?ProjectName=VCC&amp;DownloadId=468959"&gt;PDF &amp;#40;2-column, &amp;#126;25 pages&amp;#41;&lt;/a&gt; &lt;a href="http://www.codeplex.com/Download?ProjectName=VCC&amp;DownloadId=468956"&gt;PDF &amp;#40;1-column, &amp;#126;65pages&amp;#41;&lt;/a&gt; &lt;a href="http://www.codeplex.com/Download?ProjectName=VCC&amp;DownloadId=468962"&gt;PDF &amp;#40;screen-reading&amp;#41;&lt;/a&gt; (A working draft of VCC tutorial - the recommended place to start)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;The VCC Manual&lt;/b&gt; &lt;a href="http://www.codeplex.com/Download?ProjectName=VCC&amp;DownloadId=468952"&gt;PDF &amp;#40;2-column&amp;#41;&lt;/a&gt;&lt;a href="http://www.codeplex.com/Download?ProjectName=VCC&amp;DownloadId=468950"&gt;PDF &amp;#40;1-column&amp;#41;&lt;/a&gt; (A working draft of the VCC manual.)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;VCC: A Practical System for Verifying Concurrent C.&lt;/b&gt;  Ernie Cohen, Markus Dahlweid, Mark Hillebrand, Dirk Leinenbach, Michał Moskal, Thomas Santen, Wolfram Schulte, Stephan Tobies. 22nd International Conference on Theorem Proving in Higher Order Logics (TPHOLs 2009). (LNCS 5674). &lt;a href="http://research.microsoft.com/en-us/um/people/moskal/pdf/tphol2009.pdf"&gt;PDF&lt;/a&gt; (Provides a good overall system description of VCC; the paper to cite for VCC)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Local Verification of Global Invariants in Concurrent Programs.&lt;/b&gt; Ernie Cohen, Michał Moskal, Wolfram Schulte, Stephan Tobies. Computer Aided Verification (CAV2010). &lt;a href="http://research.microsoft.com/en-us/um/people/moskal/pdf/local.pdf"&gt;PDF&lt;/a&gt; (The best description of the underlying methodology)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;A Practical Verification Methodology for Concurrent Programs.&lt;/b&gt;  Ernie Cohen, Michał Moskal, Wolfram Schulte, Stephan Tobies. MSR-TR-2009-15. &lt;a href="http://research.microsoft.com/en-us/um/people/moskal/pdf/concurrency3.pdf"&gt;PDF&lt;/a&gt; (The methodological description is out-of-date, but this provides some detail on how programs are actually verified).&lt;/li&gt;
&lt;li&gt;&lt;b&gt;A Precise Yet Efficient Memory Model For C.&lt;/b&gt;  Ernie Cohen, Michał Moskal, Wolfram Schulte, Stephan Tobies. 4th International Workshop on Systems Software Verification (SSV2009). &lt;a href="http://research.microsoft.com/en-us/um/people/moskal/pdf/ssv2009.pdf"&gt;PDF&lt;/a&gt; (Describes the VCC typestate)&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;Also check out papers about &lt;a href="http://vcc.codeplex.com/wikipage?title=VCC%20Applications&amp;referringTitle=Home"&gt;VCC Applications&lt;/a&gt;!&lt;br /&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>erniecohen</author><pubDate>Fri, 17 Aug 2012 01:59:36 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20120817015936A</guid></item><item><title>Updated Wiki: Home</title><link>http://vcc.codeplex.com/wikipage?version=82</link><description>&lt;div class="wikidoc"&gt;&lt;h2&gt;News&lt;/h2&gt;
There is now a draft manual! (see below).&lt;br /&gt;
&lt;h2&gt;Intro&lt;/h2&gt;
VCC is a mechanical verifier for concurrent C programs. VCC takes a C program, annotated with function specifications, data invariants, loop invariants, and ghost code, and tries to prove these annotations correct. If it succeeds, VCC promises that your program actually meets its specifications.&lt;br /&gt;
&lt;h2&gt;Features&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt;VCC is &lt;b&gt;sound&lt;/b&gt; -- if VCC verifies your program, it really is correct (modulo bugs in VCC itself).&lt;/li&gt;
&lt;li&gt;VCC verification is &lt;b&gt;modular&lt;/b&gt; -- VCC verifies your program one function/type definition at a time, using only the specifications of the functions it calls and the data structures it uses. This means that you can verify your code even if the functions you call haven&amp;#39;t been written yet.&lt;/li&gt;
&lt;li&gt;VCC supports &lt;b&gt;concurrency&lt;/b&gt; -- you can use VCC to verify programs that use both coarse-grained and fine-grained concurrency. You can even use it to verify your concurrency control primitives. Verifying a function implicitly guarantees its thread safety in any concurrent environment that respects the contracts on its functions and data structures.&lt;/li&gt;
&lt;li&gt;VCC supports &lt;b&gt;low-level C&lt;/b&gt; features (e.g. bitfields, unions, wrap-around arithmetic). &lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;The nicest way to run VCC is as Visual Studio pluggin, in Visual Studio 2010. You can also run it from the command line.&lt;br /&gt;&lt;br /&gt;VCC is being developed primarily at the &lt;a href="http://www.microsoft.com/emic/default.mspx"&gt;European Microsoft Innovation Center&lt;/a&gt; in Aachen, Germany and in the &lt;a href="http://research.microsoft.com/rise"&gt;RiSE group&lt;/a&gt; at Microsoft Research in Redmond. &lt;br /&gt;
&lt;h2&gt;Getting Started&lt;/h2&gt;
You get a taste of VCC by running it in your browser from &lt;a href="http://rise4fun.com/vcc"&gt;RiSE4Fun website&lt;/a&gt;. (Note however that this is a rather old and out-of-date version.)&lt;br /&gt;&lt;br /&gt;Daily builds are published here automatically; we strongly encourage always using the latest build.&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Consult the &lt;a href="http://vcc.codeplex.com/wikipage?title=Install&amp;referringTitle=Home"&gt;Install&lt;/a&gt; page before installing VCC for the first time.&lt;/li&gt;&lt;/ul&gt;
 
&lt;ul&gt;&lt;li&gt;You can also download the sources and build VCC yourself. (See the &lt;a href="http://vcc.codeplex.com/wikipage?title=Build%20Instructions&amp;referringTitle=Home"&gt;Build Instructions&lt;/a&gt;.)&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;We strongly recommend working through the VCC tutorial (below).&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;For reference purposes, you should refer to the VCC manual (below).&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;You can also download some &lt;a href="http://vcc.codeplex.com/wikipage?title=Samples&amp;referringTitle=Home"&gt;Samples&lt;/a&gt;. Many more examples can be found in the VCC source distribution tree, or in the samples package that can be installed after installing VCC (see &amp;quot;All Programs -&amp;gt; Microsoft Research Vcc -&amp;gt; (Re-)Install Samples&amp;quot;) &lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;
&lt;h2&gt;Papers&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;Verifying Concurrent C Programs with VCC.&lt;/b&gt;  Ernie Cohen, Mark Hillebrand, Michał Moskal, Wolfram Schulte, Stephan Tobies. &lt;a href="http://www.codeplex.com/Download?ProjectName=VCC&amp;DownloadId=468959"&gt;PDF &amp;#40;2-column, &amp;#126;25 pages&amp;#41;&lt;/a&gt; &lt;a href="http://www.codeplex.com/Download?ProjectName=VCC&amp;DownloadId=468956"&gt;PDF &amp;#40;1-column, &amp;#126;65pages&amp;#41;&lt;/a&gt; &lt;a href="http://www.codeplex.com/Download?ProjectName=VCC&amp;DownloadId=468962"&gt;PDF &amp;#40;screen-reading&amp;#41;&lt;/a&gt; (A working draft of VCC tutorial - the recommended place to start)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;The VCC Manual&lt;/b&gt; &lt;a href="http://www.codeplex.com/Download?ProjectName=VCC&amp;DownloadId=468952"&gt;PDF &amp;#40;2-column&amp;#41;&lt;/a&gt;&lt;a href="http://www.codeplex.com/Download?ProjectName=VCC&amp;DownloadId=468950"&gt;PDF &amp;#40;1-column&amp;#41;&lt;/a&gt; (A working draft of the VCC manual.)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;VCC: A Practical System for Verifying Concurrent C.&lt;/b&gt;  Ernie Cohen, Markus Dahlweid, Mark Hillebrand, Dirk Leinenbach, Michał Moskal, Thomas Santen, Wolfram Schulte, Stephan Tobies. 22nd International Conference on Theorem Proving in Higher Order Logics (TPHOLs 2009). (LNCS 5674). &lt;a href="http://research.microsoft.com/en-us/um/people/moskal/pdf/tphol2009.pdf"&gt;PDF&lt;/a&gt; (Provides a good overall system description of VCC; the paper to cite for VCC)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Local Verification of Global Invariants in Concurrent Programs.&lt;/b&gt; Ernie Cohen, Michał Moskal, Wolfram Schulte, Stephan Tobies. Computer Aided Verification (CAV2010). &lt;a href="http://research.microsoft.com/en-us/um/people/moskal/pdf/local.pdf"&gt;PDF&lt;/a&gt; (The best description of the underlying methodology)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;A Practical Verification Methodology for Concurrent Programs.&lt;/b&gt;  Ernie Cohen, Michał Moskal, Wolfram Schulte, Stephan Tobies. MSR-TR-2009-15. &lt;a href="http://research.microsoft.com/en-us/um/people/moskal/pdf/concurrency3.pdf"&gt;PDF&lt;/a&gt; (The methodological description is out-of-date, but this provides some detail on how programs are actually verified).&lt;/li&gt;
&lt;li&gt;&lt;b&gt;A Precise Yet Efficient Memory Model For C.&lt;/b&gt;  Ernie Cohen, Michał Moskal, Wolfram Schulte, Stephan Tobies. 4th International Workshop on Systems Software Verification (SSV2009). &lt;a href="http://research.microsoft.com/en-us/um/people/moskal/pdf/ssv2009.pdf"&gt;PDF&lt;/a&gt; (Describes the VCC typestate)&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;Also check out papers about &lt;a href="http://vcc.codeplex.com/wikipage?title=VCC%20Applications&amp;referringTitle=Home"&gt;VCC Applications&lt;/a&gt;!&lt;br /&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>erniecohen</author><pubDate>Sat, 11 Aug 2012 08:01:55 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20120811080155A</guid></item><item><title>Updated Wiki: Home</title><link>http://vcc.codeplex.com/wikipage?version=81</link><description>&lt;div class="wikidoc"&gt;&lt;h2&gt;News&lt;/h2&gt;
There is now a draft manual! (see below).&lt;br /&gt;
&lt;h2&gt;Intro&lt;/h2&gt;
VCC is a mechanical verifier for concurrent C programs. VCC takes a C program, annotated with function specifications, data invariants, loop invariants, and ghost code, and tries to prove these annotations correct. If it succeeds, VCC promises that your program actually meets its specifications.&lt;br /&gt;
&lt;h2&gt;Features&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt;VCC is &lt;b&gt;sound&lt;/b&gt; -- if VCC verifies your program, it really is correct (modulo bugs in VCC itself).&lt;/li&gt;
&lt;li&gt;VCC verification is &lt;b&gt;modular&lt;/b&gt; -- VCC verifies your program one function/type definition at a time, using only the specifications of the functions it calls and the data structures it uses. This means that you can verify your code even if the functions you call haven&amp;#39;t been written yet.&lt;/li&gt;
&lt;li&gt;VCC supports &lt;b&gt;concurrency&lt;/b&gt; -- you can use VCC to verify programs that use both coarse-grained and fine-grained concurrency. You can even use it to verify your concurrency control primitives. Verifying a function implicitly guarantees its thread safety in any concurrent environment that respects the contracts on its functions and data structures.&lt;/li&gt;
&lt;li&gt;VCC supports &lt;b&gt;low-level C&lt;/b&gt; features (e.g. bitfields, unions, wrap-around arithmetic). &lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;The nicest way to run VCC is as Visual Studio pluggin, in Visual Studio 2010. You can also run it from the command line.&lt;br /&gt;&lt;br /&gt;VCC is being developed primarily at the &lt;a href="http://www.microsoft.com/emic/default.mspx"&gt;European Microsoft Innovation Center&lt;/a&gt; in Aachen, Germany and in the &lt;a href="http://research.microsoft.com/rise"&gt;RiSE group&lt;/a&gt; at Microsoft Research in Redmond. &lt;br /&gt;
&lt;h2&gt;Getting Started&lt;/h2&gt;
You get a taste of VCC by running it in your browser from &lt;a href="http://rise4fun.com/vcc"&gt;RiSE4Fun website&lt;/a&gt;. (Note however that this is a rather old and out-of-date version.)&lt;br /&gt;&lt;br /&gt;Daily builds are published here automatically; we strongly encourage always using the latest build.&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Consult the &lt;a href="http://vcc.codeplex.com/wikipage?title=Install&amp;referringTitle=Home"&gt;Install&lt;/a&gt; page before installing VCC for the first time.&lt;/li&gt;&lt;/ul&gt;
 
&lt;ul&gt;&lt;li&gt;You can also download the sources and build VCC yourself. (See the &lt;a href="http://vcc.codeplex.com/wikipage?title=Build%20Instructions&amp;referringTitle=Home"&gt;Build Instructions&lt;/a&gt;.)&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;We strongly recommend working through the VCC tutorial (below).&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;For reference purposes, you should refer to the VCC manual (below).&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;You can also download some &lt;a href="http://vcc.codeplex.com/wikipage?title=Samples&amp;referringTitle=Home"&gt;Samples&lt;/a&gt;. Many more examples can be found in the VCC source distribution tree, or in the samples package that can be installed after installing VCC (see &amp;quot;All Programs -&amp;gt; Microsoft Research Vcc -&amp;gt; (Re-)Install Samples&amp;quot;) &lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;
&lt;h2&gt;Papers&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;Verifying Concurrent C Programs with VCC.&lt;/b&gt;  Ernie Cohen, Mark Hillebrand, Michał Moskal, Wolfram Schulte, Stephan Tobies. &lt;a href="http://www.codeplex.com/Download?ProjectName=VCC&amp;DownloadId=421596"&gt;PDF &amp;#40;2-column, &amp;#126;25 pages&amp;#41;&lt;/a&gt; &lt;a href="http://www.codeplex.com/Download?ProjectName=VCC&amp;DownloadId=421599"&gt;PDF &amp;#40;1-column, &amp;#126;65pages&amp;#41;&lt;/a&gt; &lt;a href="http://www.codeplex.com/Download?ProjectName=VCC&amp;DownloadId=421598"&gt;PDF &amp;#40;screen-reading&amp;#41;&lt;/a&gt; (A working draft of VCC tutorial - a recommended place to start)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;The VCC Manual&lt;/b&gt; &lt;a href="http://www.codeplex.com/Download?ProjectName=VCC&amp;DownloadId=463247"&gt;PDF &amp;#40;2-column&amp;#41;&lt;/a&gt;&lt;a href="http://www.codeplex.com/Download?ProjectName=VCC&amp;DownloadId=463246"&gt;PDF &amp;#40;1-column&amp;#41;&lt;/a&gt; (A working draft of the VCC manual.)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;VCC: A Practical System for Verifying Concurrent C.&lt;/b&gt;  Ernie Cohen, Markus Dahlweid, Mark Hillebrand, Dirk Leinenbach, Michał Moskal, Thomas Santen, Wolfram Schulte, Stephan Tobies. 22nd International Conference on Theorem Proving in Higher Order Logics (TPHOLs 2009). (LNCS 5674). &lt;a href="http://research.microsoft.com/en-us/um/people/moskal/pdf/tphol2009.pdf"&gt;PDF&lt;/a&gt; (Provides a good overall system description of VCC; the paper to cite for VCC)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Local Verification of Global Invariants in Concurrent Programs.&lt;/b&gt; Ernie Cohen, Michał Moskal, Wolfram Schulte, Stephan Tobies. Computer Aided Verification (CAV2010). &lt;a href="http://research.microsoft.com/en-us/um/people/moskal/pdf/local.pdf"&gt;PDF&lt;/a&gt; (The best description of the underlying methodology)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;A Practical Verification Methodology for Concurrent Programs.&lt;/b&gt;  Ernie Cohen, Michał Moskal, Wolfram Schulte, Stephan Tobies. MSR-TR-2009-15. &lt;a href="http://research.microsoft.com/en-us/um/people/moskal/pdf/concurrency3.pdf"&gt;PDF&lt;/a&gt; (The methodological description is out-of-date, but this provides some detail on how programs are actually verified).&lt;/li&gt;
&lt;li&gt;&lt;b&gt;A Precise Yet Efficient Memory Model For C.&lt;/b&gt;  Ernie Cohen, Michał Moskal, Wolfram Schulte, Stephan Tobies. 4th International Workshop on Systems Software Verification (SSV2009). &lt;a href="http://research.microsoft.com/en-us/um/people/moskal/pdf/ssv2009.pdf"&gt;PDF&lt;/a&gt; (Describes the VCC typestate)&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;Also check out papers about &lt;a href="http://vcc.codeplex.com/wikipage?title=VCC%20Applications&amp;referringTitle=Home"&gt;VCC Applications&lt;/a&gt;!&lt;br /&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>erniecohen</author><pubDate>Tue, 07 Aug 2012 05:49:52 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20120807054952A</guid></item><item><title>Updated Wiki: Home</title><link>http://vcc.codeplex.com/wikipage?version=80</link><description>&lt;div class="wikidoc"&gt;&lt;h2&gt;News&lt;/h2&gt;
There is now a draft manual! (see below).&lt;br /&gt;
&lt;h2&gt;Intro&lt;/h2&gt;
VCC is a mechanical verifier for concurrent C programs. VCC takes a C program, annotated with function specifications, data invariants, loop invariants, and ghost code, and tries to prove these annotations correct. If it succeeds, VCC promises that your program actually meets its specifications.&lt;br /&gt;
&lt;h2&gt;Features&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt;VCC is &lt;b&gt;sound&lt;/b&gt; -- if VCC verifies your program, it really is correct (modulo bugs in VCC itself).&lt;/li&gt;
&lt;li&gt;VCC verification is &lt;b&gt;modular&lt;/b&gt; -- VCC verifies your program one function/type definition at a time, using only the specifications of the functions it calls and the data structures it uses. This means that you can verify your code even if the functions you call haven&amp;#39;t been written yet.&lt;/li&gt;
&lt;li&gt;VCC supports &lt;b&gt;concurrency&lt;/b&gt; -- you can use VCC to verify programs that use both coarse-grained and fine-grained concurrency. You can even use it to verify your concurrency control primitives. Verifying a function implicitly guarantees its thread safety in any concurrent environment that respects the contracts on its functions and data structures.&lt;/li&gt;
&lt;li&gt;VCC supports &lt;b&gt;low-level C&lt;/b&gt; features (e.g. bitfields, unions, wrap-around arithmetic). &lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;The nicest way to run VCC is as Visual Studio pluggin, in either VS2010 or VS2012 RC. You can also run it from the command line.&lt;br /&gt;&lt;br /&gt;VCC is being developed primarily at the &lt;a href="http://www.microsoft.com/emic/default.mspx"&gt;European Microsoft Innovation Center&lt;/a&gt; in Aachen, Germany and in the &lt;a href="http://research.microsoft.com/rise"&gt;RiSE group&lt;/a&gt; at Microsoft Research in Redmond. &lt;br /&gt;
&lt;h2&gt;Getting Started&lt;/h2&gt;
You get a taste of VCC by running it in your browser from &lt;a href="http://rise4fun.com/vcc"&gt;RiSE4Fun website&lt;/a&gt;. (Note however that this is a rather old and out-of-date version.)&lt;br /&gt;&lt;br /&gt;Daily builds are published here automatically; we strongly encourage always using the latest build.&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Consult the &lt;a href="http://vcc.codeplex.com/wikipage?title=Install&amp;referringTitle=Home"&gt;Install&lt;/a&gt; page before installing VCC for the first time.&lt;/li&gt;&lt;/ul&gt;
 
&lt;ul&gt;&lt;li&gt;You can also download the sources and build VCC yourself. (See the &lt;a href="http://vcc.codeplex.com/wikipage?title=Build%20Instructions&amp;referringTitle=Home"&gt;Build Instructions&lt;/a&gt;.)&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;We strongly recommend working through the VCC tutorial (below).&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;For reference purposes, you should refer to the VCC manual (below).&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;You can also download some &lt;a href="http://vcc.codeplex.com/wikipage?title=Samples&amp;referringTitle=Home"&gt;Samples&lt;/a&gt;. Many more examples can be found in the VCC source distribution tree, or in the samples package that can be installed after installing VCC (see &amp;quot;All Programs -&amp;gt; Microsoft Research Vcc -&amp;gt; (Re-)Install Samples&amp;quot;) &lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;
&lt;h2&gt;Papers&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;Verifying Concurrent C Programs with VCC.&lt;/b&gt;  Ernie Cohen, Mark Hillebrand, Michał Moskal, Wolfram Schulte, Stephan Tobies. &lt;a href="http://www.codeplex.com/Download?ProjectName=VCC&amp;DownloadId=421596"&gt;PDF &amp;#40;2-column, &amp;#126;25 pages&amp;#41;&lt;/a&gt; &lt;a href="http://www.codeplex.com/Download?ProjectName=VCC&amp;DownloadId=421599"&gt;PDF &amp;#40;1-column, &amp;#126;65pages&amp;#41;&lt;/a&gt; &lt;a href="http://www.codeplex.com/Download?ProjectName=VCC&amp;DownloadId=421598"&gt;PDF &amp;#40;screen-reading&amp;#41;&lt;/a&gt; (A working draft of VCC tutorial - a recommended place to start)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;The VCC Manual&lt;/b&gt; &lt;a href="http://www.codeplex.com/Download?ProjectName=VCC&amp;DownloadId=463247"&gt;PDF &amp;#40;2-column&amp;#41;&lt;/a&gt;&lt;a href="http://www.codeplex.com/Download?ProjectName=VCC&amp;DownloadId=463246"&gt;PDF &amp;#40;1-column&amp;#41;&lt;/a&gt; (A working draft of the VCC manual.)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;VCC: A Practical System for Verifying Concurrent C.&lt;/b&gt;  Ernie Cohen, Markus Dahlweid, Mark Hillebrand, Dirk Leinenbach, Michał Moskal, Thomas Santen, Wolfram Schulte, Stephan Tobies. 22nd International Conference on Theorem Proving in Higher Order Logics (TPHOLs 2009). (LNCS 5674). &lt;a href="http://research.microsoft.com/en-us/um/people/moskal/pdf/tphol2009.pdf"&gt;PDF&lt;/a&gt; (Provides a good overall system description of VCC; the paper to cite for VCC)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Local Verification of Global Invariants in Concurrent Programs.&lt;/b&gt; Ernie Cohen, Michał Moskal, Wolfram Schulte, Stephan Tobies. Computer Aided Verification (CAV2010). &lt;a href="http://research.microsoft.com/en-us/um/people/moskal/pdf/local.pdf"&gt;PDF&lt;/a&gt; (The best description of the underlying methodology)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;A Practical Verification Methodology for Concurrent Programs.&lt;/b&gt;  Ernie Cohen, Michał Moskal, Wolfram Schulte, Stephan Tobies. MSR-TR-2009-15. &lt;a href="http://research.microsoft.com/en-us/um/people/moskal/pdf/concurrency3.pdf"&gt;PDF&lt;/a&gt; (The methodological description is out-of-date, but this provides some detail on how programs are actually verified).&lt;/li&gt;
&lt;li&gt;&lt;b&gt;A Precise Yet Efficient Memory Model For C.&lt;/b&gt;  Ernie Cohen, Michał Moskal, Wolfram Schulte, Stephan Tobies. 4th International Workshop on Systems Software Verification (SSV2009). &lt;a href="http://research.microsoft.com/en-us/um/people/moskal/pdf/ssv2009.pdf"&gt;PDF&lt;/a&gt; (Describes the VCC typestate)&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;Also check out papers about &lt;a href="http://vcc.codeplex.com/wikipage?title=VCC%20Applications&amp;referringTitle=Home"&gt;VCC Applications&lt;/a&gt;!&lt;br /&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>erniecohen</author><pubDate>Wed, 25 Jul 2012 17:23:04 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20120725052304P</guid></item><item><title>Updated Wiki: Home</title><link>http://vcc.codeplex.com/wikipage?version=79</link><description>&lt;div class="wikidoc"&gt;&lt;h2&gt;News&lt;/h2&gt;
There is now a draft manual! (see below).&lt;br /&gt;
&lt;h2&gt;Intro&lt;/h2&gt;
VCC is a mechanical verifier for concurrent C programs. VCC takes a C program, annotated with function specifications, data invariants, loop invariants, and ghost code, and tries to prove these annotations correct. If it succeeds, VCC promises that your program actually meets its specifications.&lt;br /&gt;
&lt;h2&gt;Features&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt;VCC is &lt;b&gt;sound&lt;/b&gt; -- if VCC verifies your program, it really is correct (modulo bugs in VCC itself).&lt;/li&gt;
&lt;li&gt;VCC verification is &lt;b&gt;modular&lt;/b&gt; -- VCC verifies your program one function/type definition at a time, using only the specifications of the functions it calls and the data structures it uses. This means that you can verify your code even if the functions you call haven&amp;#39;t been written yet.&lt;/li&gt;
&lt;li&gt;VCC supports &lt;b&gt;concurrency&lt;/b&gt; -- you can use VCC to verify programs that use both coarse-grained and fine-grained concurrency. You can even use it to verify your concurrency control primitives. Verifying a function implicitly guarantees its thread safety in any concurrent environment that respects the contracts on its functions and data structures.&lt;/li&gt;
&lt;li&gt;VCC supports &lt;b&gt;low-level C&lt;/b&gt; features (e.g. bitfields, unions, wrap-around arithmetic). &lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;The nicest way to run VCC is as Visual Studio pluggin, in either VS2010 or VS2012 RC. You can also run it from the command line.&lt;br /&gt;&lt;br /&gt;VCC is being developed primarily at the &lt;a href="http://www.microsoft.com/emic/default.mspx"&gt;European Microsoft Innovation Center&lt;/a&gt; in Aachen, Germany and in the &lt;a href="http://research.microsoft.com/rise"&gt;RiSE group&lt;/a&gt; at Microsoft Research in Redmond. &lt;br /&gt;
&lt;h2&gt;Getting Started&lt;/h2&gt;
You get a taste of VCC by running it in your browser from &lt;a href="http://rise4fun.com/vcc"&gt;RiSE4Fun website&lt;/a&gt;. (Note however that this is a rather old and out-of-date version.)&lt;br /&gt;&lt;br /&gt;Daily builds are published here automatically; we strongly encourage always using the latest build.&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Consult the &lt;a href="http://vcc.codeplex.com/wikipage?title=Install&amp;referringTitle=Home"&gt;Install&lt;/a&gt; page before installing VCC for the first time.&lt;/li&gt;&lt;/ul&gt;
 
&lt;ul&gt;&lt;li&gt;You can also download the sources and build VCC yourself. (See the &lt;a href="http://vcc.codeplex.com/wikipage?title=Build%20Instructions&amp;referringTitle=Home"&gt;Build Instructions&lt;/a&gt;.)&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;We strongly recommend working through the VCC tutorial (below).&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;For reference purposes, you should refer to the VCC manual (below).&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;You can also download some &lt;a href="http://vcc.codeplex.com/wikipage?title=Samples&amp;referringTitle=Home"&gt;Samples&lt;/a&gt;. Many more examples can be found in the VCC source distribution tree, or in the samples package that can be installed after installing VCC (see &amp;quot;All Programs -&amp;gt; Microsoft Research Vcc -&amp;gt; (Re-)Install Samples&amp;quot;) &lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;
&lt;h2&gt;Papers&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;Verifying Concurrent C Programs with VCC.&lt;/b&gt;  Ernie Cohen, Mark Hillebrand, Michał Moskal, Wolfram Schulte, Stephan Tobies. &lt;a href="http://www.codeplex.com/Download?ProjectName=VCC&amp;DownloadId=421596"&gt;PDF &amp;#40;2-column, &amp;#126;25 pages&amp;#41;&lt;/a&gt; &lt;a href="http://www.codeplex.com/Download?ProjectName=VCC&amp;DownloadId=421599"&gt;PDF &amp;#40;1-column, &amp;#126;65pages&amp;#41;&lt;/a&gt; &lt;a href="http://www.codeplex.com/Download?ProjectName=VCC&amp;DownloadId=421598"&gt;PDF &amp;#40;screen-reading&amp;#41;&lt;/a&gt; (A working draft of VCC tutorial - a recommended place to start)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;The VCC Manual&lt;/b&gt; &lt;a href="http://www.codeplex.com/Download?ProjectName=VCC&amp;DownloadId=463108"&gt;PDF &amp;#40;2-column&amp;#41;&lt;/a&gt;&lt;a href="http://www.codeplex.com/Download?ProjectName=VCC&amp;DownloadId=463107"&gt;PDF &amp;#40;1-column&amp;#41;&lt;/a&gt; (A working draft of the VCC manual.)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;VCC: A Practical System for Verifying Concurrent C.&lt;/b&gt;  Ernie Cohen, Markus Dahlweid, Mark Hillebrand, Dirk Leinenbach, Michał Moskal, Thomas Santen, Wolfram Schulte, Stephan Tobies. 22nd International Conference on Theorem Proving in Higher Order Logics (TPHOLs 2009). (LNCS 5674). &lt;a href="http://research.microsoft.com/en-us/um/people/moskal/pdf/tphol2009.pdf"&gt;PDF&lt;/a&gt; (Provides a good overall system description of VCC; the paper to cite for VCC)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Local Verification of Global Invariants in Concurrent Programs.&lt;/b&gt; Ernie Cohen, Michał Moskal, Wolfram Schulte, Stephan Tobies. Computer Aided Verification (CAV2010). &lt;a href="http://research.microsoft.com/en-us/um/people/moskal/pdf/local.pdf"&gt;PDF&lt;/a&gt; (The best description of the underlying methodology)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;A Practical Verification Methodology for Concurrent Programs.&lt;/b&gt;  Ernie Cohen, Michał Moskal, Wolfram Schulte, Stephan Tobies. MSR-TR-2009-15. &lt;a href="http://research.microsoft.com/en-us/um/people/moskal/pdf/concurrency3.pdf"&gt;PDF&lt;/a&gt; (The methodological description is out-of-date, but this provides some detail on how programs are actually verified).&lt;/li&gt;
&lt;li&gt;&lt;b&gt;A Precise Yet Efficient Memory Model For C.&lt;/b&gt;  Ernie Cohen, Michał Moskal, Wolfram Schulte, Stephan Tobies. 4th International Workshop on Systems Software Verification (SSV2009). &lt;a href="http://research.microsoft.com/en-us/um/people/moskal/pdf/ssv2009.pdf"&gt;PDF&lt;/a&gt; (Describes the VCC typestate)&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;Also check out papers about &lt;a href="http://vcc.codeplex.com/wikipage?title=VCC%20Applications&amp;referringTitle=Home"&gt;VCC Applications&lt;/a&gt;!&lt;br /&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>erniecohen</author><pubDate>Wed, 25 Jul 2012 17:19:53 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20120725051953P</guid></item><item><title>Updated Wiki: Documentation</title><link>http://vcc.codeplex.com/documentation?version=10</link><description>&lt;div class="wikidoc"&gt;&lt;b&gt;The document pages here are now deprecated. They remain because they contain some information and examples that are not currently part of the manual, but they should not be used as primary documentation. Please refer instead to the manual, the tutorial, and the examples and test cases included in the source distribution. &lt;/b&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Running VCC
&lt;ul&gt;&lt;li&gt;&lt;a href="http://vcc.codeplex.com/wikipage?title=Basic%20usage%20of%20VCC&amp;referringTitle=Documentation"&gt;Basic usage of VCC&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://vcc.codeplex.com/wikipage?title=Advanced%20usage%20of%20VCC&amp;referringTitle=Documentation"&gt;Advanced usage of VCC&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://vcc.codeplex.com/wikipage?title=Smoke%20Tests&amp;referringTitle=Documentation"&gt;Smoke Tests&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://vcc.codeplex.com/wikipage?title=Knobs&amp;referringTitle=Documentation"&gt;Knobs&lt;/a&gt; for VCC, Boogie and Z3, a.k.a. The Heavy VooDoo.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://vcc.codeplex.com/wikipage?title=Using%20VCC%20with%20Isabelle%2fHOL&amp;referringTitle=Documentation"&gt;Using VCC with Isabelle&amp;#47;HOL&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://vcc.codeplex.com/wikipage?title=Arithmetic&amp;referringTitle=Documentation"&gt;Arithmetic&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://vcc.codeplex.com/wikipage?title=Loops%20and%20Invariants&amp;referringTitle=Documentation"&gt;Loops and Invariants&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://vcc.codeplex.com/wikipage?title=Invariants%20on%20types&amp;referringTitle=Documentation"&gt;Invariants on types&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://vcc.codeplex.com/wikipage?title=Ownership&amp;referringTitle=Documentation"&gt;Ownership&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://vcc.codeplex.com/wikipage?title=Sequential%20Domains&amp;referringTitle=Documentation"&gt;Sequential Domains&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://vcc.codeplex.com/wikipage?title=Pointers%20and%20Validity&amp;referringTitle=Documentation"&gt;Pointers and Validity&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://vcc.codeplex.com/wikipage?title=Pointers%20and%20aliasing&amp;referringTitle=Documentation"&gt;Pointers and aliasing&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://vcc.codeplex.com/wikipage?title=Specification%20Code&amp;referringTitle=Documentation"&gt;Specification Code&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://vcc.codeplex.com/wikipage?title=Quantifiers&amp;referringTitle=Documentation"&gt;Quantifiers&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://vcc.codeplex.com/wikipage?title=Claims&amp;referringTitle=Documentation"&gt;Claims&lt;/a&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://vcc.codeplex.com/wikipage?title=Assertions%20in%20Concurrent%20Context&amp;referringTitle=Documentation"&gt;Assertions in Concurrent Context&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://vcc.codeplex.com/wikipage?title=Atomic%20inline&amp;referringTitle=Documentation"&gt;Atomic inline&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://vcc.codeplex.com/wikipage?title=Counting%20Claims&amp;referringTitle=Documentation"&gt;Counting Claims&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://vcc.codeplex.com/wikipage?title=Deriving%20properties%20and%20upgrading%20claims&amp;referringTitle=Documentation"&gt;Deriving properties and upgrading claims&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://vcc.codeplex.com/wikipage?title=Groups&amp;referringTitle=Documentation"&gt;Groups&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://vcc.codeplex.com/wikipage?title=Union%20flattening&amp;referringTitle=Documentation"&gt;Union flattening&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://vcc.codeplex.com/wikipage?title=Structured%20field%20inlining&amp;referringTitle=Documentation"&gt;Structured field inlining&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://vcc.codeplex.com/wikipage?title=Structured%20type%20equality&amp;referringTitle=Documentation"&gt;Structured type equality&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://vcc.codeplex.com/wikipage?title=Globals&amp;referringTitle=Documentation"&gt;Globals&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://vcc.codeplex.com/wikipage?title=Inference&amp;referringTitle=Documentation"&gt;Inference&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://vcc.codeplex.com/wikipage?title=Explicit%20state&amp;referringTitle=Documentation"&gt;Explicit state&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://vcc.codeplex.com/wikipage?title=Framing%20and%20freshness&amp;referringTitle=Documentation"&gt;Framing and freshness&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://vcc.codeplex.com/wikipage?title=Admissibility&amp;referringTitle=Documentation"&gt;Admissibility&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://vcc.codeplex.com/wikipage?title=Parameters%20passed%20by%20reference&amp;referringTitle=Documentation"&gt;Parameters passed by reference&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://vcc.codeplex.com/wikipage?title=Bit-vector%20reasoning&amp;referringTitle=Documentation"&gt;Bit-vector reasoning&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://vcc.codeplex.com/wikipage?title=Skinny%20expose&amp;referringTitle=Documentation"&gt;Skinny expose&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://vcc.codeplex.com/wikipage?title=Out%20parameters&amp;referringTitle=Documentation"&gt;Out parameters&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://vcc.codeplex.com/wikipage?title=Contracts%20on%20blocks&amp;referringTitle=Documentation"&gt;Contracts on blocks&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://vcc.codeplex.com/wikipage?title=Memory%20Reinterpretation&amp;referringTitle=Documentation"&gt;Memory Reinterpretation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://vcc.codeplex.com/wikipage?title=Mathematical%20Integers&amp;referringTitle=Documentation"&gt;Mathematical Integers&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://vcc.codeplex.com/wikipage?title=Record%20types&amp;referringTitle=Documentation"&gt;Record types&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://vcc.codeplex.com/wikipage?title=Allocating%20ghost%20memory&amp;referringTitle=Documentation"&gt;Allocating ghost memory&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://vcc.codeplex.com/wikipage?title=Pure%20functions&amp;referringTitle=Documentation"&gt;Pure functions&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://vcc.codeplex.com/wikipage?title=Termination&amp;referringTitle=Documentation"&gt;Termination&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
Obsolete:
&lt;ul&gt;&lt;li&gt;&lt;a href="http://vcc.codeplex.com/wikipage?title=CONTAINING_RECORD&amp;referringTitle=Documentation"&gt;CONTAINING_RECORD&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://vcc.codeplex.com/wikipage?title=TLS&amp;referringTitle=Documentation"&gt;TLS&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>erniecohen</author><pubDate>Wed, 25 Jul 2012 16:59:22 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Documentation 20120725045922P</guid></item><item><title>Updated Wiki: Home</title><link>http://vcc.codeplex.com/wikipage?version=78</link><description>&lt;div class="wikidoc"&gt;&lt;h2&gt;News&lt;/h2&gt;
There is now a draft manual! (see below).&lt;br /&gt;
&lt;h2&gt;Intro&lt;/h2&gt;
VCC is a mechanical verifier for concurrent C programs. VCC takes a C program, annotated with function specifications, data invariants, loop invariants, and ghost code, and tries to prove these annotations correct. If it succeeds, VCC promises that your program actually meets its specifications.&lt;br /&gt;
&lt;h2&gt;Features&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt;VCC is &lt;b&gt;sound&lt;/b&gt; -- if VCC verifies your program, it really is correct (modulo bugs in VCC itself).&lt;/li&gt;
&lt;li&gt;VCC verification is &lt;b&gt;modular&lt;/b&gt; -- VCC verifies your program one function/type definition at a time, using only the specifications of the functions it calls and the data structures it uses. This means that you can verify your code even if the functions you call haven&amp;#39;t been written yet.&lt;/li&gt;
&lt;li&gt;VCC supports &lt;b&gt;concurrency&lt;/b&gt; -- you can use VCC to verify programs that use both coarse-grained and fine-grained concurrency. You can even use it to verify your concurrency control primitives. Verifying a function implicitly guarantees its thread safety in any concurrent environment that respects the contracts on its functions and data structures.&lt;/li&gt;
&lt;li&gt;VCC supports &lt;b&gt;low-level C&lt;/b&gt; features (e.g. bitfields, unions, wrap-around arithmetic). &lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;The nicest way to run VCC is as Visual Studio pluggin, in either VS2010 or VS2012 RC. You can also run it from the command line.&lt;br /&gt;&lt;br /&gt;VCC is being developed primarily at the &lt;a href="http://www.microsoft.com/emic/default.mspx"&gt;European Microsoft Innovation Center&lt;/a&gt; in Aachen, Germany and in the &lt;a href="http://research.microsoft.com/rise"&gt;RiSE group&lt;/a&gt; at Microsoft Research in Redmond. &lt;br /&gt;
&lt;h2&gt;Getting Started&lt;/h2&gt;
You get a taste of VCC by running it in your browser from &lt;a href="http://rise4fun.com/vcc"&gt;RiSE4Fun website&lt;/a&gt;. (Note however that this is a rather old and out-of-date version.)&lt;br /&gt;&lt;br /&gt;Daily builds are published here automatically; we strongly encourage always using the latest build.&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Consult the &lt;a href="http://vcc.codeplex.com/wikipage?title=Install&amp;referringTitle=Home"&gt;Install&lt;/a&gt; page before installing VCC for the first time.&lt;/li&gt;&lt;/ul&gt;
 
&lt;ul&gt;&lt;li&gt;You can also download the sources and build VCC yourself. (See the &lt;a href="http://vcc.codeplex.com/wikipage?title=Build%20Instructions&amp;referringTitle=Home"&gt;Build Instructions&lt;/a&gt;.)&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;We strongly recommend working through the VCC tutorial (below).&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;For reference purposes, you should refer to the VCC manual (below).&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;You can also download some &lt;a href="http://vcc.codeplex.com/wikipage?title=Samples&amp;referringTitle=Home"&gt;Samples&lt;/a&gt;. Many more examples can be found in the VCC source distribution tree, or in the samples package that can be installed after installing VCC (see &amp;quot;All Programs -&amp;gt; Microsoft Research Vcc -&amp;gt; (Re-)Install Samples&amp;quot;) &lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;
&lt;h2&gt;Papers&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;Verifying Concurrent C Programs with VCC.&lt;/b&gt;  Ernie Cohen, Mark Hillebrand, Michał Moskal, Wolfram Schulte, Stephan Tobies. &lt;a href="http://www.codeplex.com/Download?ProjectName=VCC&amp;DownloadId=421596"&gt;PDF &amp;#40;2-column, &amp;#126;25 pages&amp;#41;&lt;/a&gt; &lt;a href="http://www.codeplex.com/Download?ProjectName=VCC&amp;DownloadId=421599"&gt;PDF &amp;#40;1-column, &amp;#126;65pages&amp;#41;&lt;/a&gt; &lt;a href="http://www.codeplex.com/Download?ProjectName=VCC&amp;DownloadId=421598"&gt;PDF &amp;#40;screen-reading&amp;#41;&lt;/a&gt; (A working draft of VCC tutorial - a recommended place to start)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;A VCC Manual&lt;/b&gt; &lt;a href="http://www.codeplex.com/Download?ProjectName=VCC&amp;DownloadId=463108"&gt;PDF &amp;#40;2-column&amp;#41;&lt;/a&gt;&lt;a href="http://www.codeplex.com/Download?ProjectName=VCC&amp;DownloadId=463107"&gt;PDF &amp;#40;1-column&amp;#41;&lt;/a&gt; (A working draft of the VCC manual.)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;VCC: A Practical System for Verifying Concurrent C.&lt;/b&gt;  Ernie Cohen, Markus Dahlweid, Mark Hillebrand, Dirk Leinenbach, Michał Moskal, Thomas Santen, Wolfram Schulte, Stephan Tobies. 22nd International Conference on Theorem Proving in Higher Order Logics (TPHOLs 2009). (LNCS 5674). &lt;a href="http://research.microsoft.com/en-us/um/people/moskal/pdf/tphol2009.pdf"&gt;PDF&lt;/a&gt; (Provides a good overall system description of VCC, &lt;b&gt;the paper to cite for VCC&lt;/b&gt;)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Local Verification of Global Invariants in Concurrent Programs.&lt;/b&gt; Ernie Cohen, Michał Moskal, Wolfram Schulte, Stephan Tobies. Computer Aided Verification (CAV2010). &lt;a href="http://research.microsoft.com/en-us/um/people/moskal/pdf/local.pdf"&gt;PDF&lt;/a&gt; (The best description of the underlying methodology)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;A Practical Verification Methodology for Concurrent Programs.&lt;/b&gt;  Ernie Cohen, Michał Moskal, Wolfram Schulte, Stephan Tobies. MSR-TR-2009-15. &lt;a href="http://research.microsoft.com/en-us/um/people/moskal/pdf/concurrency3.pdf"&gt;PDF&lt;/a&gt; (The methodological description is out-of-date, but this provides more detail on how programs are actually verified).&lt;/li&gt;
&lt;li&gt;&lt;b&gt;A Precise Yet Efficient Memory Model For C.&lt;/b&gt;  Ernie Cohen, Michał Moskal, Wolfram Schulte, Stephan Tobies. 4th International Workshop on Systems Software Verification (SSV2009). &lt;a href="http://research.microsoft.com/en-us/um/people/moskal/pdf/ssv2009.pdf"&gt;PDF&lt;/a&gt; (Describes the VCC typestate)&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;Also check out papers about &lt;a href="http://vcc.codeplex.com/wikipage?title=VCC%20Applications&amp;referringTitle=Home"&gt;VCC Applications&lt;/a&gt;!&lt;br /&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>erniecohen</author><pubDate>Wed, 25 Jul 2012 07:45:04 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20120725074504A</guid></item><item><title>Updated Wiki: Home</title><link>http://vcc.codeplex.com/wikipage?version=77</link><description>&lt;div class="wikidoc"&gt;&lt;h2&gt;Intro&lt;/h2&gt;
VCC is a mechanical verifier for concurrent C programs. VCC takes a C program, annotated with function specifications, data invariants, loop invariants, and ghost code, and tries to prove these annotations correct. If it succeeds, VCC promises that your program actually meets its specifications.&lt;br /&gt;
&lt;h2&gt;Features&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt;VCC is &lt;b&gt;sound&lt;/b&gt; -- if VCC verifies your program, it really is correct (modulo bugs in VCC itself).&lt;/li&gt;
&lt;li&gt;VCC verification is &lt;b&gt;modular&lt;/b&gt; -- VCC verifies your program one function/type definition at a time, using only the specifications of the functions it calls and the data structures it uses. This means that you can verify your code even if the functions you call haven&amp;#39;t been written yet.&lt;/li&gt;
&lt;li&gt;VCC supports &lt;b&gt;concurrency&lt;/b&gt; -- you can use VCC to verify programs that use both coarse-grained and fine-grained concurrency. You can even use it to verify your concurrency control primitives. Verifying a function implicitly guarantees its thread safety in any concurrent environment that respects the contracts on its functions and data structures.&lt;/li&gt;
&lt;li&gt;VCC supports &lt;b&gt;low-level C&lt;/b&gt; features (e.g. bitfields, unions, wrap-around arithmetic). &lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;The nicest way to run VCC is as Visual Studio pluggin, in either VS2010 or VS2012 RC. You can also run it from the command line.&lt;br /&gt;&lt;br /&gt;VCC is being developed primarily at the &lt;a href="http://www.microsoft.com/emic/default.mspx"&gt;European Microsoft Innovation Center&lt;/a&gt; in Aachen, Germany and in the &lt;a href="http://research.microsoft.com/rise"&gt;RiSE group&lt;/a&gt; at Microsoft Research in Redmond. &lt;br /&gt;
&lt;h2&gt;Getting Started&lt;/h2&gt;
You get a taste of VCC by running it in your browser from &lt;a href="http://rise4fun.com/vcc"&gt;RiSE4Fun website&lt;/a&gt;. (Note however that this is a rather old and out-of-date version.)&lt;br /&gt;&lt;br /&gt;Daily builds are published here automatically; we strongly encourage always using the latest build.&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Consult the &lt;a href="http://vcc.codeplex.com/wikipage?title=Install&amp;referringTitle=Home"&gt;Install&lt;/a&gt; page before installing VCC for the first time.&lt;/li&gt;&lt;/ul&gt;
 
&lt;ul&gt;&lt;li&gt;You can also download the sources and build VCC yourself. (See the &lt;a href="http://vcc.codeplex.com/wikipage?title=Build%20Instructions&amp;referringTitle=Home"&gt;Build Instructions&lt;/a&gt;.)&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;We strongly recommend working through the VCC tutorial (below).&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;For reference purposes, you should refer to the VCC manual (below).&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;You can also download some &lt;a href="http://vcc.codeplex.com/wikipage?title=Samples&amp;referringTitle=Home"&gt;Samples&lt;/a&gt;. Many more examples can be found in the VCC source distribution tree, or in the samples package that can be installed after installing VCC (see &amp;quot;All Programs -&amp;gt; Microsoft Research Vcc -&amp;gt; (Re-)Install Samples&amp;quot;) &lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;
&lt;h2&gt;Papers&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;Verifying Concurrent C Programs with VCC.&lt;/b&gt;  Ernie Cohen, Mark Hillebrand, Michał Moskal, Wolfram Schulte, Stephan Tobies. &lt;a href="http://www.codeplex.com/Download?ProjectName=VCC&amp;DownloadId=421596"&gt;PDF &amp;#40;2-column, &amp;#126;25 pages&amp;#41;&lt;/a&gt; &lt;a href="http://www.codeplex.com/Download?ProjectName=VCC&amp;DownloadId=421599"&gt;PDF &amp;#40;1-column, &amp;#126;65pages&amp;#41;&lt;/a&gt; &lt;a href="http://www.codeplex.com/Download?ProjectName=VCC&amp;DownloadId=421598"&gt;PDF &amp;#40;screen-reading&amp;#41;&lt;/a&gt; (A working draft of VCC tutorial - a recommended place to start)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;A VCC Manual&lt;/b&gt; &lt;a href="http://www.codeplex.com/Download?ProjectName=VCC&amp;DownloadId=463108"&gt;PDF &amp;#40;2-column&amp;#41;&lt;/a&gt;&lt;a href="http://www.codeplex.com/Download?ProjectName=VCC&amp;DownloadId=463107"&gt;PDF &amp;#40;1-column&amp;#41;&lt;/a&gt; (A working draft of the VCC manual.)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;VCC: A Practical System for Verifying Concurrent C.&lt;/b&gt;  Ernie Cohen, Markus Dahlweid, Mark Hillebrand, Dirk Leinenbach, Michał Moskal, Thomas Santen, Wolfram Schulte, Stephan Tobies. 22nd International Conference on Theorem Proving in Higher Order Logics (TPHOLs 2009). (LNCS 5674). &lt;a href="http://research.microsoft.com/en-us/um/people/moskal/pdf/tphol2009.pdf"&gt;PDF&lt;/a&gt; (Provides a good overall system description of VCC, &lt;b&gt;the paper to cite for VCC&lt;/b&gt;)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Local Verification of Global Invariants in Concurrent Programs.&lt;/b&gt; Ernie Cohen, Michał Moskal, Wolfram Schulte, Stephan Tobies. Computer Aided Verification (CAV2010). &lt;a href="http://research.microsoft.com/en-us/um/people/moskal/pdf/local.pdf"&gt;PDF&lt;/a&gt; (The best description of the underlying methodology)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;A Practical Verification Methodology for Concurrent Programs.&lt;/b&gt;  Ernie Cohen, Michał Moskal, Wolfram Schulte, Stephan Tobies. MSR-TR-2009-15. &lt;a href="http://research.microsoft.com/en-us/um/people/moskal/pdf/concurrency3.pdf"&gt;PDF&lt;/a&gt; (The methodological description is out-of-date, but this provides more detail on how programs are actually verified).&lt;/li&gt;
&lt;li&gt;&lt;b&gt;A Precise Yet Efficient Memory Model For C.&lt;/b&gt;  Ernie Cohen, Michał Moskal, Wolfram Schulte, Stephan Tobies. 4th International Workshop on Systems Software Verification (SSV2009). &lt;a href="http://research.microsoft.com/en-us/um/people/moskal/pdf/ssv2009.pdf"&gt;PDF&lt;/a&gt; (Describes the VCC typestate)&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;Also check out papers about &lt;a href="http://vcc.codeplex.com/wikipage?title=VCC%20Applications&amp;referringTitle=Home"&gt;VCC Applications&lt;/a&gt;!&lt;br /&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>erniecohen</author><pubDate>Wed, 25 Jul 2012 07:42:21 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20120725074221A</guid></item></channel></rss>