Prove that for all languages $M,N \subseteq \Sigma^*$ applies: $(M+N)^* = (M^*N^*)^*$
Hi!
I do'nt really understand why this applies: The first term uses the Kleene star on the union of M and N and therefore contains the empty word $\lambda$ and all possible string concatenations of the union. The second term contains all possible concatenations of M plus the empty word concatenated to the possible concatenations of N plus the empty word. Let $m \in M, n \in N, n \not\in M$. The word $nm$ can be expressed by the first, but not the second term $(M^*N^*)^*$. Where is my mistake?
How can I write the proof the correct way?
Thanks in advance
Another approach: identities in Kleene algebra...
(a) $M \subseteq M^* \subseteq M^*N^* \text{ and } N \subseteq N^* \subseteq M^*N^* \\\text{ so } (M+N) \subseteq M^*N^* \\\text{ so } (M+N)^* \subseteq (M^*N^*)^* \\\text{QED one way} $
(b) $ M^* \subseteq (M+N)^* \text{ and } N^* \subseteq (M+N)^* \\\text { so } M^*N^* \subseteq (M+N)^*(M+N)^* \subseteq (M+N)^* \\\text { so } (M^*N^*)^* \subseteq ((M+N)^*)^* = (M+N)^* \\\text{QED other way} $