Exploring Type-Level Bisimilarity towards More Expressive Multiparty Session Types

A key open problem with multiparty session types (MPST) concerns their expressiveness: current MPST have inflexible choice, no existential quantification over participants, and limited parallel composition. This precludes many real protocols to be represented by MPST. To overcome these bottlenecks of MPST, we explore a new technique using weak bisimilarity between global types and endpoint types, which guarantees deadlock-freedom and absence of protocol violations. Based on a process algebraic framework, we present well-formed conditions for global types that guarantee weak bisimilarity between a global type and its endpoint types and prove their check is decidable. Our main practical result, obtained through benchmarks, is that our well-formedness conditions can be checked orders of magnitude faster than directly checking weak bisimilarity using a state-of-the-art model checker.

[1]  Jan A. Bergstra,et al.  Process Algebra with Recursive Operations , 2001, Handbook of Process Algebra.

[2]  Luca Padovani,et al.  Global progress for dynamically interleaved multiparty sessions , 2014, Mathematical Structures in Computer Science.

[3]  Nobuko Yoshida,et al.  Hybrid Session Verification Through Endpoint API Generation , 2016, FASE.

[4]  Sung-Shik Jongmans,et al.  Discourje: Runtime Verification of Communication Protocols in Clojure , 2020, TACAS.

[5]  Nobuko Yoshida,et al.  Verifying Asynchronous Interactions via Communicating Session Automata , 2019, CAV.

[6]  Jan Friso Groote,et al.  Formalising the Dezyne Modelling Language in mCRL2 , 2017, FMICS-AVoCS.

[7]  Emilio Tuosto,et al.  From Communicating Machines to Graphical Choreographies , 2015, POPL.

[8]  Nobuko Yoshida,et al.  A session type provider: compile-time API generation of distributed protocols with refinements in F# , 2018, CC.

[9]  Ilaria Castellani,et al.  Typing access control and secure information flow in sessions , 2014, Inf. Comput..

[10]  Mario Tokoro,et al.  An Object Calculus for Asynchronous Communication , 1991, ECOOP.

[11]  Nobuko Yoshida,et al.  Distributed programming using role-parametric session types in go: statically-typed endpoint APIs for dynamically-instantiated communication structures , 2019, Proc. ACM Program. Lang..

[12]  Laura Bocchi,et al.  Timed Multiparty Session Types , 2014, CONCUR.

[13]  YoshidaNobuko,et al.  Dynamic multirole session types , 2011 .

[14]  Nobuko Yoshida,et al.  Effpi: verified message-passing programs in Dotty , 2019, SCALA@ECOOP.

[15]  CarboneMarco,et al.  Deadlock-freedom-by-design , 2013 .

[16]  Daniel Brand,et al.  On Communicating Finite-State Machines , 1983, JACM.

[17]  Nobuko Yoshida,et al.  Dynamic multirole session types , 2011, POPL '11.

[18]  Nobuko Yoshida,et al.  Verifying message-passing programs with dependent behavioural types , 2019, PLDI.

[19]  Deepak Kapur,et al.  Termination Analysis of Imperative Programs Using Bitvector Arithmetic , 2012, VSTTE.

[20]  Jan A. Bergstra,et al.  Process Algebra for Synchronous Communication , 1984, Inf. Control..

[21]  Torsten Hoefler,et al.  Scientific Benchmarking of Parallel Computing Systems Twelve ways to tell the masses when reporting performance results , 2017 .

[22]  Ilaria Castellani,et al.  Session Types for Access and Information Flow Control , 2010, CONCUR.

[23]  Liu Chen,et al.  A Survey on NoSQL Stores , 2018, ACM Comput. Surv..

[24]  Laura Bocchi,et al.  Meeting Deadlines Together , 2015, CONCUR.

[25]  Jan Friso Groote,et al.  Modeling and Analysis of Communicating Systems , 2014 .

[26]  Jos C. M. Baeten,et al.  A ground-complete axiomatisation of finite-state processes in a generic process algebra , 2008, Mathematical Structures in Computer Science.

[27]  Erik P. de Vink,et al.  The mCRL2 Toolset for Analysing Concurrent Systems - Improvements in Expressivity and Usability , 2019, TACAS.

[28]  YoshidaNobuko,et al.  Multiparty Asynchronous Session Types , 2008 .

[29]  Luca Padovani,et al.  On Global Types and Multi-Party Session , 2012, Log. Methods Comput. Sci..

[30]  Ilaria Castellani,et al.  Information flow safety in multiparty sessions , 2016, Math. Struct. Comput. Sci..

[31]  Nobuko Yoshida,et al.  Less is more: multiparty session types revisited , 2019, Proc. ACM Program. Lang..

[32]  Nobuko Yoshida,et al.  Asynchronous Session Types: Exceptions and Multiparty Interactions , 2009, SFM.

[33]  Nobuko Yoshida,et al.  Parameterised Multiparty Session Types , 2010, Log. Methods Comput. Sci..

[34]  Ilaria Castellani,et al.  Self-adaptation and secure information flow in multiparty communications , 2016, Formal Aspects of Computing.

[35]  Nobuko Yoshida,et al.  A Linear Decomposition of Multiparty Sessions for Safe Distributed Programming , 2017, ECOOP.

[36]  Nobuko Yoshida,et al.  Let it recover: multiparty protocol-induced recovery , 2017, CC.

[37]  Nobuko Yoshida,et al.  Multiparty Session Types Meet Communicating Automata , 2012, ESOP.

[38]  Laura Bocchi,et al.  Timed runtime monitoring for multiparty conversations , 2017, Formal Aspects of Computing.

[39]  Bernardo Toninho,et al.  A Static Verification Framework for Message Passing in Go Using Behavioural Types , 2018, 2018 IEEE/ACM 40th International Conference on Software Engineering (ICSE).

[40]  Nobuko Yoshida,et al.  Pabble: parameterised Scribble , 2015, Service Oriented Computing and Applications.

[41]  Norbert Ritter,et al.  NoSQL database systems: a survey and decision guidance , 2017, Computer Science - Research and Development.

[42]  Jan Friso Groote,et al.  An O(mlogn) Algorithm for Computing Stuttering Equivalence and Branching Bisimulation , 2017, ACM Trans. Comput. Log..

[43]  Nobuko Yoshida,et al.  Multiparty Compatibility in Communicating Automata: Characterisation and Synthesis of Global Session Types , 2013, ICALP.

[44]  YoshidaNobuko,et al.  From Communicating Machines to Graphical Choreographies , 2015 .

[45]  Davide Ancona,et al.  Behavioral Types in Programming Languages , 2016, Found. Trends Program. Lang..

[46]  Nobuko Yoshida,et al.  Explicit Connection Actions in Multiparty Session Types , 2017, FASE.

[47]  Erik P. de Vink,et al.  An Overview of the mCRL2 Toolset and Its Recent Advances , 2013, TACAS.

[48]  Ivan Lanese,et al.  Foundations of Session Types and Behavioural Contracts , 2016, ACM Comput. Surv..

[49]  Nobuko Yoshida,et al.  Multiparty asynchronous session types , 2008, POPL '08.

[50]  Fabrizio Montesi,et al.  Deadlock-freedom-by-design: multiparty asynchronous global programming , 2013, POPL.

[51]  Mario Bravetti,et al.  Undecidability of asynchronous session subtyping , 2016, Inf. Comput..

[52]  Nobuko Yoshida,et al.  Global Principal Typing in Partially Commutative Asynchronous Sessions , 2009, ESOP.