Regular Closure Under Homomorphism #
Proof idea: a homomorphism is implemented as regular substitution by replacing each input letter with the regular singleton language containing its image string. The epsilon-free variant is the same construction with the extra nonempty-image hypothesis carried through the closure predicate.
Regular Closure Under (String) Homomorphism #
This file proves that regular languages are closed under symbol maps (letter-to-letter homomorphisms) and, more generally, under string homomorphisms.
Main results #
Language.IsRegular.map— ifLis regular thenLanguage.map f Lis regular.Language.IsRegular.homomorphicImage— ifLis regular (over a finite alphabet) then its image under a string homomorphism is regular.
NFA recognising the image of a DFA language under a symbol map.
For a DFA M over α and a function f : α → β, the NFA over β has the same
states. On symbol b, from state q, the NFA non-deterministically guesses a
preimage a with f a = b and transitions to M.step q a.
Equations
Instances For
Regular languages are closed under symbol maps (letter-to-letter homomorphisms).
Singleton word languages are regular #
Regular languages are closed under string homomorphism.
Given a regular language L over a finite alphabet and a string homomorphism
h : α' → List γ, the image {h(w) | w ∈ L} is regular.
The class of regular languages is closed under homomorphism.
The class of regular languages is closed under ε-free homomorphism.