Abstract
Effective use of concurrency is key to accelerating computations in a post frequency-scaling era. We review a research programme aimed at automated formal verification of a broad variety of concurrent systems. We briefly survey different forms of asynchronous concurrent computations, with a focus on multi-threaded, multi-core computation. We then highlight semantic and scalability challenges that arise when applying automated reasoning technology to this class of software.
We then discuss two very different techniques to address the challenges in this domain. The key insight behind the first technique is to exploit the symmetry that is inherent in many concurrent software programs: the programs execute a parametric number of identical threads, operating on different input data. Awareness of this design principle enables the application of symmetry reduction techniques such as counter abstraction, and encodings as Petri net coverability problems [2,6,4,3].
The second technique exploits the observation that asynchronous concurrent systems are frequently only very loosely synchronised. This gives rise to an encoding of the system using a set of constraints over partial orders. The constraints can be passed using a modern SAT/SMT solver, which gives rise to an effective bounded verification technique for asynchronous concurrent systems [1,5].
The research presented is joint work with Jade Alglave, Gerard Basler, Alastair Donaldson, Jim Grundy, Alexander Horn, Alexander Kaiser, Lihao Liang, Michele Mazzucchi, Tom Melham, Michael Tautschnig, Celina Val and Thomas Wahl.
Supported by ERC project 280053, EPSRC project EP/G026254/1 and the Semiconductor Research Corporation (SRC) under task 2269.002.
Access provided by Autonomous University of Puebla. Download to read the full chapter text
Chapter PDF
Similar content being viewed by others
Keywords
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.
References
Alglave, J., Kroening, D., Tautschnig, M.: Partial Orders for Efficient Bounded Model Checking of Concurrent Software. In: Sharygina, N., Veith, H. (eds.) CAV 2013. LNCS, vol. 8044, pp. 141–157. Springer, Heidelberg (2013)
Basler, G., Mazzucchi, M., Wahl, T., Kroening, D.: Context-aware counter abstraction. Formal Methods in System Design (FMSD) 36(3), 223–245 (2010)
Donaldson, A., Kaiser, A., Kroening, D., Tautschnig, M., Wahl, T.: Counterexample-guided abstraction refinement for symmetric concurrent programs. Formal Methods in System Design (FMSD) 41(1), 25–44 (2012)
Donaldson, A., Kaiser, A., Kroening, D., Wahl, T.: Symmetry-aware predicate abstraction for shared-variable concurrent programs. In: Gopalakrishnan, G., Qadeer, S. (eds.) CAV 2011. LNCS, vol. 6806, pp. 356–371. Springer, Heidelberg (2011)
Horn, A., Tautschnig, M., Val, C., Liang, L., Melham, T., Grundy, J., Kroening, D.: Formal co-validation of low-level hardware/software interfaces. In: Formal Methods in Computer-Aided Design, FMCAD (2013)
Kaiser, A., Kroening, D., Wahl, T.: Dynamic cutoff detection in parameterized concurrent programs. In: Touili, T., Cook, B., Jackson, P. (eds.) CAV 2010. LNCS, vol. 6174, pp. 645–659. Springer, Heidelberg (2010)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2013 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Kroening, D. (2013). Automated Verification of Concurrent Software. In: Abdulla, P.A., Potapov, I. (eds) Reachability Problems. RP 2013. Lecture Notes in Computer Science, vol 8169. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-41036-9_2
Download citation
DOI: https://doi.org/10.1007/978-3-642-41036-9_2
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-41035-2
Online ISBN: 978-3-642-41036-9
eBook Packages: Computer ScienceComputer Science (R0)