Along the lines of the Abramsky "Proofs-as-Processes" program, we present an interpretation of multiplicative linear logic as typing system for concurrent functional programming. In particular, we study a linear multiple-conclusion natural deduction system and show it is isomorphic to a simple and natural extension of λ-calculus with parallelism and communication primitives, called λ`. We shall prove that λ`satisfies all the desirable properties for a typed programming language: subject reduction, progress, strong normalization and confluence. * Funded by FWF grant P32080-N31. † Funded by ANR JCJC project Intuitions Bolzaniennes. linking proofs to programs, propositions to types, proof normalization to computation. Soon after, Wadler [32] introduced the session typed π-calculus CP, shown to tightly correspond to classical linear logic.
LimitationsThis important research notwithstanding, it appears that there is still ground to cover toward canonical and firm foundations for concurrent computation. First of all, asynchronous communication does not appear to rest on solid foundations. Yet this communication style is easier to implement and more practical than the purely synchronous paradigm, so it is widespread and asynchronous typed process calculi have been already investigated (see [13]). Unfortunately, linear logic has not so far provided via Curry-Howard a logical account of asynchronous communication. The reason is that there is a glaring discrepancy between full cut-elimination and π-calculus reduction which has not so far been addressed. On one hand, as we shall see, linear logic does support asynchronous communication, but only through the full process of cut-elimination, which indeed makes essential use of asynchronous communication. On the other hand, the π-calculus of [9] only mimics a partial cut-elimination process that only eliminates top-level cuts. Indeed, by comparison with its type system, the π-calculus lacks some necessary computational reduction rules. Some of the missing reductions, corresponding to commuting conversions, were provided in Wadler's CP. The congruence rules that allow the extra reductions to mirror full cut-elimination, however, were rejected: in Wadler's [32] own words, "such rules do not correspond well to our notion of computation on processes, so we omit them". A set of reductions similar to that rejected by Wadler is regarded in [27] as sound relatively to a notion of "typed context bisimilarity". The notion, however, only ensures that two "bisimilar" processes have the same input/output behaviour along their main communication channel; the internal synchronization among the parallel components of the two processes is not captured and may differ significantly. Thus, the extensional flavor of the bisimilarity notion prevents it to detect the intensionally different behaviour of the related processes, that is, how differently they communicate and compute.