Termination of processes
Davide Sangiorgi · Mathematical Structures in Computer Science · 2006
A process $M$ terminates if it cannot produce an infinite sequence of reductions $M \mathop{\rightarrow}^{\tau} M_1\mathop{\rightarrow}^{\tau} M_2 \ldots$ . Termination is a useful property in concurrency. For instance, a terminating applet, when loaded on a machine, will not run for ever, possibly absorbing all computing resources (a ‘denial of service’ attack). Similarly, termination guarantees that queries to a given service originate only finite computations. We ensure termination of a non-trivial subset of the $\pi$ -calculus by a combination of conditions on types and on the syntax. The proof of termination is in two parts. The first uses the technique of logical relations – a well-know technique of $\lambda$ -calculi – on a small set of non-deterministic ‘functional’ processes. The second part of the proof uses techniques of process calculi, in particular, techniques of behavioural preorders.