Precise Subtyping for Asynchronous Multiparty Sessions

Silvia Ghilezan, Jovanka Pantović, Ivan Prokić, Alceste Scalas, Nobuko Yoshida

Research output: Contribution to journalJournal articleResearchpeer-review

41 Downloads (Pure)

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 T′ is expected, in any context, without introducing deadlocks nor other communication errors. As a consequence, whenever T ≤ T′ holds, it is safe to replace an implementation of T′ with an implementation of the subtype T, which may allow for more optimised communication patterns. We present 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, as outlined above) and also complete: Any extension of the relation is unsound. To achieve our results, we develop a novel session decomposition technique, from fullsession types (including internal/external choices) into single input/output session trees (without choices). We cover multiparty sessions with asynchronousinteraction, where messages are transmitted via FIFO queues (as in the TCP/IP protocol), and prove that our subtyping is both operationally and denotationally precise. Our session decomposition technique expresses the subtyping relation as a composition of refinement relations between single input/output trees and provides a simple reasoning principle for asynchronous message optimisations.
Original languageEnglish
Article number14
JournalACM Transactions on Computational Logic
Volume24
Issue number2
Number of pages73
ISSN1529-3785
DOIs
Publication statusPublished - 2023

Keywords

  • Session types
  • Asynchronous multiparty session types
  • Completeness
  • Soundness
  • Subtyping
  • Typing systems
  • π-calculus

Fingerprint

Dive into the research topics of 'Precise Subtyping for Asynchronous Multiparty Sessions'. Together they form a unique fingerprint.

Cite this