Reduced number of errors

This commit is contained in:
elvis
2025-11-26 03:44:29 +01:00
parent f0cbdadde6
commit fe9ef69bb6
8 changed files with 417 additions and 402 deletions

View File

@ -38,9 +38,9 @@ sudo pacman -S rustup
brew install rustup brew install rustup
\end{minted} \end{minted}
After installation run \mintinline{bash}{rustup default stable} to install a target. To install the wasm32 target a script is provided in the folder \(\texttt{reaction\_systems\_gui/}\) named \(\texttt{setup\_web.sh}\). After installation run \mintinline{bash}{rustup default stable} to install a target. To install the wasm32 target a script is provided in the folder \(\texttt{reaction\_systems\_gui/}\) named\\\(\texttt{setup\_web.sh}\).
A script is provided to check for errors during development in the folder \(\texttt{reaction\_systems\_gui/}\) called \(\texttt{check.sh}\). A script is provided to check for errors during development in the folder\\\(\texttt{reaction\_systems\_gui/}\) called \(\texttt{check.sh}\).
To format the code in a uniform way run \mintinline{bash}{cargo +nightly fmt}. To format the code in a uniform way run \mintinline{bash}{cargo +nightly fmt}.

View File

@ -88,7 +88,7 @@
The complete RS \(\mathcal{B}_n\) is defined as follows: \(\mathcal{B}_n = \left(S_n, B_n\right)\) where\[S_n = \{p_0, p_1, \ldots, p_{n-1}\} \cup \{dec, inc\}\] and \[B_n = \{a_j, b_j, d_j | 0 \leq k < n\} \cup \{c_{j, k}, e_{j, k} | 0 \leq l < k < n\}\] The complete RS \(\mathcal{B}_n\) is defined as follows: \(\mathcal{B}_n = \left(S_n, B_n\right)\) where\[S_n = \{p_0, p_1, \ldots, p_{n-1}\} \cup \{dec, inc\}\] and \[B_n = \{a_j, b_j, d_j | 0 \leq k < n\} \cup \{c_{j, k}, e_{j, k} | 0 \leq l < k < n\}\]
To illustrate the system in action consider the sequence of contexts: To illustrate the system in action consider the sequence of contexts:
\(C_0 = \{p1, p3\},\\C_1 = \emptyset, C_2 = \{inc\}, C_3 = \{inc\}, C_4 = \{dec\}, C_5 = \{dec, inc\}\). This gives the result sequence \(\delta = \emptyset.\{p1, p3\}.\{p1, p3\}.\{p0, p1, p3\}.\{p2, p3\}.\{p0, p1, p3\}.\emptyset\) and state sequence\\\(\tau = \{p1, p3\}.\{p1, p3\}.\{p1, p3, inc\}.\{p0, p1, p3, inc\}.\{p2, p3, dec\}.\{p0, p1, p3, dec, inc\}.\emptyset\)\\that in binary representation is \(\{1010_2\}.\{1010_2\}.\{1010_2\}.\{1011_2\}.\{1100_2\}.\{1011_2\}.\{0000_2\}\) by ignoring \(inc\) and \(dec\). \(C_0 = \{p1, p3\},\\C_1 = \emptyset, C_2 = \{inc\}, C_3 = \{inc\}, C_4 = \{dec\}, C_5 = \{dec, inc\}\). This gives the result sequence \(\delta = \emptyset.\{p1, p3\}.\{p1, p3\}.\{p0, p1, p3\}.\{p2, p3\}.\{p0, p1, p3\}.\emptyset\) and state sequence\\\(\tau = \{p1, p3\}.\{p1, p3\}.\{p1, p3, inc\}.\{p0, p1, p3, inc\}.\{p2, p3, dec\}.\{p0, p1, p3, dec, inc\}.\emptyset\),\\in binary representation is \(\{1010_2\}.\{1010_2\}.\{1010_2\}.\{1011_2\}.\{1100_2\}.\{1011_2\}.\{0000_2\}\) by ignoring \(inc\) and \(dec\).
\end{subsection} \end{subsection}
\begin{subsection}{Simple loops} \begin{subsection}{Simple loops}
@ -226,6 +226,7 @@
A set \(\textbf{W} \subseteq \textbf{S}\) is non-contradictory if for all entities \(a \in S\) it holds that \(\{a, \bar{a}\} \nsubseteq \textbf{W}\). A non-contradictory state \(\textbf{W} \subseteq \textbf{S}\) is consistent if, for any entity \(a \in S\), either \(a \in \textbf{W}\) or \(\bar{a} \in \textbf{W}\) holds. A set \(\textbf{W} \subseteq \textbf{S}\) is non-contradictory if for all entities \(a \in S\) it holds that \(\{a, \bar{a}\} \nsubseteq \textbf{W}\). A non-contradictory state \(\textbf{W} \subseteq \textbf{S}\) is consistent if, for any entity \(a \in S\), either \(a \in \textbf{W}\) or \(\bar{a} \in \textbf{W}\) holds.
\end{definition} \end{definition}
\begin{definition}[Positive RS\cite{Brodo_Bruni_Falaschi_Gori_Milazzo_2025}]\label{positive_rs} \begin{definition}[Positive RS\cite{Brodo_Bruni_Falaschi_Gori_Milazzo_2025}]\label{positive_rs}
A Positive RS is a Reaction System \(\mathcal{A}^+ = (\textbf{S}, A)\) that satisfies the following conditions: A Positive RS is a Reaction System \(\mathcal{A}^+ = (\textbf{S}, A)\) that satisfies the following conditions:
\begin{enumerate} \begin{enumerate}
@ -254,7 +255,7 @@
A^+_{neg} &\defeq \bigcup_{a \in S} \left\{ (\textbf{T}, \bar{a}) \vert \textbf{T} \in \mathit{Proh}_{\mathcal{A}}(a) \right\} A^+_{neg} &\defeq \bigcup_{a \in S} \left\{ (\textbf{T}, \bar{a}) \vert \textbf{T} \in \mathit{Proh}_{\mathcal{A}}(a) \right\}
\end{align*} \end{align*}
The resulting \({\mathcal{A}}^+\) satisfies the two conditions from Definition\ \ref{positive_rs} and thus is a Positive RS.\@ The resulting \({\mathcal{A}}^+\) satisfies the two conditions from Definition\ \ref{positive_rs} and thus is a Positive RS.%
\end{definition} \end{definition}
The states of the new Positive RS are in bijection with the states of the old system and can be proven that the two systems compute exactly the same states at each step. The states of the new Positive RS are in bijection with the states of the old system and can be proven that the two systems compute exactly the same states at each step.
@ -517,7 +518,7 @@
\item Refining \(\pi\) with respect to \(B\) splits a block \(D \in \pi\) into two blocks \(D_1 = D \cap pre(B)\) and \(D_2 = D \setminus pre(B)\) if, and only if, \(D\) is not stable with respect to \(B\). \item Refining \(\pi\) with respect to \(B\) splits a block \(D \in \pi\) into two blocks \(D_1 = D \cap pre(B)\) and \(D_2 = D \setminus pre(B)\) if, and only if, \(D\) is not stable with respect to \(B\).
\item Refining further \(\texttt{split}(B, \pi)\) with respect to \(I \setminus B\) splits the block \(D_1\) into two blocks \(D_{11} = D_1 \cap pre(S \setminus B) \) and \(D_{12} = D_1 \setminus D_{11}\) if, and only if, \(D_1\) is not stable with respect to \(S \setminus B\). \item Refining further \(\texttt{split}(B, \pi)\) with respect to \(I \setminus B\) splits the block \(D_1\) into two blocks \(D_{11} = D_1 \cap pre(S \setminus B) \) and \(D_{12} = D_1 \setminus D_{11}\) if, and only if, \(D_1\) is not stable with respect to \(S \setminus B\).
\end{itemize} \end{itemize}
\begin{figure}[!h] \begin{figure}[!ht]
\centering \centering
\begin{tikzpicture}[ \begin{tikzpicture}[
place/.style={rectangle,draw=blue!50,fill=blue!20,thick, place/.style={rectangle,draw=blue!50,fill=blue!20,thick,
@ -560,8 +561,8 @@
Finally for every process \(P\) in \(T\) we create in \(T'\) a newly added path of length \(l+1\) starting from \(P\). Finally for every process \(P\) in \(T\) we create in \(T'\) a newly added path of length \(l+1\) starting from \(P\).
A small optimization can be added by sorting the frequency of labels and thus creating the lowest possible number of auxiliary nodes for each label. A small optimization can be added by sorting the frequency of labels and thus creating the lowest possible number of auxiliary nodes for each label.
\begin{figure}[!h] \begin{figure}[!ht]
\begin{tblr}{width=\linewidth, colspec={X[1,c]X[4,c]}} \begin{tblr}{width=\linewidth, colspec={Q[m,c]X[4,c]}}
\begin{minipage}{.3\textwidth} \begin{minipage}{.3\textwidth}
\begin{tikzpicture}[auto, \begin{tikzpicture}[auto,
place/.style={rectangle,draw=blue!50,fill=blue!20,thick,inner sep=0pt, place/.style={rectangle,draw=blue!50,fill=blue!20,thick,inner sep=0pt,
@ -578,62 +579,60 @@
\end{tikzpicture} \end{tikzpicture}
\end{minipage} \end{minipage}
& &
\begin{minipage}{.48\textwidth} \begin{tikzpicture}[auto,
\begin{tikzpicture}[auto, place/.style={rectangle,draw=blue!50,fill=blue!20,thick,inner sep=0pt,
place/.style={rectangle,draw=blue!50,fill=blue!20,thick,inner sep=0pt, minimum size=6mm},
minimum size=6mm}, new/.style={circle,draw=blue!30,fill=blue!10,thick,inner sep=0pt,
new/.style={circle,draw=blue!30,fill=blue!10,thick,inner sep=0pt, minimum size=6mm},
minimum size=6mm}, pre/.style={<-,shorten <=1pt,>={Stealth[round]},semithick},
pre/.style={<-,shorten <=1pt,>={Stealth[round]},semithick}, post/.style={->,shorten >=1pt,>={Stealth[round]},semithick}
post/.style={->,shorten >=1pt,>={Stealth[round]},semithick} ]
] \node[place] (P1) {\(P_1\)};
\node[place] (P1) {\(P_1\)}; \node[new] (p1e1) [above=of P1] {}
\node[new] (p1e1) [above=of P1] {} edge [pre] (P1);
edge [pre] (P1); \node[new] (p1e2) [above=of p1e1] {}
\node[new] (p1e2) [above=of p1e1] {} edge [pre] (p1e1);
edge [pre] (p1e1); \node[new] (p1e3) [above=of p1e2] {}
\node[new] (p1e3) [above=of p1e2] {} edge [pre] (p1e2);
edge [pre] (p1e2);
\node[new] (a1) [right=of P1] {} \node[new] (a1) [right=of P1] {}
edge [pre] (P1); edge [pre] (P1);
\node[new] (a1e1) [above=of a1] {} \node[new] (a1e1) [above=of a1] {}
edge [pre] (a1); edge [pre] (a1);
\node[place] (P2) [right=of a1] {\(P_2\)} \node[place] (P2) [right=of a1] {\(P_2\)}
edge [pre] (a1); edge [pre] (a1);
\node[new] (p2e1) [above=of P2] {} \node[new] (p2e1) [above=of P2] {}
edge [pre] (P2); edge [pre] (P2);
\node[new] (p2e2) [above=of p2e1] {} \node[new] (p2e2) [above=of p2e1] {}
edge [pre] (p2e1); edge [pre] (p2e1);
\node[new] (p2e3) [above=of p2e2] {} \node[new] (p2e3) [above=of p2e2] {}
edge [pre] (p2e2); edge [pre] (p2e2);
\node[new] (a2) [below=of P2] {} \node[new] (a2) [below=of P2] {}
edge [pre] (P2); edge [pre] (P2);
\node[new] (a2e1) [right=of a2] {} \node[new] (a2e1) [right=of a2] {}
edge [pre] (a2); edge [pre] (a2);
\node[new] (a2e2) [right=of a2e1] {} \node[new] (a2e2) [right=of a2e1] {}
edge [pre] (a2e1); edge [pre] (a2e1);
\node[new] (a3) [below=of a1] {} \node[new] (a3) [below=of a1] {}
edge [pre] (P1); edge [pre] (P1);
\node[new] (a3e1) [below=of a3] {} \node[new] (a3e1) [below=of a3] {}
edge [pre] (a3); edge [pre] (a3);
\node[new] (a3e2) [below=of a3e1] {} \node[new] (a3e2) [below=of a3e1] {}
edge [pre] (a3e1); edge [pre] (a3e1);
\node[place] (P3) [below=of a2] {\(P_3\)} \node[place] (P3) [below=of a2] {\(P_3\)}
edge [pre] (a2) edge [pre] (a2)
edge [pre] (a3); edge [pre] (a3);
\node[new] (p3e1) [right=of P3] {} \node[new] (p3e1) [right=of P3] {}
edge [pre] (P3); edge [pre] (P3);
\node[new] (p3e2) [right=of p3e1] {} \node[new] (p3e2) [right=of p3e1] {}
edge [pre] (p3e1); edge [pre] (p3e1);
\node[new] (p3e3) [right=of p3e2] {} \node[new] (p3e3) [right=of p3e2] {}
edge [pre] (p3e2); edge [pre] (p3e2);
\end{tikzpicture} \end{tikzpicture}
\end{minipage} \\
\end{tblr} \end{tblr}
\caption{Example of reduction} \caption{Example of reduction}
\end{figure} \end{figure}

View File

@ -98,12 +98,9 @@
Both normal sets and positive sets satisfy this interface, but have additional specific functions for converting between the two. Both normal sets and positive sets satisfy this interface, but have additional specific functions for converting between the two.
The syntax for sets is: The syntax for sets is:\\
\begin{minipage}{\textwidth} \begin{minipage}{\textwidth}
\centering \begin{minipage}[b][][b]{.48\textwidth}
\begin{minipage}[b][][b]{.38\textwidth}
\centering
\begin{bnf}(relation-sym-map = % chktex 36 \begin{bnf}(relation-sym-map = % chktex 36
{ {
{::=} = {\ensuremath{\Coloneqq}}, {::=} = {\ensuremath{\Coloneqq}},
@ -126,8 +123,7 @@
\captionsetup{type=table, name=\textbf{Syntax}} \captionsetup{type=table, name=\textbf{Syntax}}
\caption{Syntax for Set}\label{bnf_set} \caption{Syntax for Set}\label{bnf_set}
\end{minipage}% \end{minipage}%
\begin{minipage}[b][][b]{.58\textwidth} \begin{minipage}[b][][b]{.5\textwidth}
\centering
\begin{bnf}(relation-sym-map = % chktex 36 \begin{bnf}(relation-sym-map = % chktex 36
{ {
{::=} = {\ensuremath{\Coloneqq}}, {::=} = {\ensuremath{\Coloneqq}},
@ -170,52 +166,47 @@
\begin{itemize} \begin{itemize}
\item \(\texttt{find\_loop}(\mathit{rs}: \texttt{[reaction]}, \mathit{entities}: \texttt{set}, q: \texttt{set}) \to \texttt{([set], [set])}\), which finds a loop and returns the sets that make up the prefix and the loop separately; \item \(\texttt{find\_loop}(\mathit{rs}: \texttt{[reaction]}, \mathit{entities}: \texttt{set}, q: \texttt{set}) \to \texttt{([set], [set])}\), which finds a loop and returns the sets that make up the prefix and the loop separately;
\item \(\texttt{find\_only\_loop}(\mathit{rs}: \texttt{[reaction]}, \mathit{entities}: \texttt{set}, q: \texttt{set}) \to \texttt{[set]}\), which finds a loop and returns the sets that form it; \item \(\texttt{find\_only\_loop}(\mathit{rs}: \texttt{[reaction]}, \mathit{entities}: \texttt{set}, q: \texttt{set}) \to \texttt{[set]}\), which finds a loop and returns the sets that form it;
\item \(\texttt{find\_prefix\_len\_loop}(\mathit{rs}: \texttt{[reaction]}, \mathit{entities}: \texttt{set}, q: \texttt{set}) \to \texttt{(integer, [set])}\), which finds a loop and returns the length of the prefix and the sequence of sets that compose the loop; \item \(\texttt{find\_prefix\_len\_loop}(\mathit{rs}: \texttt{[reaction]}, \mathit{entities}: \texttt{set}, q: \texttt{set})\)\\\(\to \texttt{(integer, [set])}\), which finds a loop and returns the length of the prefix and the sequence of sets that compose the loop;
\end{itemize} \end{itemize}
\begin{minipage}{0.96\textwidth}
\begin{minipage}{\textwidth}
\centering \centering
\begin{minipage}{\textwidth} \begin{bnf} (relation = {::=|:in:|->},
\centering comment = {==},
\begin{bnf} (relation = {::=|:in:|->}, relation-sym-map = % chktex 36
comment = {==}, {
relation-sym-map = % chktex 36 {::=} = {\ensuremath{\Coloneqq}},
{ {->} = {},
{::=} = {\ensuremath{\Coloneqq}}, {:in:} = {\ensuremath{\in}},
{->} = {}, },)
{:in:} = {\ensuremath{\in}}, $Reaction$ == ::= % chktex 26
},) | $\texttt{[} s \texttt{,}\ s \texttt{,}\ s \texttt{]}$ == % chktex 26 chktex 9
$Reaction$ == ::= % chktex 26 | $\texttt{[r:}\ s \texttt{, i:}\ s \texttt{, p:}\ s \texttt{]}$ == % chktex 26 chktex 9
| $\texttt{[} s \texttt{,}\ s \texttt{,}\ s \texttt{]}$ == % chktex 26 chktex 9 ;; % chktex 26
| $\texttt{[r:}\ s \texttt{, i:}\ s \texttt{, p:}\ s \texttt{]}$ == % chktex 26 chktex 9 Where \\ & \(s\) -> {is a set, see\ \ref{bnf_set}} == % chktex 26
;; % chktex 26 ;; % chktex 26
Where \\ & \(s\) -> {is a set, see\ \ref{bnf_set}} == % chktex 26 \end{bnf}
;; % chktex 26 \captionsetup{type=table, name=\textbf{Syntax}}
\end{bnf} \caption{Syntax for Reaction}\label{bnf_reaction}
\captionsetup{type=table, name=\textbf{Syntax}} \end{minipage}\vspace{2em}\\
\caption{Syntax for Reaction}\label{bnf_reaction} \begin{minipage}{0.96\textwidth}
\end{minipage}\vspace{2em} \centering
\begin{bnf} (relation = {::=|:in:|->},
\begin{minipage}{\textwidth} comment = {==},
\centering relation-sym-map = % chktex 36
\begin{bnf} (relation = {::=|:in:|->}, {
comment = {==}, {::=} = {\ensuremath{\Coloneqq}},
relation-sym-map = % chktex 36 {->} = {},
{ {:in:} = {\ensuremath{\in}},
{::=} = {\ensuremath{\Coloneqq}}, },)
{->} = {}, $PositiveReaction$ == ::= % chktex 26
{:in:} = {\ensuremath{\in}}, | $\texttt{[} s \texttt{,}\ s \texttt{,}\ s \texttt{]}$ == % chktex 26 chktex 9
},) | $\texttt{[r:}\ s \texttt{, i:}\ s \texttt{, p:}\ s \texttt{]}$ == % chktex 26 chktex 9
$PositiveReaction$ == ::= % chktex 26 ;; % chktex 26
| $\texttt{[} s \texttt{,}\ s \texttt{,}\ s \texttt{]}$ == % chktex 26 chktex 9 Where \\ & \(s\) -> {is a positive set, see\ \ref{bnf_positive_set}} == % chktex 26
| $\texttt{[r:}\ s \texttt{, i:}\ s \texttt{, p:}\ s \texttt{]}$ == % chktex 26 chktex 9 ;; % chktex 26
;; % chktex 26 \end{bnf}
Where \\ & \(s\) -> {is a positive set, see\ \ref{bnf_positive_set}} == % chktex 26 \captionsetup{type=table, name=\textbf{Syntax}}
;; % chktex 26 \caption{Syntax for Positive Reaction}\label{bnf_positive_reaction}
\end{bnf}
\captionsetup{type=table, name=\textbf{Syntax}}
\caption{Syntax for Positive Reaction}\label{bnf_positive_reaction}
\end{minipage}
\end{minipage} \end{minipage}
\end{subsection} \end{subsection}
@ -228,81 +219,80 @@
\item \(\texttt{filter\_delta}(a, \mathit{id}: \texttt{entity}) \to \texttt{set}^{?}\), which returns the first rule \(X = Q.X\) for any symbol \(X\) and any set \(Q\). \item \(\texttt{filter\_delta}(a, \mathit{id}: \texttt{entity}) \to \texttt{set}^{?}\), which returns the first rule \(X = Q.X\) for any symbol \(X\) and any set \(Q\).
\end{itemize} \end{itemize}
\begin{minipage}{\textwidth} \noindent
\begin{minipage}[b][][b]{.48\textwidth} \begin{minipage}[b][][b]{.48\textwidth}
\begin{bnf} (relation = {::=|:in:|->}, \begin{bnf} (relation = {::=|:in:|->},
comment = {==}, comment = {==},
relation-sym-map = % chktex 36 relation-sym-map = % chktex 36
{ {
{::=} = {\ensuremath{\Coloneqq}}, {::=} = {\ensuremath{\Coloneqq}},
{->} = {}, {->} = {},
{:in:} = {\ensuremath{\in}}, {:in:} = {\ensuremath{\in}},
},) },)
$Process$ == ::= % chktex 26 $Process$ == ::= % chktex 26
| $\texttt{[} P \texttt{]}$ == % chktex 9 | $\texttt{[} P \texttt{]}$ == % chktex 9
;; % chktex 26 ;; % chktex 26
$P$ == ::= % chktex 26 $P$ == ::= % chktex 26
| $ C \texttt{,} P $ == | $ C \texttt{,} P $ ==
| $ C $ == | $ C $ ==
;; % chktex 26 ;; % chktex 26
$C$ == ::= % chktex 26 $C$ == ::= % chktex 26
| $ \texttt{(} C \texttt{)} $ == % chktex 9 chktex 10 | $ \texttt{(} C \texttt{)} $ == % chktex 9 chktex 10
| $ \texttt{nill} $ == | $ \texttt{nill} $ ==
| $ s \texttt{.} C $ == | $ s \texttt{.} C $ ==
| $ C \texttt{+} C $ == | $ C \texttt{+} C $ ==
| $ \texttt{?} r \texttt{?.} C $ == | $ \texttt{?} r \texttt{?.} C $ ==
| $ \texttt{<} i \texttt{,} C \texttt{>.} C $ == | $ \texttt{<} i \texttt{,} C \texttt{>.} C $ ==
| $ x $ == | $ x $ ==
;; % chktex 26 ;; % chktex 26
Where \\ & \(s\) -> {is a set,\\ see\ \ref{bnf_set}} == Where \\ & \(s\) -> {is a set,\\ see\ \ref{bnf_set}} ==
;; % chktex 26 ;; % chktex 26
\(r\) -> {is a reaction,\\ see\ \ref{bnf_reaction}} == \(r\) -> {is a reaction,\\ see\ \ref{bnf_reaction}} ==
;; % chktex 26 ;; % chktex 26
\(i\) :in: \(\mathbb{N}\) == % chktex 26 \(i\) :in: \(\mathbb{N}\) == % chktex 26
;; % chktex 26 ;; % chktex 26
\(x\) -> is a variable name == \(x\) -> is a variable name ==
;; % chktex 26 ;; % chktex 26
\end{bnf} \end{bnf}
\captionsetup{type=table, name=\textbf{Syntax}} \captionsetup{type=table, name=\textbf{Syntax}}
\caption{Syntax for Process}\label{bnf_process} \caption{Syntax for Process}\label{bnf_process}
\end{minipage} \end{minipage}%
\begin{minipage}[b][][b]{.48\textwidth} \begin{minipage}[b][][b]{.48\textwidth}
\begin{bnf} (relation = {::=|:in:|->}, \begin{bnf} (relation = {::=|:in:|->},
comment = {==}, comment = {==},
relation-sym-map = % chktex 36 relation-sym-map = % chktex 36
{ {
{::=} = {\ensuremath{\Coloneqq}}, {::=} = {\ensuremath{\Coloneqq}},
{->} = {}, {->} = {},
{:in:} = {\ensuremath{\in}}, {:in:} = {\ensuremath{\in}},
},) },)
$PositiveP$ == ::= % chktex 26 $PositiveP$ == ::= % chktex 26
| $\texttt{[} P \texttt{]}$ == % chktex 9 | $\texttt{[} P \texttt{]}$ == % chktex 9
;; % chktex 26 ;; % chktex 26
$P$ == ::= % chktex 26 $P$ == ::= % chktex 26
| $ C \texttt{,} P $ == | $ C \texttt{,} P $ ==
| $ C $ == | $ C $ ==
;; % chktex 26 ;; % chktex 26
$C$ == ::= % chktex 26 $C$ == ::= % chktex 26
| $ \texttt{(} C \texttt{)} $ == % chktex 9 chktex 10 | $ \texttt{(} C \texttt{)} $ == % chktex 9 chktex 10
| $ \texttt{nill} $ == | $ \texttt{nill} $ ==
| $ ps \texttt{.} C $ == | $ ps \texttt{.} C $ ==
| $ C \texttt{+} C $ == | $ C \texttt{+} C $ ==
| $ \texttt{?} pr \texttt{?.} C $ == | $ \texttt{?} pr \texttt{?.} C $ ==
| $ \texttt{<} i \texttt{,} C \texttt{>.} C $ == | $ \texttt{<} i \texttt{,} C \texttt{>.} C $ ==
| $ x $ == | $ x $ ==
;; % chktex 26 ;; % chktex 26
Where \\ & \(ps\) -> {is a positive set,\\ see\ \ref{bnf_positive_set}} == Where \\ & \(ps\) -> {is a positive set,\\ see\ \ref{bnf_positive_set}} ==
;; % chktex 26 ;; % chktex 26
\(pr\) -> {is a positive\\reaction, see\ \ref{bnf_positive_reaction}} == \(pr\) -> {is a positive\\reaction, see\ \ref{bnf_positive_reaction}} ==
;; % chktex 26 ;; % chktex 26
\(i\) :in: \(\mathbb{N}\) == % chktex 26 \(i\) :in: \(\mathbb{N}\) == % chktex 26
;; % chktex 26 ;; % chktex 26
\(x\) -> is a variable name == \(x\) -> is a variable name ==
;; % chktex 26 ;; % chktex 26
\end{bnf} \end{bnf}
\captionsetup{type=table, name=\textbf{Syntax}} \captionsetup{type=table, name=\textbf{Syntax}}
\caption{Syntax for Positive Process}\label{bnf_positive_process} \caption{Syntax for Positive Process}\label{bnf_positive_process}
\end{minipage}
\end{minipage} \end{minipage}
\end{subsection} \end{subsection}
@ -339,63 +329,62 @@
\(\texttt{lollipops\_prefix\_len\_loop\_decomposed}\) returns the length of the prefix and the trace of the loop for each recursive variable. \(\texttt{lollipops\_prefix\_len\_loop\_decomposed}\) returns the length of the prefix and the trace of the loop for each recursive variable.
\(\texttt{lollipops\_only\_loop\_decomposed}\) returns the trace of the loop for each recursive variable.\vspace{1em} \(\texttt{lollipops\_only\_loop\_decomposed}\) returns the trace of the loop for each recursive variable.\vspace{1em}
\begin{minipage}{\textwidth} \noindent
\begin{minipage}{.9\textwidth}
\centering \centering
\begin{minipage}{.9\textwidth} \begin{bnf} (relation = {::=|:in:|->},
\begin{bnf} (relation = {::=|:in:|->}, comment = {==},
comment = {==}, relation-sym-map = % chktex 36
relation-sym-map = % chktex 36 {
{ {::=} = {\ensuremath{\Coloneqq}},
{::=} = {\ensuremath{\Coloneqq}}, {->} = {},
{->} = {}, {:in:} = {\ensuremath{\in}},
{:in:} = {\ensuremath{\in}}, },)
},) $Environment$ == ::= % chktex 26
$Environment$ == ::= % chktex 26 | $\texttt{[} E \texttt{]}$ == % chktex 9
| $\texttt{[} E \texttt{]}$ == % chktex 9 ;; % chktex 26
;; % chktex 26 $E$ == ::= % chktex 26
$E$ == ::= % chktex 26 | $ x = c \texttt{,}\ E $ ==
| $ x = c \texttt{,}\ E $ == | $ x = c $ ==
| $ x = c $ == | $ \epsilon $ ==
| $ \epsilon $ == ;; % chktex 26
;; % chktex 26 Where \\ & \(c\) -> {is a process, see\ \ref{bnf_process}} ==
Where \\ & \(c\) -> {is a process, see\ \ref{bnf_process}} == ;; % chktex 26
;; % chktex 26 \(x\) -> is a variable name ==
\(x\) -> is a variable name == ;; % chktex 26
;; % chktex 26 \(\epsilon\) -> is the empty string ==
\(\epsilon\) -> is the empty string == ;; % chktex 26
;; % chktex 26 \end{bnf}
\end{bnf} \captionsetup{type=table, name=\textbf{Syntax}}
\captionsetup{type=table, name=\textbf{Syntax}} \caption{Syntax for Environment}\label{bnf_environment}
\caption{Syntax for Environment}\label{bnf_environment} \end{minipage}\vspace{1em}\\
\end{minipage}\vspace{1em} \begin{minipage}{.9\textwidth}
\centering
\begin{minipage}{.9\textwidth} \begin{bnf} (relation = {::=|:in:|->},
\begin{bnf} (relation = {::=|:in:|->}, comment = {==},
comment = {==}, relation-sym-map = % chktex 36
relation-sym-map = % chktex 36 {
{ {::=} = {\ensuremath{\Coloneqq}},
{::=} = {\ensuremath{\Coloneqq}}, {->} = {},
{->} = {}, {:in:} = {\ensuremath{\in}},
{:in:} = {\ensuremath{\in}}, },)
},) $Positive Environment$ == ::= % chktex 26
$Positive Environment$ == ::= % chktex 26 | $\texttt{[} E \texttt{]}$ == % chktex 9
| $\texttt{[} E \texttt{]}$ == % chktex 9 ;; % chktex 26
;; % chktex 26 $E$ == ::= % chktex 26
$E$ == ::= % chktex 26 | $ x = pc \texttt{,}\ E $ ==
| $ x = pc \texttt{,}\ E $ == | $ x = pc $ ==
| $ x = pc $ == | $ \epsilon $ ==
| $ \epsilon $ == ;; % chktex 26
;; % chktex 26 Where \\ & \(pc\) -> {is a positive process, see\ \ref{bnf_positive_process}} ==
Where \\ & \(pc\) -> {is a positive process, see\ \ref{bnf_positive_process}} == ;; % chktex 26
;; % chktex 26 \(x\) -> is a variable name ==
\(x\) -> is a variable name == ;; % chktex 26
;; % chktex 26 \(\epsilon\) -> is the empty string ==
\(\epsilon\) -> is the empty string == ;; % chktex 26
;; % chktex 26 \end{bnf}
\end{bnf} \captionsetup{type=table, name=\textbf{Syntax}}
\captionsetup{type=table, name=\textbf{Syntax}} \caption{Syntax for Positive Environment}\label{bnf_positive_environment}
\caption{Syntax for Positive Environment}\label{bnf_positive_environment}
\end{minipage}
\end{minipage} \end{minipage}
\end{subsection} \end{subsection}
@ -424,9 +413,10 @@
\item \(\texttt{target}(\mathit{sys}) \to \texttt{(integer, set)}^{?}\), which returns the state in one of the terminal states and the number of steps to arrive at the last state;\label{function_target} \item \(\texttt{target}(\mathit{sys}) \to \texttt{(integer, set)}^{?}\), which returns the state in one of the terminal states and the number of steps to arrive at the last state;\label{function_target}
\item \(\texttt{slice\_trace}(\mathit{sys}) \to \texttt{trace}^{?}\), which generates, similarly to \(\texttt{run}\), a trace appropriate to run slicing calculations over; \item \(\texttt{slice\_trace}(\mathit{sys}) \to \texttt{trace}^{?}\), which generates, similarly to \(\texttt{run}\), a trace appropriate to run slicing calculations over;
\item \(\texttt{lollipops}(\mathit{sys}) \to \texttt{[([set], [set])]}\), similar to the method\\\(\texttt{lollipops\_decomposed}\) provided by \(\texttt{environment}\). \item \(\texttt{lollipops}(\mathit{sys}) \to \texttt{[([set], [set])]}\), similar to the method\\\(\texttt{lollipops\_decomposed}\) provided by \(\texttt{environment}\).
\item \(\texttt{lollipops\_only\_loop\_named}(\mathit{sys}, el: \texttt{element}) \to \texttt{[[set]]}^{?}\), similar to the method provided by \(\texttt{environment}\), returns the sequence of entities in the loop individuated by the variable name \(el\) in the environment. \item \(\texttt{lollipops\_only\_loop\_named}(\mathit{sys}, el: \texttt{element}) \to \texttt{[[set]]}^{?}\), similar to the me\-thod provided by \(\texttt{environment}\), returns the sequence of entities in the loop individuated by the variable name \(el\) in the environment.
\end{itemize} \end{itemize}
\noindent
\begin{minipage}{\textwidth} \begin{minipage}{\textwidth}
\centering \centering
\begin{bnf} (relation = {::=|:in:|->}, \begin{bnf} (relation = {::=|:in:|->},
@ -465,48 +455,44 @@
\begin{subsection}{Label} \begin{subsection}{Label}
The label structure holds the information about how entities are used in the production of a system and are the labels on the edges of the graphs. Since the only use is to hold data, no meaningful method is required.\vspace{2em} The label structure holds the information about how entities are used in the production of a system and are the labels on the edges of the graphs. Since the only use is to hold data, no meaningful method is required.\vspace{2em}
\begin{minipage}{\textwidth} \noindent
\begin{minipage}{.9\textwidth}
\centering \centering
\begin{minipage}{.9\textwidth} \begin{bnf} (relation = {::=|:in:|->},
\begin{bnf} (relation = {::=|:in:|->}, comment = {==},
comment = {==}, relation-sym-map = % chktex 36
relation-sym-map = % chktex 36 {
{ {::=} = {\ensuremath{\Coloneqq}},
{::=} = {\ensuremath{\Coloneqq}}, {->} = {},
{->} = {}, {:in:} = {\ensuremath{\in}},
{:in:} = {\ensuremath{\in}}, },)
},) $Label$ == ::= % chktex 26
$Label$ == ::= % chktex 26 | {$\texttt{[ Entities:} s\texttt{,}$\\$\texttt{Context:} s\texttt{,}$\\$\texttt{Reactants:} s\texttt{,}$\\$\texttt{ReactantsAbsent:} s\texttt{,}$\\$\texttt{Inhibitors:} s\texttt{,}$\\$\texttt{InhibitorsPresent:} s\texttt{,}$\\$\texttt{Products:} s \texttt{ ]}$} == % chktex 9
| {$\texttt{[ Entities:} s\texttt{,}$\\$\texttt{Context:} s\texttt{,}$\\$\texttt{Reactants:} s\texttt{,}$\\$\texttt{ReactantsAbsent:} s\texttt{,}$\\$\texttt{Inhibitors:} s\texttt{,}$\\$\texttt{InhibitorsPresent:} s\texttt{,}$\\$\texttt{Products:} s \texttt{ ]}$} == % chktex 9 ;; % chktex 26
;; % chktex 26 Where \\ & \(s\) -> {is a set, see\ \ref{bnf_set}} ==
Where \\ & \(s\) -> {is a set, see\ \ref{bnf_set}} == ;; % chktex 26
;; % chktex 26 \end{bnf}
\end{bnf} \captionsetup{type=table, name=\textbf{Syntax}}
\captionsetup{type=table, name=\textbf{Syntax}} \caption{Syntax for Label}\label{bnf_label}
\caption{Syntax for Label}\label{bnf_label} \end{minipage}\vspace{1em}\\
\end{minipage} \begin{minipage}{.9\textwidth}
\end{minipage}\vspace{1em}
\begin{minipage}{\textwidth}
\centering \centering
\begin{minipage}{.9\textwidth} \begin{bnf} (relation = {::=|:in:|->},
\begin{bnf} (relation = {::=|:in:|->}, comment = {==},
comment = {==}, relation-sym-map = % chktex 36
relation-sym-map = % chktex 36 {
{ {::=} = {\ensuremath{\Coloneqq}},
{::=} = {\ensuremath{\Coloneqq}}, {->} = {},
{->} = {}, {:in:} = {\ensuremath{\in}},
{:in:} = {\ensuremath{\in}}, },)
},) $Positive Label$ == ::= % chktex 26
$Positive Label$ == ::= % chktex 26 | {$\texttt{[ Entities:} ps\texttt{,}$\\$\texttt{Context:} ps\texttt{,}$\\$\texttt{Reactants:} ps\texttt{,}$\\$\texttt{ReactantsAbsent:} ps\texttt{,}$\\$\texttt{Inhibitors:} ps\texttt{,}$\\$\texttt{InhibitorsPresent:} ps\texttt{,}$\\$\texttt{Products:} ps \texttt{ ]}$} == % chktex 9
| {$\texttt{[ Entities:} ps\texttt{,}$\\$\texttt{Context:} ps\texttt{,}$\\$\texttt{Reactants:} ps\texttt{,}$\\$\texttt{ReactantsAbsent:} ps\texttt{,}$\\$\texttt{Inhibitors:} ps\texttt{,}$\\$\texttt{InhibitorsPresent:} ps\texttt{,}$\\$\texttt{Products:} ps \texttt{ ]}$} == % chktex 9 ;; % chktex 26
;; % chktex 26 Where \\ & \(ps\) -> {is a positive set, see\ \ref{bnf_positive_set}} ==
Where \\ & \(ps\) -> {is a positive set, see\ \ref{bnf_positive_set}} == ;; % chktex 26
;; % chktex 26 \end{bnf}
\end{bnf} \captionsetup{type=table, name=\textbf{Syntax}}
\captionsetup{type=table, name=\textbf{Syntax}} \caption{Syntax for Positive Label}\label{bnf_positive_label}
\caption{Syntax for Positive Label}\label{bnf_positive_label}
\end{minipage}
\end{minipage} \end{minipage}
\end{subsection} \end{subsection}
@ -525,6 +511,7 @@
Follows the BNF for each of the languages:\vspace{2em} Follows the BNF for each of the languages:\vspace{2em}
\noindent
\begin{minipage}{\textwidth} \begin{minipage}{\textwidth}
\centering \centering
\begin{bnf}(relation-sym-map = % chktex 36 \begin{bnf}(relation-sym-map = % chktex 36
@ -557,7 +544,9 @@
$\texttt{Hide}$ ignores the content of the node and prints the empty string, $\texttt{Entities}$ prints the list of entities currently available in the system, $\texttt{MaskEntities}\ S$ prints the list of entities masked by a specified set \(S\), $\texttt{ExcludeEntities}\ S$ prints the list of entities except for the entities specified by the set \(S\), $\texttt{Context}$ prints the context of the system, $\texttt{UncommonEntities}$ prints only the entities that are not shared between all the nodes in the graph, $\texttt{MaskUncommonEntities}\ S$ prints the entities not shared between all the nodes in the graph and masked by a specified set \(S\).\vspace*{\fill} $\texttt{Hide}$ ignores the content of the node and prints the empty string, $\texttt{Entities}$ prints the list of entities currently available in the system, $\texttt{MaskEntities}\ S$ prints the list of entities masked by a specified set \(S\), $\texttt{ExcludeEntities}\ S$ prints the list of entities except for the entities specified by the set \(S\), $\texttt{Context}$ prints the context of the system, $\texttt{UncommonEntities}$ prints only the entities that are not shared between all the nodes in the graph, $\texttt{MaskUncommonEntities}\ S$ prints the entities not shared between all the nodes in the graph and masked by a specified set \(S\).\vspace*{\fill}
\noindent
\begin{minipage}{\textwidth} \begin{minipage}{\textwidth}
\centering
\begin{bnf}(relation-sym-map = % chktex 36 \begin{bnf}(relation-sym-map = % chktex 36
{ {
{::=} = {\ensuremath{\Coloneqq}}, {::=} = {\ensuremath{\Coloneqq}},
@ -610,7 +599,9 @@
Four version of each base option is available: normal, \(\texttt{Mask}\) which masks the normal set of entities with a specified set, \(\texttt{Uncommon}\) which considers only the entities that are not shared between all edges of the graph, and \(\texttt{UncommonMask}\) which combines the two functionalities. The base options return the corresponding entities available in the label.\vspace{1em} Four version of each base option is available: normal, \(\texttt{Mask}\) which masks the normal set of entities with a specified set, \(\texttt{Uncommon}\) which considers only the entities that are not shared between all edges of the graph, and \(\texttt{UncommonMask}\) which combines the two functionalities. The base options return the corresponding entities available in the label.\vspace{1em}
\noindent
\begin{minipage}{\textwidth} \begin{minipage}{\textwidth}
\centering
\begin{bnf}(relation-sym-map = % chktex 36 \begin{bnf}(relation-sym-map = % chktex 36
{ {
{::=} = {\ensuremath{\Coloneqq}}, {::=} = {\ensuremath{\Coloneqq}},
@ -651,7 +642,9 @@
The \(\texttt{NodeColor}\) structure assigns the first correct color to the node. The structure can be thought of as a list of pairs; each pair has an entry that evaluated returns true or false, and an entry that holds the desired color of the node. The \(\texttt{NodeColor}\) structure assigns the first correct color to the node. The structure can be thought of as a list of pairs; each pair has an entry that evaluated returns true or false, and an entry that holds the desired color of the node.
To find the correct color, the list is scanned until the first pair that returns true and the color is assigned. If no pair returns true, a default value is assigned, specified after \(\texttt{!}\). The possible functions expressible by the grammar are the ones expressed by \(E\) and query either the entities available or the current context. To find the correct color, the list is scanned until the first pair that returns true and the color is assigned. If no pair returns true, a default value is assigned, specified after \(\texttt{!}\). The possible functions expressible by the grammar are the ones expressed by \(E\) and query either the entities available or the current context.
\noindent
\begin{minipage}{\textwidth} \begin{minipage}{\textwidth}
\centering
\begin{bnf}(relation-sym-map = % chktex 36 \begin{bnf}(relation-sym-map = % chktex 36
{ {
{::=} = {\ensuremath{\Coloneqq}}, {::=} = {\ensuremath{\Coloneqq}},
@ -705,7 +698,9 @@
The language has way to define subroutines or functions, has no while loop and limited for loop construction, so that the execution always terminates.\vspace{1em} The language has way to define subroutines or functions, has no while loop and limited for loop construction, so that the execution always terminates.\vspace{1em}
\noindent
\begin{minipage}{\textwidth} \begin{minipage}{\textwidth}
\centering
\begin{bnf}(relation-sym-map = % chktex 36 \begin{bnf}(relation-sym-map = % chktex 36
{ {
{::=} = {\ensuremath{\Coloneqq}}, {::=} = {\ensuremath{\Coloneqq}},
@ -772,7 +767,9 @@
\newpage \newpage
\noindent
\begin{minipage}{\textwidth} \begin{minipage}{\textwidth}
\centering
\begin{bnf}(relation-sym-map = % chktex 36 \begin{bnf}(relation-sym-map = % chktex 36
{ {
{::=} = {\ensuremath{\Coloneqq}}, {::=} = {\ensuremath{\Coloneqq}},
@ -836,7 +833,9 @@
\newpage \newpage
\noindent
\begin{minipage}{\textwidth} \begin{minipage}{\textwidth}
\centering
\begin{bnf}(relation-sym-map = % chktex 36 \begin{bnf}(relation-sym-map = % chktex 36
{ {
{::=} = {\ensuremath{\Coloneqq}}, {::=} = {\ensuremath{\Coloneqq}},
@ -888,7 +887,9 @@
\item \(\texttt{fast\_frequency}(experiment: \texttt{[set]}, reactions: \texttt{[reaction]}, entities: \texttt{set},\\ weights: \texttt{[int]}) \to \texttt{frequency}^{?}\), which computes the weighted relative frequency of each entity in any of the loops. \item \(\texttt{fast\_frequency}(experiment: \texttt{[set]}, reactions: \texttt{[reaction]}, entities: \texttt{set},\\ weights: \texttt{[int]}) \to \texttt{frequency}^{?}\), which computes the weighted relative frequency of each entity in any of the loops.
\end{itemize} \end{itemize}
\noindent
\begin{minipage}{\textwidth} \begin{minipage}{\textwidth}
\centering
\begin{bnf}(relation-sym-map = % chktex 36 \begin{bnf}(relation-sym-map = % chktex 36
{ {
{::=} = {\ensuremath{\Coloneqq}}, {::=} = {\ensuremath{\Coloneqq}},
@ -924,7 +925,9 @@
\begin{subsection}{Instructions}\label{instructions_analysis} \begin{subsection}{Instructions}\label{instructions_analysis}
The command line interface provided by the workspace \(\texttt{analysis}\) expects as input a path to a file with a RS and some instructions, reads the file, executes the instructions and returns the result in the forms specified. The syntax for specifying instructions is as follows:\vspace{1em} The command line interface provided by the workspace \(\texttt{analysis}\) expects as input a path to a file with a RS and some instructions, reads the file, executes the instructions and returns the result in the forms specified. The syntax for specifying instructions is as follows:\vspace{1em}
\noindent
\begin{minipage}{\textwidth} \begin{minipage}{\textwidth}
\centering
\begin{bnf}(relation-sym-map = % chktex 36 \begin{bnf}(relation-sym-map = % chktex 36
{ {
{::=} = {\ensuremath{\Coloneqq}}, {::=} = {\ensuremath{\Coloneqq}},
@ -949,8 +952,10 @@
\newpage \newpage
\scalebox{.01}{ \noindent
\scalebox{.95}{
\begin{minipage}{\textwidth} \begin{minipage}{\textwidth}
\centering
\begin{bnf}(relation-sym-map = % chktex 36 \begin{bnf}(relation-sym-map = % chktex 36
{ {
{::=} = {\ensuremath{\Coloneqq}}, {::=} = {\ensuremath{\Coloneqq}},
@ -1081,147 +1086,150 @@
Since the generated graphs were often times immediately converted to DOT files and rendered to SVG, a native renderer is included that can create PNG images of the supplied graph. They are then rendered to screen. This reduces greatly the time switching between software to achieve the same result. Since the generated graphs were often times immediately converted to DOT files and rendered to SVG, a native renderer is included that can create PNG images of the supplied graph. They are then rendered to screen. This reduces greatly the time switching between software to achieve the same result.
\noindent
\begin{table} \begin{table}
\centering \centering
\fboxrule=0.25mm \fboxrule=0.2mm
\begin{tblr}{colspec={Q[c, m]Q[c, l]Q[c, l]}, colsep=3pt} \begin{tblr}{colspec={Q[c, m]Q[c, l]Q[c, l]}, colsep=3pt}
\fcolorbox{black}{color_Error}{\makebox[2mm][l]{\strut}} & \(\texttt{Error}\) & Structure that holds error messages \\ \fcolorbox{black}{color_Error}{\makebox[4mm][l]{\strut}} & \(\texttt{Error}\) & Structure that holds error messages \\
\fcolorbox{black}{color_String}{\makebox[2mm][l]{\strut}} & \(\texttt{String}\) & A string \\ \fcolorbox{black}{color_String}{\makebox[4mm][l]{\strut}} & \(\texttt{String}\) & A string \\
\fcolorbox{black}{color_Path}{\makebox[2mm][l]{\strut}} & \(\texttt{Path}\) & A path to a file \\ \fcolorbox{black}{color_Path}{\makebox[4mm][l]{\strut}} & \(\texttt{Path}\) & A path to a file \\
\fcolorbox{black}{color_Svg}{\makebox[2mm][l]{\strut}} & \(\texttt{Svg}\) & A structure for creating and rendering SVG \\ \fcolorbox{black}{color_Svg}{\makebox[4mm][l]{\strut}} & \(\texttt{Svg}\) & A structure for creating and rendering SVG \\
\fcolorbox{black}{color_PositiveInt}{\makebox[2mm][l]{\strut}} & \(\texttt{PositiveInt}\) & Integer in \(\mathbb{N}\) \\ \fcolorbox{black}{color_PositiveInt}{\makebox[4mm][l]{\strut}} & \(\texttt{PositiveInt}\) & Integer in \(\mathbb{N}\) \\
\fcolorbox{black}{color_Symbol}{\makebox[2mm][l]{\strut}} & \(\texttt{Symbol}\) & A single symbol, see section\ \ref{design_entities} \\ \fcolorbox{black}{color_Symbol}{\makebox[4mm][l]{\strut}} & \(\texttt{Symbol}\) & A single symbol, see section\ \ref{design_entities} \\
\fcolorbox{black}{color_System}{\makebox[2mm][l]{\strut}} & \(\texttt{System}\) & see section\ \ref{design_system} \\ \fcolorbox{black}{color_System}{\makebox[4mm][l]{\strut}} & \(\texttt{System}\) & see section\ \ref{design_system} \\
\fcolorbox{black}{color_Environment}{\makebox[2mm][l]{\strut}} & \(\texttt{Environment}\) & see section\ \ref{design_environment} \\ \fcolorbox{black}{color_Environment}{\makebox[4mm][l]{\strut}} & \(\texttt{Environment}\) & see section\ \ref{design_environment} \\
\fcolorbox{black}{color_Set}{\makebox[2mm][l]{\strut}} & \(\texttt{Set}\) & see section\ \ref{design_set} \\ \fcolorbox{black}{color_Set}{\makebox[4mm][l]{\strut}} & \(\texttt{Set}\) & see section\ \ref{design_set} \\
\fcolorbox{black}{color_Context}{\makebox[2mm][l]{\strut}} & \(\texttt{Context}\) & see section\ \ref{design_process} \\ \fcolorbox{black}{color_Context}{\makebox[4mm][l]{\strut}} & \(\texttt{Context}\) & see section\ \ref{design_process} \\
\fcolorbox{black}{color_Reactions}{\makebox[2mm][l]{\strut}} & \(\texttt{Reactions}\) & see section\ \ref{design_reaction} \\ \fcolorbox{black}{color_Reactions}{\makebox[4mm][l]{\strut}} & \(\texttt{Reactions}\) & see section\ \ref{design_reaction} \\
\fcolorbox{black}{color_Experiment}{\makebox[2mm][l]{\strut}} & \(\texttt{Experiment}\) & see section\ \ref{experiment} \\ \fcolorbox{black}{color_Experiment}{\makebox[4mm][l]{\strut}} & \(\texttt{Experiment}\) & see section\ \ref{experiment} \\
\fcolorbox{black}{color_PositiveSystem}{\makebox[2mm][l]{\strut}} & \(\texttt{PositiveSystem}\) & see section\ \ref{design_system} \\ \fcolorbox{black}{color_PositiveSystem}{\makebox[4mm][l]{\strut}} & \(\texttt{PositiveSystem}\) & see section\ \ref{design_system} \\
\fcolorbox{black}{color_PositiveEnvironment}{\makebox[2mm][l]{\strut}} & \(\texttt{PositiveEnvironment}\) & see section\ \ref{design_environment} \\ \fcolorbox{black}{color_PositiveEnvironment}{\makebox[4mm][l]{\strut}} & \(\texttt{PositiveEnvironment}\) & see section\ \ref{design_environment} \\
\fcolorbox{black}{color_PositiveSet}{\makebox[2mm][l]{\strut}} & \(\texttt{PositiveSet}\) & see section\ \ref{design_set} \\ \fcolorbox{black}{color_PositiveSet}{\makebox[4mm][l]{\strut}} & \(\texttt{PositiveSet}\) & see section\ \ref{design_set} \\
\fcolorbox{black}{color_PositiveContext}{\makebox[2mm][l]{\strut}} & \(\texttt{PositiveContext}\) & see section\ \ref{design_process} \\ \fcolorbox{black}{color_PositiveContext}{\makebox[4mm][l]{\strut}} & \(\texttt{PositiveContext}\) & see section\ \ref{design_process} \\
\fcolorbox{black}{color_PositiveReactions}{\makebox[2mm][l]{\strut}} & \(\texttt{PositiveReactions}\) & see section\ \ref{design_reaction} \\ \fcolorbox{black}{color_PositiveReactions}{\makebox[4mm][l]{\strut}} & \(\texttt{PositiveReactions}\) & see section\ \ref{design_reaction} \\
\fcolorbox{black}{color_Trace}{\makebox[2mm][l]{\strut}} & \(\texttt{Trace}\) & see section\ \ref{design_trace} \\ \fcolorbox{black}{color_Trace}{\makebox[4mm][l]{\strut}} & \(\texttt{Trace}\) & see section\ \ref{design_trace} \\
\fcolorbox{black}{color_PositiveTrace}{\makebox[2mm][l]{\strut}} & \(\texttt{PositiveTrace}\) & see section\ \ref{design_trace} \\ \fcolorbox{black}{color_PositiveTrace}{\makebox[4mm][l]{\strut}} & \(\texttt{PositiveTrace}\) & see section\ \ref{design_trace} \\
\fcolorbox{black}{color_Graph}{\makebox[2mm][l]{\strut}} & \(\texttt{Graph}\) & see section\ \ref{design_graph} \\ \fcolorbox{black}{color_Graph}{\makebox[4mm][l]{\strut}} & \(\texttt{Graph}\) & see section\ \ref{design_graph} \\
\fcolorbox{black}{color_PositiveGraph}{\makebox[2mm][l]{\strut}} & \(\texttt{PositiveGraph}\) & see section\ \ref{design_graph} \\ \fcolorbox{black}{color_PositiveGraph}{\makebox[4mm][l]{\strut}} & \(\texttt{PositiveGraph}\) & see section\ \ref{design_graph} \\
\fcolorbox{black}{color_DisplayNode}{\makebox[2mm][l]{\strut}} & \(\texttt{DisplayNode}\) & see section\ \ref{design_graph} \\ \fcolorbox{black}{color_DisplayNode}{\makebox[4mm][l]{\strut}} & \(\texttt{DisplayNode}\) & see section\ \ref{design_graph} \\
\fcolorbox{black}{color_DisplayEdge}{\makebox[2mm][l]{\strut}} & \(\texttt{DisplayEdge}\) & see section\ \ref{design_graph} \\ \fcolorbox{black}{color_DisplayEdge}{\makebox[4mm][l]{\strut}} & \(\texttt{DisplayEdge}\) & see section\ \ref{design_graph} \\
\fcolorbox{black}{color_ColorNode}{\makebox[2mm][l]{\strut}} & \(\texttt{ColorNode}\) & see section\ \ref{design_graph} \\ \fcolorbox{black}{color_ColorNode}{\makebox[4mm][l]{\strut}} & \(\texttt{ColorNode}\) & see section\ \ref{design_graph} \\
\fcolorbox{black}{color_ColorEdge}{\makebox[2mm][l]{\strut}} & \(\texttt{ColorEdge}\) & see section\ \ref{design_graph} \\ \fcolorbox{black}{color_ColorEdge}{\makebox[4mm][l]{\strut}} & \(\texttt{ColorEdge}\) & see section\ \ref{design_graph} \\
\fcolorbox{black}{color_AssertFunction}{\makebox[2mm][l]{\strut}} & \(\texttt{AssertFunction}\) & see section\ \ref{bisimilarity_design} \\ \fcolorbox{black}{color_AssertFunction}{\makebox[4mm][l]{\strut}} & \(\texttt{AssertFunction}\) & see section\ \ref{bisimilarity_design} \\
\fcolorbox{black}{color_GroupFunction}{\makebox[2mm][l]{\strut}} & \(\texttt{GroupFunction}\) & see section\ \ref{bisimilarity_design} \\ \fcolorbox{black}{color_GroupFunction}{\makebox[4mm][l]{\strut}} & \(\texttt{GroupFunction}\) & see section\ \ref{bisimilarity_design} \\
\fcolorbox{black}{color_PositiveAssertFunction}{\makebox[2mm][l]{\strut}} & \(\texttt{PositiveAssertFunction}\) & see section\ \ref{bisimilarity_design} \\ \fcolorbox{black}{color_PositiveAssertFunction}{\makebox[4mm][l]{\strut}} & \(\texttt{PositiveAssertFunction}\) & see section\ \ref{bisimilarity_design} \\
\fcolorbox{black}{color_PositiveGroupFunction}{\makebox[2mm][l]{\strut}} & \(\texttt{PositiveGroupFunction}\) & see section\ \ref{bisimilarity_design} \\ \fcolorbox{black}{color_PositiveGroupFunction}{\makebox[4mm][l]{\strut}} & \(\texttt{PositiveGroupFunction}\) & see section\ \ref{bisimilarity_design} \\
\end{tblr} \end{tblr}
\caption{Types in ReactionSystemsGUI with associated color.}\label{types_gui} \caption{Types in ReactionSystemsGUI with associated color.}\label{types_gui}
\end{table} \end{table}
\fboxrule=0.25mm \fboxrule=0.2mm
\noindent
\begin{longtblr}[ \begin{longtblr}[
caption={Available nodes in ReactionSystemsGUI with inputs and outputs in color.}, caption={Available nodes in ReactionSystemsGUI with inputs and outputs in color.},
label={node_in_out}, label={node_in_out},
]{ ]{
colspec={Q[b, r]|Q[c, m]|Q[c, m]|Q[b, l]}, colspec={Q[b, r]|Q[c, m]|Q[c, m]|Q[b, l]},
cells = {font = \fontsize{8pt}{12pt}\selectfont},
colsep=2pt,} colsep=2pt,}
\(\texttt{String}\) & \fcolorbox{black}{color_String}{\makebox[2mm][l]{\strut}} & \fcolorbox{black}{color_String}{\makebox[2mm][l]{\strut}} & Creates a string \\ \(\texttt{String}\) & \fcolorbox{black}{color_String}{\makebox[4mm][l]{\strut}} & \fcolorbox{black}{color_String}{\makebox[4mm][l]{\strut}} & Creates a string \\
\(\texttt{Path}\) & \fcolorbox{black}{color_String}{\makebox[2mm][l]{\strut}} & \fcolorbox{black}{color_Path}{\makebox[2mm][l]{\strut}} & Creates a path from a string \\ \(\texttt{Path}\) & \fcolorbox{black}{color_String}{\makebox[4mm][l]{\strut}} & \fcolorbox{black}{color_Path}{\makebox[4mm][l]{\strut}} & Creates a path from a string \\
\(\texttt{Read file}\) & \fcolorbox{black}{color_Path}{\makebox[2mm][l]{\strut}} & \fcolorbox{black}{color_String}{\makebox[2mm][l]{\strut}} & Reads a file into a string \\ \(\texttt{Read file}\) & \fcolorbox{black}{color_Path}{\makebox[4mm][l]{\strut}} & \fcolorbox{black}{color_String}{\makebox[4mm][l]{\strut}} & Reads a file into a string \\
\(\texttt{Save string to file}\) & \fcolorbox{black}{color_Path}{\makebox[2mm][l]{\strut}}\fcolorbox{black}{color_String}{\makebox[2mm][l]{\strut}} & & Save a string to a file \\ \(\texttt{Save string to file}\) & \fcolorbox{black}{color_Path}{\makebox[4mm][l]{\strut}}\fcolorbox{black}{color_String}{\makebox[4mm][l]{\strut}} & & Save a string to a file \\
\(\texttt{Symbol}\) & \fcolorbox{black}{color_String}{\makebox[2mm][l]{\strut}} & \fcolorbox{black}{color_Symbol}{\makebox[2mm][l]{\strut}} & Creates a symbol from a string \\ \(\texttt{Symbol}\) & \fcolorbox{black}{color_String}{\makebox[4mm][l]{\strut}} & \fcolorbox{black}{color_Symbol}{\makebox[4mm][l]{\strut}} & Creates a symbol from a string \\
\(\texttt{Sleep}\) & \fcolorbox{black}{color_PositiveInt}{\makebox[2mm][l]{\strut}} & \fcolorbox{black}{color_PositiveInt}{\makebox[2mm][l]{\strut}} & Waits for selected number of seconds \\ \(\texttt{Sleep}\) & \fcolorbox{black}{color_PositiveInt}{\makebox[4mm][l]{\strut}} & \fcolorbox{black}{color_PositiveInt}{\makebox[4mm][l]{\strut}} & Waits for selected number of seconds \\
\(\texttt{Dot file to SVG}\) & \fcolorbox{black}{color_String}{\makebox[2mm][l]{\strut}} & \fcolorbox{black}{color_Svg}{\makebox[2mm][l]{\strut}} & Parses a Dot file string into an SVG \\ \(\texttt{Dot file to SVG}\) & \fcolorbox{black}{color_String}{\makebox[4mm][l]{\strut}} & \fcolorbox{black}{color_Svg}{\makebox[4mm][l]{\strut}} & Parses a Dot file string into an SVG \\
\(\texttt{Save SVG}\) & \fcolorbox{black}{color_Path}{\makebox[2mm][l]{\strut}}\fcolorbox{black}{color_Svg}{\makebox[2mm][l]{\strut}} & & Saves an SVG \\ \(\texttt{Save SVG}\) & \fcolorbox{black}{color_Path}{\makebox[4mm][l]{\strut}}\fcolorbox{black}{color_Svg}{\makebox[4mm][l]{\strut}} & & Saves an SVG \\
\(\texttt{Save Rasterized SVG}\) & \fcolorbox{black}{color_Path}{\makebox[2mm][l]{\strut}}\fcolorbox{black}{color_Svg}{\makebox[2mm][l]{\strut}} & & Saves an SVG as a picture \\ \(\texttt{Save Rasterized SVG}\) & \fcolorbox{black}{color_Path}{\makebox[4mm][l]{\strut}}\fcolorbox{black}{color_Svg}{\makebox[4mm][l]{\strut}} & & Saves an SVG as a picture \\
\(\texttt{Create System}\) & \fcolorbox{black}{color_String}{\makebox[2mm][l]{\strut}} & \fcolorbox{black}{color_System}{\makebox[2mm][l]{\strut}} & Creates system from string \\ \(\texttt{Create System}\) & \fcolorbox{black}{color_String}{\makebox[4mm][l]{\strut}} & \fcolorbox{black}{color_System}{\makebox[4mm][l]{\strut}} & Creates system from string \\
\(\texttt{Create Positive System}\) & \fcolorbox{black}{color_System}{\makebox[2mm][l]{\strut}} & \fcolorbox{black}{color_PositiveSystem}{\makebox[2mm][l]{\strut}} & Creates positive system from system \\ \(\texttt{Create Positive System}\) & \fcolorbox{black}{color_System}{\makebox[4mm][l]{\strut}} & \fcolorbox{black}{color_PositiveSystem}{\makebox[4mm][l]{\strut}} & Creates positive system from system \\
\(\texttt{Compose System}\) & \fcolorbox{black}{color_Environment}{\makebox[2mm][l]{\strut}}\fcolorbox{black}{color_Set}{\makebox[2mm][l]{\strut}}\fcolorbox{black}{color_Context}{\makebox[2mm][l]{\strut}}\fcolorbox{black}{color_Reactions}{\makebox[2mm][l]{\strut}} & \fcolorbox{black}{color_System}{\makebox[2mm][l]{\strut}} & {Composes system from\\individual structures} \\ \(\texttt{Compose System}\) & \fcolorbox{black}{color_Environment}{\makebox[4mm][l]{\strut}}\fcolorbox{black}{color_Set}{\makebox[4mm][l]{\strut}}\fcolorbox{black}{color_Context}{\makebox[4mm][l]{\strut}}\fcolorbox{black}{color_Reactions}{\makebox[4mm][l]{\strut}} & \fcolorbox{black}{color_System}{\makebox[4mm][l]{\strut}} & {Composes system from\\individual structures} \\
\(\texttt{Compose Positive System}\) & \fcolorbox{black}{color_PositiveEnvironment}{\makebox[2mm][l]{\strut}}\fcolorbox{black}{color_PositiveSet}{\makebox[2mm][l]{\strut}}\fcolorbox{black}{color_PositiveContext}{\makebox[2mm][l]{\strut}}\fcolorbox{black}{color_PositiveReactions}{\makebox[2mm][l]{\strut}} & \fcolorbox{black}{color_PositiveSystem}{\makebox[2mm][l]{\strut}} & \\ \(\texttt{Compose Positive System}\) & \fcolorbox{black}{color_PositiveEnvironment}{\makebox[4mm][l]{\strut}}\fcolorbox{black}{color_PositiveSet}{\makebox[4mm][l]{\strut}}\fcolorbox{black}{color_PositiveContext}{\makebox[4mm][l]{\strut}}\fcolorbox{black}{color_PositiveReactions}{\makebox[4mm][l]{\strut}} & \fcolorbox{black}{color_PositiveSystem}{\makebox[4mm][l]{\strut}} & \\
\(\texttt{Decompose System}\) & \fcolorbox{black}{color_System}{\makebox[2mm][l]{\strut}} & \fcolorbox{black}{color_Environment}{\makebox[2mm][l]{\strut}}\fcolorbox{black}{color_Set}{\makebox[2mm][l]{\strut}}\fcolorbox{black}{color_Context}{\makebox[2mm][l]{\strut}}\fcolorbox{black}{color_Reactions}{\makebox[2mm][l]{\strut}} & {Decomposes system\\into individual structures} \\ \(\texttt{Decompose System}\) & \fcolorbox{black}{color_System}{\makebox[4mm][l]{\strut}} & \fcolorbox{black}{color_Environment}{\makebox[4mm][l]{\strut}}\fcolorbox{black}{color_Set}{\makebox[4mm][l]{\strut}}\fcolorbox{black}{color_Context}{\makebox[4mm][l]{\strut}}\fcolorbox{black}{color_Reactions}{\makebox[4mm][l]{\strut}} & {Decomposes system\\into individual structures} \\
\(\texttt{Decompose Positive System}\) & \fcolorbox{black}{color_PositiveSystem}{\makebox[2mm][l]{\strut}} & \fcolorbox{black}{color_PositiveEnvironment}{\makebox[2mm][l]{\strut}}\fcolorbox{black}{color_PositiveSet}{\makebox[2mm][l]{\strut}}\fcolorbox{black}{color_PositiveContext}{\makebox[2mm][l]{\strut}}\fcolorbox{black}{color_PositiveReactions}{\makebox[2mm][l]{\strut}} & \\ \(\texttt{Decompose Positive System}\) & \fcolorbox{black}{color_PositiveSystem}{\makebox[4mm][l]{\strut}} & \fcolorbox{black}{color_PositiveEnvironment}{\makebox[4mm][l]{\strut}}\fcolorbox{black}{color_PositiveSet}{\makebox[4mm][l]{\strut}}\fcolorbox{black}{color_PositiveContext}{\makebox[4mm][l]{\strut}}\fcolorbox{black}{color_PositiveReactions}{\makebox[4mm][l]{\strut}} & \\
\(\texttt{Environment}\) & \fcolorbox{black}{color_String}{\makebox[2mm][l]{\strut}} & \fcolorbox{black}{color_Environment}{\makebox[2mm][l]{\strut}} & \\ \(\texttt{Environment}\) & \fcolorbox{black}{color_String}{\makebox[4mm][l]{\strut}} & \fcolorbox{black}{color_Environment}{\makebox[4mm][l]{\strut}} & \\
\(\texttt{Positive Environment}\) & \fcolorbox{black}{color_String}{\makebox[2mm][l]{\strut}} & \fcolorbox{black}{color_PositiveEnvironment}{\makebox[2mm][l]{\strut}} & \\ \(\texttt{Positive Environment}\) & \fcolorbox{black}{color_String}{\makebox[4mm][l]{\strut}} & \fcolorbox{black}{color_PositiveEnvironment}{\makebox[4mm][l]{\strut}} & \\
\(\texttt{Set}\) & \fcolorbox{black}{color_String}{\makebox[2mm][l]{\strut}} & \fcolorbox{black}{color_Set}{\makebox[2mm][l]{\strut}} & \\ \(\texttt{Set}\) & \fcolorbox{black}{color_String}{\makebox[4mm][l]{\strut}} & \fcolorbox{black}{color_Set}{\makebox[4mm][l]{\strut}} & \\
\(\texttt{Positive Set}\) & \fcolorbox{black}{color_String}{\makebox[2mm][l]{\strut}} & \fcolorbox{black}{color_PositiveSet}{\makebox[2mm][l]{\strut}} & \\ \(\texttt{Positive Set}\) & \fcolorbox{black}{color_String}{\makebox[4mm][l]{\strut}} & \fcolorbox{black}{color_PositiveSet}{\makebox[4mm][l]{\strut}} & \\
\(\texttt{Context}\) & \fcolorbox{black}{color_String}{\makebox[2mm][l]{\strut}} & \fcolorbox{black}{color_Context}{\makebox[2mm][l]{\strut}} & \\ \(\texttt{Context}\) & \fcolorbox{black}{color_String}{\makebox[4mm][l]{\strut}} & \fcolorbox{black}{color_Context}{\makebox[4mm][l]{\strut}} & \\
\(\texttt{Positive Context}\) & \fcolorbox{black}{color_String}{\makebox[2mm][l]{\strut}} & \fcolorbox{black}{color_PositiveContext}{\makebox[2mm][l]{\strut}} & \\ \(\texttt{Positive Context}\) & \fcolorbox{black}{color_String}{\makebox[4mm][l]{\strut}} & \fcolorbox{black}{color_PositiveContext}{\makebox[4mm][l]{\strut}} & \\
\(\texttt{Reactions}\) & \fcolorbox{black}{color_String}{\makebox[2mm][l]{\strut}} & \fcolorbox{black}{color_Reactions}{\makebox[2mm][l]{\strut}} & \\ \(\texttt{Reactions}\) & \fcolorbox{black}{color_String}{\makebox[4mm][l]{\strut}} & \fcolorbox{black}{color_Reactions}{\makebox[4mm][l]{\strut}} & \\
\(\texttt{Positive Reactions}\) & \fcolorbox{black}{color_String}{\makebox[2mm][l]{\strut}} & \fcolorbox{black}{color_PositiveReactions}{\makebox[2mm][l]{\strut}} & \\ \(\texttt{Positive Reactions}\) & \fcolorbox{black}{color_String}{\makebox[4mm][l]{\strut}} & \fcolorbox{black}{color_PositiveReactions}{\makebox[4mm][l]{\strut}} & \\
\(\texttt{Convert to Positive Environment}\) & \fcolorbox{black}{color_Environment}{\makebox[2mm][l]{\strut}} & \fcolorbox{black}{color_PositiveEnvironment}{\makebox[2mm][l]{\strut}} & \\ {\(\texttt{Convert to}\)\\\(\texttt{Positive Environment}\)} & \fcolorbox{black}{color_Environment}{\makebox[4mm][l]{\strut}} & \fcolorbox{black}{color_PositiveEnvironment}{\makebox[4mm][l]{\strut}} & \\
\(\texttt{Convert to Positive Set}\) & \fcolorbox{black}{color_Set}{\makebox[2mm][l]{\strut}} & \fcolorbox{black}{color_PositiveSet}{\makebox[2mm][l]{\strut}} & \\ \(\texttt{Convert to Positive Set}\) & \fcolorbox{black}{color_Set}{\makebox[4mm][l]{\strut}} & \fcolorbox{black}{color_PositiveSet}{\makebox[4mm][l]{\strut}} & \\
\(\texttt{Convert to Positive Context}\) & \fcolorbox{black}{color_Context}{\makebox[2mm][l]{\strut}} & \fcolorbox{black}{color_PositiveContext}{\makebox[2mm][l]{\strut}} & \\ {\(\texttt{Convert to}\)\\\(\texttt{Positive Context}\)} & \fcolorbox{black}{color_Context}{\makebox[4mm][l]{\strut}} & \fcolorbox{black}{color_PositiveContext}{\makebox[4mm][l]{\strut}} & \\
\(\texttt{Convert to Positive Reactions}\) & \fcolorbox{black}{color_Reactions}{\makebox[2mm][l]{\strut}} & \fcolorbox{black}{color_PositiveReactions}{\makebox[2mm][l]{\strut}} & \\ {\(\texttt{Convert to}\)\\\(\texttt{Positive Reactions}\)} & \fcolorbox{black}{color_Reactions}{\makebox[4mm][l]{\strut}} & \fcolorbox{black}{color_PositiveReactions}{\makebox[4mm][l]{\strut}} & \\
\(\texttt{Statistics}\) & \fcolorbox{black}{color_System}{\makebox[2mm][l]{\strut}} & \fcolorbox{black}{color_String}{\makebox[2mm][l]{\strut}} & \\ \(\texttt{Statistics}\) & \fcolorbox{black}{color_System}{\makebox[4mm][l]{\strut}} & \fcolorbox{black}{color_String}{\makebox[4mm][l]{\strut}} & \\
\(\texttt{Target}\) & \fcolorbox{black}{color_System}{\makebox[2mm][l]{\strut}}\fcolorbox{black}{color_PositiveInt}{\makebox[2mm][l]{\strut}} & \fcolorbox{black}{color_String}{\makebox[2mm][l]{\strut}} & \\ \(\texttt{Target}\) & \fcolorbox{black}{color_System}{\makebox[4mm][l]{\strut}}\fcolorbox{black}{color_PositiveInt}{\makebox[4mm][l]{\strut}} & \fcolorbox{black}{color_String}{\makebox[4mm][l]{\strut}} & \\
\(\texttt{Target of Positive RS}\) & \fcolorbox{black}{color_PositiveSystem}{\makebox[2mm][l]{\strut}}\fcolorbox{black}{color_PositiveInt}{\makebox[2mm][l]{\strut}} & \fcolorbox{black}{color_String}{\makebox[2mm][l]{\strut}} & \\ \(\texttt{Target of Positive RS}\) & \fcolorbox{black}{color_PositiveSystem}{\makebox[4mm][l]{\strut}}\fcolorbox{black}{color_PositiveInt}{\makebox[4mm][l]{\strut}} & \fcolorbox{black}{color_String}{\makebox[4mm][l]{\strut}} & \\
\(\texttt{Run}\) & \fcolorbox{black}{color_System}{\makebox[2mm][l]{\strut}}\fcolorbox{black}{color_PositiveInt}{\makebox[2mm][l]{\strut}} & \fcolorbox{black}{color_String}{\makebox[2mm][l]{\strut}} & \\ \(\texttt{Run}\) & \fcolorbox{black}{color_System}{\makebox[4mm][l]{\strut}}\fcolorbox{black}{color_PositiveInt}{\makebox[4mm][l]{\strut}} & \fcolorbox{black}{color_String}{\makebox[4mm][l]{\strut}} & \\
\(\texttt{Run of Positive RS}\) & \fcolorbox{black}{color_PositiveSystem}{\makebox[2mm][l]{\strut}}\fcolorbox{black}{color_PositiveInt}{\makebox[2mm][l]{\strut}} & \fcolorbox{black}{color_String}{\makebox[2mm][l]{\strut}} & \\ \(\texttt{Run of Positive RS}\) & \fcolorbox{black}{color_PositiveSystem}{\makebox[4mm][l]{\strut}}\fcolorbox{black}{color_PositiveInt}{\makebox[4mm][l]{\strut}} & \fcolorbox{black}{color_String}{\makebox[4mm][l]{\strut}} & \\
\(\texttt{Loop}\) & \fcolorbox{black}{color_System}{\makebox[2mm][l]{\strut}}\fcolorbox{black}{color_Symbol}{\makebox[2mm][l]{\strut}} & \fcolorbox{black}{color_String}{\makebox[2mm][l]{\strut}} & {Applies function\\\(\texttt{lollipops\_only\_loop\_named}\) to RS} \\ \(\texttt{Loop}\) & \fcolorbox{black}{color_System}{\makebox[4mm][l]{\strut}}\fcolorbox{black}{color_Symbol}{\makebox[4mm][l]{\strut}} & \fcolorbox{black}{color_String}{\makebox[4mm][l]{\strut}} & {Applies function\\\(\texttt{lollipops\_only\_loop\_named}\) to RS} \\
\(\texttt{Loop of Positive RS}\) & \fcolorbox{black}{color_PositiveSystem}{\makebox[2mm][l]{\strut}}\fcolorbox{black}{color_Symbol}{\makebox[2mm][l]{\strut}} & \fcolorbox{black}{color_String}{\makebox[2mm][l]{\strut}} & \\ \(\texttt{Loop of Positive RS}\) & \fcolorbox{black}{color_PositiveSystem}{\makebox[4mm][l]{\strut}}\fcolorbox{black}{color_Symbol}{\makebox[4mm][l]{\strut}} & \fcolorbox{black}{color_String}{\makebox[4mm][l]{\strut}} & \\
\(\texttt{Create Experiment}\) & \fcolorbox{black}{color_String}{\makebox[2mm][l]{\strut}} & \fcolorbox{black}{color_Experiment}{\makebox[2mm][l]{\strut}} & Creates experiment from string \\ \(\texttt{Create Experiment}\) & \fcolorbox{black}{color_String}{\makebox[4mm][l]{\strut}} & \fcolorbox{black}{color_Experiment}{\makebox[4mm][l]{\strut}} & Creates experiment from string \\
\(\texttt{Frequency}\) & \fcolorbox{black}{color_System}{\makebox[2mm][l]{\strut}} & \fcolorbox{black}{color_String}{\makebox[2mm][l]{\strut}} & \\ \(\texttt{Frequency}\) & \fcolorbox{black}{color_System}{\makebox[4mm][l]{\strut}} & \fcolorbox{black}{color_String}{\makebox[4mm][l]{\strut}} & \\
\(\texttt{Frequency of Positive RS}\) & \fcolorbox{black}{color_PositiveSystem}{\makebox[2mm][l]{\strut}} & \fcolorbox{black}{color_String}{\makebox[2mm][l]{\strut}} & \\ \(\texttt{Frequency of Positive RS}\) & \fcolorbox{black}{color_PositiveSystem}{\makebox[4mm][l]{\strut}} & \fcolorbox{black}{color_String}{\makebox[4mm][l]{\strut}} & \\
\(\texttt{Limit Frequency}\) & \fcolorbox{black}{color_System}{\makebox[2mm][l]{\strut}}\fcolorbox{black}{color_Experiment}{\makebox[2mm][l]{\strut}} & \fcolorbox{black}{color_String}{\makebox[2mm][l]{\strut}} & \\ \(\texttt{Limit Frequency}\) & \fcolorbox{black}{color_System}{\makebox[4mm][l]{\strut}}\fcolorbox{black}{color_Experiment}{\makebox[4mm][l]{\strut}} & \fcolorbox{black}{color_String}{\makebox[4mm][l]{\strut}} & \\
\(\texttt{Limit Frequency of Positive RS}\) & \fcolorbox{black}{color_PositiveSystem}{\makebox[2mm][l]{\strut}}\fcolorbox{black}{color_Experiment}{\makebox[2mm][l]{\strut}} & \fcolorbox{black}{color_String}{\makebox[2mm][l]{\strut}} & \\ \(\texttt{Limit Frequency of Positive RS}\) & \fcolorbox{black}{color_PositiveSystem}{\makebox[4mm][l]{\strut}}\fcolorbox{black}{color_Experiment}{\makebox[4mm][l]{\strut}} & \fcolorbox{black}{color_String}{\makebox[4mm][l]{\strut}} & \\
\(\texttt{Fast Frequency}\) & \fcolorbox{black}{color_System}{\makebox[2mm][l]{\strut}}\fcolorbox{black}{color_Experiment}{\makebox[2mm][l]{\strut}} & \fcolorbox{black}{color_String}{\makebox[2mm][l]{\strut}} & \\ \(\texttt{Fast Frequency}\) & \fcolorbox{black}{color_System}{\makebox[4mm][l]{\strut}}\fcolorbox{black}{color_Experiment}{\makebox[4mm][l]{\strut}} & \fcolorbox{black}{color_String}{\makebox[4mm][l]{\strut}} & \\
\(\texttt{Fast Frequency of Positive RS}\) & \fcolorbox{black}{color_PositiveSystem}{\makebox[2mm][l]{\strut}}\fcolorbox{black}{color_Experiment}{\makebox[2mm][l]{\strut}} & \fcolorbox{black}{color_String}{\makebox[2mm][l]{\strut}} & \\ \(\texttt{Fast Frequency of Positive RS}\) & \fcolorbox{black}{color_PositiveSystem}{\makebox[4mm][l]{\strut}}\fcolorbox{black}{color_Experiment}{\makebox[4mm][l]{\strut}} & \fcolorbox{black}{color_String}{\makebox[4mm][l]{\strut}} & \\
\(\texttt{Graph System}\) & \fcolorbox{black}{color_System}{\makebox[2mm][l]{\strut}} & \fcolorbox{black}{color_Graph}{\makebox[2mm][l]{\strut}} & Creates digraph of RS \\ \(\texttt{Graph System}\) & \fcolorbox{black}{color_System}{\makebox[4mm][l]{\strut}} & \fcolorbox{black}{color_Graph}{\makebox[4mm][l]{\strut}} & Creates digraph of RS \\
\(\texttt{Graph Positive System}\) & \fcolorbox{black}{color_PositiveSystem}{\makebox[2mm][l]{\strut}} & \fcolorbox{black}{color_PositiveGraph}{\makebox[2mm][l]{\strut}} & \\ \(\texttt{Graph Positive System}\) & \fcolorbox{black}{color_PositiveSystem}{\makebox[4mm][l]{\strut}} & \fcolorbox{black}{color_PositiveGraph}{\makebox[4mm][l]{\strut}} & \\
\(\texttt{Create Dot file}\) & \fcolorbox{black}{color_Graph}{\makebox[2mm][l]{\strut}}\fcolorbox{black}{color_DisplayNode}{\makebox[2mm][l]{\strut}}\fcolorbox{black}{color_DisplayEdge}{\makebox[2mm][l]{\strut}}\fcolorbox{black}{color_ColorNode}{\makebox[2mm][l]{\strut}}\fcolorbox{black}{color_ColorEdge}{\makebox[2mm][l]{\strut}} & \fcolorbox{black}{color_String}{\makebox[2mm][l]{\strut}} & Creates Dot file from a graph \\ \(\texttt{Create Dot file}\) & \fcolorbox{black}{color_Graph}{\makebox[4mm][l]{\strut}}\fcolorbox{black}{color_DisplayNode}{\makebox[4mm][l]{\strut}}\fcolorbox{black}{color_DisplayEdge}{\makebox[4mm][l]{\strut}}\fcolorbox{black}{color_ColorNode}{\makebox[4mm][l]{\strut}}\fcolorbox{black}{color_ColorEdge}{\makebox[4mm][l]{\strut}} & \fcolorbox{black}{color_String}{\makebox[4mm][l]{\strut}} & Creates Dot file from a graph \\
{\(\texttt{Create Dot file}\)\\\(\texttt{of Positive System}\)} & \fcolorbox{black}{color_PositiveGraph}{\makebox[2mm][l]{\strut}}\fcolorbox{black}{color_DisplayNode}{\makebox[2mm][l]{\strut}}\fcolorbox{black}{color_DisplayEdge}{\makebox[2mm][l]{\strut}}\fcolorbox{black}{color_ColorNode}{\makebox[2mm][l]{\strut}}\fcolorbox{black}{color_ColorEdge}{\makebox[2mm][l]{\strut}} & \fcolorbox{black}{color_String}{\makebox[2mm][l]{\strut}} & \\ {\(\texttt{Create Dot file}\)\\\(\texttt{of Positive System}\)} & \fcolorbox{black}{color_PositiveGraph}{\makebox[4mm][l]{\strut}}\fcolorbox{black}{color_DisplayNode}{\makebox[4mm][l]{\strut}}\fcolorbox{black}{color_DisplayEdge}{\makebox[4mm][l]{\strut}}\fcolorbox{black}{color_ColorNode}{\makebox[4mm][l]{\strut}}\fcolorbox{black}{color_ColorEdge}{\makebox[4mm][l]{\strut}} & \fcolorbox{black}{color_String}{\makebox[4mm][l]{\strut}} & \\
\(\texttt{Create GraphML file}\) & \fcolorbox{black}{color_Graph}{\makebox[2mm][l]{\strut}}\fcolorbox{black}{color_DisplayNode}{\makebox[2mm][l]{\strut}}\fcolorbox{black}{color_DisplayEdge}{\makebox[2mm][l]{\strut}} & \fcolorbox{black}{color_String}{\makebox[2mm][l]{\strut}} & Creates GraphML file from a graph \\ \(\texttt{Create GraphML file}\) & \fcolorbox{black}{color_Graph}{\makebox[4mm][l]{\strut}}\fcolorbox{black}{color_DisplayNode}{\makebox[4mm][l]{\strut}}\fcolorbox{black}{color_DisplayEdge}{\makebox[4mm][l]{\strut}} & \fcolorbox{black}{color_String}{\makebox[4mm][l]{\strut}} & Creates GraphML file from a graph \\
{\(\texttt{Create GraphML file}\)\\\(\texttt{of Positive System}\)} & \fcolorbox{black}{color_PositiveGraph}{\makebox[2mm][l]{\strut}}\fcolorbox{black}{color_DisplayNode}{\makebox[2mm][l]{\strut}}\fcolorbox{black}{color_DisplayEdge}{\makebox[2mm][l]{\strut}} & \fcolorbox{black}{color_String}{\makebox[2mm][l]{\strut}} & \\ {\(\texttt{Create GraphML file}\)\\\(\texttt{of Positive System}\)} & \fcolorbox{black}{color_PositiveGraph}{\makebox[4mm][l]{\strut}}\fcolorbox{black}{color_DisplayNode}{\makebox[4mm][l]{\strut}}\fcolorbox{black}{color_DisplayEdge}{\makebox[4mm][l]{\strut}} & \fcolorbox{black}{color_String}{\makebox[4mm][l]{\strut}} & \\
\(\texttt{Display node function}\) & \fcolorbox{black}{color_String}{\makebox[2mm][l]{\strut}} & \fcolorbox{black}{color_DisplayNode}{\makebox[2mm][l]{\strut}} & \\ \(\texttt{Display node function}\) & \fcolorbox{black}{color_String}{\makebox[4mm][l]{\strut}} & \fcolorbox{black}{color_DisplayNode}{\makebox[4mm][l]{\strut}} & \\
\(\texttt{Display edge function}\) & \fcolorbox{black}{color_String}{\makebox[2mm][l]{\strut}} & \fcolorbox{black}{color_DisplayEdge}{\makebox[2mm][l]{\strut}} & \\ \(\texttt{Display edge function}\) & \fcolorbox{black}{color_String}{\makebox[4mm][l]{\strut}} & \fcolorbox{black}{color_DisplayEdge}{\makebox[4mm][l]{\strut}} & \\
\(\texttt{Color node function}\) & \fcolorbox{black}{color_String}{\makebox[2mm][l]{\strut}} & \fcolorbox{black}{color_ColorNode}{\makebox[2mm][l]{\strut}} & \\ \(\texttt{Color node function}\) & \fcolorbox{black}{color_String}{\makebox[4mm][l]{\strut}} & \fcolorbox{black}{color_ColorNode}{\makebox[4mm][l]{\strut}} & \\
\(\texttt{Color edge function}\) & \fcolorbox{black}{color_String}{\makebox[2mm][l]{\strut}} & \fcolorbox{black}{color_ColorEdge}{\makebox[2mm][l]{\strut}} & \\ \(\texttt{Color edge function}\) & \fcolorbox{black}{color_String}{\makebox[4mm][l]{\strut}} & \fcolorbox{black}{color_ColorEdge}{\makebox[4mm][l]{\strut}} & \\
\(\texttt{Bisimilarity Kanellakis \& Smolka}\) & \fcolorbox{black}{color_Graph}{\makebox[2mm][l]{\strut}}\fcolorbox{black}{color_Graph}{\makebox[2mm][l]{\strut}}\fcolorbox{black}{color_AssertFunction}{\makebox[2mm][l]{\strut}} & \fcolorbox{black}{color_String}{\makebox[2mm][l]{\strut}} & \\ \(\texttt{Bisimilarity Kanellakis \& Smolka}\) & \fcolorbox{black}{color_Graph}{\makebox[4mm][l]{\strut}}\fcolorbox{black}{color_Graph}{\makebox[4mm][l]{\strut}}\fcolorbox{black}{color_AssertFunction}{\makebox[4mm][l]{\strut}} & \fcolorbox{black}{color_String}{\makebox[4mm][l]{\strut}} & \\
{\(\texttt{Bisimilarity Kanellakis \& Smolka}\)\\\(\texttt{for Positive RS}\)} & \fcolorbox{black}{color_PositiveGraph}{\makebox[2mm][l]{\strut}}\fcolorbox{black}{color_PositiveGraph}{\makebox[2mm][l]{\strut}}\fcolorbox{black}{color_PositiveAssertFunction}{\makebox[2mm][l]{\strut}} & \fcolorbox{black}{color_String}{\makebox[2mm][l]{\strut}} & \\ {\(\texttt{Bisimilarity Kanellakis \& Smolka}\)\\\(\texttt{for Positive RS}\)} & \fcolorbox{black}{color_PositiveGraph}{\makebox[4mm][l]{\strut}}\fcolorbox{black}{color_PositiveGraph}{\makebox[4mm][l]{\strut}}\fcolorbox{black}{color_PositiveAssertFunction}{\makebox[4mm][l]{\strut}} & \fcolorbox{black}{color_String}{\makebox[4mm][l]{\strut}} & \\
\(\texttt{Bisimilarity Paige \& Tarjan}\) & \fcolorbox{black}{color_Graph}{\makebox[2mm][l]{\strut}}\fcolorbox{black}{color_Graph}{\makebox[2mm][l]{\strut}}\fcolorbox{black}{color_AssertFunction}{\makebox[2mm][l]{\strut}} & \fcolorbox{black}{color_String}{\makebox[2mm][l]{\strut}} & \\ \(\texttt{Bisimilarity Paige \& Tarjan}\) & \fcolorbox{black}{color_Graph}{\makebox[4mm][l]{\strut}}\fcolorbox{black}{color_Graph}{\makebox[4mm][l]{\strut}}\fcolorbox{black}{color_AssertFunction}{\makebox[4mm][l]{\strut}} & \fcolorbox{black}{color_String}{\makebox[4mm][l]{\strut}} & \\
{\(\texttt{Bisimilarity Paige \& Torjan}\)\\\(\texttt{for Positive RS}\)} & \fcolorbox{black}{color_PositiveGraph}{\makebox[2mm][l]{\strut}}\fcolorbox{black}{color_PositiveGraph}{\makebox[2mm][l]{\strut}}\fcolorbox{black}{color_PositiveAssertFunction}{\makebox[2mm][l]{\strut}} & \fcolorbox{black}{color_String}{\makebox[2mm][l]{\strut}} & \\ {\(\texttt{Bisimilarity Paige \& Torjan}\)\\\(\texttt{for Positive RS}\)} & \fcolorbox{black}{color_PositiveGraph}{\makebox[4mm][l]{\strut}}\fcolorbox{black}{color_PositiveGraph}{\makebox[4mm][l]{\strut}}\fcolorbox{black}{color_PositiveAssertFunction}{\makebox[4mm][l]{\strut}} & \fcolorbox{black}{color_String}{\makebox[4mm][l]{\strut}} & \\
{\(\texttt{Bisimilarity Paige \& Tarjan}\)\\\(\texttt{(ignore labels)}\)} & \fcolorbox{black}{color_Graph}{\makebox[2mm][l]{\strut}}\fcolorbox{black}{color_Graph}{\makebox[2mm][l]{\strut}}\fcolorbox{black}{color_AssertFunction}{\makebox[2mm][l]{\strut}} & \fcolorbox{black}{color_String}{\makebox[2mm][l]{\strut}} & \\ {\(\texttt{Bisimilarity Paige \& Tarjan}\)\\\(\texttt{(ignore labels)}\)} & \fcolorbox{black}{color_Graph}{\makebox[4mm][l]{\strut}}\fcolorbox{black}{color_Graph}{\makebox[4mm][l]{\strut}}\fcolorbox{black}{color_AssertFunction}{\makebox[4mm][l]{\strut}} & \fcolorbox{black}{color_String}{\makebox[4mm][l]{\strut}} & \\
{\(\texttt{Bisimilarity Paige \& Torjan}\)\\\(\texttt{(ignore labels) for Positive RS}\)} & \fcolorbox{black}{color_PositiveGraph}{\makebox[2mm][l]{\strut}}\fcolorbox{black}{color_PositiveGraph}{\makebox[2mm][l]{\strut}}\fcolorbox{black}{color_PositiveAssertFunction}{\makebox[2mm][l]{\strut}} & \fcolorbox{black}{color_String}{\makebox[2mm][l]{\strut}} & \\ {\(\texttt{Bisimilarity Paige \& Torjan}\)\\\(\texttt{(ignore labels) for Positive RS}\)} & \fcolorbox{black}{color_PositiveGraph}{\makebox[4mm][l]{\strut}}\fcolorbox{black}{color_PositiveGraph}{\makebox[4mm][l]{\strut}}\fcolorbox{black}{color_PositiveAssertFunction}{\makebox[4mm][l]{\strut}} & \fcolorbox{black}{color_String}{\makebox[4mm][l]{\strut}} & \\
\(\texttt{Create relabeling edge function}\) & \fcolorbox{black}{color_String}{\makebox[2mm][l]{\strut}} & \fcolorbox{black}{color_AssertFunction}{\makebox[2mm][l]{\strut}} & \\ \(\texttt{Create relabeling edge function}\) & \fcolorbox{black}{color_String}{\makebox[4mm][l]{\strut}} & \fcolorbox{black}{color_AssertFunction}{\makebox[4mm][l]{\strut}} & \\
{\(\texttt{Create relabeling edge function}\)\\\(\texttt{for Positive RS}\)} & \fcolorbox{black}{color_String}{\makebox[2mm][l]{\strut}} & \fcolorbox{black}{color_PositiveAssertFunction}{\makebox[2mm][l]{\strut}} & \\ {\(\texttt{Create relabeling edge function}\)\\\(\texttt{for Positive RS}\)} & \fcolorbox{black}{color_String}{\makebox[4mm][l]{\strut}} & \fcolorbox{black}{color_PositiveAssertFunction}{\makebox[4mm][l]{\strut}} & \\
\(\texttt{Trace}\) & \fcolorbox{black}{color_System}{\makebox[2mm][l]{\strut}}\fcolorbox{black}{color_PositiveInt}{\makebox[2mm][l]{\strut}} & \fcolorbox{black}{color_Trace}{\makebox[2mm][l]{\strut}} & \\ \(\texttt{Trace}\) & \fcolorbox{black}{color_System}{\makebox[4mm][l]{\strut}}\fcolorbox{black}{color_PositiveInt}{\makebox[4mm][l]{\strut}} & \fcolorbox{black}{color_Trace}{\makebox[4mm][l]{\strut}} & \\
\(\texttt{Positive Trace}\) & \fcolorbox{black}{color_PositiveSystem}{\makebox[2mm][l]{\strut}}\fcolorbox{black}{color_PositiveInt}{\makebox[2mm][l]{\strut}} & \fcolorbox{black}{color_PositiveTrace}{\makebox[2mm][l]{\strut}} & \\ \(\texttt{Positive Trace}\) & \fcolorbox{black}{color_PositiveSystem}{\makebox[4mm][l]{\strut}}\fcolorbox{black}{color_PositiveInt}{\makebox[4mm][l]{\strut}} & \fcolorbox{black}{color_PositiveTrace}{\makebox[4mm][l]{\strut}} & \\
\(\texttt{Slice Trace}\) & \fcolorbox{black}{color_Trace}{\makebox[2mm][l]{\strut}}\fcolorbox{black}{color_Set}{\makebox[2mm][l]{\strut}} & \fcolorbox{black}{color_Trace}{\makebox[2mm][l]{\strut}} & \\ \(\texttt{Slice Trace}\) & \fcolorbox{black}{color_Trace}{\makebox[4mm][l]{\strut}}\fcolorbox{black}{color_Set}{\makebox[4mm][l]{\strut}} & \fcolorbox{black}{color_Trace}{\makebox[4mm][l]{\strut}} & \\
\(\texttt{Positive Slice Trace}\) & \fcolorbox{black}{color_PositiveTrace}{\makebox[2mm][l]{\strut}}\fcolorbox{black}{color_PositiveSet}{\makebox[2mm][l]{\strut}} & \fcolorbox{black}{color_PositiveTrace}{\makebox[2mm][l]{\strut}} & \\ \(\texttt{Positive Slice Trace}\) & \fcolorbox{black}{color_PositiveTrace}{\makebox[4mm][l]{\strut}}\fcolorbox{black}{color_PositiveSet}{\makebox[4mm][l]{\strut}} & \fcolorbox{black}{color_PositiveTrace}{\makebox[4mm][l]{\strut}} & \\
\(\texttt{Trace to string}\) & \fcolorbox{black}{color_Trace}{\makebox[2mm][l]{\strut}} & \fcolorbox{black}{color_String}{\makebox[2mm][l]{\strut}} & \\ \(\texttt{Trace to string}\) & \fcolorbox{black}{color_Trace}{\makebox[4mm][l]{\strut}} & \fcolorbox{black}{color_String}{\makebox[4mm][l]{\strut}} & \\
\(\texttt{Positive trace to string}\) & \fcolorbox{black}{color_PositiveTrace}{\makebox[2mm][l]{\strut}} & \fcolorbox{black}{color_String}{\makebox[2mm][l]{\strut}} & \\ \(\texttt{Positive trace to string}\) & \fcolorbox{black}{color_PositiveTrace}{\makebox[4mm][l]{\strut}} & \fcolorbox{black}{color_String}{\makebox[4mm][l]{\strut}} & \\
\(\texttt{Overwrite context entities}\) & \fcolorbox{black}{color_System}{\makebox[2mm][l]{\strut}}\fcolorbox{black}{color_Set}{\makebox[2mm][l]{\strut}} & \fcolorbox{black}{color_System}{\makebox[2mm][l]{\strut}} & \\ \(\texttt{Overwrite context entities}\) & \fcolorbox{black}{color_System}{\makebox[4mm][l]{\strut}}\fcolorbox{black}{color_Set}{\makebox[4mm][l]{\strut}} & \fcolorbox{black}{color_System}{\makebox[4mm][l]{\strut}} & \\
\(\texttt{Overwirite reaction entities}\) & \fcolorbox{black}{color_System}{\makebox[2mm][l]{\strut}}\fcolorbox{black}{color_Set}{\makebox[2mm][l]{\strut}} & \fcolorbox{black}{color_System}{\makebox[2mm][l]{\strut}} & \\ \(\texttt{Overwirite reaction entities}\) & \fcolorbox{black}{color_System}{\makebox[4mm][l]{\strut}}\fcolorbox{black}{color_Set}{\makebox[4mm][l]{\strut}} & \fcolorbox{black}{color_System}{\makebox[4mm][l]{\strut}} & \\
{\(\texttt{Overwrite context entities}\)\\\(\texttt{of Positive System}\)} & \fcolorbox{black}{color_PositiveSystem}{\makebox[2mm][l]{\strut}}\fcolorbox{black}{color_PositiveSet}{\makebox[2mm][l]{\strut}} & \fcolorbox{black}{color_PositiveSystem}{\makebox[2mm][l]{\strut}} & \\ {\(\texttt{Overwrite context entities}\)\\\(\texttt{of Positive System}\)} & \fcolorbox{black}{color_PositiveSystem}{\makebox[4mm][l]{\strut}}\fcolorbox{black}{color_PositiveSet}{\makebox[4mm][l]{\strut}} & \fcolorbox{black}{color_PositiveSystem}{\makebox[4mm][l]{\strut}} & \\
{\(\texttt{Overwrite reaction entities}\)\\\(\texttt{of Positive System}\)} & \fcolorbox{black}{color_PositiveSystem}{\makebox[2mm][l]{\strut}}\fcolorbox{black}{color_PositiveSet}{\makebox[2mm][l]{\strut}} & \fcolorbox{black}{color_PositiveSystem}{\makebox[2mm][l]{\strut}} & \\ {\(\texttt{Overwrite reaction entities}\)\\\(\texttt{of Positive System}\)} & \fcolorbox{black}{color_PositiveSystem}{\makebox[4mm][l]{\strut}}\fcolorbox{black}{color_PositiveSet}{\makebox[4mm][l]{\strut}} & \fcolorbox{black}{color_PositiveSystem}{\makebox[4mm][l]{\strut}} & \\
\(\texttt{Create Grouping Function}\) & \fcolorbox{black}{color_String}{\makebox[2mm][l]{\strut}} & \fcolorbox{black}{color_GroupFunction}{\makebox[2mm][l]{\strut}} & \\ \(\texttt{Create Grouping Function}\) & \fcolorbox{black}{color_String}{\makebox[4mm][l]{\strut}} & \fcolorbox{black}{color_GroupFunction}{\makebox[4mm][l]{\strut}} & \\
\(\texttt{Group Nodes}\) & \fcolorbox{black}{color_Graph}{\makebox[2mm][l]{\strut}}\fcolorbox{black}{color_GroupFunction}{\makebox[2mm][l]{\strut}} & \fcolorbox{black}{color_Graph}{\makebox[2mm][l]{\strut}} & \\ \(\texttt{Group Nodes}\) & \fcolorbox{black}{color_Graph}{\makebox[4mm][l]{\strut}}\fcolorbox{black}{color_GroupFunction}{\makebox[4mm][l]{\strut}} & \fcolorbox{black}{color_Graph}{\makebox[4mm][l]{\strut}} & \\
{\(\texttt{Create Grouping Function}\)\\\(\texttt{for Positive System}\)} & \fcolorbox{black}{color_String}{\makebox[2mm][l]{\strut}} & \fcolorbox{black}{color_PositiveGroupFunction}{\makebox[2mm][l]{\strut}} & \\ {\(\texttt{Create Grouping Function}\)\\\(\texttt{for Positive System}\)} & \fcolorbox{black}{color_String}{\makebox[4mm][l]{\strut}} & \fcolorbox{black}{color_PositiveGroupFunction}{\makebox[4mm][l]{\strut}} & \\
\(\texttt{Group Nodes of Positive System}\) & \fcolorbox{black}{color_PositiveGraph}{\makebox[2mm][l]{\strut}}\fcolorbox{black}{color_PositiveGroupFunction}{\makebox[2mm][l]{\strut}} & \fcolorbox{black}{color_PositiveGraph}{\makebox[2mm][l]{\strut}} & \\ \(\texttt{Group Nodes of Positive System}\) & \fcolorbox{black}{color_PositiveGraph}{\makebox[4mm][l]{\strut}}\fcolorbox{black}{color_PositiveGroupFunction}{\makebox[4mm][l]{\strut}} & \fcolorbox{black}{color_PositiveGraph}{\makebox[4mm][l]{\strut}} & \\
\end{longtblr} \end{longtblr}
All the types can be seen in table\ \ref{types_gui} that are used for the node's input and output. Each type has a distinct color associated that is used to color the connectors between nodes. All nodes can be seen in table\ \ref{node_in_out}. The second column holds the color of the inputs types used; the third column holds the color of the outputs types. All the types can be seen in table\ \ref{types_gui} that are used for the node's input and output. Each type has a distinct color associated that is used to color the connectors between nodes. All nodes can be seen in table\ \ref{node_in_out}. The second column holds the color of the inputs types used; the third column holds the color of the outputs types.

View File

@ -122,8 +122,10 @@ pub type PositiveSystemGraph =
\begin{subsection}{Bisimilarity and Bisimulation} \begin{subsection}{Bisimilarity and Bisimulation}
The algorithms described in section\ \ref{bisimulation} are implemented in the files in the folder \href{https://github.com/elvisrossi/ReactionSystems/tree/master/bisimilarity/src}{\(\texttt{bisimilarity/src}\)}. The algorithms described in section\ \ref{bisimulation} are implemented in the files in the folder\\
They are implemented for arbitrary graphs that satisfy some traits defined in the library petgraph. For example from file \href{https://github.com/elvisrossi/ReactionSystems/blob/master/bisimilarity/src/bisimilarity_kanellakis_smolka.rs}{\(\texttt{bisimilarity\_kanellakis\_smolka.rs}\)}: \href{https://github.com/elvisrossi/ReactionSystems/tree/master/bisimilarity/src}{\(\texttt{bisimilarity/src}\)}.
They are implemented for arbitrary graphs that satisfy some traits defined in the library petgraph. For example from file\\
\href{https://github.com/elvisrossi/ReactionSystems/blob/master/bisimilarity/src/bisimilarity_kanellakis_smolka.rs}{\(\texttt{bisimilarity\_kanellakis\_smolka.rs}\)}:
\begin{minted}{Rust} \begin{minted}{Rust}
pub fn bisimilarity<'a, G>(graph_a: &'a G, graph_b: &'a G) -> bool pub fn bisimilarity<'a, G>(graph_a: &'a G, graph_b: &'a G) -> bool
@ -192,10 +194,10 @@ Reactions: (
\end{minted} \end{minted}
If we omit the last dot in the context: \mint{text}|Context: [{}.{inc}.{inc}.{dec}.{dec,inc}nill]| we obtain the following error message:\\\\ If we omit the last dot in the context: \mint{text}|Context: [{}.{inc}.{inc}.{dec}.{dec,inc}nill]| we obtain the following error message:\\\\
\texttt{Unrecognized token~}\rd{\texttt{"nill"}}\texttt{between positions 82 and 86.}\\ \texttt{Unrecognized token~}\rd{\texttt{"nill"}}\texttt{between positions 82 and 86.}\\ % chktex 18
\texttt{Expected: (}\green{\texttt{"."}}\texttt{)}\\ \texttt{Expected: (}\green{\texttt{"."}}\texttt{)}\\ % chktex 18 chktex 9
\texttt{Line 3 position 40 to 44:}\\ \texttt{Line 3 position 40 to 44:}\\
\blue{\texttt{3 |}}\green{\texttt{Context: [\{\}.\{inc\}.\{inc\}.\{dec\}.\{dec,inc\}}}\rd{\texttt{nill}}\texttt{]}\\ \blue{\texttt{3 |}}\green{\texttt{Context: [\{\}.\{inc\}.\{inc\}.\{dec\}.\{dec,inc\}}}\rd{\texttt{nill}}\texttt{]}\\ % chktex 9
\phantom{\texttt{be}}\blue{\texttt{|}}\texttt{~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}\rd{\texttt{\^{}~~\^{}}}\\ \phantom{\texttt{be}}\blue{\texttt{|}}\texttt{~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}\rd{\texttt{\^{}~~\^{}}}\\

Binary file not shown.

View File

@ -5,7 +5,8 @@
%% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - %% %% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - %%
\usepackage[ \usepackage[
centering centering,
head=13.6pt
]{geometry} ]{geometry}
\geometry{a4paper} \geometry{a4paper}
@ -23,10 +24,11 @@
\usepackage[a-3u,mathxmp]{pdfx} \usepackage[a-3u,mathxmp]{pdfx}
\directlua{pdf.setminorversion(5)}
\pagestyle{headings} \pagestyle{headings}
\usepackage{scrlayer-scrpage} \usepackage{scrlayer-scrpage}
\usepackage{csquotes} %% correct language also for citations
\ifoot[]{} \ifoot[]{}
\cfoot[]{} \cfoot[]{}
@ -61,7 +63,7 @@
\usepackage{stmaryrd} \usepackage{stmaryrd}
\usepackage{ebproof} \usepackage{ebproof}
\usepackage{xfrac} \usepackage{xfrac}
\usepackage{caption} %\usepackage{caption}
\usepackage{bytefield} \usepackage{bytefield}
%% plot packages %% plot packages
@ -81,6 +83,7 @@
\usepackage{makeidx} \usepackage{makeidx}
%% load last %% load last
\usepackage{csquotes} %% correct language also for citations
\usepackage{hyperref} %% links for table of contents, load last \usepackage{hyperref} %% links for table of contents, load last
\usepackage{bookmark} %% for better table of contents \usepackage{bookmark} %% for better table of contents
@ -166,7 +169,7 @@
bodyfont=\normalfont, bodyfont=\normalfont,
qed=\qedsymbol % chktex 1 qed=\qedsymbol % chktex 1
]{steo} ]{steo}
\declaretheorem[numbered=no, style=steo]{theorem} \declaretheorem[numbered=yes, style=steo]{theorem}
\declaretheoremstyle[ \declaretheoremstyle[
headfont=\normalfont\bfseries, headfont=\normalfont\bfseries,
@ -174,14 +177,14 @@
bodyfont=\normalfont, bodyfont=\normalfont,
qed=\qedsymbol % chktex 1 qed=\qedsymbol % chktex 1
]{slem} ]{slem}
\declaretheorem[numbered=no, style=slem]{lemma} \declaretheorem[numbered=yes, style=slem]{lemma}
\declaretheoremstyle[ \declaretheoremstyle[
headfont=\normalfont\bfseries, headfont=\normalfont\bfseries,
notefont=\mdseries, notefont=\mdseries,
bodyfont=\normalfont, bodyfont=\normalfont,
]{sdef} ]{sdef}
\declaretheorem[numbered=no, style=sdef]{definition} \declaretheorem[numbered=yes, style=sdef]{definition}
\declaretheoremstyle[ \declaretheoremstyle[
spaceabove=-6pt, spaceabove=-6pt,
@ -192,7 +195,7 @@
qed=$\blacksquare$, qed=$\blacksquare$,
headpunct={:} headpunct={:}
]{sprf} ]{sprf}
\declaretheorem[name={Proof}, style=sprf, numbered=no]{prof} \declaretheorem[name={Proof}, style=sprf, numbered=yes]{prof}
%% ......................................................................... %% %% ......................................................................... %%
%% local changes %% local changes

View File

@ -1,10 +1,10 @@
\begin{chapter}{Introduction} \begin{chapter}{Introduction}
Reaction System (RS) is a successful computational framework inspired by biological system, Reaction System (RS) is a successful computational framework inspired by biological systems,
first described in\ \cite{Ehrenfeucht_Rozenberg_2004, Ehrenfeucht_Rozenberg_2007}. first described in\ \cite{Ehrenfeucht_Rozenberg_2004, Ehrenfeucht_Rozenberg_2007}.
The interaction between biochemical reactions and the functioning of single reactions is based on the mechanisms of facilitation and inhibition. The interaction between biochemical reactions and the functioning of single reactions is based on the mechanisms of facilitation and inhibition.
Facilitation and inhibition are key concepts in molecular biology\ \cite{Clark_Pazdernik_McGehee_2018}: gene promoters, both in lower and higher organisms, function poorly or not at all in the absence of extra proteins known as gene activator proteins, or transcription factors. Facilitation and inhibition are key concepts in molecular biology\ \cite{Clark_Pazdernik_McGehee_2018}: gene promoters, both in lower and higher organisms, function poorly or not at all in the absence of extra proteins known as gene activator proteins, or transcription factors.
Other promoters may be inherently active: these are often controlled by a class of gene regulator proteins known as repressors that act to turn genes off. Other promoters may be inherently active: these are often controlled by a class of gene regulator proteins known as repressors that act to turn genes off.
Reaction Systems aims to models cell biology by represent this complex interaction between inducers and genes. Reaction Systems aims to models cell biology by representing this complex interaction between inducers and genes.
A Reaction System consists of a set of entities and a set of reactions over such entities. Each reaction if enabled produces a set of entities P (called products). A reaction is enabled if its set R (called reactants) is wholly present and if the set I (called inhibitors) of entities is completely absent. A Reaction System consists of a set of entities and a set of reactions over such entities. Each reaction if enabled produces a set of entities P (called products). A reaction is enabled if its set R (called reactants) is wholly present and if the set I (called inhibitors) of entities is completely absent.
The use of inhibitors induces non-monotonic behaviors that are difficult to analyze. The use of inhibitors induces non-monotonic behaviors that are difficult to analyze.

View File

@ -40,6 +40,7 @@ fn bisimilar_paige_tarjan_3() {
The structure of the two graph can be seen in figure\ \ref{graph_paige_tarjan_3}. The structure of the two graph can be seen in figure\ \ref{graph_paige_tarjan_3}.
\noindent
\begin{minipage}{\textwidth} \begin{minipage}{\textwidth}
\centering \centering
\begin{minipage}[b][][b]{0.25\textwidth} \begin{minipage}[b][][b]{0.25\textwidth}
@ -58,12 +59,13 @@ fn bisimilar_paige_tarjan_3() {
The graphs have been generated using ReactionSystemsGUI using the nodes displayed in figure\ \ref{generating_graphs}. Note that to differentiate the two edges exiting \(\texttt{node-1}\) additional entities \(\texttt{left}\) and \(\texttt{right}\) are used, but are not displayed because the function for displaying the edges masks only for \(\texttt{edge-1}\) and \(\texttt{edge-2}\). The graphs have been generated using ReactionSystemsGUI using the nodes displayed in figure\ \ref{generating_graphs}. Note that to differentiate the two edges exiting \(\texttt{node-1}\) additional entities \(\texttt{left}\) and \(\texttt{right}\) are used, but are not displayed because the function for displaying the edges masks only for \(\texttt{edge-1}\) and \(\texttt{edge-2}\).
\noindent
\begin{minipage}{\textwidth} \begin{minipage}{\textwidth}
\centering \centering
\begin{minipage}{0.8\textwidth} \begin{minipage}{0.8\textwidth}
\centering \centering
\includegraphics[width=\textwidth]{figures/straight_gui.png} \includegraphics[width=\textwidth]{figures/straight_gui.png}
\end{minipage}% \end{minipage}
\begin{minipage}{0.8\textwidth} \begin{minipage}{0.8\textwidth}
\centering \centering
@ -153,6 +155,7 @@ After 5 steps we arrive at state:
The execution of these examples is more computationally expensive with increasing \(n\). The execution of \(\texttt{mex10.system}\) took 78791.202 milliseconds to run the instruction\ \ref{instruction_mex} which generate the graph of the system, converts it to dot format and saves it.\vspace{1em} The execution of these examples is more computationally expensive with increasing \(n\). The execution of \(\texttt{mex10.system}\) took 78791.202 milliseconds to run the instruction\ \ref{instruction_mex} which generate the graph of the system, converts it to dot format and saves it.\vspace{1em}
\noindent
\begin{minipage}{\textwidth} \begin{minipage}{\textwidth}
\begin{minted}{Text} \begin{minted}{Text}
Digraph > Dot Digraph > Dot
@ -189,7 +192,7 @@ Digraph > Dot
\item \(\texttt{alloc::collections::btree::map::IntoIter::dying\_next}\) that took 14\% of samples, \item \(\texttt{alloc::collections::btree::map::IntoIter::dying\_next}\) that took 14\% of samples,
\item \(\texttt{<alloc::collections::btree::map::Iter as}\\\texttt{ core::iter::traits::iterator::Iterator>::next}\) that took 11\% of samples, \item \(\texttt{<alloc::collections::btree::map::Iter as}\\\texttt{ core::iter::traits::iterator::Iterator>::next}\) that took 11\% of samples,
\item \(\texttt{alloc::collections::btree::append::::bulk\_push}\) that took 11\% of samples, \item \(\texttt{alloc::collections::btree::append::::bulk\_push}\) that took 11\% of samples,
\item \(\texttt{alloc::collections::btree::map::BTreeMap::bulk\_build\_from\_sorted\_iter}\) that took 5,1\% of samples, \item {\small\(\texttt{alloc::collections::btree::map::BTreeMap::bulk\_build\_from\_sorted\_iter}\)}\\ that took 5,1\% of samples,
\item \(\ldots\) \item \(\ldots\)
\end{itemize} \end{itemize}