Section: Scientific Foundations
Process calculi
Participants : Catuscia Palamidessi, Frank Valencia, Yuxin Deng, Jun Pang, Tom Chothia.
 identification
Calculi for expressing and formalizing the basic features of concurrent systems
Process calculi treat processes much like the calculus treats computable functions. They provide a language in which the structure of terms represents the structure of processes together with an operational semantics to represent computational steps. For example, the term , which is built from P and Q with the constructor , represents the process that results from the parallel execution of those represented by P and Q. An operational semantics may dictate that if P can evolve into in a computational step then can also evolve into in a computational step.
An appealing feature of process calculi is their algebraic treatment of processes. The constructors are viewed as the operators of an algebraic theory whose equations and inequalities among terms relate process behavior. For instance, the construct can be viewed as a commutative operator, hence the equation states that the behavior of the two parallel compositions are the same. Because of this algebraic emphasis, these calculi are often referred to as process algebras .
Typically the operational semantics of process calculi interpret process term by using transitions (labeled or not) specifying its computational steps [5] . A labeled transition specifies that P performs and then behaves as Q. The relations are defined according to the process calculus under consideration. In the next section we shall see those for the calculus [69] , [70] which is perhaps the most prominent representative of calculi for mobile systems.
The calculus
In the early 90's Milner, Parrow, and Walker proposed the calculus [69] , [70] , a small paradigm for concurrency similar to CCS (the calculus for Communicating Systems, [68] ) but enriched with constructs to support the the novel and powerful notion of link mobility. This proposal has had a tremendous impact on the community of Formal Methods for Concurrency, and stimulated or influenced research in other areas too, like for instance Security (cfr. the spicalculus, [35] ).
The asynchronous calculus
The calculus, like CCS, models communication by handshaking, namely as a synchronous interaction of both partners (rules Com and Close ). A few years after the introduction of the calculus, Honda and Tokoro [64] and, independently, Boudol [42] , proposed a variant which models asynchronous communication instead. This variant has become known under the name of asynchronous calculus (_{a} calculus for short).
versus _{a} : the tradeoff between expressiveness and distributed implementation
The _{a} calculus became quickly very popular, for several reasons:

it is an elegant model of asynchronous communication, more abstract and more symmetric than previously proposed calculi for asynchronous communication,

it has been ``faithfully'' implemented [81] ,

it is simpler than the calculus, because it has fewer constructs, and yet

it was believed to have the same expressive power as the calculus. This equivalence was not formally proved, but there were several hints in this direction: Milner's encoding of the lambda calculus in the calculus was redone for _{a} [42] , it was shown that output prefix can be simulated [64] , [42] , and inputguarded choice as well [77] . Note that this justifies the more recent presentations of the _{a} calculus, which include inputguarded choice as an explicit operator [41] , [37] .
It was not only until some years later that the claim of equivalence was refuted: in [8] it was shown that the calculus is strictly more expressive than the _{a} calculus, in the sense that it is not possible to encode the first into the latter in a uniform way while preserving a reasonable semantics. Uniform essentially means homomorphic with respect to the parallel and the renaming operators, and reasonable means sensitive to the capability of achieving success in all possible computations. This result is based on the fact that in the calculus it is possible to define an algorithm for leader election in a symmetric network, while this cannot be done with the _{a} calculus. In [76] it was shown that the additional expressive power is due exactly to the mixed choice construct: choices with homogeneous guards (i.e. with input guards only, or output guards only) can be eliminated.
A consequence of the above results, however, is that the calculus cannot be implemented deterministically(The term ``deterministic'' here means ``nonprobabilistic''.) in a fully distributed way. In fact, problems like the leader election in a symmetric network are known to have no deterministic solution in a distributed (asynchronous) system. The reason is that if processes follow a deterministic program then an adversary scheduler can always interleave the activities in such a way that the initial symmetry is never broken. See [83] for a proof of impossibility of this kind.