A New Linear Logic for DeadlockFree SessionTyped Processes
Abstract
The \(\pi \)calculus, viewed as a core concurrent programming language, has been used as the target of much research on type systems for concurrency. In this paper we propose a new type system for deadlockfree sessiontyped \(\pi \)calculus processes, by integrating two separate lines of work. The first is the propositionsastypes approach by Caires and Pfenning, which provides a linear logic foundation for session types and guarantees deadlockfreedom by forbidding cyclic process connections. The second is Kobayashi’s approach in which types are annotated with priorities so that the type system can check whether or not processes contain genuine cyclic dependencies between communication operations. We combine these two techniques for the first time, and define a new and more expressive variant of classical linear logic with a proof assignment that gives a session type system with Kobayashistyle priorities. This can be seen in three ways: (i) as a new linear logic in which cyclic structures can be derived and a \(\small \textsc {Cycle}\)elimination theorem generalises \(\small \textsc {Cut}\)elimination; (ii) as a logicallybased session type system, which is more expressive than Caires and Pfenning’s; (iii) as a logical foundation for Kobayashi’s system, bringing it into the sphere of the propositionsastypes paradigm.
1 Introduction
Meanwhile, Honda et al. [26, 27, 38] developed session types as a formalism for statically checking that messages have the correct types and sequence according to a communication protocol. Research on session types developed and matured over several years, eventually inspiring Caires and Pfenning [12] to discover a CurryHoward correspondence between dual intuitionistic linear logic [7] and a form of \(\pi \)calculus with session types [38]. Wadler [41] subsequently gave an alternative formulation based on classical linear logic, and related it to existing work on session types for functional languages [23]. The CairesPfenning approach has been widely accepted as a propositionsastypes theory of concurrent programming, as well as providing a logical foundation for session types.
Caires and Pfenning’s type system guarantees deadlockfreedom by forbidding cyclic process structures. It provides a logical foundation for deadlockfree session processes, complementing previous approaches to deadlockfreedom in session type systems [9, 15, 21, 22]. The logical approach to session types has been extended in many ways, including features such as dependent types [39], failures and nondeterminism [11], sharing and races [6]. All this work relies on the acyclicity condition. However, rejecting cyclic process structures is unnecessarily strict: they are a necessary, but not sufficient, condition for the existence of deadlocked communication operations. As we will show in Example 1 (Fig. 1), there are deadlockfree processes that can naturally be implemented in a cyclic way, but are rejected by Caires and Pfenning’s type system.
Our contribution is to define a new logic, prioritybased linear logic (PLL), and formulate it as a type system for prioritybased CP (PCP), which is a more expressive class of processes than Wadler’s CP [41]. This is the first CurryHoward correspondence that allows cyclic interconnected processes, while still ensuring deadlockfreedom. The key idea is that PLL includes conditions on interchannel dependencies based on Kobayashi’s type systems [29, 30, 32]. Our work can be viewed in three ways: (i) as a new linear logic in which cyclic proof structures can be derived; (ii) as an extension of CairesPfenning type systems so that they accept more processes, while maintaining the strong logical foundation; (iii) as a logical foundation for Kobayashistyle type systems.
An example of a deadlockfree cyclic process is Milner’s wellknown scheduler [35], described in the following Example 1.
Example 1
Prefix \({c}_{0} [{\mathbf {n}}_{0}]\) denotes an output on \({c}_{0}\), and \({d}_{0} ({{x}_{0}})\) an input on \({d}_{0}\). For now, let \(\mathbf {m}\) and \(\mathbf {n}\) denote data. Process \(\mathsf {close}_{i}\) closes the channels used by \(A_i\): the details of this closure are irrelevant here (however, they are as in processes Q and R in Example 2). Process \(Q_i\) uses the message received from \(A_i\), in internal computation. The construct \(({\varvec{\nu }} ab)\) creates two channel endpoints a and b and binds them together. The system Sched is deadlockfree because \(A_1,...,A_{n1}\) each wait for a message from the previous \(A_i\) before sending, and \(A_0\) sends the initial message.
Sched is not typable in the original type systems by CairesPfenning and Wadler. To do that, it would be necessary to break \(A_0\) into two parallel agents \(A_0' \ \triangleq \ {c}_{0} [{\mathbf {n}}_{0}].\mathsf {close}_{{c}_{0}}\) and \(A_0'' \ \triangleq \ {d}_{0} ({{x}_{0}}).{a}_{0}[{\mathbf {m}}_{0}].\mathsf {close}_{{d}_{0},{a}_{0}}\). This changes the design of the system, yielding a different one. Moreover, if the scheduler continues into a second round of communication, this redesign is not possible because of the potential dependency from the input on \({d}_{0}\) to the next output on \({c}_{0}\). However, Sched is typable in PCP; we will show the type assignment at the end of Sect. 2.
There is a natural question at this point: given that the cyclic scheduler is deadlockfree, is it possible to encode its semantics in CP , thus eliminating the need for PCP ? It is possible to define a centralised agent A that communicates with all the collectors \(P_i\), resulting in a system that is semantically equivalent to our Sched. However, such an encoding has a global character, and changes the structure of the overall system from distributed to centralised. In programming terms, it corresponds to changing the software design, as we pointed out in Example 1, and ultimately the software architecture, which is not always desirable or even feasible. The aim of PCP is to generalise CP so that deadlockfree processes can be constructed with their natural structure. We would want any encoding of PCP into CP to be structurepreserving, which would mean translating the \(\small \textsc {Cycle}\) rule (given in Fig. 2) homomorphically; this is clearly impossible.
Contributions and Structure of the Paper. In Sect. 2 we define prioritybased linear logic (PLL), which extends classical linear logic (CLL) with priorities attached to propositions. These priorities are based on Kobayashi’s annotations for deadlock freedom [32]. By following the propositionsastypes paradigm, we define a term assignment for PLL proofs, resulting in prioritybased classical processes (PCP), which extends Wadler’s CP [41] with \(\small \textsc {Mix}\) and \(\small \textsc {Cycle}\) rules (Fig. 2). In Sect. 3 we define an operational semantics for PCP. In Sect. 4 we prove \(\small \textsc {Cycle}\)elimination (Theorem 1) for PLL, analogous to the standard \(\small \textsc {Cut}\)elimination theorem for CLL. Consequently, the results for PCP are subject reduction (Theorem 2), toplevel deadlockfreedom (Theorem 3), and full deadlockfreedom for closed processes (Theorem 4). In Sect. 5 we discuss related work and conclude the paper.
2 PCP: Classical Processes with Mix and Cycle
Prioritybased CP (PCP) follows the style of Wadler’s Classical Processes (CP) [41], with details inspired by Carbone et al. [14] and Caires and Pérez [11].
Types. We start with types, which are based on CLL propositions. Let A, B range over types, given in Definition 1. Let \(\mathsf {o}, \kappa \in \mathbb {N}\cup \{\omega \}\) range over priorities, which are used to annotate types. Let \(\omega \) be a special element such that \(\mathsf {o}<\omega \) for all \(\mathsf {o}\in \mathbb {N}\). Often, we will omit \(\omega \). We will explain priorities later in this section.
Definition 1
\(\mathbf{\bot }^\mathsf {o}\) and \(\mathbf{1}^\mathsf {o}\) are associated with channel endpoints that are ready to be closed. \(A \, {\otimes }^{\mathsf {o}}\, B\) (respectively, Open image in new window ) is associated with a channel endpoint that first outputs (respectively, inputs) a channel of type A and then proceeds as B. \(\oplus ^{\mathsf {o}}\{{l}_i:{A}_i\}_{i\in I}\) is associated with a channel endpoint over which we can select a label from \(\{l_i\}_{i\in I}\), and proceed as \(A_i\). Dually, Open image in new window is associated with a channel endpoint that can offer a set of labelled types. Open image in new window types a collection of clients requesting A. Dually, Open image in new window types a server repeatedly accepting A.
Duality on types is total and is given in Definition 2. It preserves priorities of types.
Definition 2
Processes. Let P, Q range over processes, given in Definition 3. Let x, y range over channel endpoints, and \(\mathbf {m}, \mathbf {n}\) over channel endpoints of type either \(\mathbf{\bot }^\mathsf {o}\) or \(\mathbf{1}^\mathsf {o}\).
Definition 3
Process \(x[y].P\) (respectively, \(x({y}).P\)) outputs (respectively, inputs) y on channel endpoint x, and proceeds as P. Process \(x\triangleleft {l_j}.P\) uses x to select \(l_j\) from a labelled choice process, typically being \(x\triangleright \{{l}_i:P_i\}_{i\in I}\), and triggers \(P_j\); labels indexed by the finite set I are pairwise distinct. Process \({x}\!\rightarrow \!{y}^{A}\) forwards communications from x to y, the latter having type A. Processes also include the inaction process \({\varvec{0}}\), the parallel composition of P and Q, denoted \(P \mathord {\;\varvec{}\;}Q\), and the double restriction constructor \(({\varvec{\nu }} {x}^{A}{y})P\): the intention is that x and y denote dual session channel endpoints in P, and A is the type of x. Processes \({x}[\,].{\varvec{0}}\) and \({x}().P\) are the empty output and empty input, respectively. They denote the closure of a session from the viewpoint of each of the two communicating participants.
Notions of bound/free names in processes are standard; we write \(\mathtt{{f}n}(P)\) to denote the set of free names of P. Also, we write Open image in new window to denote the (captureavoiding) substitution of x for the free occurrences of z in P. Finally, we let \(\tilde{x}\), which is different from x, denote a sequence \(x_1, \ldots ,x_n\) for \(n>0\).
Typing Rules. Typing contexts, ranged over by \(\varGamma , \varDelta , \varTheta \), are sets of typing assumptions \(x\! :\!A\). We write \(\varGamma , \varDelta \) for union, requiring the contexts to be disjoint. A typing judgement \(P \vdash \varGamma \) means “process P is well typed using context \(\varGamma \)”.
 (i)
An action of priority \(\mathsf {o}\) must be prefixed only by actions of priorities strictly smaller than \(\mathsf {o}\).
 (ii)
Communication requires equal priorities for the complementary actions.
Definition 4
Definition 5
The operator \(\mathop {\uparrow ^{t}}\) is extended componentwise to typing contexts: \(\mathop {\uparrow ^{t}}\varGamma \).
Lifting preserves typability, by an easy induction on typing derivations.
Lemma 1
If \(P\vdash \varGamma \) then \(P\vdash \mathop {\uparrow ^{t}}{\varGamma }\).
We will use this result in the form of an admissible rule: Open image in new window
The above derivations without priorities show the isomorphism between \(A\otimes B\) and Open image in new window in CLL, which does not hold in our PLL, in particular as \(\mathsf {o}_1 \ne \mathsf {o}_2\). The distinction between \(\otimes \) and Open image in new window , preserves the distinction between output and input in the term assignment. However, to simplify derivations, both typing rules (Fig. 2) have the same form. The usual tensor rule, where there are two separate derivations in the premise rather than just one, is derivable by using \(\small \textsc {Mix}\).
Our type system performs prioritychecking. Priorities can be inferred, as in Kobayashi’s type system [32] and the tool TyPiCal [28]. We have opted for priority checking over priority inference, as the presentation is more elegant.
The following two examples illustrate the use of priorities. We first establish the structure of the typing derivation, then calculate the priorities. We conclude the section by showing the typing for the cyclic scheduler from Sect. 1.
Example 2
Example 3
3 Operational Semantics of PCP
In this section we define structural equivalence, the principal \(\beta \)reduction rules and commuting conversions. The detailed derivations can be found in [18].
4 Results for PLL and PCP
4.1 \(\small \textsc {Cycle}\)Elimination for PLL
We start with results for \(\small \textsc {Cycle}\)elimination for PLL; thus here we refer to A, B as propositions, rather than types. The detailed proofs can be found in [18].
Definition 6

\(\partial ({\mathbf{1}^\mathsf {o}}) = \partial ({\mathbf{\bot }^\mathsf {o}}) = 1\)

\( \partial ({{ \& ^{\mathsf {o}}\{{l}_i:{A}_i\}_{i\in I}}}) = \partial ({\oplus ^{\mathsf {o}}\{{l}_i:{A}_i\}_{i\in I}}) = \sum _{i\in I}\{\partial ({A_i}) \} +1\)
Definition 7
A \(\small \textsc {Maxicut}\) is a maximal sequence of \(\small \textsc {Mix}\) and \(\small \textsc {Cycle}\) rules, ending with a \(\small \textsc {Cycle}\) rule.
Maximality means that the rules applied immediately before a \(\small \textsc {Maxicut}\) are any rules in Fig. 2, other than \(\small \textsc {Mix}\) or \(\small \textsc {Cycle}\). The order in which \(\small \textsc {Mix}\) and \(\small \textsc {Cycle}\) rules are applied within a \(\small \textsc {Maxicut}\) is irrelevant. However, Proposition 1, which follows directly from structural equivalence (Sect. 3), allows us to simplify a \(\small \textsc {Maxicut}\).
Proposition 1
(Canonical Open image in new window ). Given an arbitrary \(\small \textsc {Maxicut}\), it is always possible to obtain from it a canonical \(\small \textsc {Maxicut}\) consisting of a sequence of only \(\small \textsc {Mix}\) rules followed by a sequence of only \(\small \textsc {Cycle}\) rules.
Definition 8
A single\(\small \textsc {Mix}\) \(\small \textsc {Maxicut}\) contains only one \(\small \textsc {Mix}\) rule.
\(A_1,\ldots ,A_n, A\) are \(\small \textsc {Maxicut}\) propositions if they are eliminated by a \(\small \textsc {Maxicut}\).
The degree of a sequence of \(\small \textsc {Cycle}\)s is the sum of the degrees of the eliminated propositions.
The degree of a \(\small \textsc {Maxicut}\) is the sum of the degrees of the \(\small \textsc {Cycle}\)s in it.
The degree of a proof \(\pi \), \(d(\pi )\), is the sup of the degrees of its \(\small \textsc {Maxicut}\)s, implying \(d(\pi )= 0\) if and only if proof \(\pi \) has no \(\small \textsc {Cycle}\)s.
The height of a proof \(\pi \), \(h(\pi )\), is the height of its tree, and it is defined as \(h(\pi )= {\mathrm {sup}\big (h(\pi _i)\big )}_{i\in I}+1\), where \(\{\pi _i\}_{i\in I}\) are the subproofs of \(\pi \).
\(\small \textsc {Maxicut}\) has some similarities with the derived \(\small \textsc {Multicut}\): it generalises \(\small \textsc {Multicut}\) in the number of \(\small \textsc {Mix}\)es, and a single\(\small \textsc {Mix}\) \(\small \textsc {Maxicut}\) is an occurrence of \(\small \textsc {Multicut}\).
The core of \(\small \textsc {Cycle}\)elimination for our PLL, as for \(\small \textsc {Cut}\)elimination for CLL [10, 25], is the Principal Lemma (Lemma 3), which eliminates a \(\small \textsc {Cycle}\) by either (i) replacing it with another \(\small \textsc {Cycle}\) on simpler propositions, or (ii) pushing it further up the proof tree. Item (i) corresponds to (the logical part of) \(\beta \)reductions (Sect. 3); and (ii) corresponds to (the logical part of) commuting conversions (Sect. 3).
Exceptionally, Open image in new window reduces the original proof in a way that neither (i) nor (ii) are respected. In order to cope with this case, we introduce Lemma 2, which is inspired by Lemma B.1.3 in Bräuner [10], and adapted to our PLL. Lemma 2 allows us to reduce the degree of a proof ending with a single\(\small \textsc {Mix}\) \(\small \textsc {Maxicut}\) and having the same degree as the whole proof, and where the last rule applied on the left handside immediate subproof is Open image in new window . Let [n] denote the set \(\{1,\ldots ,n\}\).
Lemma 2
Proof
Induction on \(h(\pi ')\), with a caseanalysis on the last rule applied in \(\pi '\). \(\square \)
Lemma 3
Proof
The proof is by induction on \(\sum _{i\in [m]} h(\pi _i)\). Let \(r_i\) be the last rule applied in \(\pi _i\), for \(i \in [m]\) and let \(C_{r_i}\) be the proposition introduced by \(r_i\). Consider the proposition with the smallest priority. If the proposition is not unique, just pick one. Let this proposition be \(C_{r_k}\). Then, \(\pi _k\) is the following proof: Open image in new window
We proceed by cases on \(\pi _k\).
− \(r_k\) is \(\otimes \) on one of the \(\small \textsc {Maxicut}\) propositions \(A_1,\ldots ,A_n, A\). Without loss of generality, suppose \(r_k\) is applied on A, meaning \(A = E\, {\otimes }^{\mathsf {o}}\, F\) for some E and F and \(\mathsf {o}\geqslant 0\). By \(\otimes \) rule in Fig. 2, \(\mathsf {o}< \mathsf {pr}_{}(\varGamma ')\). Since A is a \(\small \textsc {Maxicut}\) proposition, by Definition 2, Open image in new window . Since \(\mathsf {o}<\mathsf {pr}_{}(\varGamma ')\) and \(\mathsf {pr}_{}({A}^{\perp }) = \mathsf {o}\), it must be that \({A}^{\perp }\) is in another proof, say \(\pi _h\): Open image in new window
Consider the case where \(r_h\) is a multiplicative, additive, exponential or \(\mathbf{\bot }\) rule in Fig. 2. Suppose \(r_h\) is applied on \(C_{r_h}\) which is not \({A}^{\perp }\). All the mentioned rules require Open image in new window , implying Open image in new window . This contradicts the fact that \(\mathsf {o}\) is the smallest priority. Hence, \(r_h\) must be a Open image in new window introducing \({A}^{\perp }\).
where Open image in new window . Since A is a \(\small \textsc {Maxicut}\) proposition, by duality Open image in new window . Since \(\mathsf {o}<\mathsf {pr}_{}(\varGamma ')\) and \(\mathsf {pr}_{}({A}^{\perp }) = \mathsf {o}\), it must be that \({A}^{\perp }\) is in another proof. Let it be \(\pi _h\) for \(h\in [m]\) and \(h\ne k\). Then we apply Lemma 2 to \(\pi _k\) and \(\pi _h\), obtaining a proof which we use to construct \(\tau '\), as we did in the previous case. \(\square \)
Lemma 4
Given a proof \(\tau \) of \(\ \vdash \varGamma \), such that \(d(\tau )> 0\), then for some \(t\geqslant 0\) there is a proof \(\tau '\) of \(\ \vdash \mathop {\uparrow ^{t}}\varGamma \) such that \(d(\tau ') < d(\tau )\).
Proof
By induction on \(h(\tau )\). We have the following cases.
− Otherwise, by using the inductive hypothesis on the immediate subproofs to reduce their degree, we also reduce the degree of the whole proof. \(\square \)
Theorem 1
( Open image in new window Elimination). Given any proof of \(\ \vdash \varGamma \), we can construct a \(\small \textsc {Cycle}\)free proof of \(\ \vdash \mathop {\uparrow ^{t}}\varGamma \), for some \(t\geqslant 0\).
Proof
Iteration on Lemma 4. \(\square \)
\(\small \textsc {Cycle}\)elimination increases the priorities of the propositions in \(\varGamma \). This is solely due to the (logical part of) our commuting conversions in Sect. 3.
4.2 DeadlockFreedom for PCP
Theorem 2
(Subject Reduction). If \(P\vdash \varGamma \) and \(P\longrightarrow Q\), then \(Q\vdash \mathop {\uparrow ^{t}}\varGamma \), for some \(t\geqslant 0\).
Proof
Follows from the \(\beta \)reductions and commuting conversions in Sect. 3. \(\square \)
Definition 9
A process is a \(\small \textsc {Cycle}\) if it is of the form \(({\varvec{\nu }} {x}^{A}{y}) P\).
Theorem 3
(TopLevel DeadlockFreedom). If \(P\vdash \varGamma \) and P is a \(\small \textsc {Cycle}\), then there is some Q such that \(P\longrightarrow ^*Q\) and Q is not a \(\small \textsc {Cycle}\).
Proof
The interpretation of Lemma 3 for PCP is that either (i) a toplevel communication occurs, corresponding to a \(\beta \)reduction, or (ii) commuting conversions are used to push \(\small \textsc {Cycle}\) further inwards in a process. Consequently, iterating Lemma 3 results in eliminating toplevel \(\small \textsc {Cycle}\)s. \(\square \)
However, we can eliminate all \(\small \textsc {Cycle}\)s in a proof of \(\vdash \emptyset \), corresponding to full deadlockfreedom for closed processes. Kobayashi’s type system [32] satisfies the same property.
Theorem 4
(DeadlockFreedom for Closed Processes). If \(P\vdash \emptyset \), then either \(P\equiv {\varvec{0}}\) or there is Q such that \(P\longrightarrow Q\).
5 Related Work and Conclusion
\(\small \textsc {Cycle}\) and \(\small \textsc {Multicut}\) rules were explored by Abramsky et al. [2, 3, 4] in the context of \(*\)autonomous categories. That work is not directly comparable with ours, as it only presented a typed semantics for CCSlike processes and did not give a type system for a language or a term assignment for a logical system. Atkey et al. [5] added a \(\small \textsc {Multicut}\) rule to CP, producing an isomorphism between \(\otimes \) and Open image in new window , but they did not consider deadlockfreedom.
In Kobayashi’s original typetheoretic approach to deadlockfreedom [29], priorities were abstract tags from a partially ordered set. In later work abstract tags were simplified to natural numbers, and priorities were replaced by pairs of obligations and capabilities [30, 32]. The latter change allows more processes to be typed, at the expense of a more complex type system. Padovani [36] adapted Kobayashi’s approach to session types, and later on he simplified it to a single priority for linear \(\pi \)calculus [37]. Then, the single priority technique can be transferred to session types by the encoding of session types into linear types [16, 17, 19, 33]. For simplicity, we have opted for single priorities, as Padovani [37].
The first work on progress for session types, by DezaniCiancaglini et al. [15, 22], guaranteed the property by allowing only one active session at a time. Later work [21] introduced a partial order on channels in Kobayashistyle [29]. Bettini et al. [9] applied similar ideas to multiparty session types. The main difference with our work is that we associate priorities with individual communication operations, rather than with entire channels. Carbone et al. [13] proved that progress is a compositional form of lockfreedom and introduced a new technique for progress in session types by adopting Kobayashi’s type system and the encoding of session types [19]. Vieira and Vasconcelos [40] used single priorities and an abstract partial order in session types to guarantee deadlockfreedom.
The linear logic approach to deadlockfree session types started with Caires and Pfenning [12], based on dual intuitionistic linear logic, and was later formulated for classical linear logic by Wadler [41]. All subsequent work on linear logic and session types enforces deadlockfreedom by forbidding cyclic connections. In their original work, Caires and Pfenning commented that it would be interesting to compare process typability in their system with other approaches including Kobayashi’s and DezaniCiancaglini’s. However, we are aware of only one comparative study of the expressivity of type systems for deadlockfreedom, by Dardha and Pérez [20]. They compared Kobayashistyle typing and CLL typing, and proved that CLL corresponds to Kobayashi’s system with the restriction that only single cuts, not multicuts, are allowed.
In this paper, we have presented a new logic, prioritybased linear logic (PLL), and a term assignment system, prioritybased CP (PCP), that increase the expressivity of deadlockfree session type systems, by combining Caires and Pfenning’s linear logicbased approach and Kobayashi’s prioritybased type system. The novel feature of PLL and PCP is \(\small \textsc {Cycle}\), which allows cyclic process structures to be formed if they do not violate ordering conditions on the priorities of prefixes. Following the propositionsastypes paradigm, we prove a \(\small \textsc {Cycle}\)elimination theorem analogous to the standard \(\small \textsc {Cut}\)elimination theorem. As a result of this theorem, we obtain deadlockfreedom for a class of \(\pi \)calculus processes which is larger than the class typed by Caires and Pfenning. In particular, these are processes that typically share more than one channel in parallel.
There are two main directions for future work. First, develop a type system for a functional language, prioritybased GV, and translate it into PCP, along the lines of Lindley and Morris’ [34] translation of GV [41] into CP. Second, extend PCP to allow recursion and sharing [6], in order to support more general concurrent programming, while maintaining deadlockfreedom, as well as termination, or typed behavioural equivalence.
Footnotes
 1.
Note that associativity of restriction is derived from \(\small \textsc {SCMixComm}\) and \(\small \textsc {SCCycleComm}\).
Notes
Acknowledgements
We are grateful for suggestions and feedback from the anonymous reviewers and colleagues: Wen Kokke, Sam Lindley, Roly Perera, Frank Pfenning, Carsten Schürmann and Philip Wadler.
References
 1.Abramsky, S.: Proofs as processes. Theor. Comput. Sci. 135(1), 5–9 (1994)MathSciNetCrossRefGoogle Scholar
 2.Abramsky, S., Gay, S.J., Nagarajan, R.: Interaction categories and the foundations of typed concurrent programming. In: Broy, M. (ed.) Proceedings of the NATO Advanced Study Institute on Deductive Program Design, pp. 35–113 (1996)CrossRefGoogle Scholar
 3.Abramsky, S., Gay, S., Nagarajan, R.: A typetheoretic approach to deadlockfreedom of asynchronous systems. In: Abadi, M., Ito, T. (eds.) TACS 1997. LNCS, vol. 1281, pp. 295–320. Springer, Heidelberg (1997). https://doi.org/10.1007/BFb0014557CrossRefzbMATHGoogle Scholar
 4.Abramsky, S., Gay, S.J., Nagarajan, R.: A specification structure for deadlockfreedom of synchronous processes. Theor. Comput. Sci. 222(1–2), 1–53 (1999)MathSciNetCrossRefGoogle Scholar
 5.Atkey, R., Lindley, S., Morris, J.G.: Conflation confers concurrency. In: Lindley, S., McBride, C., Trinder, P., Sannella, D. (eds.) A List of Successes That Can Change the World. LNCS, vol. 9600, pp. 32–55. Springer, Cham (2016). https://doi.org/10.1007/9783319309361_2CrossRefGoogle Scholar
 6.Balzer, S., Pfenning, F.: Manifest sharing with session types. In: Proceedings of the ACM on Programming Languages, vol. 1(ICFP), pp. 37:1–37:29 (2017)CrossRefGoogle Scholar
 7.Barber, A.: Dual intuitionistic linear logic. Technical report ECSLFCS96347, University of Edinburgh (1996). www.lfcs.inf.ed.ac.uk/reports/96/ECSLFCS96347
 8.Bellin, G., Scott, P.J.: On the picalculus and linear logic. Theor. Comput. Sci. 135(1), 11–65 (1994)CrossRefGoogle Scholar
 9.Bettini, L., Coppo, M., D’Antoni, L., De Luca, M., DezaniCiancaglini, M., Yoshida, N.: Global progress in dynamically interleaved multiparty sessions. In: van Breugel, F., Chechik, M. (eds.) CONCUR 2008. LNCS, vol. 5201, pp. 418–433. Springer, Heidelberg (2008). https://doi.org/10.1007/9783540853619_33CrossRefGoogle Scholar
 10.Bräuner, T.: Introduction to linear logic. Technical report BRICS LS966, Basic Research Institute in Computer Science, University of Aarhus (1996)Google Scholar
 11.Caires, L., Pérez, J.A.: Linearity, control effects, and behavioral types. In: Yang, H. (ed.) ESOP 2017. LNCS, vol. 10201, pp. 229–259. Springer, Heidelberg (2017). https://doi.org/10.1007/9783662544341_9CrossRefzbMATHGoogle Scholar
 12.Caires, L., Pfenning, F.: Session types as intuitionistic linear propositions. In: Gastin, P., Laroussinie, F. (eds.) CONCUR 2010. LNCS, vol. 6269, pp. 222–236. Springer, Heidelberg (2010). https://doi.org/10.1007/9783642153754_16CrossRefGoogle Scholar
 13.Carbone, M., Dardha, O., Montesi, F.: Progress as compositional lockfreedom. In: Kühn, E., Pugliese, R. (eds.) COORDINATION 2014. LNCS, vol. 8459, pp. 49–64. Springer, Heidelberg (2014). https://doi.org/10.1007/9783662433768_4CrossRefGoogle Scholar
 14.Carbone, M., Lindley, S., Montesi, F., Schürmann, C., Wadler, P.: Coherence generalises duality: a logical explanation of multiparty session types. In: CONCUR. LIPIcs, vol. 59, pp. 33:1–33:15. Schloss Dagstuhl–LeibnizZentrum für Informatik (2016)Google Scholar
 15.Coppo, M., DezaniCiancaglini, M., Yoshida, N.: Asynchronous session types and progress for object oriented languages. In: Bonsangue, M.M., Johnsen, E.B. (eds.) FMOODS 2007. LNCS, vol. 4468, pp. 1–31. Springer, Heidelberg (2007). https://doi.org/10.1007/9783540729525_1CrossRefzbMATHGoogle Scholar
 16.Dardha, O.: Recursive session types revisited. In: BEAT. EPTCS, vol. 162, pp. 27–34 (2014)Google Scholar
 17.Dardha, O.: Type Systems for Distributed Programs: Components and Sessions. Atlantis Studies in Computing, vol. 7. Atlantis Press, Paris (2016). https://doi.org/10.2991/9789462392045CrossRefzbMATHGoogle Scholar
 18.Dardha, O., Gay, S.J.: A new linear logic for deadlockfree session typed processes. In: 21st International Conference on Foundations of Software Science and Computation Structures, FoSSaCS 2018 (Extended Version). http://www.dcs.gla.ac.uk/~ornela/publications/DG18Extended.pdf
 19.Dardha, O., Giachino, E., Sangiorgi, D.: Session types revisited. In: PPDP, pp. 139–150. ACM (2012)Google Scholar
 20.Dardha, O., Pérez, J.A.: Comparing deadlockfree session typed processes. In: EXPRESS/SOS. EPTCS, vol. 190, pp. 1–15 (2015)Google Scholar
 21.DezaniCiancaglini, M., de’Liguoro, U., Yoshida, N.: On progress for structured communications. In: Barthe, G., Fournet, C. (eds.) TGC 2007. LNCS, vol. 4912, pp. 257–275. Springer, Heidelberg (2008). https://doi.org/10.1007/9783540786634_18CrossRefGoogle Scholar
 22.DezaniCiancaglini, M., Mostrous, D., Yoshida, N., Drossopoulou, S.: Session types for objectoriented languages. In: Thomas, D. (ed.) ECOOP 2006. LNCS, vol. 4067, pp. 328–352. Springer, Heidelberg (2006). https://doi.org/10.1007/11785477_20CrossRefGoogle Scholar
 23.Gay, S.J., Vasconcelos, V.T.: Linear type theory for asynchronous session types. J. Funct. Program. 20(1), 19–50 (2010)MathSciNetCrossRefGoogle Scholar
 24.Girard, J.: Linear logic. Theor. Comput. Sci. 50, 1–102 (1987)MathSciNetCrossRefGoogle Scholar
 25.Girard, J.Y., Taylor, P., Lafont, Y.: Proofs and Types. Cambridge University Press, New York (1989)zbMATHGoogle Scholar
 26.Honda, K.: Types for dyadic interaction. In: Best, E. (ed.) CONCUR 1993. LNCS, vol. 715, pp. 509–523. Springer, Heidelberg (1993). https://doi.org/10.1007/3540572082_35CrossRefGoogle Scholar
 27.Honda, K., Vasconcelos, V.T., Kubo, M.: Language primitives and type discipline for structured communicationbased programming. In: Hankin, C. (ed.) ESOP 1998. LNCS, vol. 1381, pp. 122–138. Springer, Heidelberg (1998). https://doi.org/10.1007/BFb0053567CrossRefGoogle Scholar
 28.Kobayashi, N.: TyPiCal: typebased static analyzer for the picalculus. wwwkb.is.s.utokyo.ac.jp/~koba/typical
 29.Kobayashi, N.: A partially deadlockfree typed process calculus. ACM Trans. Program. Lang. Syst. 20(2), 436–482 (1998)CrossRefGoogle Scholar
 30.Kobayashi, N.: A type system for lockfree processes. Inf. Comput. 177(2), 122–159 (2002)MathSciNetCrossRefGoogle Scholar
 31.Kobayashi, N.: Type systems for concurrent programs. In: Aichernig, B.K., Maibaum, T. (eds.) Formal Methods at the Crossroads. From Panacea to Foundational Support. LNCS, vol. 2757, pp. 439–453. Springer, Heidelberg (2003). https://doi.org/10.1007/9783540400073_26CrossRefGoogle Scholar
 32.Kobayashi, N.: A new type system for deadlockfree processes. In: Baier, C., Hermanns, H. (eds.) CONCUR 2006. LNCS, vol. 4137, pp. 233–247. Springer, Heidelberg (2006). https://doi.org/10.1007/11817949_16CrossRefGoogle Scholar
 33.Kobayashi, N.: Type systems for concurrent programs. Extended version of [31], Tohoku University (2007)Google Scholar
 34.Lindley, S., Morris, J.G.: A semantics for propositions as sessions. In: Vitek, J. (ed.) ESOP 2015. LNCS, vol. 9032, pp. 560–584. Springer, Heidelberg (2015). https://doi.org/10.1007/9783662466698_23CrossRefGoogle Scholar
 35.Milner, R.: Communication and Concurrency. Prentice Hall, Upper Saddle River (1989)zbMATHGoogle Scholar
 36.Padovani, L.: From lock freedom to progress using session types. In: PLACES. EPTCS, vol. 137, pp. 3–19 (2013)Google Scholar
 37.Padovani, L.: Deadlock and lock freedom in the linear \(\pi \)Calculus. In: CSLLICS, pp. 72:1–72:10. ACM (2014)Google Scholar
 38.Takeuchi, K., Honda, K., Kubo, M.: An interactionbased language and its typing system. In: Halatsis, C., Maritsas, D., Philokyprou, G., Theodoridis, S. (eds.) PARLE 1994. LNCS, vol. 817, pp. 398–413. Springer, Heidelberg (1994). https://doi.org/10.1007/3540581847_118CrossRefGoogle Scholar
 39.Toninho, B., Caires, L., Pfenning, F.: Dependent session types via intuitionistic linear type theory. In: PPDP, pp. 161–172. ACM (2011)Google Scholar
 40.Torres Vieira, H., Thudichum Vasconcelos, V.: Typing progress in communicationcentred systems. In: De Nicola, R., Julien, C. (eds.) COORDINATION 2013. LNCS, vol. 7890, pp. 236–250. Springer, Heidelberg (2013). https://doi.org/10.1007/9783642384936_17CrossRefGoogle Scholar
 41.Wadler, P.: Propositions as sessions. In: ICFP, pp. 273–286. ACM (2012)Google Scholar
 42.Wadler, P.: Propositions as types. Commun. ACM 58(12), 75–84 (2015)CrossRefGoogle Scholar
Copyright information
Open Access This chapter is licensed under the terms of the Creative Commons Attribution 4.0 International License (http://creativecommons.org/licenses/by/4.0/), which permits use, sharing, adaptation, distribution and reproduction in any medium or format, as long as you give appropriate credit to the original author(s) and the source, provide a link to the Creative Commons license and indicate if changes were made. The images or other third party material in this book are included in the book's Creative Commons license, unless indicated otherwise in a credit line to the material. If material is not included in the book's Creative Commons license and your intended use is not permitted by statutory regulation or exceeds the permitted use, you will need to obtain permission directly from the copyright holder.