Explicit System

Explicit system is the system extended by a capability of creating successors.

Its abstract interface is the class explicit_system_t (which is a descendant of system_t).

It can also compute the enabled transitions in any state of the system using explicit_system_t::get_enabled_trans() method.

The basic functionality of this class is the generation of states of the system using functions explicit_system_t::get_initial_state() and explicit_system_t::get_succs(). The rest of basic functions os contained in the group of methods called "Obligatory part of abstact interface" in the description of explicit_system_t.

Results of methods for creating successors

All methods for creating successors of a state of the system (we denote them as get_succs() methods) return a bitwise sum of constants SUCC_NORMAL, SUCC_ERROR and SUCC_DEADLOCK. They have the following meaning:

Enabled transitions and system transitions

This section is valid only for systems, which are able to work with system transitions and enabled transitions (e. g. DVE system)

System transition is a tuple of process transitions. It can be understood as a product of transitions of processes.

Enabled transition is a system transition + erroneousness of evaluation of guards. It can be untedstood as a product of transition of processes with satisfied guards in a given state. Erroneousness is added because of possible errors during an evaluation of guards (e. g. division by 0).

It depends on the system, which system/enabled transitions are valid.

Example 1: In an asynchronous DVE systems synchonized transitions are represented by system/enabled transitions containing 2 transitions. In the case of the system with property process there is one additional transition in each system/enabled transition.

Example 2: In a case of synchronous DVE systems each system/enabled transition contains exactly process_count transitions.

For generation of enabled transitions in a given state use a method get_enabled_trans().

To create the successors of all enabled transitions stored in a container of enabled transitions (see enabled_trans_container_t) you can use the method get_enabled_trans_succs().

For further informations see explicit_system_t.

Currently present implementations

Currently there are 2 implementations of explicit system present in DiVinE:

Reference Manual for Library, 2006 developed in ParaDiSe laboratory, Faculty of Informatics, Masaryk University