Exercise 6.25

Qi Ji

4th October 2019

Lemma. Let \(h\) be a generalised homomorphism, then \(h(\left\{\varepsilon\right\}) = \left\{\varepsilon\right\}\).

Proof. Note that \(\emptyset^* = \left\{\varepsilon\right\}\), and \(\emptyset^* = h(\emptyset)^* = h(\emptyset^*) = h(\left\{\varepsilon\right\})\).

Let \(h\) be any given generalised homomorphism. Show by structural induction that \(h(L) = \bigcup_{u\in L} h(\left\{u\right\})\) for all regular languages \(L\).

In the case that \(L\) is finite, then \(h(L) = \bigcup_{u\in L} h(\left\{u\right\})\) follows from finite applications of \(h(\left\{u,v\right\}) = h(\left\{u\right\})\cup h(\left\{v\right\})\).

Suppose \(h(L) = \bigcup_{u\in L} h(\left\{u\right\})\) and \(h(H) = \bigcup_{v\in H} h(\left\{v\right\})\).

Furthermore, show that every mapping \(h\) satisfying \(h(\left\{\varepsilon\right\}) = \left\{\varepsilon\right\}\), \(h(L) = \bigcup_{u\in L} h(\left\{u\right\})\) and \(h(L\cdot H) = h(L)\cdot h(H)\) for all regular subsets \(L, H\subseteq \Sigma^*\) is a generalised homomorphism.

To show \(h(L\cup H) = h(L)\cup h(H)\), we mostly reuse the equations earlier \[ h(L)\cup h(H) = \bigcup_{u\in L}h(\left\{u\right\}) \cup \bigcup_{v\in H} h(\left\{v\right\}) = \bigcup_{w\in L\cup H} h(\left\{w\right\}) = h(L\cup H). \]

To show \(h(\emptyset) = \emptyset\) consider \(h(\emptyset) = \bigcup_{u\in \emptyset} h(\left\{u\right\}) = \emptyset\).

To show \(h(L^*) = h(L)^*\) it suffices to show that \[\bigcup_{v\in L^*} h(\left\{v\right\}) = \left(\bigcup_{u\in L} h(\left\{u\right\})\right)^*\] and we can reuse the argument from earlier part.

Is the same true if one weakens the condition \(h(\left\{\varepsilon\right\}) = \left\{\varepsilon\right\}\) to \(\varepsilon\in h(\left\{\varepsilon\right\})\)?

No. Let \(h\) send \(\left\{\varepsilon\right\}\) to \(\left\{\varepsilon, 0\right\}\). Then \(h\) cannot be a generalised homomorphism because \[ \left\{\varepsilon, 0\right\} \ne h(\left\{\varepsilon\right\}) = h(\left\{\varepsilon\right\}^*) = \left\{\varepsilon, 0\right\}^* = 0^*. \]