Functions as proofs as processes

Functions as proofs as processes
Notice: This research summary and analysis were automatically generated using AI technology. For absolute accuracy, please refer to the [Original Paper Viewer] below or the Original ArXiv Source.

This paper presents a logical approach to the translation of functional calculi into concurrent process calculi. The starting point is a type system for the {\pi}-calculus closely related to linear logic. Decompositions of intuitionistic and classical logics into this system provide type-preserving translations of the \lambda- and \lambda\mu-calculus, both for call-by-name and call-by-value evaluation strategies. Previously known encodings of the \lam-calculus are shown to correspond to particular cases of this logical embedding. The realisability interpretation of types in the \pi-calculus provides systematic soundness arguments for these translations and allows for the definition of type-safe extensions of functional calculi.


💡 Research Summary

The paper presents a unified logical framework that systematically translates functional calculi—specifically the simply‑typed λ‑calculus and the classical λµ‑calculus—into a concurrent π‑calculus enriched with a linear‑logic‑based type system. The authors begin by defining a variant of the π‑calculus, called the π =‑calculus, which makes name fusions and binding input/output actions explicit. Structural congruence and a strong bisimilarity relation are introduced to give a clean operational semantics where synchronisation and name substitution are clearly separated.

On top of this calculus they build a type system named LLa (Linear Logic with arities). LLa extends the usual multiplicative‑exponential linear logic (MELL) with four generalized modalities (ˆ, ´, !, ?) and, crucially, associates each type variable with a fixed arity. A formula’s arity determines how many channel names are required to inhabit it, allowing the type system to precisely capture the input‑output structure of processes. Typing rules (Table 2) assign, for example, an input action ¯u(·).p the type u:ˆA and an output action u(·).p the type u:!A.

The core contribution is a family of type‑preserving translations from λ‑terms to π‑processes. A term M of type A is mapped to a process ⟦M⟧_A ~y that uses exactly ar(A) fresh names ~y. Variables become input actions, λ‑abstractions become guarded outputs (!x(·).p), and applications are encoded by creating a fresh private name νx, running the function and argument processes in parallel, and synchronising on x. This encoding respects both call‑by‑name and call‑by‑value evaluation strategies; the choice of modalities in the translation determines which strategy is simulated.

A key technical result (Proposition 5) shows that τ‑transitions in the π‑process correspond exactly to head linear reductions in the original λ‑term, while σ‑equivalence (α‑conversion and β‑reduction modulo permutation) is preserved by the translation. Consequently, the encoded process is strongly bisimilar to the operational behaviour of the source term.

To handle polymorphism (System F) the authors introduce generalized modality pairs (γ, δ). Each modality is a word over {ˆ, ´, !, ?}. The pair must satisfy two constraints: (i) both γ and δ are non‑empty (ensuring arity‑independence) and (ii) one is a suffix of the other (allowing a common modality ζ to be derived for the cut rule). Under these conditions every rule of classical logic LK can be mapped into LLa, including ∀ and ∃ quantifiers, without losing arity information. The translation of λµ‑terms follows the same pattern; the µ‑binder and its associated


Comments & Academic Discussion

Loading comments...

Leave a Comment