A Synthetic Reconstruction of Multiparty Session Types (with Appendix)
By: David Castro-Perez, Francisco Ferreira, Sung-Shik Jongmans
Potential Business Impact:
Lets computer programs work together safely and easily.
Multiparty session types (MPST) provide a rigorous foundation for verifying the safety and liveness of concurrent systems. However, existing approaches often force a difficult trade-off: classical, projection-based techniques are compositional but limited in expressiveness, while more recent techniques achieve higher expressiveness by relying on non-compositional, whole-system model checking, which scales poorly. This paper introduces a new approach to MPST that delivers both expressiveness and compositionality, called the synthetic approach. Our key innovation is a type system that verifies each process directly against a global protocol specification, represented as a labelled transition system (LTS) in general, with global types as a special case. This approach uniquely avoids the need for intermediate local types and projection. We demonstrate that our approach, while conceptually simpler, supports a benchmark of challenging protocols that were previously beyond the reach of compositional techniques in the MPST literature. We generalise our type system, showing that it can validate processes against any specification that constitutes a "well-behaved" LTS, supporting protocols not expressible with the standard global type syntax. The entire framework, including all theorems and many examples, has been formalised and mechanised in Agda, and we have developed a prototype implementation as an extension to VS Code.
Similar Papers
Compositional Interface Refinement Through Subtyping in Probabilistic Session Types
Logic in Computer Science
Makes computer talks safer and easier to build.
Modular Multiparty Sessions with Mixed Choice
Logic in Computer Science
Lets computer programs talk safely together.
CoMPSeT: A Framework for Comparing Multiparty Session Types
Distributed, Parallel, and Cluster Computing
Helps programmers understand how computer programs talk.