Strong induction on formal language proof

448 Views Asked by At

Q: Show that $\sum^* = L_1\sum^*L_2$

if $e\in L_1 \subseteq \sum^*$ and $e\in L_2 \subseteq \sum^*$ for any alphabet $\sum$.

In these equivalence proofs, one way is usually easy. I guess it is RHS to LHS in this case.

Suppose $w \in L_1\sum^*L_2$. Then $w = xyz$ for any three strings belonging to $L_1$, $\sum^*$, $L_2$. But since $L_1, L_2 \subseteq \sum^*$, we can say that $w = xyz$ belongs to $\sum^*\sum^*\sum^* = \sum^*$.

So $L_1\sum^*L_2 \subseteq \sum^*$. This completes the one way.

Now we want to show $\sum^* \subseteq L_1\sum^*L_2$. Let's do induction on the string length.

BASIS STEP: $|w| = 0$ corresponds to the empty string, which is of course a member of $L_1\sum^*L_2$. This completes the basis step.

INDUCTIVE STEP: Suppose $\sum^* \subseteq L_1\sum^*L_2$ for strings of length $\leq n$. Now form the string $w = ua$ where $u$ is the string of length $n$ and $a \in \sum$. Since both strings have lengths $\leq n$, by induction hypothesis we have $w \in L_1\sum^*L_2$. This completes the inductive step.

I feel like I am doing something wrong in the proof by induction, because it was way too easy. I didn't even use any other fact than the induction hypothesis.

I'd be glad to learn the correct solution to this problem, and also learn what I've done wrong.

1

There are 1 best solutions below

2
On BEST ANSWER

Induction is overkill.

Take $x \in \Sigma^\ast$. Then $x = exe$. And $exe \in L_1 \,\Sigma^\ast \,L_2$, as $e \in L_1$ and $e \in L_2$. This proves the other inclusion.

On the induction proof itself: in the base step with the empty string you do use the assumption that $e \in L_1, e \in L_2$, albeit implicitly (make it explicit!). The induction step itself is unclear to me: we have $w = ua$, so by assumption $w \in L_1 \Sigma^\ast L_2$ and $u \in L_1 \Sigma^\ast L_2$. But how then does it follow that $ua$ is in this concatenation as well? Say: $u = l_1 s l_2, a = l'_1 s' l'_2$ where $l_1, l'_1 \in L_1$, $l_2, l'_2 \in L_2, s,s' \in \Sigma^\ast$, then $w = ua = l_1 s l_2 l'_1 s' l'_2$, which is in $L_1 \Sigma^\ast L_2$ how? Not quite clear. Even choosing $l'_1 = e, l'_2 = e, s' = a$, as we can, does not quite solve that, because then you're left with $w = l_1 s l_2 a$, and how to get rid of the $a$? So I don't think induction can really work here. Induction is a nice tool, but if all you have is a hammer...