Introduction
The Process library contains classes and algorithms for general processes.
The code in the Process library is contained in the namespace process.
The following C++ classes are defined for the Process Library:
Process expressions
Process expressions are defined using the following grammar
where is an action,
is a variable of sort
,
is a data expression,
and
are lists of strings,
is a list of rename expressions,
is a list of communication
expressions,
is a list of action name multi sets,
is a data expression of sort Real,
and
is a data expression of sort Bool.
The following C++ classes are defined for process expressions:
Expression |
C++ class |
|---|---|
Algorithms on processes
algorithm |
description |
|---|---|
Applies alphabet reduction to a process specification |
|
Eliminates trivial equations, that have a process instance as the right hand side |
|
Eliminates equations that are not reachable from the initial state |
|
Checks if a process expression is guarded |
|
Determines if a process specification is linear |
|
Applies sort normalization to a process data type |
|
Removes duplicate equations from a process specification, using a bisimulation algorithm |
|
Applies a rewriter to a process data type |
|
Applies translation of user notation to a process data type |
Search and Replace functions
algorithm |
description |
|---|---|
Finds all identifiers occurring in a process data type |
|
Finds all sort expressions occurring in a process data type |
|
Finds all function symbols occurring in a process data type |
|
Finds all variables occurring in a process data type |
|
Finds all free variables occurring in a process data type |
|
Replaces sort expressions in a process data type |
|
Replaces data expressions in a process data type |
|
Replaces variables in a process data |
|
Replaces variables in a process data type, and avoids unwanted capturing |
|
Replaces free variables in a process data type |
|
Replaces all variables in a process data type, even in declarations |