Label homomorphism map for LTS. #
def
Cslib.LTS.mapHom
{State : Type u_1}
{Label₁ : Type u_2}
{Label₂ : Type u_3}
(lts : LTS State Label₁)
(f : Language.Hom Label₂ Label₁)
:
LTS State Label₂
Given a language homomorphism f from Label₂ to Label₁ and an LTS lts that
uses Label₁, lts.mapHom f is an LTS with the same state space but uses Label₂, whose
step on a single label μ is the composition of the steps taken by lts on the sequence of
labels f [μ]. Note that f [μ] can be empty or consists of many labels.
Instances For
@[simp]
theorem
Cslib.LTS.mapHom_mTr
{State : Type u_1}
{Label₁ : Type u_2}
{Label₂ : Type u_3}
{s s' : State}
{f : Language.Hom Label₂ Label₁}
{lts : LTS State Label₁}
{μs : List Label₂}
:
This theorem says basically that lts.mapHom f is well-defined because f is
a language homomorphism.
def
Cslib.LTS.mapLabel
{State : Type u_1}
{Label₁ : Type u_2}
{Label₂ : Type u_3}
(lts : LTS State Label₁)
(f : Label₂ → Label₁)
:
LTS State Label₂
This is the special case of LTS.mapHom when the language homomorphism maps
single labels to single labels.