FDR2 currently provides six different methods of taking a transition
system (or state machine) and attempting to compress it into a more
efficient one.
Each compression function must first be declared by the transparent
operator before it can be used (see A.6.2 Transparent).
The functions must be spelt exactly as given below or the relevant
operation will not take place -- in fact, since they are transparent,
FDR will ignore an unknown function (i.e., treat it as the identity
function) and simply give a warning in the status window
(see 2.7 Options).
explicate
sbisim
tau_loop_factor
-loop
elimination: since a process may choose automatically to follow a
action, it follows that all the processes on a
-loop
(or, more properly, in a strongly connected component under
-reachability)
are equivalent.
diamond
normalise
Normalisation (as described in 1.3.3 Checking refinement) is essential
(and automatically applied, if needed) for the top level of the
left-hand side of a refinement check, but in FDR2 is made available
as a general compression technique through the transparent function
normalise.
(For historical reasons, this function is also available as
normal and normalize.)
model_compress
It makes sense to factorise only by the model in which the check is
being carried out.
This is therefore made an implicit parameter to a single transparent
function model_compress.
The technical details of this method are discussed in 5.2.2.1 Computing semantic equivalence.
Both
-loop
elimination and factoring by a semantic equivalence use the notion of
factoring a GLTS by an equivalence relation; details can be found in
[RosEtAl95].
Go to the Next or Previous section, the Detailed Contents, or the FS(E)L Home Page.