System

In DiVinE word "system" means a simulated model. The system is read in and stored using the class system_t, which forms the abstract interface to the system together with classes process_t, transition_t and expression_t.

Class system_t itself can do only a little. It contains a list of processes (see process_t). To obtain any process you can use the function system_t::get_process(). To obtain a count of all processes in a system (including invalid) you can use the function system_t::get_process_count().

Because the class system_t is only the abstract interface, there may be many implementations of this interface. The abstract interface is designed in the way, that provides the full access to the structure of the system, if the implementation of the system allows this access. And at the same time is makes only small requirements to the basic well working implementation of the system. This is done using so called "abilities". The developer of an application based on the DiVinE Library should use system_t::get_abilitities() or can_* methods to derive, which features of the system can be used in the application. Even if all can_* methods return false, i. e. the system has no advanced abilities, it is still possible to write the model checking algoritm based on such a system. But in that case for example no access to the structure of the system is provided (thus no partial order reduction is possible) etc.

Example 1: DVE system - the full-featured implementation of system_t interface

Example 2: BYMOC system - the very limited implementation of system_t interface allowing only to read in the system and generate its states


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