natural deduction metalanguage, practical foundations
type theory (dependent, intensional, observational type theory, homotopy type theory)
computational trinitarianism =
propositions as types +programs as proofs +relation type theory/category theory
The -calculus is a computational model for concurrent processes that communicate messages through named channels. It subsumes λ-calculus.
In the monadic (here meaning: unary) -calculus, outputs and inputs only send and receive single names, while the polyadic (here meaning: -ary) -calculus allows outputs of tuples of names and corresponding inputs.
This calculus permits non-confluent reductions by design, as opposed to other process calculi such as the Interactive Lambda Calculus (ILC).
A process is either:
an inactive process ;
the parallel composition of two processes ;
the replication of a process ;
a restriction (that is the generation of a fresh name only known to );
prefixed by an input ;
prefixed by an output .
Sometimes an indeterministic choice operator is added to the syntax.
The central reduction rule of the -calculus is the following:
a server that increments the value it receives: ;
a client that calls to the server: ;
the final process by composing the server and the client: .
Several attempts have been made to give the -calculus typing systems. It is crucial for , a higher-order -calculus in which messages can be processes themselves.
Simple types are defined by the following grammar:
where ranges over (possibly empty) tuples of simple types.
Typing contexts are lists of hypotheses of the form where is a channel name and is a simple type.
Simply typed -calculus corresponds to a distributed logic?: using a property proven at some place supposes therefore a call to that property under a name. Theorems can be used many times, but lemmas are limited to one use.
Typing | Intuitive signification |
---|---|
Lemma 1. Under hypotheses , , then . | |
Use Lemma 1, knowing that and , to prove . |
Session types were introduced by Kohei Honda. A session links exactly two subprocesses that interact with each other, and multiple sessions can run simultaneously.
The process may be given type .
Caires and Pfenning 2010 established a correspondence between dual intuitionistic? linear logic (DILL) and session typed -calculus. Later on, Wadler 2012 established a correspondence between classical linear logic (CLL) and the same calculus.
The Calculus of Communicating Systems (CCS) is an important predecessor of the π-calculus. It can be seen as a restriction of π in which only a dummy name is exchanged in communications, and cannot be used in subject position (Hirschkoff 2003).
The applied π-calculus is an extension of the π-calculus with terms (representing messages in security protocols) instead of names. In addition, function symbols represent cryptographic primitives and are related by an equational theory.
Robin Milner, Joachim Parrow and David Walker, A Calculus of Mobile Processes, Information and Computation, 100 (1992) 1-40.
Peter Sewell, Applied – A Brief Tutorial, (2000) (pdf).
Jeannette M. Wing, FAQ on -Calculus, (2002) (pdf).
Daniel Hirschkoff, A brief survey of the theory of the -calculus, (2003) (pdf).
Pierre-Louis Curien, Introduction to CCS and -calculus, (2003) (ps).
With type theory:
Kohei Honda, Types for dyadic interaction, 4th International Conference on Concurrency Theory (1993) 509–523.
Noël Bernard, Investigating the Logical Aspects of the Pi-calculus, Schedae Informaticae, 12 (2003) 57-66 (hal-00386109).
Luís Caires and Frank Pfenning, Session Types as Intuitionistic Linear Propositions, 21st International Conference on Concurrency Theory (2010) 222-236 (pdf).
Philip Wadler: Propositions as Sessions,
ACM SIGPLAN Notices 47 9 (2012) 273 - 286 [doi:10.1145/2398856.2364568, pdf]
Journal of Functional Programming 24 2-3 ICFP 2012 (2014) 384-418 [doi:10.1017/S095679681400001X]
Other process calculi:
Last revised on March 11, 2025 at 09:45:51. See the history of this page for a list of all contributions to it.