IsSimulation and Similarity #
A simulation is a binary relation on the states of two LTSs: if two states s₁ and s2 are
related by a simulation, then s2 can mimic all transitions of s₁ in their respective LTSs.
Furthermore, the derivatives reaches through these transitions remain related by the simulation.
Similarity is the largest simulation: given an LTS, it relates any two states that are related
by a simulation for that LTS.
The module provides abbreviations for the homogeneous case of comparing states in the same LTS.
For an introduction to theory of simulation, we refer to [Sangiorgi2011].
Main definitions #
IsSimulation lts₁ lts₂ r: the relationron the states oflts₁andlts₂is a simulation.Similarity lts₁ lts₂is the binary relation that relates any two states related by some simulation onlts₁andlts₂.SimulationEquiv lts₁ lts₂is the binary relation on the states oflts₁andlts₂that relates any two states similar to each other.
Notations #
s₁ ≤[lts₁, lts₂] s₂: the statess₁ands2are similar underlts₁andlts₂.s₁ ≤≥[lts₁, lts₂] s2: the statess₁ands2are simulation equivalent underlts₁andlts₂.
Main statements #
HomSimulationEquiv.eqv: homogeneous simulation equivalence is an equivalence relation.
A relation is a simulation if, whenever it relates two states in an lts, any transition originating from the first state is mimicked by a transition from the second state and the reached derivatives are themselves related.
Equations
- lts₁.IsSimulation lts₂ r = ∀ (s₁ : State₁) (s2 : State₂), r s₁ s2 → ∀ (μ : Label) (s₁' : State₁), lts₁.Tr s₁ μ s₁' → ∃ (s2' : State₂), lts₂.Tr s2 μ s2' ∧ r s₁' s2'
Instances For
A homogeneous simulation is a simulation where the underlying LTSs are the same.
Equations
- lts.IsHomSimulation = lts.IsSimulation lts
Instances For
Two states are similar if they are related by some simulation.
Equations
- lts₁.Similarity lts₂ s₁ s2 = ∃ (r : State₁ → State₂ → Prop), r s₁ s2 ∧ lts₁.IsSimulation lts₂ r
Instances For
Notation for similarity.
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
Homogeneous similarity is similarity where the underlying LTSs are the same.
Equations
- lts.HomSimilarity = lts.Similarity lts
Instances For
Notation for homogeneous similarity.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Homogeneous similarity is reflexive.
The composition of two simulations is a simulation.
Similarity is transitive.
Simulation equivalence relates all states s₁ and s2 such that s₁ ≤[lts₁ lts₂] s2 and
s2 ≤[lts₂ lts₁] s₁.
Equations
- lts₁.SimulationEquiv lts₂ s₁ s2 = (lts₁.Similarity lts₂ s₁ s2 ∧ lts₂.Similarity lts₁ s2 s₁)
Instances For
Notation for simulation equivalence.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Homogeneous simulation equivalence.
Equations
- lts.HomSimulationEquiv = lts.SimulationEquiv lts
Instances For
Notation for homogeneous simulation equivalence.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Homogeneous simulation equivalence is reflexive.
Simulation equivalence is symmetric.
Simulation equivalence is transitive.
Homogeneous simulation equivalence is an equivalence relation.
calc support for simulation equivalence.
Equations
- Cslib.LTS.instTransSimulationEquiv = { trans := ⋯ }