Templates declared in the declaration section are instantiated in the system definition section, before the system line. At this point, actual arguments are provided for the formal parameters of the templates.
The system line composes all processes into a system.A system definition is a list of process identifiers, in the form of Sys.
Sys ::= 'system' ID ((',' | '<') ID)* ';'
where the identifiers (ID) must either appear on the left-hand-side of a process assignment or be templates with zero parameters.
The system line may also contain progress measures.Process priorities are specified on the system line, using the separator '<' to define a higher priority for processes to its right. If an instance of a template set is listed, all processes in the set will have the same priority.
Example:
system A < B,C < D;
Resolving Synchronization When two processes A and B synchronize the priority of the transition is the pair (B,A), where B is the higher priority process.
When two transitions with priorities (B,A) and (D,C) are enabled, the priorities of B and D are compared. If B > D then (B,A) can be taken, and if D > B then (D,C) can be taken. When B=D we compare the priorities of A and C and resolve the priority of the transitions accordingly.
For a broadcast synchronization, the priority is represented as an orderd tuple of descending process priorities.
For more information on priorities, see Priorities on Channels and Semantics.