Next Article in Journal
Robust Control for Active Suspension of Hub-Driven Electric Vehicles Subject to in-Wheel Motor Magnetic Force Oscillation
Next Article in Special Issue
Abstracting Strings for Model Checking of C Programs
Previous Article in Journal
Unveiling a Recycling-Sourced Mineral-Biocellulose Fibre Composite for Use in Combustion-Generated NOx Mitigation Forming Plant Nutrient: Meeting Sustainability Development Goals in the Circular Economy
Previous Article in Special Issue
Static Analysis for ECMAScript String Manipulation Programs
Article

An Abstraction Technique for Verifying Shared-Memory Concurrency

1
Department of Computer Science, ETH Zurich, 8092 Zurich, Switzerland
2
Department of Theoretical Computer Science, KTH Royal Institute of Technology, SE-100 44 Stockholm, Sweden
3
Formal Methods and Tools, University of Twente, 7500 AE Enschede, The Netherlands
*
Author to whom correspondence should be addressed.
This paper is an extended version of our paper published in 21st International Conference on Verification, Model Checking, and Abstract Interpretation held in New Orleans, LA, USA, 19–21 January 2020.
Appl. Sci. 2020, 10(11), 3928; https://doi.org/10.3390/app10113928
Received: 30 April 2020 / Revised: 29 May 2020 / Accepted: 2 June 2020 / Published: 5 June 2020
(This article belongs to the Special Issue Static Analysis Techniques: Recent Advances and New Horizons)
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 primarily on expressivity and generality. This paper contributes a technique for verifying behavioural properties of concurrent and distributed programs that balances 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. View Full-Text
Keywords: concurrency verification; program logics; process algebra; code verification; abstraction concurrency verification; program logics; process algebra; code verification; abstraction
Show Figures

Figure 1

MDPI and ACS Style

Oortwijn, W.; Gurov, D.; Huisman, M. An Abstraction Technique for Verifying Shared-Memory Concurrency. Appl. Sci. 2020, 10, 3928. https://doi.org/10.3390/app10113928

AMA Style

Oortwijn W, Gurov D, Huisman M. An Abstraction Technique for Verifying Shared-Memory Concurrency. Applied Sciences. 2020; 10(11):3928. https://doi.org/10.3390/app10113928

Chicago/Turabian Style

Oortwijn, Wytse, Dilian Gurov, and Marieke Huisman. 2020. "An Abstraction Technique for Verifying Shared-Memory Concurrency" Applied Sciences 10, no. 11: 3928. https://doi.org/10.3390/app10113928

Find Other Styles
Note that from the first issue of 2016, MDPI journals use article numbers instead of page numbers. See further details here.

Article Access Map by Country/Region

1
Back to TopTop