Getting Started
Installation Guide
Tutorial
Issue Tracker
Tools
Verifier
Alpinist
VeSUV
VeyMont
Showcases
Publications
About
VerCors Team
News
Contact
Credits
License
Owicki-Gries
Classical Owicki-Gries verification example: forking two threads that write to a shared location.
General Information
Backend
: Silicon
Language
: PVL
Features
: Locking, Fork/join concurrency
Path to Example File
: manual/OwickiGries.pvl
Should Verify
: Yes
Date
: 2017-06-20
Lines of Code
: 16 (comments not included)
Lines of Specification
: 1 (6.2% of total)
Computation Time
: 21.1 seconds
// -*- tab-width:2 ; indent-tabs-mode:nil -*- //:: cases OwickiGries //:: tools silicon //:: verdict Pass class OwickiGries { int x; resource lock_invariant()=Perm(x,1); OwickiGries(){ x=0; } void main(){ Worker w1=new Worker(this); Worker w2=new Worker(this); fork w1; fork w2; join w1; join w2; } }
Language:
PVL
Java
Cuda
C / OpenMP / OpenCL
Viper