Home > Publications
Home University of Twente
Prospective Students
Intranet (internal)

EEMCS EPrints Service

27668 Specification and Verification of Synchronization with Condition Variables.
Home Policy Brochure Browse Search User Area Contact Help

Gomes, P. and Gurov, D. and Huisman, M. (2016) Specification and Verification of Synchronization with Condition Variables. In: Proceedings of the Fifth International Workshop on Formal Techniques for Safety-Critical Systems (FTSCS 2016), November 14, 2016, Tokyo, Japan. pp. 3-19. Communications in Computer and Information Science 694. Springer Verlag. ISSN 1865-0929 ISBN 978-3-319-53946-1

Full text available as:


577 Kb

Official URL:


In this paper we propose a technique to specify and verify the
correct synchronization
of concurrent programs with condition variables. We define correctness
as the liveness property: “every thread synchronizing under a set of condition
variables eventually exits the synchronization”, under the assumption that every
such thread eventually reaches its synchronization block. Our technique does
not avoid the combinatorial explosion of interleavings of thread behaviors. In-
stead, we alleviate it by abstracting away all details that are irrelevant to the
synchronization behavior
of the program, which is typically significantly smaller
than its overall behavior. First, we introduce SyncTask, a simple imperative
language to specify parallel computations that synchronize via condition vari-
ables. We consider a SyncTask program to have a correct synchronization iff
it terminates. Further, to relieve the programmer from the burden of providing
specifications in SyncTask, we introduce an economic annotation scheme for Java
programs to assist the
automated extraction
of SyncTask programs capturing the
synchronization behavior of the underlying program. We prove that every Java
program annotated according to the scheme (and satisfying the assumption) has
a correct synchronization iff its corresponding SyncTask program terminates. We
show how to transform the verification of termination into a standard reachabil-
ity problem over Colored Petri Nets that is efficiently solvable by existing Petri
Net analysis tools. Both the SyncTask program extraction and the generation
of Petri Nets are implemented in our
tool. We evaluate the proposed
framework on a number of test cases as a proof-of-concept.

Item Type:Conference or Workshop Paper (Full Paper, Talk)
Research Group:EWI-FMT: Formal Methods and Tools
Research Program:CTIT-General
Research Project:VerCors: Verification of Concurrent Data Structures
ID Code:27668
Deposited On:20 April 2017
More Information:statistics

Export this item as:

To correct this item please ask your editor

Repository Staff Only: edit this item