The VerCors project: setting up basecamp

  • Authors:
  • Afshin Amighi;Stefan Blom;Marieke Huisman;Marina Zaharieva-Stojanovski

  • Affiliations:
  • University of Twente, Enschede, Netherlands;University of Twente and Dundalk Institute of Technology, Enschede and Dundalk, Netherlands;University of Twente, Enschede, Netherlands;University of Twente, Enschede, Netherlands

  • Venue:
  • PLPV '12 Proceedings of the sixth workshop on Programming languages meets program verification
  • Year:
  • 2012

Quantified Score

Hi-index 0.00

Visualization

Abstract

This paper describes the first results and on-going work in the VerCors project. The VerCors project is about Verification of Concurrent Data Structures. Its goal is to develop a specification language and program logic for concurrent programs, and in particular for concurrent data structures, as these are the essential building blocks of many different concurrent programs. The program logic is based on our earlier work on permission-based separation logic for Java. This is an extension of Hoare logic that is particularly convenient to reason about concurrent programs. The paper first describes the tool set that is currently being built to support reasoning with this logic. It supports a specification language that combines features of separation logic with JML. For the verification, the program and its annotations are encoded into Chalice, and then we reuse the Chalice translation to Boogie to generate the proof obligations. Next, the paper describes our first results on data structure specifications. We use histories to keep track of the changes to the data structures, and we show how these histories allow us to derive other conclusions about the data structure implementations. We also discuss how we plan to reason about volatile variables, and how we will use this to verify lock-free data structures. Throughout the paper, we discuss our plans for future work within the VerCors project.