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 |
Abstract
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.