SpecVer:O projekcie
To jest formuła α⟹Kβ
Próba
((αβ))
Zacznijmy od tego, że jest tautologią każda formuła o nastepujacym schemacie \[S \alpha \implies S \alpha \] a więc także formuła postaci \[S: \left \{ P;M
I większa formuła
\begin{array}{l} S: \left \{ \begin{array}{l} \color{red}P: \color{black}\delta:=true; n1:=n; \\
\color{red} M:\color{black} \left ( \begin{array}{l}
\mathbf{if} \ \delta\\
\mathbf{then} \\
\quad K\\ \mathbf{fi}
\end{array} \right )^i
\end{array} \color{black} \right \}\alpha \implies
S^2: \left \{ \begin{array}{l} \color{red}P: \color{black}\delta:=true; n1:=n; \\
\color{red} M:\color{black} \left ( \begin{array}{l}
\mathbf{if} \ \delta\\
\mathbf{then} \\
\quad K\\ \mathbf{fi}
\end{array} \right )^i ; \\
\color{red}P: \color{black}\delta:=true; n1:=n; \\
\color{red} M:\color{black} \left ( \begin{array}{l}
\mathbf{if} \ \delta\\
\mathbf{then} \\
\quad K\\ \mathbf{fi}
\end{array} \right )^i
\end{array} \color{black} \right \}\alpha \end{array}
popatrzmy
\begin{array}{l}
\mathbf{var}\ T:\ arrayof\ Traverser; \\ \\
\left \{ \begin{array}{l}
\mathbf{unit}\ Traverser:\ \mathbf{coroutine}(n: node); \\
\quad \mathbf{var}\ kolejny:\ integer; \\
\left \vert \begin{array}{l}
\quad \mathbf{unit}\ traverse:\ \mathbf{procedure}(m:\ node); \\
\quad \mathbf{begin} \\
\qquad \mathbf{if}\ m \neq none \\
\qquad \mathbf{then} \\
\qquad\ \ \ \mathbf{call}\ traverse(m.left); \\
\qquad\ \ \ kolejny:=m.val; \\
\qquad \ \ \ \mathbf{detach};\ \ (*\ instrukcja\ \mathbf{detach}\ wznawia \\
\qquad \ \quad \ \ \ \ wspolprogram\ w,\ ktory\ ostatnio\ uaktywnil\ \\
\qquad \ \quad \ \ \ \ ten\,(\mathrm{this})\ obiekt\ Traverser\ wykonujac\ \mathbf{attach}(.)\ *) \\
\qquad\ \ \ \mathbf{call}\ traverse(m.right); \\
\qquad \mathbf{fi} \\
\quad \mathbf{end}\ traverse;
\end{array} \right . \\
\mathbf{begin} \\
\quad \mathbf{return}; \\
\quad \mathbf{call}\ traverse(n) \\
\mathbf{end}\ Traverser;
\end{array} \right . \\