We present a distributed and asynchronous implementation of the pi calculus.
It is built using 'explicit fusions'.
To 'fuse' two names is to declare that they may be used interchangeably.
'explicit fusion' is something that enables or performs this interchange.
For instance, if all messages to X get forwarded to Y, then we can refer to
X or Y interchangeably. And even if a particular object had migrated from X
to Y, its clients can still send messages asynchronously to the old location
X. In addition to the current work, the technique has also been used by
Fournet, Levy and Schmitt in a recent distributed implementation of the
The key attraction of explicit fusions is that they allow a distributed
implementation of the pure pi calculus --- without requiring additional
terms in the calculus for physical adjacency (e.g. Nomadic Pict) and without
requiring non-pi mechanisms for distributed communication (e.g. Join).
This is joint work with Philippa Gardner.