Barbed bisimulation
Barbed bisimulation refers to an notion of program equivalence which can be defined for any calculus equipped with
- a reduction (i.e. an unlabelled transition)
- a convergence predicate (i.e. some notion of observable behaviour)
As it is a bisimulation at heart, it is often used with process calculi, such as CCS or π-calculus. However, it can also be applied to functional systems too - and in fact has its roots in applicative bisimilarity.
Suppose we have a set
- a reduction relation
\rightarrow\ \subseteq \mathcal{T} \times \mathcal{T} , and - a predicate
\Downarrow on terms.
The unary predicate denotes convergence. That is,
- If we have a
\lambda -calculus it could mean thatP reduces to a whnf. - If we have a process calculus, it could mean that
P is able to perform a visible action\ell , i.e. thatP \xrightarrow{\ell} P' for some other processP' . This\ell is called the barb ("a sharp projection near the end of an arrow, fish hook, or similar object"). In this case it means thatP has not gone into livelock, computing forever without interacting with its environment.
Definition. A relation
- if
P \rightarrow P' thenQ \rightarrow Q' for someQ' withP' \sim Q' - if
P\Downarrow thenQ\Downarrow .
Definition. A relation
References
- Barbed bisimulation was first introduced in
@inproceedings{milner_1992,
address = {Berlin, Heidelberg},
series = {Lecture {Notes} in {Computer} {Science}},
title = {Barbed bisimulation},
volume = {623},
doi = {10.1007/3-540-55719-9_114},
booktitle = {Automata, {Languages} and {Programming}},
publisher = {Springer Berlin Heidelberg},
author = {Milner, Robin and Sangiorgi, Davide},
editor = {Kuich, W.},
year = {1992},
pages = {685--695}
}