Version 1 of process algebra

Updated 2003-04-22 22:59:43

Theo Verelst

Process Algebra refers to mathematical formulation and reasoning rules for defining processes, made up of events where we focus on communication events which occur between processes.

A process can be represented by an identifier, and is seen as something which can somehow decide to engage in a communication with another process, or maybe with itself, and we take it that we can have n processes which can communicate between 2 at one instance in time.

Because we do not explicitly discern what goes on in a process (sometimes the word 'agent' is preferable', though a more than loose coupling with the unix idea of a process is not so bad as thought frame), the only thing we can be sure of is when a communication takes place, which can be given a notation such as

 com(Pa,Pb)

or

 com(Pa, Pb, Mi)

where P is a process and M is a message, or the communication content. The former is a more general formulation which leaves room for more reasoning.

We can assume a process changes state after a communication of a certain kind with a certain other process took place, and we could make a list of all possible sequences of communication a set of processes or agents can take part in, possibly in an inductive way.

For instance:

 com(Pa,Pb,M1)   or:          com(Pa,Pb,M1)
 com(Pa,Pc,M2)                com(Pb,Pc,M2)
 com(Pb,Pc,m3)                com(Pb,Pa,m3)

We could take it that the first two arguments of the com operator are order insensitive.

A general way of speaking about processes somehow relevant to a problem is 'composition' which means they are being enabled to communicate. Also we could serialize them, a get a certain sequence.

 Pa | Pb    composition
 pa ; Pb    sequence

A limit operator can be used to 'rule out' a certain communication from the set of possible communications between certain composed processes:

 (Pa | Pc) \{M3}

would indicate the parallel composition of two processes restricting the allowed communications.

Strong and weak Bisimulation

Traces

Links with real word programming