# Translating Workflow Nets to Process Trees: An Algorithmic Approach
## 6 Discussion
### Extensibility  
Since correctness of the proposed algorithm (cf. Theorem 1) holds for any feasible pattern (cf. Definition 8) that is globally language preserving, the algorithm presented in this paper is easily extended with additional reduction rules. Hence, any system net that describes a language that is equal to the language of a process tree can be reduced (conditional to the aforementioned global language preservation). For example, consider the _self-loop reduction_ visualized in Figure 15.  
Opposed to the other patterns presented and defined earlier, observe that, directly applying the reduction as defined in Definition 9, again yields a self-loop. Hence, in the reduction, we split-up the places, i.e., one group of places, forming the preset of the newly generated transition \(t^{\prime}\) copies all incoming arcs of the places of the pattern (excluding the connections to \(t_{1},...,t_{2}\)). The other \"freshly\" added place copies all outgoing arcs of the places of the pattern (again excluding the connections to \(t_{1},...,t_{2}\)). Consider Figure 16, in which we depict a simple example of the application of the self-loop reduction as described. The transitions \(t_{2}\) and \(t_{3}\) in the WF-net depicted in Figure 15(a) are self-loops on place \(p_{1}\). In Figure 15(b), the reduction is applied only on \(t_{2}\). Note that, in this model, a loop reduction can be applied yielding \(\circlearrowright(\circlearrowright(\tau,b),c)\). Note that first reducing \(t_{3}\) is symmetrical, i.e., eventually yielding \(\circlearrowright(\circlearrowright(\tau,c),b)\). Note that both process trees, indeed, describe the language \((b^{*}c^{*})^{*}\) (i.e., when described as a regular expression). In Figure 15(c), we show the application of the self-loop reduction when it is applied directly using \(T{=}\{t_{2},t_{3}\}\). In this case, the reduction yields a new transition \(t_{2}^{\prime}\) with label \(\circlearrowright(\tau,\times(b,c))\). Again, the language described by the process tree discovered can be described by \((b^{*}c^{*})^{*}\). Finally, let \(X\) denote any of the three process tree fragments discoverable in the example describing \((b^{*}c^{*})^{*}\). Observe that the reduction algorithm discovers \(\rightarrow(a,X,d)\) (or any binary form thereof), which corresponds to the regular expression \(a(b^{*}c^{*})d\), which is indeed the language of the WF-net depicted in Figure 15(a). Observe that the self-loop pattern shows that the algorithm proposed is extensible. However, in this case, the reduction step needs to be altered to avoid iteratively adding self-loop places (i.e., indefinitely). Any pattern can be reduced, as long as it is a feasible pattern that is globally language-preserving. For example, in some cases, the _inclusive or_ operator is considered in the context of process trees, i.e., \(\vee(Q_{1},...,Q_{n})\). An inclusive or structure dictates that at least one of its children \(Q_{1},...,Q_{n}\) is executed, yet, possibly, all are executed. The order in which the children are executed is  
Figure 15: Schematic visualization of the \(\circlearrowright\)-pattern reduction. The pre- and post-set of transitions \(t_{1},t_{2},...,t_{n}\) are the same. In the reduction, the places are “split” into two groups, one copying all dashed incoming arcs, one copying all dashed outgoing arcs. The newly added transition \(t^{\prime}\) is placed in between with label \(\circlearrowright(\tau,\times(\kappa(t_{1}),...,\kappa(t_{n})))\). irrelevant. Similarly, the _interleaved_ operator is sometimes considered, i.e., \(\leftrightarrow\)(\(Q_{1},...,Q_{n}\)). This operator requires that all its children are executed in any order, however, the behavior of the respective children cannot be shuffled, i.e., this is allowed by \(\wedge(Q_{1},...,Q_{n})\). Since both operators have a translation to a Petri net structure, these patterns can serve as a basis for reduction (potentially in a generalized form).