Bisimulation and Bisimilarity #
A bisimulation is a binary relation on the states of two LTSs, which establishes a tight semantic
correspondence. More specifically, if two states s₁ and s₂ are related by a bisimulation, then
s₁ can mimic all transitions of s₂ 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 [Sangiorgi2011].
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.
Notations #
s₁ ~[lts] s₂: the statess₁ands₂are bisimilar in the LTSlts.s₁ ≈[lts] s₂: the statess₁ands₂are weakly 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.Bisimilarity.symm_simulation: bisimilarity can be characterized through symmetric simulations.WeakBisimilarity.weakBisim_eq_swBisim: weak bisimulation and sw-bisimulation coincide.WeakBisimilarity.eqv: weak bisimilarity is an equivalence relation.
A relation is a bisimulation if, whenever it relates two states, 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
A homogeneous bisimulation is a bisimulation where the underlying LTSs are the same.
Equations
- lts.IsHomBisimulation = lts.IsBisimulation lts
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.
Two states are bisimilar if they are related by some bisimulation.
Equations
- lts₁.Bisimilarity lts₂ s₁ s₂ = ∃ (r : State₁ → State₂ → Prop), r s₁ s₂ ∧ lts₁.IsBisimulation lts₂ r
Instances For
Notation for bisimilarity.
Differently from standard pen-and-paper presentations, we require the LTSs to be mentioned explicitly.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Homogeneous bisimilarity is bisimilarity where the underlying LTSs are the same.
Equations
- lts.HomBisimilarity = lts.Bisimilarity lts
Instances For
Notation for homogeneous bisimilarity.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Homogeneous bisimilarity is reflexive.
The inverse of a bisimulation is a bisimulation.
Bisimilarity is symmetric.
The composition of two bisimulations is a bisimulation.
Bisimilarity is transitive.
Homogeneous 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.LTS.instTransBisimilarity = { trans := ⋯ }
Order properties #
Equations
- Cslib.LTS.instMaxSubtypeForallForallPropIsBisimulation = { max := fun (r s : { r : State✝¹ → State✝ → Prop // lts₁.IsBisimulation lts₂ r }) => ⟨↑r ⊔ ↑s, ⋯⟩ }
Bisimulations equipped with union form a join-semilattice.
Equations
- One or more equations did not get rendered due to their size.
The empty (heterogeneous) relation is a bisimulation.
Equations
Equations
- Cslib.LTS.instTopSubtypeForallForallPropIsBisimulation = { top := ⟨lts₁.Bisimilarity lts₂, ⋯⟩ }
In the inclusion order on bisimulations:
- The empty relation is the bottom element.
- Bisimilarity is the top element.
Equations
- One or more equations did not get rendered due to their size.
Bisimulation up-to #
Lifts a relation r to homogeneous bisimilarities on its types.
Equations
- lts₁.UpToHomBisimilarity lts₂ r = Relation.Comp lts₁.HomBisimilarity (Relation.Comp r lts₂.HomBisimilarity)
Instances For
A relation r is a bisimulation up to homogeneous 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 deterministic LTSs, trace equivalence implies bisimilarity.
In deterministic LTSs, 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.
Homogeneous bisimilarity can also be characterized through symmetric 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 LTSs.
Equations
- lts₁.IsWeakBisimulation lts₂ r = lts₁.saturate.IsBisimulation lts₂.saturate r
Instances For
A homogeneous bisimulation is a bisimulation where the underlying LTSs are the same.
Equations
- lts.IsHomWeakBisimulation = lts.IsWeakBisimulation lts
Instances For
Two states are weakly bisimilar if they are related by some weak bisimulation.
Equations
- lts₁.WeakBisimilarity lts₂ s₁ s₂ = ∃ (r : State₁ → State₂ → Prop), r s₁ s₂ ∧ lts₁.IsWeakBisimulation lts₂ r
Instances For
Notation for weak bisimilarity.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Homogeneous bisimilarity is bisimilarity where the underlying LTSs are the same.
Equations
- lts.HomWeakBisimilarity = lts.WeakBisimilarity lts
Instances For
Notation for homogeneous 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 [Sangiorgi2011].
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).
Utility theorem for 'following' internal transitions using an SWBisimulation
(second component).
We can now prove that any relation is a WeakBisimulation iff it is an SWBisimulation.
This formalises lemma 4.2.10 in [Sangiorgi2011].
Weak bisimilarity can also be characterized through sw-bisimulations.
Homogeneous weak bisimilarity is reflexive.
The inverse of a weak bisimulation is a weak bisimulation.
Weak bisimilarity is symmetric.
The composition of two weak bisimulations is a weak bisimulation.
The composition of two sw-bisimulations is an sw-bisimulation.
Weak bisimilarity is transitive.
Homogeneous weak bisimilarity is an equivalence relation.