What is inverse homomorphism?

Inverse homomorphism is a closure property of regular languages. It allows us to map the input and output elements of a homomorphic language back to the original language.

We can say that if LL is a regular language, its inverse homomorphism H1H^{-1} is as follows:

Note: The inverse homomorphism of a regular language is also regular.

Example

Let's suppose there is a language LL that has inputs in the set Σ{a,b,c}\Sigma \{ a,b,c \} , and we have mapped it with Γ{0,1}\Gamma \{ 0,1\} homomorphically.

First, we determine the homomorphic images of each input symbol/alphabet. In this case, we may take:

If we take L={0011001}L=\{0011001\}, then:

We see that the inverse homomorphism of such a language may have many translations/instances.

Note: The homomorphism of an inverse homomorphism of a language is a subset of the original language H(H1(L))LH(H^{-1}(L)) ⊆ L.

Closure under homomorphism

Now, let's see the proof of how inverse homomorphism is closed under regular languages. Let LL be the language of a DFA AA.

Using AA and its homomorphic image HH , we construct a DFA for H1(L)H^{-1}(L) that has the same states as AA. However, before choosing the next state, it interprets the input symbols according to HH.

The transition function for such a DFA is as follows:

Here, we determine BB's transitions by applying the homomorphic image HH to the input symbols.

Using induction onw|w| , we show that:

BB accepts ww if, and only if, AA accepts H(w)H(w). This is because AA and BB have the same accepting states. Simply, BB only accepts strings (ww) present in h1(L)h^{-1} (L).

Free Resources

Copyright ©2026 Educative, Inc. All rights reserved