Precise Subtyping for Asynchronous Multiparty Sessions

by   Silvia Ghilezan, et al.

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.



There are no comments yet.


page 1

page 2

page 3

page 4


Timed Session Types

Timed session types formalise timed communication protocols between two ...

Fair Refinement for Asynchronous Session Types (extended version)

Session types are widely used as abstractions of asynchronous message pa...

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

Rust is a modern systems language focused on performance and reliability...

A Session Type System for Asynchronous Unreliable Broadcast Communication

Session types are formal specifications of communication protocols, allo...

Open Multiparty Sessions

Multiparty sessions are systems of concurrent processes, which allow sev...

Verifying Asynchronous Interactions via Communicating Session Automata

The relationship between communicating automata and session types is the...

Deadlock Freedom for Asynchronous and Cyclic Process Networks (Extended Version)

This paper considers the challenging problem of establishing deadlock fr...
This week in AI

Get the week's most popular data science and artificial intelligence research sent straight to your inbox every Saturday.