author: Ömer Sakar
title: Support for ADTs in VerCors
keywords: verification, adt
topics: Logics and semantics
committee: Birna van Riemsdijk ,
Marieke Huisman ,
Raúl Monti
started: September 2019
end: April 2020


VerCors is a static verifier of concurrent/parallel programs developed at the University of Twente. The software that is verified with VerCors (and similar tools) use common data types such as lists or sets. The behavior of these data types is modeled in VerCors using axiomatic data types (ADTs). VerCors currently supports axiomatic data types such as sequences/lists, sets, and bags. To extend the support for ADTs, a list of features to add to VerCors was compiled by using input from end-users. An implementation-level view of VerCors is given with general approaches to implementing a feature in VerCors. For each feature in this list a definition is given, its encoding into Viper (the back end of VerCors) is discussed and its implementation using the general approaches is explained.

Additional Resources

  1. final report