Preimage construction on nondeterministic automata #
def
Cslib.Automata.NA.FinAcc.preimage
{State : Type u_1}
{Symbol : Type u_2}
{Symbol' : Type u_3}
(f : Language.Hom Symbol' Symbol)
(na : FinAcc State Symbol)
:
FinAcc State Symbol'
Given a language homomorphism f from Symbol' to Symbol and an NA na on Symbol,
na.preimage f is an NA on Symbol with the same state space, start states, and
accept states, but with a different transition relation: the step that na.preimage f takes
on input x is the composition of the steps taken by na on inputs f [x].
Equations
Instances For
@[simp]
theorem
Cslib.Automata.NA.FinAcc.accepts_preimage
{State : Type u_1}
{Symbol : Type u_2}
{Symbol' : Type u_3}
(f : Language.Hom Symbol' Symbol)
{na : FinAcc State Symbol}
{xs' : List Symbol'}
:
na.preimage f accepts a word xs' iff na accepts the word f xs'.
@[simp]
theorem
Cslib.Automata.NA.FinAcc.preimage_language_eq
{State : Type u_1}
{Symbol : Type u_2}
{Symbol' : Type u_3}
(f : Language.Hom Symbol' Symbol)
(na : FinAcc State Symbol)
:
na.preimage f accepts the preimage under f of the language accepted by na.