Modular termination veri cation for non-blocking concurrency (extended version)
File(s)DTRS16-6.pdf (631.71 KB)
Published version
Author(s)
da Rocha Pinto, Pedro Miguel
Dinsdale-Young, Thomas
Gardner, Philippa
Sutherland, Julian
Type
Report
Abstract
We present Total-TaDA, a program logic for verifying the
total correctness of concurrent programs: that such programs both terminate
and produce the correct result. With Total-TaDA, we can specify
constraints on a thread's concurrent environment that are necessary to
guarantee termination. This allows us to verify total correctness for nonblocking
algorithms, e.g. a counter and a stack. Our speci cations can
express lock- and wait-freedom. More generally, they can express that
one operation cannot impede the progress of another, a new non-blocking
property we call non-impedance. Moreover, our approach is modular.
We can verify the operations of a module independently, and build up
modules on top of each other.
total correctness of concurrent programs: that such programs both terminate
and produce the correct result. With Total-TaDA, we can specify
constraints on a thread's concurrent environment that are necessary to
guarantee termination. This allows us to verify total correctness for nonblocking
algorithms, e.g. a counter and a stack. Our speci cations can
express lock- and wait-freedom. More generally, they can express that
one operation cannot impede the progress of another, a new non-blocking
property we call non-impedance. Moreover, our approach is modular.
We can verify the operations of a module independently, and build up
modules on top of each other.
Date Issued
2016-01-01
Citation
Departmental Technical Report: 16/6, 2016, pp.1-63
Publisher
Department of Computing, Imperial College London
Start Page
1
End Page
63
Journal / Book Title
Departmental Technical Report: 16/6
Copyright Statement
© 2016 The Author(s). This report is available open access under a CC-BY-NC-ND (https://creativecommons.org/licenses/by-nc-nd/4.0/)
Publication Status
Published
Article Number
16/6