VerCors Example Database

A list of example programs and case studies verified by the VerCors verification toolset

About VerCors

VerCors is a toolset for practical mechanised verification of parallel and concurrent software under different concurrency models, notably heterogeneous and homogeneous threading. VerCors has verification support for multiple languages with concurrency features, such as Java, OpenCL (i.e. GPU kernels and atomics), and OpenMP for C (i.e. compiler directives). VerCors uses separation logic with permission accounting as its logical foundation.

Try online »

Download

The source code of VerCors is publicly available and can be downloaded from Github. Installation instructions and example verification cases are also provided. VerCors has been tested on Linux, MacOS X, and on Windows (via Cygwin). Limited documentation of the annotation language is provided at the Github Wiki.

Download VerCors »

Contact

For questions and (technical) support, email to "w.h.m.oortwijn at utwente dot nl". Bug reports and feature requests can be submitted via the issue tracker on Github. A complete list of papers related to the VerCors project is given here.

Contact us »


Example database

Showing 101-120 of 139 items.
IDTitleVerification featuresExample sourceLanguageMore information
 
133Refute: unsatisfiableJavamore info
159Relaxed prefixLoop invariants, Quantified permissionsVerifyThis competition 2015PVLmore info
21Simple hash table (with find-or-put)Atomics, WitnessesJavamore info
62Simple model abstractionFuturesPVLmore info
23Single cellAtomics, WitnessesJavamore info
20Single producer/consumerAtomics, WitnessesJavamore info
19Single-entrant spin lockAtomics, Locking, WitnessesJavamore info
121Single-threaded countingLoop invariantsJavamore info
122Single-threaded incrementingLoop invariantsJavamore info
109Statically-scoped parallelismArrays, Iteration contracts, Quantified permissions, Statically-scoped parallelismPVLmore info
43Submatrix clearingArrays, Iteration contracts, MatricesOpenMP for Cmore info
38Summation kernel (version 1)Arrays, GPU Kernels, Iteration contractsPVLmore info
39Summation kernel (version 2)Arrays, Atomics, Barriers, GPU Kernels, Iteration contracts, Loop parallelisationsPVLmore info
40Summation reductionArrays, Floats, Iteration contracts, Sequences, Summation patternsOpenMP for Cmore info
148Synchronisers: CountDownLatchAtomics, Loop invariants, WitnessesJavamore info
149Synchronisers: ReentrantLockAtomics, Locking, Loop invariants, WitnessesJavamore info
150Synchronisers: SemaphoreAtomics, Loop invariants, WitnessesJavamore info
156Type castingTreesJavamore info
157Using \instanceof and \typeofJavamore info
15Vector additionArrays, Barriers, GPU KernelsPVLmore info