This page describes formally how we refine Figure 2.5 into a more detailed model so that we can connect it later to a decision procedure. To do this, we must make explicit the output of each operator and the conditions which must be satisfied to produce it. The translation for each link on the diagram is as follows:
, where
is a
new variable.
, where
is a
new variable.
.
, where each
is a
new variable, and the set
of type restrictions on the variables.
with
to give
.

Applying this procedure to each link in Figure 2.5 we obtain:
This definition of
generalises the structure of the diagram
by the use of typed variables, which is an intermediate step in defining
the operators. These are described by the predicate output which has
three arguments: the operator name; the data output; and the conditions
which must be satisfied in order for the output to be produced. These
conditions are of two kinds: inputs to the operator which are shown as links
in the operator diagram; and conditions internal to the operator which will
be specified in the next model.
The refinement from
definitions (1
to 6) to operator definitions is as follows:
to
, where
are
the quantifiers for the link and true denotes a condition which is
always true.
, in one of
the following ways (assuming the quantifier we select at each stage is of
the form
):
, by a condition of the form
(where
is a subsort of S).
and instantiate X to
.
by an operator condition of the form
.
The new input I must refer to X and must appear in another stream
link of the form
(in other words, we must have already
stipulated that an input stream exists for it). It is the
designer's responsibility to ensure that this condition maintains the sort
condition imposed by S.
by an operator condition involving
X. These conditions relate the operator's communication channels and
its internal decisions. It is the designer's responsibility to ensure that
each condition maintains the sort condition imposed by S.
connections as stipulated above.
Applying this to expression 3 allows us to make the following refinement steps: