Bisimulation and Bisimilarity #
A bisimulation is a binary relation on the states of an LTS, which establishes a tight semantic
correspondence. More specifically, if two states s1 and s2 are related by a bisimulation, then
s1 can mimic all transitions of s2 and vice versa. Furthermore, the derivatives reaches through
these transitions remain related by the bisimulation.
Bisimilarity is the largest bisimulation: given an LTS, it relates any two states that are related
by a bisimulation for that LTS.
Weak bisimulation (resp. bisimilarity) is the relaxed version of bisimulation (resp. bisimilarity) whereby internal actions performed by processes can be ignored.
For an introduction to theory of bisimulation, we refer to [San].
Main definitions #
lts.IsBisimulation r: the relationris a bisimulation for the LTSlts.Bisimilarity ltsis the binary relation on the states ofltsthat relates any two states related by some bisimulation onlts.lts.IsBisimulationUpTo r: the relationris a bisimulation up to bisimilarity (this is known as one of the 'up to' techniques for bisimulation).lts.IsWeakBisimulation r: the relationron the states of the LTSltsis a weak bisimulation.WeakBisimilarity ltsis the binary relation on the states ofltsthat relates any two states related by some weak bisimulation onlts.lts.IsSWBisimulationis a more convenient definition for establishing weak bisimulations, which we prove to be sound and complete.SWBisimilarity ltsis the binary relation on the states ofltsthat relates any two states related by some sw-bisimulation onlts.
Notations #
s1 ~[lts] s2: the statess1ands2are bisimilar in the LTSlts.s1 ≈[lts] s2: the statess1ands2are weakly bisimilar in the LTSlts.s1 ≈sw[lts] s2: the statess1ands2are sw bisimilar in the LTSlts.
Main statements #
LTS.IsBisimulation.inv: the inverse of a bisimulation is a bisimulation.Bisimilarity.eqv: bisimilarity is an equivalence relation (seeEquivalence).Bisimilarity.isBisimulation: bisimilarity is itself a bisimulation.Bisimilarity.largest_bisimulation: bisimilarity is the largest bisimulation.Bisimilarity.gfp: the union of bisimilarity and any bisimulation is equal to bisimilarity.LTS.IsBisimulationUpTo.isBisimulation: any bisimulation up to bisimilarity is a bisimulation.LTS.IsBisimulation.traceEq: any bisimulation that relates two states implies that they are trace equivalent (seeTraceEq).Bisimilarity.deterministic_bisim_eq_traceEq: in a deterministic LTS, bisimilarity and trace equivalence coincide.WeakBisimilarity.weakBisim_eq_swBisim: weak bisimilarity and sw-bisimilarity coincide in all LTSs.WeakBisimilarity.eqv: weak bisimilarity is an equivalence relation.SWBisimilarity.eqv: sw-bisimilarity is an equivalence relation.
A relation is a bisimulation if, whenever it relates two states in an lts, the transitions originating from these states mimic each other and the reached derivatives are themselves related.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Helper for following a transition by the first state in a pair of a Bisimulation.
Helper for following a transition by the second state in a pair of a Bisimulation.
Notation for bisimilarity.
Differently from standard pen-and-paper presentations, we require the lts to be mentioned explicitly.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The inverse of a bisimulation is a bisimulation.
The composition of two bisimulations is a bisimulation.
Bisimilarity is an equivalence relation.
The union of two bisimulations is a bisimulation.
Bisimilarity is a bisimulation.
Bisimilarity is the largest bisimulation.
The union of bisimilarity with any bisimulation is bisimilarity.
calc support for bisimilarity.
Equations
- Cslib.instTransBisimilarity = { trans := ⋯ }
Order properties #
Bisimulations equipped with union form a join-semilattice.
Equations
- One or more equations did not get rendered due to their size.
The empty relation is a bisimulation.
In the inclusion order on bisimulations:
- The empty relation is the bottom element.
- Bisimilarity is the top element.
Equations
- Cslib.instBoundedOrderSubtypeForallForallPropIsBisimulation = { top := ⟨Cslib.Bisimilarity lts, ⋯⟩, le_top := ⋯, bot := ⟨emptyRelation, ⋯⟩, bot_le := ⋯ }
Bisimulation up-to #
A relation r is a bisimulation up to bisimilarity if, whenever it relates two
states in an lts, the transitions originating from these states mimic each other and the reached
derivatives are themselves related by r up to bisimilarity.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Any bisimulation up to bisimilarity is a bisimulation.
If two states are related by a bisimulation, they can mimic each other's multi-step transitions.
Relation to trace equivalence #
Any bisimulation implies trace equivalence.
Bisimilarity is included in trace equivalence.
In general, trace equivalence is not a bisimulation (extra conditions are needed, see for
example Bisimulation.deterministic_trace_eq_is_bisim).
In general, bisimilarity and trace equivalence are distinct.
In any deterministic LTS, trace equivalence is a bisimulation.
In any deterministic LTS, trace equivalence implies bisimilarity.
In any deterministic LTS, bisimilarity and trace equivalence coincide.
Relation to simulation #
Any bisimulation is also a simulation.
A relation is a bisimulation iff both it and its inverse are simulations.
Weak bisimulation and weak bisimilarity #
A weak bisimulation is similar to a Bisimulation, but allows for the related processes to do
internal work. Technically, this is defined as a Bisimulation on the saturation of the LTS.
Equations
- lts.IsWeakBisimulation r = lts.saturate.IsBisimulation r
Instances For
Notation for weak bisimilarity.
Equations
- One or more equations did not get rendered due to their size.
Instances For
An SWBisimulation is a more convenient definition of weak bisimulation, because the challenge
is a single transition. We prove later that this technique is sound, following a strategy inspired
by [San].
Equations
- One or more equations did not get rendered due to their size.
Instances For
Notation for swbisimilarity.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Utility theorem for 'following' internal transitions using an SWBisimulation
(first component, weighted version).
Utility theorem for 'following' internal transitions using an SWBisimulation
(second component, weighted version).
Utility theorem for 'following' internal transitions using an SWBisimulation
(first component).
Utility theorem for 'following' internal transitions using an SWBisimulation
(second component).
If two states are related by an SWBisimulation, then they are weakly bisimilar.
Weak bisimilarity and sw-bisimilarity coincide for all LTSs.
The inverse of an sw-bisimulation is an sw-bisimulation.
The inverse of a weak bisimulation is a weak bisimulation.
The composition of two weak bisimulations is a weak bisimulation.
The composition of two sw-bisimulations is an sw-bisimulation.
Weak bisimilarity is an equivalence relation.
SW-bisimilarity is an equivalence relation.