Translation of εNA into εNA with a single accept state #
Defines the transformation toSingleAccept for εNA.FinAcc and proves correctness
results in terms of language equivalence and correspondences between the two transition systems.
Note for future work: we could formulate a stronger transformation, whereby also the set of accept states becomes a singleton.
def
Cslib.Automata.εNA.FinAcc.toSingleAccept
{State : Type u_1}
{Symbol : Type u_2}
(a : FinAcc State Symbol)
:
Any εNA.FinAcc can be converted into an εNA.FinAcc with a single accept state none.
The original states are wrapped in some, and all original accept states have ε-transitions to
none.
Equations
- One or more equations did not get rendered due to their size.
Instances For
theorem
Cslib.Automata.εNA.FinAcc.toSingleAccept_accepts_mTr_iff
{State : Type u_1}
{Symbol : Type u_2}
{xs : List Symbol}
{a : FinAcc State Symbol}
:
Acceptor.Accepts a.toSingleAccept xs ↔ ∃ s ∈ a.toSingleAccept.start, a.toSingleAccept.SMTr s (List.map some xs) none
theorem
Cslib.Automata.εNA.FinAcc.toSingleAccept_language_eq
{State : Type u_1}
{Symbol : Type u_2}
{a : FinAcc State Symbol}
:
toSingleAccept preserves the language of the input automaton.