Verifying multi-threaded software with impact

Lazy abstraction with interpolants, also known as the Impact algorithm, is en vogue as a state-of-the-art software model-checking technique for sequential programs. However, a direct extension of the Impact algorithm to concurrent programs is bound to be inefficient as it has to explore all thread i...

Full description

Bibliographic Details
Main Authors: Wachter, B, Kroening, D, Ouaknine, J
Format: Conference item
Published: IEEE 2013
_version_ 1797064351858819072
author Wachter, B
Kroening, D
Ouaknine, J
author_facet Wachter, B
Kroening, D
Ouaknine, J
author_sort Wachter, B
collection OXFORD
description Lazy abstraction with interpolants, also known as the Impact algorithm, is en vogue as a state-of-the-art software model-checking technique for sequential programs. However, a direct extension of the Impact algorithm to concurrent programs is bound to be inefficient as it has to explore all thread interleavings, which leads to control-state explosion. To this end, we present a new algorithm that combines a new, symbolic form of partial-order reduction with Impact. Our algorithm carries out the dependence analysis on-the-fly while constructing the abstraction and is thus able to deal precisely with dynamic dependencies arising from accesses to tables or pointers - a setting where classical static partial-order reduction techniques struggle. We have implemented the algorithm in a prototype tool that analyses concurrent C program with POSIX threads and evaluated it on a number of benchmark programs. To our knowledge, this is the first application of an Impact-like algorithm to concurrent programs.
first_indexed 2024-03-06T21:13:02Z
format Conference item
id oxford-uuid:3ed3c72c-0a7d-4b71-a7ef-00d46e139a62
institution University of Oxford
last_indexed 2024-03-06T21:13:02Z
publishDate 2013
publisher IEEE
record_format dspace
spelling oxford-uuid:3ed3c72c-0a7d-4b71-a7ef-00d46e139a622022-03-26T14:28:00ZVerifying multi-threaded software with impactConference itemhttp://purl.org/coar/resource_type/c_5794uuid:3ed3c72c-0a7d-4b71-a7ef-00d46e139a62Symplectic Elements at OxfordIEEE2013Wachter, BKroening, DOuaknine, JLazy abstraction with interpolants, also known as the Impact algorithm, is en vogue as a state-of-the-art software model-checking technique for sequential programs. However, a direct extension of the Impact algorithm to concurrent programs is bound to be inefficient as it has to explore all thread interleavings, which leads to control-state explosion. To this end, we present a new algorithm that combines a new, symbolic form of partial-order reduction with Impact. Our algorithm carries out the dependence analysis on-the-fly while constructing the abstraction and is thus able to deal precisely with dynamic dependencies arising from accesses to tables or pointers - a setting where classical static partial-order reduction techniques struggle. We have implemented the algorithm in a prototype tool that analyses concurrent C program with POSIX threads and evaluated it on a number of benchmark programs. To our knowledge, this is the first application of an Impact-like algorithm to concurrent programs.
spellingShingle Wachter, B
Kroening, D
Ouaknine, J
Verifying multi-threaded software with impact
title Verifying multi-threaded software with impact
title_full Verifying multi-threaded software with impact
title_fullStr Verifying multi-threaded software with impact
title_full_unstemmed Verifying multi-threaded software with impact
title_short Verifying multi-threaded software with impact
title_sort verifying multi threaded software with impact
work_keys_str_mv AT wachterb verifyingmultithreadedsoftwarewithimpact
AT kroeningd verifyingmultithreadedsoftwarewithimpact
AT ouakninej verifyingmultithreadedsoftwarewithimpact