Fair Refinement for Asynchronous Session Types (extended version)

01/20/2021
by   Mario Bravetti, et al.
0

Session types are widely used as abstractions of asynchronous message passing systems. Refinement for such abstractions is crucial as it allows improvements of a given component without compromising its compatibility with the rest of the system. In the context of session types, the most general notion of refinement is the asynchronous session subtyping, which allows to anticipate message emissions but only under certain conditions. In particular, asynchronous session subtyping rules out candidates subtypes that occur naturally in communication protocols where, e.g., two parties simultaneously send each other a finite but unspecified amount of messages before removing them from their respective buffers. To address this shortcoming, we study fair compliance over asynchronous session types and fair refinement as the relation that preserves it. This allows us to propose a novel variant of session subtyping that leverages the notion of controllability from service contract theory and that is a sound characterisation of fair refinement. In addition, we show that both fair refinement and our novel subtyping are undecidable. We also present a sound algorithm, and its implementation, which deals with examples that feature potentially unbounded buffering.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
10/05/2018

On Urgency in Asynchronous Timed Session Types

We study an urgent semantics of asynchronous timed session types, where ...
research
10/15/2017

Timed Session Types

Timed session types formalise timed communication protocols between two ...
research
06/30/2019

A Sound Algorithm for Asynchronous Session Subtyping (extended version)

Session types, types for structuring communication between endpoints in ...
research
08/03/2021

Inference Systems with Corules for Combined Safety and Liveness Properties of Binary Session Types

Many properties of communication protocols combine safety and liveness a...
research
10/26/2020

Precise Subtyping for Asynchronous Multiparty Sessions

This paper presents the first formalisation of the precise subtyping rel...
research
12/23/2021

Deadlock-free asynchronous message reordering in Rust with multiparty session types

Rust is a modern systems language focused on performance and reliability...
research
04/26/2021

A Session Subtyping Tool (Extended Version)

Session types are becoming popular and have been integrated in several m...

Please sign up or login with your details

Forgot password? Click here to reset