Automated Modular Verification for Race-Free Channels with Implicit and Explicit Synchronization

09/24/2021
by   Andreea Costea, et al.
0

Ensuring the correctness of software for communication centric programs is important but challenging. Previous approaches, based on session types, have been intensively investigated over the past decade. They provide a concise way to express protocol specifications and a lightweight approach for checking their implementation. Current solutions are based on only implicit synchronization, and are based on the less precise types rather than logical formulae. In this paper, we propose a more expressive session logic to capture multiparty protocols. By using two kinds of ordering constraints, namely "happens-before" <HB and "communicates-before" <CB, we show how to ensure from first principle race-freedom over common channels. Our approach refines each specification with both assumptions and proof obligations to ensure compliance to some global protocol. Each specification is then projected for each party and then each channel, to allow cooperative proving through localized automated verification. Our primary goal in automated verification is to ensure race-freedom and communication-safety, but the approach is extensible for deadlock-freedom as well. We shall also describe how modular protocols can be captured and handled by our approach.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
01/22/2021

A Decentralized Analysis of Multiparty Protocols

Protocols provide the unifying glue in concurrent and distributed softwa...
research
05/13/2020

Multiparty Session Programming with Global Protocol Combinators

Multiparty Session Types (MPST) is a typing discipline for communication...
research
06/26/2018

Treo: Textual Syntax for Reo Connectors

Reo is an interaction-centric model of concurrency for compositional spe...
research
05/28/2021

Gobra: Modular Specification and Verification of Go Programs (extended version)

Go is an increasingly-popular systems programming language targeting, es...
research
04/28/2022

Stay Safe under Panic: Affine Rust Programming with Multiparty Session Types

Communicating systems comprise diverse software components across networ...
research
08/26/2019

Automated Verification of CountDownLatch

The CountDownLatch (CDL) is a versatile concurrency mechanism that was f...
research
08/10/2022

Comparing Channel Restrictions of Communicating State Machines, High-level Message Sequence Charts, and Multiparty Session Types

Communicating state machines provide a formal foundation for distributed...

Please sign up or login with your details

Forgot password? Click here to reset