We reconsider work by Bellin and Scott in the 1990s on R. Milner and S. Abramsky's encoding of linear logic in the π-calculus and give an account of efforts to establish a tight connection between the structure of proofs and of the cut elimination process in multiplicative linear logic, on one hand, and the input-output behaviour of the processes that represent them, on the other, resulting in a proof-theoretic account of (a variant of) Chu's construction. But Milner's encoding of the linear lambda calculus suggests consideration of multiplicative co-intuitionistic linear logic: we provide a term assignment for it, a calculus of coroutines which presents features of concurrent and distributed computing. Finally, as a test case of its adequacy as a logic for distributed computation, we represent our term assignment as a λP system. We argue that translations of typed functional languages in concurrent and distributed systems (such as π-calculi or λP systems) are best typed with co-intuitionistic logic, where some features of computations match the logical properties in a natural way. * We thank Phil Scott and Tristan Crolard for their cooperation over the years on the topics of this paper. We had useful conversations with 1 In 1991-2 Gianluigi Bellin and Philip Scott were in Edinburgh, learning the π-calculus from Robin Milner; also they were well aware of the work by Samson Abramsky, who gave a lecture on it in Edinburgh in 1992.
22
G. Bellin and A. Menti / Intuitionistic Duality, π Calculus and λP SystemsThe π-calculus is meant as a paradigmatic language for concurrent and distributed computing in the same way as the λ-calculus is paradigmatic for functional programming; since the fundamental role of the typed λ-calculus is confirmed by the Curry-Howard correspondence with propositions of intuitionistic logic and proofs in natural deduction, so there was the expectation that linear logic might provide a meaningful type system for the π-calculus and normalization of proofs in linear logic might correspond to the behaviour of concurrent processes of the π-calculus in a natural way. The need for conceptual clarity in the foundations of concurrent and distributed computing is even more evident today, not only because, as Philip Wadler puts it, "with the advent of multicores, mobile phones, and server farms, we have all become concurrent programmers" [32], but also because our understanding of information processing in basic biological entities takes the form of distributed computing.Linear logic [14] appeared as a good candidate for a type system for concurrent logical computations: Girard himself had presented the representation of derivations in classical linear logic in the system of proof nets as a way to realize a "parallelization of the syntax"; in [14] this goal was regarded as already achieved for the multiplicative fragment of linear logic and was proposed as a research project for larger parts of the system. Therefore the encodings in the π-calculus of linear logic proofs, and in particular of proof-nets, a...