<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">\documentclass[english]{article}
\usepackage[T1]{fontenc}
\usepackage[latin9]{inputenc}
\usepackage{amsthm}
\usepackage{amsmath}

\makeatletter
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Textclass specific LaTeX commands.
\numberwithin{equation}{section}
\numberwithin{figure}{section}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% User specified LaTeX commands.
% flag to use fancy fonts / graphics
\newif\ifjnf\jnftrue

\usepackage{tikz}
\usetikzlibrary{arrows}
\usetikzlibrary{shapes.arrows,chains}
\usetikzlibrary{positioning}
\usepackage{float}
\usepackage{cmtt}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{amsthm}
\usepackage{url}
\usepackage[margin=1in]{geometry}

\usepackage{csnotes}
\theoremstyle{plain}
\newtheorem*{proposition}{Proposition}

\makeatother

\usepackage{babel}
\begin{document}
\header{08 September 2011}{Robert Karmazin}


\section{Review}

\begin{itemize}
	\item $\mathcal{L} = \aleph \biguplus \bar{\aleph}$. Partition the set of actions
into two disjoint sets. Note that actions $a,\bar{a}$ are complementary
actions.

	\item $Act = \mathcal{L} \bigcup \left\{ \tau\right\} $, where $Act$ is the action-set.
	
	\item $P ::= A\langle\vec{a}\rangle \vert 
		\displaystyle\sum\limits_{i \in I} \alpha_i .P_i \vert 
		P_1|P_2  \vert 
		\textrm{new} \alpha P $
	
	\item Recall the rules necessary for structural congruence
	\begin{itemize}
	\item Sum: $\dfrac{}{M+\alpha .P + N \stackrel{\alpha}{\rightarrow}P}$
	\item React: $\dfrac{P \stackrel{\lambda}\rightarrow P^\prime , Q \stackrel{\bar{\lambda}}\rightarrow Q^\prime}
		{P \vert Q \stackrel{\tau}\rightarrow P^\prime \vert Q^\prime}$ 
	\item Par-L: $\dfrac{P \stackrel{\alpha}\rightarrow P^\prime}
		{P \vert Q \stackrel{\alpha}\rightarrow P^\prime \vert Q}$ 
	\item Par-R: $\dfrac{Q \stackrel{\alpha}\rightarrow Q^\prime}
		{P \vert Q \stackrel{\alpha}\rightarrow P \vert Q'}$ 
	\item Res: $\dfrac{P \stackrel{\alpha}\rightarrow P^\prime} 
		{\textrm{new} \alpha P \stackrel{\alpha}\rightarrow \textrm{new} \alpha P^\prime} 
		\textrm{ if } \alpha \notin \left\{a, \bar{a}\right\}$
	\item Ident: $\dfrac{\lbrace \frac{\vec{b}}{\vec{a}} \rbrace P_A \stackrel{\alpha}\rightarrow P^\prime}
		{A\langle \vec{b} \rangle \stackrel{\alpha}\rightarrow P^\prime} 
		\textrm{ if } A(\vec{a}) \overset{\underset{\mathrm{def}}{}}{=} P_A $
	\end{itemize}
	
\end{itemize}


\section{Notion of Bisimulation}


\begin{figure}[h]
\centering
\begin{tikzpicture}
\begin{scope}
	\node (origin) at (0,0) [draw,shape=circle] {A};
	\node (A1)     at (-1,-1) [circle,draw,fill] {}
		edge [&lt;-] node[auto] {a} (origin);
	\node (A2)     at ( 1,-1) [circle,draw,fill] {}
		edge [&lt;-] node[auto,swap] {a} (origin);
	\node (B)      at (-1,-2) [] {}
		edge [&lt;-] node[auto] {b} (A1);
	\node (C)      at ( 1,-2) [] {}
		edge [&lt;-] node[auto,swap] {c} (A2);
\end{scope}

\begin{scope}[xshift=5cm]
	\node (origin) at (0,0) [draw,shape=circle] {B};
	\node (A)     at (0,-1) [draw,shape=circle,fill] {}
		edge [&lt;-] node[auto] {a} (origin);
	\node (B)      at (-1,-2) [] {}
		edge [&lt;-] node[auto] {b} (A);
	\node (C)      at ( 1,-2) [] {}
		edge [&lt;-] node[auto,swap] {c} (A);
\end{scope}
\end{tikzpicture}
\end{figure}

\noindent The language of A: $\mathcal{L}(A) = \lbrace \textrm{ab, ac} \rbrace $. 
The language of B: $\mathcal{L}(B) = \lbrace \textrm{ab, ac} \rbrace $. 
Both processes recognize the same language. However, as can be seen, 
B simulates A, but A does not simulate B. Therefore, language equivalence is not good enough.

\subsection{Example: One-place buffer}

Let $P(x,x^\prime,y,y^\prime)=x. \bar{y} .P \langle x,x^\prime,y,y^\prime \rangle + y^\prime\bar .{x}^\prime .P \langle x,x^\prime,y,y^\prime \rangle $

\noindent Let A be an instance of P:
\begin{align*}
	A &amp;= P \langle a,a^\prime,b,b^\prime \rangle \\
	&amp;\equiv a. \bar{b} .A + b^\prime .\bar{a}^\prime .A
\end{align*}


\begin{figure}[h] 
\centering
\begin{tikzpicture}
\begin{scope}
	\node (origin) at (0,0) [draw,shape=circle] {$A$};
	\draw[fill=black] (45:0.45cm) circle (1mm) node[anchor=south] {$\bar{b}$};
	\draw[fill=black] (135:0.45cm) circle (1mm) node[anchor=south] {$a$};
	\draw[fill=black] (225:0.45cm) circle (1mm) node[anchor=north] {$\bar{a}^\prime$};
	\draw[fill=black] (315:0.45cm) circle (1mm) node[anchor=north] {$b^\prime$};
	\draw[very thick]  (45:0.45cm) -- +(1,0);
	\draw[very thick]  (135:0.45cm) -- +(-1,0);
	\draw[very thick]  (225:0.45cm) -- +(-1,0);
	\draw[very thick]  (315:0.45cm) -- +(1,0);
	\draw[-&gt;] (-7mm,8mm) -- (7mm,8mm);
	\draw[&lt;-] (-7mm,-8mm) -- (7mm,-8mm);
	%\draw[very thick] (current bounding box.south west) rectangle (current bounding box.north east);
\end{scope}
\begin{scope}[xshift=6cm]
	\node (origin) at (0,0) [draw,shape=circle] {$A$};
	\node (A1)     at (1, 2) [draw,shape=circle] {$\bar{b} .A$}
		edge [&lt;-, bend left=30] node[auto]      {$a$} (origin)
		edge [-&gt;, bend right=30] node[auto,swap] {$\bar{b}$} (origin);
	\node (A2)     at (1,-2) [draw,shape=circle] {$\bar{a}^\prime .A$}
		edge [-&gt;, bend left=30] node[auto]      {$\bar{a}^\prime$} (origin)
		edge [&lt;-, bend right=30] node[auto,swap] {$b^\prime$} (origin);
	\node (text) at (5,0) {%
	    \begin{minipage}{0.30\textwidth}
	    	$Act$, $\overline{Act}$ are complementary; by convention, 
	    	$\overline{Act}$ is designated as output 
	    \end{minipage}
	};
\end{scope}
\end{tikzpicture}
\caption {Structural diagram (left) and labeled transition system (right) of a one-place buffer}
\end{figure}

\subsection{Example: Two-place buffer}

Define another process B, also an instance of P:
\begin{align*}
	B &amp;= P \langle b,b^\prime,c,c^\prime \rangle \\
	&amp;\equiv b. \bar{c} .B + c^\prime .\bar{b}^\prime .B
\end{align*}

\noindent A Two-place buffer is the parallel composition of processes A and B, $(A \vert B)$

\begin{figure}[h]
\centering
\begin{tikzpicture}
	\node (origin) at (0,0) [draw,shape=circle] {$A$};
	\draw[fill=black] (45:0.45cm) circle (1mm) node[anchor=south] {$\bar{b}$};
	\draw[fill=black] (135:0.45cm) circle (1mm) node[anchor=south] {$a$};
	\draw[fill=black] (225:0.45cm) circle (1mm) node[anchor=north] {$\bar{a}^\prime$};
	\draw[fill=black] (315:0.45cm) circle (1mm) node[anchor=north] {$b^\prime$};
	\node at (4,0) [draw,shape=circle] {$B$};
	\draw[fill=black] (4,0) +(45:0.45cm) circle (1mm) node[anchor=south] {$\bar{c}$};
	\draw[fill=black] (4,0) +(135:0.45cm) circle (1mm) node[anchor=south] {$b$};
	\draw[fill=black] (4,0) +(225:0.45cm) circle (1mm) node[anchor=north] {$\bar{b}^\prime$};
	\draw[fill=black] (4,0) +(315:0.45cm) circle (1mm) node[anchor=north] {$c^\prime$};
	\draw[very thick]  (4,0) +(135:0.45) -- (45:0.45cm);
	\draw[very thick] (135:0.45cm) -- +(-1,0);
	\draw[very thick] (225:0.45cm) -- +(-1,0);
	\draw[very thick] (4,0) +(225:0.45) --  (315:0.45cm);
	\draw[very thick] (4,0) ++(45:0.45cm) -- + (1,0);
	\draw[very thick] (4,0) ++(315:0.45cm) --  +(1,0);
	\draw[-&gt;] (0,8mm) -- (4,8mm);
	\draw[&lt;-] (0,-8mm) -- (4,-8mm);
	%\draw[very thick] (current bounding box.south west) rectangle (current bounding box.north east);
\end{tikzpicture}
\caption {Structural Diagram for two-place buffer}
\end{figure}

\begin{figure}[h]
\centering
\begin{tikzpicture}
	\node (origin) at (0,0) {new $b\ b^\prime (A \vert B)$};
	\node (A1) [above right=of origin] {new $b\ b^\prime (\bar{b}.A \vert B)$}
		edge [&lt;-] node[auto,swap] {$a$} (origin);
	\node (A2) [right=of A1] {new $b\ b^\prime (A \vert \bar{c} .B)$}
		edge [&lt;-] node[auto,swap] {$\tau$} (A1)
		edge [-&gt;,bend right=50] node[auto,swap] {$\bar{c}$} (origin);
	\node (A3) [right=of A2] {new $b\ b^\prime (\bar{b} A \vert \bar{c} .B)$}
		edge [&lt;-] node[auto,swap] {$a$} (A2)
		edge [-&gt;,bend left=15] node[auto] {$\bar{c}$} (A1);
	\node (B1) [below right=of origin] {new $b\ b^\prime (A \vert \bar{b} .B)$}
		edge [&lt;-] node[auto] {$c^\prime$} (origin);
	\node (B2) [right=of B1] {new $b\ b^\prime (\bar{a}^\prime .A \vert B)$}
		edge [&lt;-] node[auto] {$\tau$} (B1)
		edge [-&gt;,bend left=50] node[auto] {$\bar{a}^\prime$} (origin);
	\node (B3) [right=of B2] {new $b\ b^\prime (\bar {a}^\prime A \vert \bar{b}^\prime.B)$}
		edge [&lt;-] node[auto] {$c^\prime$} (B2)
		edge [-&gt;,bend right=15] node[auto,swap] {$\bar{a}^\prime$} (B1);
	\node (D) [below right=of A1] {new $b\ b^\prime (\bar{b} .A \vert \bar{b}^\prime.B)$}
		edge [&lt;-] node[auto] {$c^\prime$} (A1)
		edge [&lt;-] node[auto,swap] {$a$} (B1);
\end{tikzpicture}
\caption {Labeled Transition System for a two-place buffer}
\end{figure}

\subsection{Example: Semaphores}

\begin{figure}[H]
\centering
\begin{tikzpicture}
	\node (origin) at (0,0) [draw,shape=circle] {$S^{(1)}$};
	\draw[fill=black] (0:0.5cm) circle (1mm) node[anchor=west] {${V}$};
	\draw[fill=black] (180:0.5cm) circle (1mm) node[anchor=east] {${P}$};
\end{tikzpicture}
\caption {Structural Diagram for a one-place semaphore}
\end{figure}

Consider the definitions below for one-ary (left) and two-ary (right) semaphores:
\vspace{-0.75cm}

\begin{center}
\begin{minipage}[t] {2in}
\begin{align*}
	S^{(1)} &amp;= p.S^{(1)}_1 \\
	S^{(1)}_1 &amp;= v.S^{(1)}
\end{align*}
\end{minipage}
\begin{minipage}[t] {2in}
\begin{align*}
	S^{(2)} &amp;= p.S^{(2)}_1 \\
	S^{(2)}_1 &amp;= p.S^{(2)}_2 +  v.S^{(2)} \\
	S^{(2)}_2 &amp;= v.S^{(2)}_1 
\end{align*}
\end{minipage}
\end{center}

\begin{proposition}
$S^{(1)} \vert S^{(1)} \sim S^{(2)}$
\end{proposition}
\begin{proof}
Proving this is equivalent to showing that: 
\begin{align*}
\mathcal{R} = \lbrace &amp; (S^{(1)} \vert S^{(1)}, S^{(2)}),(S^{(1)}_1 \vert S^{(1)}, S^{(2)}_1), \\
	&amp; (S^{(1)} \vert S^{(1)}_1, S^{(2)}_1), (S^{(1)}_1 \vert S^{(1)}_1, S^{(2)}_2)\rbrace
\end{align*}

\noindent This is a strong bisimulation, since, for every transition in $S^{(1)} \vert S^{(1)}$, there is a transition in $S^{(2)}$. 
Therefore, $S^{(1)} \vert S^{(1)}$ and $S^{(2)}$ are bisimilar $(\sim)$
\end{proof}

\section{Strong Simulation}
\begin{definition}
$[$Strong Simulation up to $\equiv \mathrm{(structural congruence)}]$

\noindent A binary relation $S$ is a strong simulation up to $\equiv$ if, whenever $P S Q$, if $P \stackrel{\alpha} \rightarrow P^\prime$ 
then  $\exists Q^\prime$ such that  $Q \stackrel{\alpha} \rightarrow Q^\prime$ and $P^\prime \equiv S \equiv Q^\prime$.
\end{definition}

\noindent Note: $P^\prime \equiv S \equiv Q^\prime$ is a relational composition

\begin{figure}[h]
\centering
\begin{tikzpicture}
	\node (P) at (-0.75,1) {$P$};
	\node (S) at (0,1) {$S$};
	\node (Q) at (0.75,1) {$Q$};
	\node (Pp) at (-1,0) {$P^\prime$}
		edge [&lt;-] node[auto] {$\alpha$} (P);
	\node (Sp) at (0,0) {$\equiv S \equiv$};
	\node (Qp) at (1,0) {$Q^\prime$}
		edge [&lt;-] node[auto,swap] {$\alpha$} (Q);
\end{tikzpicture}
\caption {Criteria for Strong Simulation}
\end{figure}

\begin{proposition}
If $S$ is a strong bisimulation of up to $\equiv$ and $PSQ$, then $P \sim Q$
\end{proposition}

\begin{proof}
We must show that $\equiv S \equiv$ is a strong bisimulation. If this is true, then $P \sim Q$. Let $P \equiv S \equiv Q$ and 
$P \stackrel{\alpha} \rightarrow P^\prime$. We want to find a $Q^\prime$ that completes the following:

\begin{center}
\begin{tikzpicture}
	\node (P) at (-1,1) {$P$};
	\node (S) at (0,1) {$\equiv S \equiv$};
	\node (Q) at (1,1) {$Q$};
	\node (Pp) at (-1,0) {$P^\prime$}
		edge [&lt;-] node[auto] {$\alpha$} (P);
	\node (Sp) at (0,0) {$\equiv S \equiv$};
	\node (Qp) at (1,0) {$Q^\prime$}
		edge [&lt;-] node[auto,swap] {$\alpha$} (Q);
\end{tikzpicture}
\end{center}

\noindent Note that for some $P_1$ and $Q_1$, $P \equiv P_1$, $P_1 S Q_1$,  and $Q_1 \equiv Q$.
Given the transitivity of $\equiv$,

\begin{center}
\begin{tikzpicture}
	\node (P) at (-1.5,1) {$P \equiv$};
	\node (P1) at (-0.5,1) {$P_1$};
	\node (S) at (0,1) {$S$};
	\node (Q1) at (0.5,1) {$Q_1$};
	\node (Q) at (1.5,1) {$\equiv Q$};

	\node (Pp) at (-2,-0.5) {$P^\prime \equiv$}
		edge [&lt;-] node[left] {$\alpha$} (P);
	\node (P1p) at (-1,-0.5) {$P^\prime_1$}
		edge [&lt;-] node[left] {$\alpha$} (P1);
	\node (Sp) at (0,-0.5) {$\equiv S \equiv$};
	\node (Q1p) at (1,-0.5) {$Q^\prime_1$}
		edge [&lt;-] node[right] {$\alpha$} (Q1);
	\node (Qp) at (2,-0.5) {$\equiv Q^\prime$}
		edge [&lt;-] node[right] {$\alpha$} (Q);
\end{tikzpicture}
\end{center}

\noindent Given that structural congruence is a strong bisimulation, and the transitivity of $\equiv$, we have $P \sim Q$.

\end{proof}

\subsection {Another Example}

\begin{center}
\begin{minipage}[t] {2in}
\begin{center}
\begin{align*}
	D &amp;= a. \tau .D^\prime \\
	D^\prime &amp;= a.D^{\prime\prime} + \bar{c}.D \\
	D^{\prime\prime} &amp;= \bar{c}. \tau .D^\prime
\end{align*}
\begin{tikzpicture}
	\node (D) at (0,0) {$D$};
	\node (tDp) at (2,0) {$\tau .D^\prime$}
		edge [&lt;-,bend right=15] node[auto,swap] {$a$} (D);
	\node (Dp) at (4,0) {$D^\prime$}
		edge [&lt;-,bend right=15] node[auto,swap] {$\tau$} (tDp)
		edge [-&gt;,bend left=30] node[auto] {$\bar{c}$} (D);
	\node (Dpp) at(4,2) {$D^{\prime\prime}$}
		edge [&lt;-,bend left=15] node[auto] {$a$} (Dp)
		edge [-&gt;,bend right=20] node[auto,swap] {$\bar{c}$} (tDp);
\end{tikzpicture}
\end{center}
\end{minipage}
\begin{minipage}[t] {4in}
\begin{center}
\begin{align*}
	A &amp;= a.A^\prime \\
	A^\prime &amp;= \bar{b} .A \\
	B &amp;= b.B^\prime \\
	B^\prime &amp;= \bar{c} .B
\end{align*}
\begin{tikzpicture}
	\node (AB) at (0,0) {new $b(A \vert B)$};
	\node (ApB) at (3,0) {new $b(A^\prime \vert B)$}
		edge [&lt;-,bend right=15] node[auto,swap] {$a$} (AB);
	\node (ABp) at (6,0) {new $b(A \vert B^\prime)$}
		edge [&lt;-,bend right=15] node[auto,swap] {$\tau$} (ApB)
		edge [-&gt;,bend left=30] node[auto] {$\bar{c}$} (AB);
	\node (ApBp) at (6,2) {new $b(A^\prime \vert B^\prime)$}
		edge [&lt;-,bend left=15] node[auto] {$a$} (ABp)
		edge [-&gt;,bend right=20] node[auto,swap] {$\bar{c}$} (ApB);
\end{tikzpicture}
\end{center}
\end{minipage}
\end{center}

\noindent These two processes bisimulate each other. If the rules for the left-hand process were changed to
$D = a .\tau .\tau .D^\prime$ and $D^{\prime\prime} = \bar{c} .\tau .\tau .D^\prime$, then they are no longer a strong bisimulation.
However, they are still weakly bisimilar.

\section {Algebraic Properties}

\begin{itemize}
\item $a \vert b \sim a.b + b.a$
 
\item $\forall P, P \sim \displaystyle\sum \lbrace \alpha .P^\prime \vert P \stackrel{\alpha}{\rightarrow} P^\prime \rbrace$
\end{itemize}


\end{document}

</pre></body></html>