ICE 2021 Pre-Proceedings
Total Page:16
File Type:pdf, Size:1020Kb
ICE 2021 Pre-Proceedings Julien Lange Anastasia Mavridou Larisa Safina Alceste Scalas 15th June 2021 This document contains the informal pre-proceedings of the 14th Interaction and Concurrency Experience (ICE 2021). The post-proceedings will be published on EPTCS. Contents Keigo Imai, Rumyana Neykova, Nobuko Yoshida, and Shoji Yuen. Multiparty Session Programming with Global Protocol Combinators (oral communication) . 2 Bas van den Heuvel and Jorge A. P´erez. Deadlock Freedom for Asynchronous and Cyclic Process Networks ............ 4 Maurice Laveaux and Tim Willemse. Decomposing Monolithic Processes in a Process Algebra with Multi-actions . 22 Jovana Dedei´c,Jovanka Pantovi´c,and Jorge A. P´erez. On Encoding Primitives for Compensation Handling as Adaptable Processes (oral communication) . 44 Cl´ement Aubert and Daniele Varacca. Processes, Systems & Tests: Defining Contextual Equivalences . 49 Cinzia Di Giusto, Lo¨ıcGermerie Guizouarn, and Etienne Lozes. Towards Generalised Half-Duplex Systems ............................ 68 Benjamin Lion, Farhad Arbab, and Carolyn Talcott. A Semantic Model for Interacting Cyber-Physical Systems . 84 Mario Alvim, Bernardo Amorim, Sophia Knight, Santiago Quintero, and Frank Valencia. A Multi-Agent Model for Polarization under Confirmation Bias in Social Networks (oral communication) . 114 Alex Chambers and Sophia Knight. Expanding Social Polarization Models by Incorporating Belief Credibility (oral communication) . 120 1 Multiparty Session Programming with Global Protocol Combinators (Oral Contribution) Keigo Imai Rumyana Neykova [email protected] [email protected] Gifu Gifu University London Brunel University London Japan UK Nobuko Yoshida Shoji Yuen [email protected] [email protected] London Imperial College London Nagoya Nagoya University UK Japan Multiparty Session Types. Multiparty Session Types (MPST) behaviours coincides with the existence of least upper bound [1–3] is a theoretical framework that stipulates how to write, w.r.t. subtyping relation (Fig.3), on top of that the typing verify and ensure correct implementations of communica- of global combinators is implemented. We also briefly show tion protocols. The methodology of programming with MPST the channel vector semantics of global combinators, which (depicted in Fig.1) starts from a communication protocol gives the run-time entity of the multiparty channels using (a global type) which specifies the behaviour of a system of Concurrent ML’s standard Event module. interacting processes. The local behaviour (a local type) for each endpoint process is then algorithmically projected from Global Protocol File the protocol. Finally, each endpoint process is implemented in an endpoint host language and type-checked against its Well-formedness checking and Code generation respective local type by a session typing system. The guaran- Local type Local type Local type tee of session types is that a system of well-typed endpoint (Generated code) (Generated code) (Generated code) processes does not go wrong, i.e it does not exhibit commu- nication errors such as reception errors, orphan messages Type checking and Runtime linearity check or deadlocks, and satisfies session fidelity, i.e. the local be- Process Process Process haviour of each process follows the global specification. Java, Go, F#, Scala… Our approach. This talk presents ocaml-mpst, a library for programming MPST protocols in OCaml which allows Figure 1. State-of-the-art MPST implementations to specify, verify and implement MPST protocols in a single language, OCaml. Specifically, we introduce global combi- nators, a statically typed, embedded DSL (EDSL) for writing global types. Thus, an unsafe global protocol can be detected as a type error by OCaml typecher. Our approach consists of (1) the encoding of local types using variant and record (sub)typing (which are pervasive in functional programming languages), and (2) the formulation of global protocols as a term-level (not type-level) object, with a set of typing rules, which is designed to follow the projection algorithm, making the global combinators having the projected local behaviour in their types. The benefits of ocaml-mpst are that it is (1) lightweight – it does not depend on any external code-generation mecha- Figure 2. Merging in MPST nism, verification of global protocols is reduced to typability of global combinators; (2) fully-static – our embedding inte- grates with recent techniques for static checking of linearly References typed programming in OCaml [4, 5], and (3) expressive – we [1] Mario Coppo, Mariangiola Dezani-Ciancaglini, Luca Padovani, and can type strictly more processes than [6]. Nobuko Yoshida. 2015. A Gentle Introduction to Multiparty Asyn- In our talk, we introduce the design of global combinators chronous Session Types. In Formal Methods for Multicore Programming (Fig.2) and show our key finding that the merging of local (LNCS, Vol. 9104). Springer, 146–178. https://doi.org/10.1007/978-3-319- 18941-3_4 Imai, et al. Figure 3. Merging of local types in ocaml-mpst [2] Kohei Honda, Nobuko Yoshida, and Marco Carbone. 2008. Multiparty 27 (2019), 431–444. https://doi.org/10.2197/ipsjjip.27.431 asynchronous session types. In POPL’08. ACM, 273–284. [5] Keigo Imai, Nobuko Yoshida, and Shoji Yuen. 2018. Session-ocaml: a [3] Kohei Honda, Nobuko Yoshida, and Marco Carbone. 2016. Multiparty Session-based Library with Polarities and Lenses. Sci. Comput. Program. Asynchronous Session Types. J. ACM 63, 1 (2016), 9:1–9:67. https: 172 (2018), 135–159. https://doi.org/10.1016/j.scico.2018.08.005 //doi.org/10.1145/2827695 [6] Alceste Scalas and Nobuko Yoshida. 2016. Lightweight Session Pro- [4] Keigo Imai and Jacques Garrigue. 2019. Lightweight Linearly-typed Pro- gramming in Scala. In ECOOP (LIPIcs, Vol. 56). 21:1–21:28. https: gramming with Lenses and Monads. Journal of Information Processing //doi.org/10.4230/LIPIcs.ECOOP.2016.21 Deadlock Freedom for Asynchronous and Cyclic Process Networks* Bas van den Heuvel and Jorge A. Perez´ University of Groningen, The Netherlands This paper considers the challenging problem of establishing deadlock freedom for message-passing processes using behavioral type systems. In particular, we consider the case of processes that im- plement session types by communicating asynchronously in cyclic process networks. We present APCP, a typed process framework for deadlock freedom which supports asynchronous communica- tion, delegation, recursion, and a general form of process composition that enables specifying cyclic process networks. We discuss the main decisions involved in the design of APCP and illustrate its expressiveness and flexibility using several examples. 1 Introduction Modern software systems often comprise independent components that interact by passing messages. The π-calculus is a consolidated formalism for specifying and reasoning about message-passing pro- cesses [19, 20]. Type systems for the π-calculus can statically enforce communication correctness. In this context, session types are a well-known approach, describing two-party communication protocols for channel endpoints and enforcing properties such as protocol fidelity and deadlock freedom. Session type research has gained a considerable impulse after the discovery by Caires and Pfen- ning [7] and Wadler [28] of Curry-Howard correspondences between session types and linear logic [12]. Processes typable in type systems derived from these correspondences are inherently deadlock free. This is because the CUT-rule of linear logic imposes that processes in parallel must connect on exactly one pair of dual endpoints. However, whole classes of deadlock free processes are not expressible with the restricted parallel composition and endpoint connection resulting from CUT [9]. Such classes com- prise cyclic process networks in which parallel components are connected on multiple endpoints at once. Defining a type system for deadlock free, cyclic processes is challenging, because such processes may contain cyclic dependencies, where components are stuck waiting for each other. Advanced type systems that enforce deadlock freedom of cyclic process networks are due to Koba- yashi [17], who exploits priority annotations on types to avoid circular dependencies. Dardha and Gay bring these insights to the realm of session type systems based on linear logic by defining Priority-based CP (PCP) [8]. Indeed, PCP incorporates the type annotations of Padovani’s simplification of Kobayashi’s type system [21] into Wadler’s Classical Processes (CP) derived from classical linear logic [28]. In this paper, we study the effects of asynchronous communication on type systems for deadlock free cyclic process networks. To this end, we define Asynchronous PCP (APCP), which combines Dardha and Gay’s type annotations with DeYoung et al.’s semantics for asynchronous communication [10], and adds support for tail recursion. APCP uncovers fundamental properties of type systems for asynchronous communication, and simplifies PCP’s type annotations while preserving deadlock freedom results. *Research partially supported by the Dutch Research Council (NWO) under project No. 016.Vidi.189.046 (Unifying Cor- rectness for Communicating Software). Submitted to: This work is licensed under the ICE 2021 Creative Commons Attribution License. 2 Deadlock Freeodm for Asynchronous and Cyclic Process Networks In Section2, we motivate APCP by discussing Milner’s cyclic scheduler [19]. Section3 defines APCP’s language and type system, and proves Type