[Pl-seminar] 6/6: Thomas Wahl, Symmetry-aware predicate abstraction for shared-variable concurrent programs
Vincent St-Amour
stamourv at ccs.neu.edu
Wed May 29 10:23:13 EDT 2013
NEU Programming Languages Seminar presents
Thomas Wahl
Northeastern University
Thursday, 6/6
2:00-3:30
Room 366 WVH (http://www.ccs.neu.edu/home/wand/directions.html)
Symmetry-aware predicate abstraction for shared-variable concurrent programs
Predicate abstraction is a key enabling technology for applying
finite-state exploration tools to programs written in mainstream
languages. It has been used successfully for debugging sequential
system-level C code, in projects such as SLAM at Microsoft. Despite this
success, there is little evidence of fruitful applications of predicate
abstraction to shared-variable concurrent software. We attribute this
gap to the lack of abstraction strategies that permit a scalable
analysis of the resulting multi-threaded Boolean programs.
In this talk I will describe a symmetry-aware predicate abstraction
strategy: it takes into account the replicated structure of C programs
that consist of many threads executing the same procedure, and generates
a Boolean program template whose multi-threaded execution soundly
overapproximates the concurrent C program. State explosion during model
checking parallel instantiations of this template can now be absorbed by
exploiting symmetry.
In the second part I will report on efforts to extend the symmetry-aware
method to the parametric formulation of the problem, where the number of
executing threads is left unspecified. It turns out that the abstract
concurrent programs obtained lack a key property that would have made
existing infinite-state verification technology applicable. Worse, I
discuss the somewhat surprising fact that simple program location
reachability is in fact undecidable for these programs, despite the
recursion-freeness and the finite-domain variables. I describe a
low-cost, sound and precise solution to this problem, enabling the full
parameterized verification of programs such as the ticket busy-wait lock
algorithm, the default locking mechanism used in recent versions of the
Linux kernel.
More information about the pl-seminar
mailing list