Abstract
Multiparty Session Types (MPST) are a typing discipline ensuring that a message-passing process implements a multiparty session protocol, without errors. In this paper, we propose a new, generalised MPST theory.
Our contribution is fourfold. (1) We demonstrate that a revision of the theoretical foundations of MPST is necessary: classic MPST have a limited subject reduction property, with inherent restrictions that are easily overlooked, and in previous work have led to flawed type safety proofs; our new theory removes such restrictions and fixes such flaws. (2) We contribute a new MPST theory that is less complicated, and yet more general, than the classic one: it does not require global multiparty session types nor binary session type duality — instead, it is grounded on general behavioural type-level properties, and proves type safety of many more protocols and processes. (3) We produce a detailed analysis of type-level properties, showing how, in our new theory, they allow to ensure decidability of type checking, and statically guarantee that processes enjoy, , deadlock-freedom and liveness at run-time. (4) We show how our new theory can integrate type and model checking: type-level properties can be expressed in modal µ-calculus, and verified with well-established tools.
Supplemental Material
- Davide Ancona, Viviana Bono, Mario Bravetti, Joana Campos, Giuseppe Castagna, Pierre-Malo Deniélou, Simon J. Gay, Nils Gesbert, Elena Giachino, Raymond Hu, Einar Broch Johnsen, Francisco Martins, Viviana Mascardi, Fabrizio Montesi, Rumyana Neykova, Nicholas Ng, Luca Padovani, Vasco T. Vasconcelos, and Nobuko Yoshida. 2017. Behavioral Types in Programming Languages. Foundations and Trends in Programming Languages 3(2-3) (2017). Google Scholar
Digital Library
- Massimo Bartoletti, Alceste Scalas, Emilio Tuosto, and Roberto Zunino. 2016. Honesty by Typing. LMCS 12(4) (2016).Google Scholar
- Samik Basu and Tevfik Bultan. 2011. Choreography conformance via synchronizability. In WWW. Google Scholar
Digital Library
- Samik Basu and Tevfik Bultan. 2016. On deciding synchronizability for asynchronously communicating systems. Theor. Comput. Sci. 656 (2016).Google Scholar
- Samik Basu, Tevfik Bultan, and Meriem Ouederni. 2012. Synchronizability for Verification of Asynchronously Communicating Systems. In VMCAI. Google Scholar
Digital Library
- Giovanni Bernardi and Matthew Hennessy. 2016. Using higher-order contracts to model session types. LMCS 12(2) (2016).Google Scholar
- Lorenzo Bettini, Mario Coppo, Loris D’Antoni, Marco De Luca, Mariangiola Dezani-Ciancaglini, and Nobuko Yoshida. 2008. Global Progress in Dynamically Interleaved Multiparty Sessions. In CONCUR. Google Scholar
Digital Library
- Laura Bocchi, Julien Lange, and Nobuko Yoshida. 2015. Meeting Deadlines Together. In CONCUR.Google Scholar
- Daniel Brand and Pitro Zafiropulo. 1983. On Communicating Finite-State Machines. JACM 30, 2 (1983). Google Scholar
Digital Library
- Nadia Busi, Maurizio Gabbrielli, and Gianluigi Zavattaro. 2009. On the expressive power of recursion, replication and iteration in process calculi. Mathematical Structures in Computer Science 19, 6 (2009). Google Scholar
Digital Library
- Luís Caires and Jorge A. Pérez. 2016. Multiparty Session Types Within a Canonical Binary Theory, and Beyond. In FORTE. Google Scholar
Digital Library
- Luís Caires, Frank Pfenning, and Bernardo Toninho. 2016. Linear logic propositions as session types. MSCS 26, 3 (2016).Google Scholar
- Marco Carbone, Sam Lindley, Fabrizio Montesi, Carsten Schürmann, and Philip Wadler. 2016. Coherence Generalises Duality: A Logical Explanation of Multiparty Session Types. In CONCUR.Google Scholar
- Marco Carbone, Fabrizio Montesi, Carsten Schürmann, and Nobuko Yoshida. 2015. Multiparty Session Types as Coherence Proofs. In CONCUR.Google Scholar
- Tzu-Chun Chen, Mariangiola Dezani-Ciancaglini, Alceste Scalas, and Nobuko Yoshida. 2017. On the Preciseness of Subtyping in Session Types. Logical Methods in Computer Science 13, 2 (2017).Google Scholar
- Tzu-Chun Chen. 2015. Lightening global types. JLAMP 84, 5 (2015).Google Scholar
- Mario Coppo, Mariangiola Dezani-Ciancaglini, Luca Padovani, and Nobuko Yoshida. 2015a. A Gentle Introduction to Multiparty Asynchronous Session Types. In Formal Methods for Multicore Programming.Google Scholar
- Mario Coppo, Mariangiola Dezani-Ciancaglini, Nobuko Yoshida, and Luca Padovani. 2015b. Global Progress for Dynamically Interleaved Multiparty Sessions. MSCS 760 (2015).Google Scholar
- Pierre-Malo Deniélou, Nobuko Yoshida, Andi Bejleri, and Raymond Hu. 2012. Parameterised Multiparty Session Types. LMCS 8, 4 (2012).Google Scholar
- Pierre-Malo Deniélou and Nobuko Yoshida. 2012. Multiparty Session Types Meet Communicating Automata. In ESOP.Google Scholar
- Pierre-Malo Deniélou and Nobuko Yoshida. 2013. Multiparty Compatibility in Communicating Automata: Characterisation and Synthesis of Global Session Types. In ICALP.Google Scholar
- Mariangiola Dezani-Ciancaglini, Silvia Ghilezan, Svetlana Jaksic, Jovanka Pantovic, and Nobuko Yoshida. 2015. Precise subtyping for synchronous multiparty sessions. In PLACES.Google Scholar
- Alain Finkel and Etienne Lozes. 2017. Synchronizability of Communicating Finite State Machines is not Decidable. In ICALP.Google Scholar
- Simon Gay and António Ravara. 2017. Behavioural Types: From Theory to Tools. River Publishers, Series in Automation, Control and Robotics.Google Scholar
- Simon J. Gay. 2016. Subtyping Supports Safe Session Substitution. In A List of Successes That Can Change the World: Essays Dedicated to Philip Wadler on the Occasion of His 60th Birthday (LNCS), Vol. 9600.Google Scholar
- Simon J. Gay, Nils Gesbert, and António Ravara. 2014. Session Types as Generic Process Types. In EXPRESS/SOS.Google Scholar
- Simon J. Gay and Malcolm Hole. 2005. Subtyping for session types in the π -calculus. Acta Inf. 42, 2-3 (2005).Google Scholar
Cross Ref
- Jean-Yves Girard. 1987. Linear Logic. TCS 50 (1987), 1–102. Google Scholar
Digital Library
- Matthew Goto, Radha Jagadeesan, Alan Jeffrey, Corin Pitcher, and James Riely. 2016. An extensible approach to session polymorphism. Mathematical Structures in Computer Science 26, 3 (2016).Google Scholar
- Jan Friso Groote and Mohammad Reza Mousavi. 2014. Modeling and Analysis of Communicating Systems. The MIT Press.Google Scholar
- Chaodong He. 2011. The Decidability of the Reachability Problem for CCS!. In CONCUR. Google Scholar
Digital Library
- Kohei Honda, Vasco Thudichum Vasconcelos, and Makoto Kubo. 1998. Language Primitives and Type Discipline for Structured Communication-Based Programming. In ESOP. Google Scholar
Digital Library
- Kohei Honda, Nobuko Yoshida, and Marco Carbone. 2008. Multiparty asynchronous session types. In POPL. Google Scholar
Digital Library
- Kohei Honda, Nobuko Yoshida, and Marco Carbone. 2016. Multiparty Asynchronous Session Types. J. ACM 63, 1, Article 9 (2016). Google Scholar
Digital Library
- Hans Hüttel, Ivan Lanese, Vasco T. Vasconcelos, Luís Caires, Marco Carbone, Pierre-Malo Deniélou, Dimitris Mostrous, Luca Padovani, António Ravara, Emilio Tuosto, Hugo Torres Vieira, and Gianluigi Zavattaro. 2016. Foundations of Session Types and Behavioural Contracts. ACM Comput. Surv. 49, 1, Article 3 (2016). Google Scholar
Digital Library
- Atsushi Igarashi and Naoki Kobayashi. 2004. A generic type system for the π -calculus. TCS 311, 1 (2004). Google Scholar
Digital Library
- Naoki Kobayashi and Davide Sangiorgi. 2010. A hybrid type system for lock-freedom of mobile processes. TOPLAS 32, 5 (2010). Google Scholar
Digital Library
- Julien Lange, Emilio Tuosto, and Nobuko Yoshida. 2015. From Communicating Machines to Graphical Choreographies. In POPL. Google Scholar
Digital Library
- Sam Lindley and J. Garrett Morris. 2016. Talking Bananas: Structural Recursion for Session Types. In ICFP. Google Scholar
Digital Library
- Barbara H. Liskov and Jeannette M. Wing. 1994. A Behavioral Notion of Subtyping. TOPLAS 16, 6 (1994). Google Scholar
Digital Library
- OAuth Working Group. 2012. RFC 6749: OAuth 2.0 Framework. http://tools.ietf.org/html/rfc6749 .Google Scholar
- Luca Padovani. 2014. Deadlock and lock freedom in the linear π -calculus. In CSL-LICS. Google Scholar
Digital Library
- Luca Padovani. 2016. Fair Subtyping for Multi-Party Session Types. Mathematical Structures in Computer Science 26, 3 (2016).Google Scholar
- Benjamin C. Pierce. 2002. Types and programming languages. MIT Press. Google Scholar
Digital Library
- Alceste Scalas, Ornela Dardha, Raymond Hu, and Nobuko Yoshida. 2017a. A Linear Decomposition of Multiparty Sessions for Safe Distributed Programming. In ECOOP.Google Scholar
- Alceste Scalas, Ornela Dardha, Raymond Hu, and Nobuko Yoshida. 2017b. A Linear Decomposition of Multiparty Sessions for Safe Distributed Programming (Artifact). Dagstuhl Artifacts Series 3, 1 (2017).Google Scholar
- Alceste Scalas and Nobuko Yoshida. 2018a. Less is More: Multiparty Session Types Revisited. Technical Report 6. Imperial College London. https://www.doc.ic.ac.uk/research/technicalreports/2018/6Google Scholar
- Alceste Scalas and Nobuko Yoshida. 2018b. Multiparty session types, beyond duality. Journal of Logical and Algebraic Methods in Programming 97.Google Scholar
Cross Ref
- Bernardo Toninho and Nobuko Yoshida. 2016. Certifying Data in Multiparty Session Types. In A List of Successes That Can Change the World: Essays Dedicated to Philip Wadler on the Occasion of His 60th Birthday (LNCS), Vol. 9600.Google Scholar
- Bernardo Toninho and Nobuko Yoshida. 2017. Certifying data in multiparty session types. JLAMP 90 (2017).Google Scholar
- Philip Wadler. 2014. Propositions as sessions. J. Funct. Program. 24, 2-3 (2014).Google Scholar
Cross Ref
- Nobuko Yoshida, Pierre-Malo Deniélou, Andi Bejleri, and Raymond Hu. 2010. Parameterised Multiparty Session Types. In FOSSACS. Google Scholar
Digital Library
Index Terms
Less is more: multiparty session types revisited
Recommendations
Multiparty Asynchronous Session Types
Communication is a central elements in software development. As a potential typed foundation for structured communication-centered programming, session types have been studied over the past decade for a wide range of process calculi and programming ...
Multiparty asynchronous session types
POPL '08: Proceedings of the 35th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languagesCommunication is becoming one of the central elements in software development. As a potential typed foundation for structured communication-centred programming, session types have been studied over the last decade for a wide range of process calculi and ...
Session types revisited
Session types are a formalism used to model structured communication-based programming. A binary session type describes communication by specifying the type and direction of data exchanged between two parties. When session types and session processes ...






Comments