The University of Southampton
University of Southampton Institutional Repository

A pragmatic verification approach for concurrent programs

Nguyen Lam, Truc (2017) A pragmatic verification approach for concurrent programs University of Southampton Doctoral Thesis , 116pp.

Record type: Thesis (Doctoral)


Developing correct concurrent software is a difficult task, due to the inherently non-deterministic nature of thread interactions. Traditional testing techniques typically perform an explicit exploration of the possible program executions, and are thus inadequate for concurrent software. Symbolic verification techniques for concurrent programs are therefore desirable.

Sequentialization has become one of the most promising symbolic approach for the verification of concurrent programs in recent years. However, current efficient implementations still struggle with concurrent programs that contain rare bugs, and their purposes is restricted to bug-finding. In this thesis, we advance sequentialization to provide pragmatic and scalable verification approaches for concurrent programs, aiming at finding bugs and proving correctness.

Concerning finding rare bugs in concurrent programs, we present our work on optimising Lazy-CSeq sequentialization using abstract interpretation. We empirically demonstrate that this procedure, which is implemented in the tool called Lazy-CSeq+ABS, can lead to significant performance gain for very hard verification problem.

Furthermore, we propose a “swarm” verification approach that can enable existing tools to find rare concurrency bugs which were previously out of reach. We implement the approach in VeriSmart, as a extension of Lazy-CSeq, and empirically demonstrate that VeriSmart can spot rare bugs considerably faster than Lazy-CSeq tool can.

With regard to proving correctness, we develop a novel lazy sequentialization for unbounded concurrent programs and implement the corresponding schema in a tool named UL-CSeq based on the CSeq framework. Empirical experiments show that our new schema is efficient in both proving correctness and finding bugs on concurrency benchmarks in comparison with state-of-the-art approaches.

PDF thesis - Version of Record
Available under License University of Southampton Thesis Licence.
Download (917kB)

More information

Published date: May 2017
Additional Information: Related publications: Lazy-CSeq: A Context-Bounded Model Checking Tool for Multi-Threaded C-ProgramsLazy Sequentialization for TSO and PSO via Shared Memory AbstractionsSeparating computation from communication: a design approach for concurrent program verificationUnbounded Lazy-CSeq: a lazy sequentialization tool for C programs with unbounded context switches (competition contribution)Embedding weak memory models within eager sequentializationMU-CSeq 0.4: individual memory location unwindings: (competition contribution)Lazy-CSeq 1.0:(Competition Contribution)Lazy sequentialization for the safety verification of unbounded concurrent programsUnbounded Lazy-CSeq: A Lazy Sequentialization Tool for C with unboundedly many Context Switches: (Competition Contribution)
Keywords: Concurrency, Verification, Program Analysis, tool


Local EPrints ID: 413593
PURE UUID: f4e49f1e-a8cc-4b59-9cce-5919ce83268f

Catalogue record

Date deposited: 29 Aug 2017 16:30
Last modified: 29 Aug 2017 16:30

Export record


Author: Truc Nguyen Lam
Thesis advisor: Gennaro Parlato

University divisions

Download statistics

Downloads from ePrints over the past year. Other digital versions may also be available to download e.g. from the publisher's website.

View more statistics

Atom RSS 1.0 RSS 2.0

Contact ePrints Soton:

ePrints Soton supports OAI 2.0 with a base URL of

This repository has been built using EPrints software, developed at the University of Southampton, but available to everyone to use.

We use cookies to ensure that we give you the best experience on our website. If you continue without changing your settings, we will assume that you are happy to receive cookies on the University of Southampton website.