Contents
- 1 Given a description of a language L, how to find the class of L?
- 2 Some Facts
- 3 Some Twisted Examples
- 3.1 1. L={ww∣w∈(a+b)∗}
- 3.2 2. L={ww∣w∈(a+b)+}
- 3.3 3. L={wwR∣w∈(a+b)∗}
- 3.4 4. L={wwR∣w∈(a+b)+}
- 3.5 5. L={wxw∣w,x∈(a+b)∗}
- 3.6 6. L={wxw∣w,x∈(a+b)+}
- 3.7 7. L={wxwR∣w,x∈(a+b)∗}
- 3.8 8. L={wxwR∣w,x∈(a+b)+}
- 3.9 9. L={wxwy∣w,x,y∈(a+b)+}
- 3.10 10. L={xwyw∣w,x,y∈(a+b)+}
- 3.11 11. L={wxyw∣w,x,y∈(a+b)+}
- 3.12 12. L={xww∣w,x∈(a+b)∗}
- 3.13 13. L={xww∣w,x∈(a+b)+}
- 3.14 14. L={xwwR∣w,x∈(a+b)+}
Given a description of a language L, how to find the class of L?
Find the set of strings generated by L
- If the set of strings in L is finite, L is regular since all finite languages are regular
- If the set of strings in L is infinite, check if we can draw an NFA for recognizing L. If so, L is regular
- If NFA is not possible for L, check if we can recognize L using a PDA, that is with a stack in addition to set of states. If so, L is CFL.
- If the moves of PDA are all deterministic, then L is a DCFL
- If PDA is not possible for L, see if we can get a TM for L
- If TM takes only a linear space (in terms of length of input string), then L is CSL. otherwise its just recursive
- If L is a decision problem and TM can just say “yes” and may not halt in case of “no”, then L is recursively enumerable (partially decidable).
- If TM can say both “yes” and “no” then L is recursive
- If no TM is possible for L, then L is undecidable
Some Facts
- Partially decidable or semi-decidable is broadly under the category of undecidable. For example halting problem is considered undecidable but is semi-decidable.
- P, NP and NPC problems can all be decided by a TM and hence are recursive.
- All undecidable problems are NP-Hard, but all NP-Hard problems are not undecidable.
- Turing decidable problems are recursive but Turing recognizable (Turing acceptable) problems are only recursively enumerable.
Some Twisted Examples
1. L={ww∣w∈(a+b)∗}
The set of strings in L are {aa,bb,aaaa,abab,baba,bbbb,aaaaaa,…}. We cannot accept these strings using an NFA. Now, even a PDA is not possible as once we store w on stack, it can only be read back in reverse order. Thus, we require 2 stacks to recognize L. Now, L can be accepted by a TM in linear space and hence L is CSL.
2. L={ww∣w∈(a+b)+}
Same explanation as above, L is CSL.
3. L={wwR∣w∈(a+b)∗}
wwR can be accepted by a PDA and hence is CFL. But we need a NPDA for this as there is no deterministic way to identify where w ends and wR starts. wcwR,w∈(a+b)∗ is accepted by a DPDA and hence is DCFL.
4. L={wwR∣w∈(a+b)+}
Same explanation as above. L is CFL.
5. L={wxw∣w,x∈(a+b)∗}
L is regular since L=Σ∗, by making x=(a+b)∗ and w=ϵ. i.e.; the set of strings generated by L is {ϵ,a,b,aa,ab,ba,bb,aaa,…}=Σ∗
This language is different from the L={wcw∣w∈(a,b)∗} which is clearly a CSL. Here, we cannot do any reduction and hence there is no way to accept a string without checking w before c and w after c are the same which requires an LBA.
6. L={wxw∣w,x∈(a+b)+}
L doesn’t contain all strings in Σ∗ as the strings like abab are not contained in L. All words starting and ending in a or starting and ending in b are in L. But L also contains words starting with a and ending in b like abbab,aabbbabaab etc where the starting sub-string exactly matches the ending sub-string and at least a letter separates them. To accept such strings we need a TM with linear space (this is at least as hard as accepting ww,w∈(a+b)∗), making L, a CSL.
7. L={wxwR∣w,x∈(a+b)∗}
L is regular. Since, w can be ϵ and x∈(a+b)∗, making L=Σ∗. i.e.; the set of strings generated by L is {ϵ,a,b,aa,ab,ba,bb,aaa,…}=Σ∗
This language is different from the L={wcwR∣w∈{a,b}∗} which is clearly a DCFL. Here, we cannot do any reduction and hence there is no way to accept a string without checking that the string after c is the reverse of the string before c, which requires a DPDA.
8. L={wxwR∣w,x∈(a+b)+}
The set of strings in L are {aaa,aba,aaaa,aaba,abaa,abba,baab,…} i.e.; L contains all strings starting and ending with a or starting and ending with b and containing at least 3 letters. Moreover, L doesn’t contain any other strings. Thus L can be accepted by a finite automata making L regular . Regular expression for L is a(a+b)+a+b(a+b)+b.
9. L={wxwy∣w,x,y∈(a+b)+}
For any string to be in L, the beginning part of the string (w) must repeat at some other point (between the second and last characters) of the string (next w). Since y is there at the end which can generate any string, we can make w as small as possible as per the given condition. So, w can be either a or b. We can thus write regular expression for L as a(a+b)+a(a+b)++b(a+b)+b(a+b)+
10. L={xwyw∣w,x,y∈(a+b)+}
Similar explanation for example 9, except that instead of first character being a or b we have the last character. So, regular expression for L will be
(a+b)+a(a+b)+a+(a+b)+b(a+b)+b
11. L={wxyw∣w,x,y∈(a+b)+}
Here, w is coming at the beginning and also at the end. Unlike as in example 8 or 9, we cannot restrict w to be a or b as a string starting with a can end in b and still be in L- example abaaab, where w=ab and x,y=a. In short we need to compare the substring at the beginning of the string with that at the end, making this a CSL.
12. L={xww∣w,x∈(a+b)∗}
L is regular. Since, w can be ϵ and x∈(a+b)∗, making L=Σ∗. i.e.; the set of strings generated by L is {ϵ,a,b,aa,ab,ba,bb,aaa,…}=Σ∗
13. L={xww∣w,x∈(a+b)+}
Here, w cannot be ϵ and hence to accept the string we do need the power of an LBA making L a CSL.
14. L={xwwR∣w,x∈(a+b)+}
Here, w cannot be ϵ and hence to accept the string we do need the power of a PDA making L a NCFL (non-determinism is required to guess the start of w).
Related

Rices Theorem with Examples
How to apply Rice's theorem to solve decidability problems
In "Theory of Computation"
Closure Property of Language Families
Closure Properties of language families
In "Theory of Computation"

Grammar: Decidable and Undecidable Problems
Decidable and undecidable problems on context free grammars.
In "Theory of Computation"