Abstract

Multiparty Session Types (MPST) are a well-established typing discipline for message-passing processes interacting on sessions involving two or more participants. Session typing can ensure desirable properties: absence of communication errors and deadlocks, and protocol conformance.We propose a novel MPST theory based on a rely/guarantee typing system, that checks (1) the guaranteed behaviour of the process being typed, and (2) the relied upon behaviour of other processes. Crucially, our theory achieves type safety by enforcing a typing context liveness invariant throughout typing derivations.Unlike “classic” MPST works, our typing system does not depend on global session types, and does not use syntactic duality checks. As a result, our new theory can prove type safety for processes that implement protocols with complex inter-role dependencies, thus sidestepping an intrinsic limitation of “classic” MPST.

Highlights

  • Session types are a typing discipline for processes that exchange messages via channels, and implement sessions with structured protocols featuring inputs/outputs, choices, and recursion

  • In Example 4.4, we have shown that liveness and consistency are incomparable; : 1. on the one hand, using our theory we can prove type safety in cases that are not covered in “classic” Multiparty Session Types (MPST), as shown in Example 4.7; 2. but on the other hand, the “classic” MPST subject reduction statement in (12) allows to prove type safety for processes that would be rejected by our theory, because their typing context is consistent but not live

  • We presented a new multiparty session typing system (Definition 4.5), based on a rely/guarantee typing strategy, and a liveness invariant on typing contexts (Definition 4.1)

Read more

Summary

Introduction

Session types are a typing discipline for processes that exchange messages via channels, and implement sessions with structured protocols featuring inputs/outputs, choices, and recursion. The typing judgement (1) does determine the behaviour of P : it implicitly describes how other processes in P ’s environment can send/receive messages to/from P This is because in a well-typed system, each input/output. The duality-based reasoning outlined above (for binary session types) does not work, and duality cannot be used directly This is because in a multiparty session, P might interact with more than one other processes playing different roles in a session (e.g., alice, bob and carol) — and correspondingly, the multiparty typing context would contain types requiring inputs/outputs from/to multiple roles (like S ).

Multiparty session π -calculus
Multiparty session types and typing contexts
Subject reduction and consistency
Limitations of consistency
More “correct” but non-consistent examples
Liveness
Subject reduction
Leveraging typing context reductions
From “new” to simpler “old” rules
Conclusions and related work
Partial session types and projections
Partial session types and duality

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call

Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.