# ReactICS - Reaction Systems Model Checker

ReactICS is a toolkit that allows for verification of Reaction Systems. The toolkit consists of two separate modules implementing:

- Methods using binary decision diagrams (BDD) for storing and manipulating the state space of the verified system.
- Methods translating the verification problems into satisfiability modulo theories (SMT).

ReactICS GUI offers a graphical user interface allowing for editing the reaction system details and model checking using BDD module.

More on ReactICS can be found at The Reactics Webpage.

## Table of contents

- Reaction systems
- Application functions
- Reaction system editor
- Context automaton editor
- Transition system viewer
- Model checking

## Reaction Systems

Reaction Systems are a formalism inspired by the functioning of living cells. They allow for specifying and analysing computational processes in which reactions operate on sets of molecules.

The behaviour of a reaction system is determined by the interactions of its reactions, which are based on the mechanisms of facilitation and inhibition. The formal treatment of reaction systems is qualitative and there is no direct representation of the number of molecules involved in reactions.

A Distributed Reaction System is a computational model in which multiple autonomous processes (aka. agents) interact locally through rule-based reactions. Each agent operates independently (without any central controller—coordination), processing inputs and producing outputs based on predefined reactions, and their collective behavior leads to complex system dynamics.

More on reaction system can be found at The Reaction System Webpage

Back to top

## Application functions

ReactICS GUI allows to:

- Edit the reaction system structure (the number of processes/agents, reactions for each process/agent, etc.)
- Edit the context automaton structure (adding/removing states and transitions, edit context for active processes/agents, setting guards for transitions, etc.).
- Preview of the state space represented as a transition system.
- Verification of properties defined by formulas using rsCTLK semantics.
- Save/load the reaction system structure to/from XML file.
- Export/import the reaction system to/from RSSL file.
- Export the reaction system structure and behaviour to ISPL file.

Back to top

## Reaction system editor

-- TODO --

Back to top

## Context automaton editor

To create or edit the context automaton structure a proper edit mode should be set using the edit mode panel.

The type of the newly created object (state or edge) is set by checking the proper toggle button. With no button checked, one can transform the net by moving states around, etc. (see below for more details).

### States

A new state is created by left-clicking the edit area (the main part of the component). As it is customary in automata theory, states are numbered separately starting from 1. The types of states are distinguished by shape and colour: the initial state is depicted as a square, all other states are depicted as circles. Moreover, hovering the mouse above a state allows to see its full description containing both its name and its (distinct) number.

The details of a state can be edited by right-clicking the existing state and choosing the right option from the popup menu:

- Set as initial - Makes the selected state the initial state of the context automaton.
- Set label - Allows to set the custom label for the selected state. Note that state labels have to be unique.

### Edges

A directed edge between two states is created by left-clicking both its endpoints in correct order. Each edge may contain several transitions, each of them defined by a context (additional entities provided for active processes/agents) and a guard (a condition required by the transition to execute). The list of transitions may be edited by right-clicking the existing edge and choosing the Nondeterministic transitions popup menu.

Hovering the mouse above an edge allows to see the full list of transitions including context and guards.

### Removing context automaton elements

Switching the toggle button Delete on allows removing context automaton elements. Each left-clicked element is removed from the automaton grapn. Moreover, the entire context automaton graph may be deleted by clicking the Clear button.

### Transforming the context automaton graph

Any state of the automaton may be picked and dragged around the edit area to obtain the desired graph shape. It is also possible to select multiple states and move them together at the same time. After CTRL + left-click on a particular state the entire automaton graph is shifted to be centered on the clicked state. Checking the Lock relative nodes positions checkbox locks the relative positions of the states. In that case, dragging a single state moves the entire automaton graph. Moreover, using mouse scroll the automaton graph view can be zoomed in and out.

Back to top

## Transition system viewer

The component offers the visualisation of the transition system representing the state space of the reaction systems. The initial state is depicted as a square, all other states are depicted as circles. There is a directed edge connecting the state Si to the state Sj if Sf is reachable from Si by a single computation step of the reaction system.

The component has two separate instances represented by two separate tabs in the application window. The first visualises the complete state space of the reaction system, where each state is represented by sets of entities possessed by each agent and the current context automaton state. The second visualises the compressed state space, where context automaton states are ignored (states are represented only by the sets of entities possessed by each agent).

Computation is done by pressing Update transition system button. The reaction system structure should be loaded from the file or edited manually for the computation to be possible.

Note that no matter in which component the Update transition system button is pressed, the transition system structure will be updated in both.

Hovering the mouse above a state allows to see its full description: entities possessed by each process/agent and the context automaton state (not present in the case of the compressed graph).

### Transforming the transition system graph

Any state of the transition system may be picked and dragged around the edit area to obtain the desired graph shape. It is also possible to select multiple states and move them together at the same time. After CTRL + left-click on a particular state the entire transition system graph is shifted to be centered on the clicked state. Checking the Lock relative nodes positions checkbox locks the relative positions of the states. In that case, dragging a single state moves the entire transition system graph. Moreover, using mouse scroll the transition system graph view can be zoomed in and out.

Back to top

## Model checking

-- TODO --

Back to top