to write. The sequence of triggered vertices has to be cleaned after each parallel execution and at that point we take an additional step to ensure we don’t list any of the vertices as triggered twice.

Step 2: Analyzing triggered vertices
------------------------------------

For each triggered vertex $Q$ we look at all of its edges that are just used. We identify the largest possible label that can result from one of just used edges that starts from $Q$. That label will be stored in the sequence of vertices at the position reserved for temporary replacement label. The vertex is labeled as just triggered. If the vertex $Q$ is not active, this label will replace the current label of the vertex in one of the later steps. If the vertex $Q$ is active, then this temporary label will be used later to construct an appropriate phantom edge.

We are sure that different processing elements are not accessing the same vertex at the same time, because before this step we achieved the state in which there are no repetitions in the sequence of triggered vertices.

Step 3: Taking input from phantoms
----------------------------------

The need to have this step separated from the previous ones 