I am not sure that the problem is in general solvable, but here's an example of what I mean:
- Any context-free language has a trivial regular language that contains it: $\Sigma^*$.
- The language $L_1=\{a^nb^n\;|\;n\geq 0\}$ is contained in $L_2=\{a^nb^m\;|\;n,m\geq 0\}$, which is obviously a subset of $\Sigma^*$.
Questions
- Is there a way to prove $L_2$ is the "smallest"* language which contains $L_1$?
- Is there an algorithm for finding such language pairs given the context-free one?
- "smallest" means that there is no other language which also satisfies the requirement and is its proper subset.
PS
Sorry, I now realized that I cannot actually find the minimal language with the requirement given above, for example: $L_3=\{ab, aabb\} \cup \{a^nb^m\;|\; n,m \geq 2\}$ would be smaller than $L_2$, and one could continue constructing languages like that ad infinitum. So, maybe an alternative definition for "smaller" could be "having least states"?
I'm sorry for indecisiveness. Please feel free to put this on hold until I figure out the good requirement. Or suggest one yourself, if you feel like there may be an interesting one.