Precise Subtyping for Asynchronous Multiparty Sessions

10/26/2020
by   Silvia Ghilezan, et al.
0

This paper presents the first formalisation of the precise subtyping relation for asynchronous multiparty sessions. We show that our subtyping relation is sound (i.e., guarantees safe process replacement) and also complete: any extension of the relation is unsound. To achieve our results, we develop a novel session decomposition technique, from full session types (including internal/external choices) into single input/output session trees (without choices). Previous work studies precise subtyping for binary sessions (with just two participants), or multiparty sessions (with any number of participants) and synchronous interaction. Here, we cover multiparty sessions with asynchronous interaction, where messages are transmitted via FIFO queues (as in the TCP/IP protocol), and prove that our subtyping is both operationally and denotationally precise. In the asynchronous multiparty setting, finding the precise subtyping relation is a highly complex task: this is because, under some conditions, participants can permute the order of their inputs and outputs, by sending some messages earlier or receiving some later, without causing errors; the precise subtyping relation must capture all such valid permutations – and consequently, its formalisation, reasoning and proofs become challenging. Our session decomposition technique overcomes this complexity, expressing the subtyping relation as a composition of refinement relations between single input/output trees, and providing a simple reasoning principle for asynchronous message optimisations.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
10/15/2017

Timed Session Types

Timed session types formalise timed communication protocols between two ...
research
01/20/2021

Fair Refinement for Asynchronous Session Types (extended version)

Session types are widely used as abstractions of asynchronous message pa...
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...
research
05/25/2023

A Logical Interpretation of Asynchronous Multiparty Compatibility

Session types are types for specifying the protocols that communicating ...
research
01/28/2019

Verifying Asynchronous Interactions via Communicating Session Automata

The relationship between communicating automata and session types is the...
research
08/15/2022

On the Expressiveness of Mixed Choice Sessions (Technical Report)

Session types provide a flexible programming style for structuring inter...

Please sign up or login with your details

Forgot password? Click here to reset