Practical Abstractions for Automated Verification of Shared-Memory Concurrency. Oortwijn, W., Gurov, D., & Huisman, M. In Beyer, D. & Zufferey, D., editors, Verification, Model Checking, and Abstract Interpretation, pages 401–425, Cham, 2020. Springer International Publishing.
abstract   bibtex   1 download  
Modern concurrent and distributed software is highly complex. Techniques to reason about the correct behaviour of such software are essential to ensure its reliability. To be able to reason about realistic programs, these techniques must be modular and compositional as well as practical by being supported by automated tools. However, many existing approaches for concurrency verification are theoretical and focus on expressivity and generality. This paper contributes a technique for verifying behavioural properties of concurrent and distributed programs that makes a trade-off between expressivity and usability. The key idea of the approach is that program behaviour is abstractly modelled using process algebra, and analysed separately. The main difficulty is presented by the typical abstraction gap between program implementations and their models. Our approach bridges this gap by providing a deductive technique for formally linking programs with their process-algebraic models. Our verification technique is modular and compositional, is proven sound with Coq, and has been implemented in the automated concurrency verifier VerCors. Moreover, our technique is demonstrated on multiple case studies, including the verification of a leader election protocol.
@InProceedings{10.1007/978-3-030-39322-9_19,
author="Oortwijn, Wytse
and Gurov, Dilian
and Huisman, Marieke",
editor="Beyer, Dirk
and Zufferey, Damien",
title="Practical Abstractions for Automated Verification of Shared-Memory Concurrency",
booktitle="Verification, Model Checking, and Abstract Interpretation",
year="2020",
publisher="Springer International Publishing",
address="Cham",
pages="401--425",
abstract="Modern concurrent and distributed software is highly complex. Techniques to reason about the correct behaviour of such software are essential to ensure its reliability. To be able to reason about realistic programs, these techniques must be modular and compositional as well as practical by being supported by automated tools. However, many existing approaches for concurrency verification are theoretical and focus on expressivity and generality. This paper contributes a technique for verifying behavioural properties of concurrent and distributed programs that makes a trade-off between expressivity and usability. The key idea of the approach is that program behaviour is abstractly modelled using process algebra, and analysed separately. The main difficulty is presented by the typical abstraction gap between program implementations and their models. Our approach bridges this gap by providing a deductive technique for formally linking programs with their process-algebraic models. Our verification technique is modular and compositional, is proven sound with Coq, and has been implemented in the automated concurrency verifier VerCors. Moreover, our technique is demonstrated on multiple case studies, including the verification of a leader election protocol.",
isbn="978-3-030-39322-9"
}

Downloads: 1