215 lines
No EOL
8.8 KiB
TeX
215 lines
No EOL
8.8 KiB
TeX
\documentclass[99-notes-packed.tex]{subfiles}
|
|
|
|
\begin{document}
|
|
|
|
\begin{background}[lattice]
|
|
A \textbf{lattice} describes a real coordinate space $\mathbb{R}^n$ that satisfies:
|
|
\begin{itemize}
|
|
\item {
|
|
Addition / subtraction between two points always produce another point in lattice -- i.e., closed under addition / subtraction.
|
|
}
|
|
\item {
|
|
Lattice points are separated by bounded distances in some range $(0, \mathrm{max}]$.
|
|
}
|
|
\end{itemize}
|
|
\end{background}
|
|
|
|
Define a lattice over which \textit{semantic equivalence relations} for spec. and impl. verification is defined.
|
|
|
|
\begin{background}[reflexivity]
|
|
\begin{equation*}
|
|
\forall x \in X: x \circ x \iff \circ\ \mathrm{reflexive\ on}\ X
|
|
\end{equation*}
|
|
\end{background}
|
|
|
|
\begin{background}[symmetry]
|
|
\begin{equation*}
|
|
\forall x, y \in X:
|
|
\begin{prooftree}
|
|
\hypo{x \circ y}
|
|
\infer1{y \circ x}
|
|
\end{prooftree}
|
|
\iff \circ\ \mathrm{symmetric\ on}\ X
|
|
\end{equation*}
|
|
\end{background}
|
|
|
|
\begin{background}[transitivity]
|
|
\begin{equation*}
|
|
\forall x, y, z \in X:
|
|
\begin{prooftree}
|
|
\hypo{x \circ y}
|
|
\hypo{y \circ z}
|
|
\infer2{x \circ z}
|
|
\end{prooftree}
|
|
\iff \circ\ \mathrm{transitive\ on}\ X
|
|
\end{equation*}
|
|
\end{background}
|
|
|
|
\begin{background}[equivalence relation]
|
|
\textbf{Equivalence relation} on set $X$ satisfies reflexivity, symmetry, and transitivity on $X$.
|
|
\end{background}
|
|
|
|
\begin{definition}[discrimination measure]
|
|
One equivalence relation $\equiv$ is \textbf{finer} / \textbf{more discriminating} than another $\sim$ if each $\equiv$-eq. class is a subset of a $\sim$-eq. class. In other words,
|
|
\begin{align*}
|
|
\ &p \equiv q \implies p \sim q \\
|
|
\iff\ &\equiv\ \mathrm{finer\ than}\ \sim
|
|
\end{align*}
|
|
|
|
In other words, $\equiv$ creates finer partitions on its domain compared to $\sim$.
|
|
\end{definition}
|
|
|
|
\paragraph*{Trace Equivalence}
|
|
\begin{definition}[path]
|
|
A \textbf{path} of a process $p$ is an alternating sequence of states and transitions starting from state $p$. It can be infinite or ending in a state.
|
|
|
|
A path is \textbf{complete} if it is either infinite or ends in a state where no further transitions are possible -- a maximal path.
|
|
\end{definition}
|
|
|
|
\begin{definition}[complete trace]
|
|
A \textbf{complete trace} of process $p$ is the sequence of labels of transitions in a complete path.
|
|
|
|
The set of finite complete traces of process $p$ is denoted as ${CT}^{fin}(p)$, while the set of all finite/infinite complete traces of $p$ is ${CT}^{\infty}(p)$ -- aka. $CT(p)$ from now on.
|
|
\end{definition}
|
|
|
|
\begin{example}[${CT}^{\infty}$]
|
|
\begin{equation*}
|
|
{CT}^{\infty}(a.(\varepsilon + b.\delta)) = \{a\checkmark, ab\}
|
|
\end{equation*}
|
|
\end{example}
|
|
|
|
\begin{definition}[partial trace]
|
|
Likewise, a \textbf{partial trace} of a process $p$ is the sequence of labels of transitions in any partial path.
|
|
|
|
We also likewise define ${PT}^{fin}(p)$ and ${PT}^{\infty}(p)$ for some process $p$. Define $PT(p)$ as ${PT}^{fin}(p)$.
|
|
\end{definition}
|
|
|
|
\begin{definition}[$=_{PT}$]
|
|
Processes $p, q$ are \textbf{partial trace equivalent} ($p =_{PT} q$) if they have the same partial traces:
|
|
\begin{equation*}
|
|
p =_{PT} q \iff PT(p) = PT(q)
|
|
\end{equation*}
|
|
|
|
Mirroring the differences between ${PT}^{fin}$ and ${PT}^{\infty}$, define \textbf{finitary partial trace equivalence} ($=_{{PT}^{fin}}$) and \textbf{infinitary partial trace equivalence} ($=_{{PT}^{\infty}}$).
|
|
\end{definition}
|
|
|
|
\begin{definition}[$=_{CT}$]
|
|
Processes $p, q$ are \textbf{complete trace equivalent} ($p =_{CT} q$) if \underline{moreover} they have the same complete traces:
|
|
\begin{equation*}
|
|
p =_{CT} q \iff CT(p) = CT(q)
|
|
\end{equation*}
|
|
|
|
Mirroring the differences between ${CT}^{fin}$ and ${CT}^{\infty}$, define \textbf{finitary complete trace equivalence} ($=_{{CT}^{fin}}$) and \textbf{infinitary complete trace equivalence} ($=_{{CT}^{\infty}}$).
|
|
\end{definition}
|
|
|
|
\paragraph*{Weak Equivalences and $\tau$-actions}
|
|
\begin{definition}[strong equivalence]
|
|
A \textbf{strong equivalence} relation treats $\tau$ like any other (observable) action.
|
|
|
|
We assume above definitions for e.g., $=_{PT}$ to be assuming strong equivalence.
|
|
\end{definition}
|
|
|
|
\begin{definition}[weak equivalence]
|
|
In its mirror case, a \textbf{weak equivalence} treats $\tau$ as if it is omitted from the input processes.
|
|
|
|
We additionally define weak variants of the above 4 equivalences: $=_{{WPT}^{fin}}$, $=_{{WPT}^{\infty}}$, $=_{{WCT}^{fin}}$, $=_{{WCT}^{\infty}}$.
|
|
\end{definition}
|
|
|
|
\paragraph*{Bisimulation Equivalence}
|
|
\begin{definition}[bisimulation]
|
|
Let $A, P$ define the actions and predicates of an LTS (in addition to states, etc.). A \textbf{bisimulation} is a binary relation $\circ \subseteq S \times S$ satisfying:
|
|
\begin{itemize}
|
|
\item $
|
|
s \circ t \implies
|
|
(\forall p \in P: s \models p \iff t \models p)
|
|
$
|
|
\item $
|
|
s \circ t \wedge (\exists a \in A: s \xrightarrow{a} s^{'}) \implies
|
|
(\exists t^{'}: t \xrightarrow{a} t^{'}) \wedge s^{'} \circ t^{'}
|
|
$
|
|
\item $
|
|
s \circ t \wedge (\exists a \in A: t \xrightarrow{a} t^{'}) \implies
|
|
(\exists s^{'}: s \xrightarrow{a} s^{'}) \wedge s^{'} \circ t^{'}
|
|
$
|
|
\end{itemize}
|
|
|
|
Bisimulation (aka. \textbf{bisimulation equivalence}) is an equivalence relation. In general, bisimulation differentiates branching structure of processes.
|
|
\end{definition}
|
|
|
|
\begin{definition}[bisimilarity]
|
|
Two states $s, t$ are bisimilar ($s \underline{\leftrightarrow} t$) if such a bisimulation $\circ$ exists between $s, t$.
|
|
\end{definition}
|
|
|
|
\begin{definition}[branching bisimulation]
|
|
Given $A, P$ upon LTS, weaken \underline{bisimulation} as follows: a \textbf{branching bisumlation} is a binary relation $\circ \subseteq S \times S$ satisfying:
|
|
\begin{enumerate}
|
|
\item {$
|
|
s \circ t \wedge (\exists p \in P: s \models p) \implies
|
|
\exists t_1: t \rightsquigarrow t_1 \models p \wedge s \circ t_1
|
|
$ \label{def.bbeq.sat.1}}
|
|
\item {$
|
|
s \circ t \wedge (\exists p \in P: t \models p) \implies
|
|
\exists s_1: s \rightsquigarrow s_1 \models p \wedge s_1 \circ t
|
|
$ \label{def.bbeq.sat.2}}
|
|
\item {$
|
|
\begin{aligned}
|
|
&s \circ t \wedge (\exists a \in A_{\tau}: s \xrightarrow{a} s^{'}) \\
|
|
\implies &\exists t_1, t_2, t^{'}: t \rightsquigarrow t_1 \xrightarrow{(a)} t_2 = t^{'} \wedge s \circ t_1 \wedge s^{'} \circ t^{'}
|
|
\end{aligned}
|
|
$ \label{def.bbeq.sat.3}}
|
|
\item {$
|
|
\begin{aligned}
|
|
&s \circ t \wedge (\exists a \in A_{\tau}: t \xrightarrow{a} t^{'}) \\
|
|
\implies &\exists s_1, s_2, s^{'}: s \rightsquigarrow s_1 \xrightarrow{(a)} s_2 = s^{'} \wedge s_1 \circ t \wedge s^{'} \circ t^{'}
|
|
\end{aligned}
|
|
$ \label{def.bbeq.sat.4}}
|
|
\end{enumerate}
|
|
where:
|
|
\begin{itemize}
|
|
\item $
|
|
\begin{aligned}
|
|
&s \rightsquigarrow s^{'} \\
|
|
\iff &\exists n \ge 0: \exists s_0, \dots, s_n:
|
|
s = s_0 \xrightarrow{\tau} \dots \xrightarrow{\tau} s_n = s^{'}
|
|
\end{aligned}
|
|
$
|
|
\item $
|
|
A_{\tau} \coloneq A \cup \{\tau\}
|
|
$
|
|
\item $
|
|
s \xrightarrow{(a)} s^{'} \coloneq
|
|
\begin{cases*}
|
|
s \xrightarrow{a} s^{'} & if $a \in A$ \\
|
|
s \xrightarrow{\tau} s^{'} \vee s = s^{'} & if $a = \tau$
|
|
\end{cases*}
|
|
$
|
|
\end{itemize}
|
|
|
|
Two processes $p, q$ are branching bisimilar ($p \underline{\leftrightarrow}_{b} t$) if such a binary relation $\circ$ exists.
|
|
\end{definition}
|
|
|
|
\begin{definition}[delay bisimulation]
|
|
Given $\underline{\leftrightarrow}_{b}$, drop requirements $s \circ t_1$ and $s_1 \circ t$, thus producing $\underline{\leftrightarrow}_{d}$.
|
|
\end{definition}
|
|
|
|
\begin{definition}[weak bisimulation]
|
|
Given $\underline{\leftrightarrow}_{b}$,
|
|
\begin{itemize}
|
|
\item Drop requirements $s \circ t_1$, $s_1 \circ t$;
|
|
\item Relax $t_2 = t^{'}$ and $s_2 = s^{'}$ to $t_2 \rightsquigarrow t^{'}$ and $s_2 \rightsquigarrow s^{'}$, respectively.
|
|
\end{itemize}
|
|
Thus producing $\underline{\leftrightarrow}_{w}$.
|
|
\end{definition}
|
|
|
|
\paragraph*{Language Equivalence} This paragraph is moved here for ergonomics.
|
|
\begin{definition}[language equivalence]
|
|
Processes $p, q$ are \textbf{language equivalent} if they have the same traces leading to terminating states -- i.e., equal subset of terminating partial traces.
|
|
|
|
Intuitively (and indeed) this is coarser than partial trace equivalence.
|
|
\end{definition}
|
|
|
|
\paragraph*{Overview: The Hasse Diagram}
|
|
\dots
|
|
|
|
|
|
\end{document} |