Bisimulation

Revision as of 16:03, 28 May 2025 by imported>WilliamGHLaws (→‎growthexperiments-addlink-summary-summary:2|1|0)
(diff) ← Previous revision | Latest revision (diff) | Newer revision → (diff)

Template:Short description Template:More citations needed In theoretical computer science a bisimulation is a binary relation between state transition systems, associating systems that behave in the same way in that one system simulates the other and vice versa.

Intuitively two systems are bisimilar if they, assuming we view them as playing a game according to some rules, match each other's moves. In this sense, each of the systems cannot be distinguished from the other by an observer.

Formal definitionEdit

Given a labeled state transition system Template:Math, where Template:Mvar is a set of states, <math>\Lambda</math> is a set of labels and → is a set of labelled transitions (i.e., a subset of <math>S \times \Lambda \times S</math>), a bisimulation is a binary relation <math>R \subseteq S \times S</math>, such that both Template:Mvar and its converse <math>R^T</math> are simulations. From this follows that the symmetric closure of a bisimulation is a bisimulation, and that each symmetric simulation is a bisimulation. Thus some authors define bisimulation as a symmetric simulation.<ref>Template:Cite journal</ref>

Equivalently, Template:Mvar is a bisimulation if and only if for every pair of states <math>(p,q)</math> in Template:Mvar and all labels λ in <math>\Lambda</math>:

  • if <math>p \mathrel{\overset{\lambda}{\rightarrow}} p'</math>, then there is <math>q \mathrel{\overset{\lambda}{\rightarrow}} q'</math> such that <math>(p',q') \in R</math>;
  • if <math>q \mathrel{\overset{\lambda}{\rightarrow}} q'</math>, then there is <math>p \mathrel{\overset{\lambda}{\rightarrow}} p'</math> such that <math>(p',q') \in R</math>.

Given two states Template:Mvar and Template:Mvar in Template:Mvar, Template:Mvar is bisimilar to Template:Mvar, written <math>p \, \sim \, q</math>, if and only if there is a bisimulation Template:Mvar such that <math>(p, q) \in R</math>. This means that the bisimilarity relation Template:Resize is the union of all bisimulations: <math>(p,q) \in\,\sim\,</math> precisely when <math>(p, q) \in R</math> for some bisimulation Template:Mvar.

The set of bisimulations is closed under union;<ref group="Note">Meaning the union of two bisimulations is a bisimulation.</ref> therefore, the bisimilarity relation is itself a bisimulation. Since it is the union of all bisimulations, it is the unique largest bisimulation. Bisimulations are also closed under reflexive, symmetric, and transitive closure; therefore, the largest bisimulation must be reflexive, symmetric, and transitive. From this follows that the largest bisimulation—bisimilarity—is an equivalence relation.<ref>Template:Cite book</ref>

Alternative definitionsEdit

Relational definitionEdit

Bisimulation can be defined in terms of composition of relations as follows.

Given a labelled state transition system <math>(S, \Lambda, \rightarrow)</math>, a bisimulation relation is a binary relation Template:Mvar over Template:Mvar (i.e., Template:Math) such that <math>\forall\lambda\in\Lambda</math>

<math display="block">R\ ;\ \overset{\lambda}{\rightarrow}\quad {\subseteq}\quad \overset{\lambda}{\rightarrow}\ ;\ R</math> and <math display="block">R^{-1}\ ;\ \overset{\lambda}{\rightarrow}\quad {\subseteq}\quad \overset{\lambda}{\rightarrow}\ ;\ R^{-1}</math>

From the monotonicity and continuity of relation composition, it follows immediately that the set of bisimulations is closed under unions (joins in the poset of relations), and a simple algebraic calculation shows that the relation of bisimilarity—the join of all bisimulations—is an equivalence relation. This definition, and the associated treatment of bisimilarity, can be interpreted in any involutive quantale.

Fixpoint definitionEdit

Bisimilarity can also be defined in order-theoretical fashion, in terms of fixpoint theory, more precisely as the greatest fixed point of a certain function defined below.

Given a labelled state transition system (<math>S</math>, Λ, →), define <math>F:\mathcal{P}(S \times S) \to \mathcal{P}(S \times S)</math> to be a function from binary relations over <math>S</math> to binary relations over <math>S</math>, as follows:

Let <math>R</math> be any binary relation over <math>S</math>. <math>F(R)</math> is defined to be the set of all pairs <math>(p,q)</math> in <math>S</math> × <math>S</math> such that:

<math display="block"> \forall \lambda\in \Lambda. \, \forall p' \in S. \, p \overset{\lambda}{\rightarrow} p' \, \Rightarrow \, \exists q' \in S. \, q \overset{\lambda}{\rightarrow} q' \,\textrm{ and }\, (p',q') \in R </math> and <math display="block"> \forall \lambda\in \Lambda. \, \forall q' \in S. \, q \overset{\lambda}{\rightarrow} q' \, \Rightarrow \, \exists p' \in S. \, p \overset{\lambda}{\rightarrow} p' \,\textrm{ and }\, (p',q') \in R </math>

Bisimilarity is then defined to be the greatest fixed point of <math>F</math>.

Ehrenfeucht–Fraïssé game definitionEdit

Bisimulation can also be thought of in terms of a game between two players: attacker and defender.

"Attacker" goes first and may choose any valid transition, <math>\lambda</math>, from <math>(p,q)</math>. That is, <math display="block"> (p,q) \overset{\lambda}{\rightarrow} (p',q) </math> or <math display="block"> (p,q) \overset{\lambda}{\rightarrow} (p,q') </math>

The "Defender" must then attempt to match that transition, <math>\lambda</math> from either <math>(p',q)</math> or <math>(p,q')</math> depending on the attacker's move. I.e., they must find an <math>\lambda</math> such that: <math display="block"> (p',q) \overset{\lambda}{\rightarrow} (p',q') </math> or <math display="block"> (p,q') \overset{\lambda}{\rightarrow} (p',q') </math>

Attacker and defender continue to take alternating turns until:

  • The defender is unable to find any valid transitions to match the attacker's move. In this case the attacker wins.
  • The game reaches states <math>(p,q)</math> that are both 'dead' (i.e., there are no transitions from either state) In this case the defender wins
  • The game goes on forever, in which case the defender wins.
  • The game reaches states <math>(p,q)</math>, which have already been visited. This is equivalent to an infinite play and counts as a win for the defender.

By the above definition the system is a bisimulation if and only if there exists a winning strategy for the defender.

Coalgebraic definitionEdit

A bisimulation for state transition systems is a special case of coalgebraic bisimulation for the type of covariant powerset functor. Note that every state transition system <math>(S, \Lambda, \rightarrow)</math> can be mapped bijectively to a function <math>\xi_{\rightarrow} </math> from <math>S</math> to the powerset of <math>S</math> indexed by <math>\Lambda</math> written as <math>\mathcal{P}(\Lambda \times S)</math>, defined by <math display="block"> p \mapsto \{ (\lambda, q) \in \Lambda \times S : p \overset{\lambda}{\rightarrow} q \}.</math>

Let <math>\pi_i \colon S \times S \to S</math> be <math>i</math>-th projection, mapping <math>(p, q)</math> to <math>p</math> and <math>q</math> respectively for <math>i = 1, 2</math>; and <math>\mathcal{P}(\Lambda \times \pi_1)</math> the forward image of <math>\pi_1</math> defined by dropping the third component <math display="block"> P \mapsto \{ (\lambda, p) \in \Lambda \times S : \exists q . (\lambda, p, q) \in P \}</math> where <math>P</math> is a subset of <math>\Lambda \times S \times S</math>. Similarly for <math>\mathcal{P}(\Lambda \times \pi_2)</math>.

Using the above notations, a relation <math>R \subseteq S \times S </math> is a bisimulation on a transition system <math>(S, \Lambda, \rightarrow)</math> if and only if there exists a transition system <math>\gamma \colon R \to \mathcal{P}(\Lambda \times R)</math> on the relation <math>R</math> such that the diagram

File:Coalgebraic bisimulation.svg

commutes, i.e. for <math>i = 1, 2</math>, the equations <math display="block"> \xi_\rightarrow \circ \pi_i = \mathcal{P}(\Lambda \times \pi_i) \circ \gamma </math> hold where <math>\xi_{\rightarrow}</math> is the functional representation of <math>(S, \Lambda, \rightarrow)</math>.

Variants of bisimulationEdit

In special contexts the notion of bisimulation is sometimes refined by adding additional requirements or constraints. An example is that of stutter bisimulation, in which one transition of one system may be matched with multiple transitions of the other, provided that the intermediate states are equivalent to the starting state ("stutters").<ref>Template:Cite book</ref>

A different variant applies if the state transition system includes a notion of silent (or internal) action, often denoted with <math>\tau</math>, i.e. actions that are not visible by external observers, then bisimulation can be relaxed to be weak bisimulation, in which if two states <math>p</math> and <math>q</math> are bisimilar and there is some number of internal actions leading from <math>p</math> to some state <math>p'</math> then there must exist state <math>q'</math> such that there is some number (possibly zero) of internal actions leading from <math>q</math> to <math>q'</math>. A relation <math>\mathcal{R}</math> on processes is a weak bisimulation if the following holds (with <math>\mathcal{S} \in \{ \mathcal{R}, \mathcal{R}^{-1} \}</math>, and <math>a,\tau</math> being an observable and mute transition respectively):

<math display="block">\forall p, q. \quad (p,q) \in \mathcal{S} \Rightarrow p \stackrel{\tau}{\rightarrow} p' \Rightarrow \exists q' . \quad q \stackrel{\tau^\ast}{\rightarrow} q' \wedge (p',q') \in \mathcal{S} </math> <math display="block">\forall p, q. \quad (p,q) \in \mathcal{S} \Rightarrow p \stackrel{a}{\rightarrow} p' \Rightarrow \exists q' . \quad q \stackrel{\tau^\ast a \tau^\ast}{\rightarrow} q' \wedge (p',q') \in \mathcal{S} </math>

This is closely relatedTemplate:How to the notion of bisimulation "up to" a relation.<ref name="Pous2005">Template:Cite journal</ref>

Typically, if the state transition system gives the operational semantics of a programming language, then the precise definition of bisimulation will be specific to the restrictions of the programming language. Therefore, in general, there may be more than one kind of bisimulation (respectively bisimilarity) relationship depending on the context.

Bisimulation and modal logicEdit

Since Kripke models are a special case of (labelled) state transition systems, bisimulation is also a topic in modal logic. In fact, modal logic is the fragment of first-order logic invariant under bisimulation (van Benthem's theorem).

AlgorithmEdit

Checking that two finite transition systems are bisimilar can be done in polynomial time.Template:Sfnp The fastest algorithms are quasilinear time using partition refinement through a reduction to the coarsest partition problem.

See alsoEdit

NotesEdit

Template:Reflist

ReferencesEdit

Template:Reflist

Further readingEdit

External linksEdit

Software toolsEdit

Template:Authority control