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)
Summary
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 ).
Talk to us
Join us for a 30 min session where you can share your feedback and ask us any queries you have
More From: Journal of Logical and Algebraic Methods in Programming
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.