Precise subtyping for asynchronous multiparty sessions

Abstract

Session subtyping is a cornerstone of refinement of communicating processes: a process implementing a session type (i.e., a communication protocol) T can be safely used whenever a process implementing one of its supertypes T0 is expected, in any context, without introducing deadlocks nor other communication errors. This paper presents the first formalisation of the precise subtyping relation for asynchronous multiparty sessions: we show that the relation is sound (i.e., guarantees safe process replacement, as outlined above) and also complete: any extension of the relation is unsound. Previous work studies precise subtyping for binary sessions (with 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). In this setting, the subtyping relation becomes highly complex: 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 and proofs become challenging. Our key discovery is a methdology to decompose session types into single input/output session trees, and then express the subtyping relation as a composition of refinement relations between such trees

    Similar works