(Note)
 
(24 intermediate revisions by the same user not shown)
Line 1: Line 1:
 +
{{alert|Please don't byheart this table. This is just to check your understanding |alert-danger}}
 +
 
:{| class="wikitable"
 
:{| class="wikitable"
 
|+ align="top"|Grammar: Decidable and Undecidable Problems
 
|+ align="top"|Grammar: Decidable and Undecidable Problems
Line 9: Line 11:
 
! <math>L(G_1) = L(G_2)</math>
 
! <math>L(G_1) = L(G_2)</math>
 
! <math>L(G_1) \cap L(G_2) = \phi</math>
 
! <math>L(G_1) \cap L(G_2) = \phi</math>
! <math>L(G)</math> is finite
+
! <math>L(G)</math> is regular?
 +
! $L(G)$ is finite?
 
|-
 
|-
 
|Regular Grammar
 
|Regular Grammar
 +
| {{D}}
 
| {{D}}
 
| {{D}}
 
| {{D}}
 
| {{D}}
Line 25: Line 29:
 
| {{D}}
 
| {{D}}
 
| {{UD}}
 
| {{UD}}
| {{?}}
+
| {{D}}
 
| {{UD}}
 
| {{UD}}
 +
| {{D}}
 
| {{D}}
 
| {{D}}
 
|-
 
|-
Line 32: Line 37:
 
| {{D}}
 
| {{D}}
 
| {{D}}
 
| {{D}}
 +
| {{UD}}
 
| {{UD}}
 
| {{UD}}
 
| {{UD}}
 
| {{UD}}
Line 40: Line 46:
 
|Context Sensitive  
 
|Context Sensitive  
 
| {{D}}
 
| {{D}}
 +
| {{UD}}
 
| {{UD}}
 
| {{UD}}
 
| {{UD}}
 
| {{UD}}
Line 49: Line 56:
 
|Recursive
 
|Recursive
 
| {{D}}
 
| {{D}}
 +
| {{UD}}
 
| {{UD}}
 
| {{UD}}
 
| {{UD}}
 
| {{UD}}
Line 57: Line 65:
 
|-
 
|-
 
|Recursively Enumerable
 
|Recursively Enumerable
| {{D}}
+
| {{UD}}
 +
| {{UD}}
 
| {{UD}}
 
| {{UD}}
 
| {{UD}}
 
| {{UD}}
Line 66: Line 75:
 
|}
 
|}
  
Checking if  L(CFG) is finite is decidable because we just need to see if L(CFG) contains any string with length between n and 2n-1 where n is the pumping lemma constant. If so,  L(CFG)  is infinite otherwise its finite.
+
Checking if  <math>L(CFG)</math> is finite is decidable because we just need to see if <math>L(CFG)</math> contains any string with length between <math>n</math> and <math>2n-1</math>, where <math>n</math> is the pumping lemma constant. If so,  <math>L(CFG)</math> is infinite otherwise its finite.
  
 
==Other Undecidable Problems ==
 
==Other Undecidable Problems ==
 +
[http://www.cis.upenn.edu/~jean/gbooks/PCPh04.pdf Proofs]
 +
===For arbitrary CFGs <math>G</math>, <math>G_1</math> and <math>G_2</math> and an arbitrary regular expression <math>R</math>===
 +
The following problems are '''undecidable''':
 +
 +
# Whether <math>(L(G_1))^\complement</math> is a CFL?
 +
# Whether <math>L(G_1) \cap L(G2)</math> is a CFL? (undecidable for DCFG also)
 +
# Whether <math>L(G_1) \cap L(G2)</math> is empty? (undecidable for DCFG also)
 +
# Whether <math>L(G) = L(R)</math>?
 +
# Whether <math>L(R) \subseteq L(G)</math>?
 +
# Whether <math>G</math> is ambiguous?
 +
# Whether <math>L(G)</math> is a DCFL?
 +
# Whether <math>L(G)</math> is a regular language?
 +
 +
But whether <math>L(G) \subseteq L(R)</math> is decidable. (We can test if <math>L(G) \cap compl(L(R))</math> is <math>\phi</math>)
 +
 +
===For arbitrary DCFGs <math>G</math>, <math>G_1</math> and <math>G_2</math> and an arbitrary regular expression <math>R</math>===
 +
The following problems are '''decidable''':
 +
 +
# Whether <math>(L(G_1))^\complement</math> is a DCFL? (trivial)
 +
# Whether <math>L(G) = L(R)</math>?
 +
# Whether <math>L(G) \subseteq (R)</math>?
 +
# Whether <math>L(R) \subseteq L(G)</math>?
 +
# Whether <math>L(G)</math> is a CFL? (trivial)
  
===For arbitrary CFGs G, G1 and G2 and an arbitrary regular set R===
 
The following problems are undecidable:
 
  
# Whether <math>(L(G1))^\complement</math> is a CFL
 
# Whether <math>L(G1) \cap L(G2)</math> is a CFL
 
# Whether <math>L(G1) \cap L(G2)</math> is empty
 
# Whether <math>L(G) = R</math>
 
# Whether <math>L(G) \subseteq R</math>
 
# Whether <math>G</math> is ambiguous
 
# Whether <math>L(G)</math> is a DCFL
 
  
But whether <math>R \subseteq L(G)</math> is decidable
+
{{Template:FBD}}
  
===For arbitrary DCFGs G, G1 and G2 and an arbitrary regular set R===
+
[[Category: Automata Theory Notes]]
The following problems are decidable:
 
  
# Whether <math>(L(G1))^\complement</math> is a DCFL
+
[[Category: Compact Notes for Reference of Understanding]]
# Whether <math>L(G) = R</math>
 
# Whether <math>L(G) \subseteq R</math>
 
# Whether <math>R \subseteq L(G)</math>
 
# Whether <math>L(G)</math> is a CFL
 

Latest revision as of 16:01, 9 January 2016

Heads Up! Please don't byheart this table. This is just to check your understanding
Grammar: Decidable and Undecidable Problems
Grammar <math>w \in L(G)</math> <math>L(G) = \phi</math> <math>L(G) = \Sigma^*</math> <math>L(G_1) \subseteq L(G_2)</math> <math>L(G_1) = L(G_2)</math> <math>L(G_1) \cap L(G_2) = \phi</math> <math>L(G)</math> is regular? $L(G)$ is finite?
Regular Grammar D D D D D D D D
Det. Context Free D D D UD D UD D D
Context Free D D UD UD UD UD UD D
Context Sensitive D UD UD UD UD UD UD UD
Recursive D UD UD UD UD UD UD UD
Recursively Enumerable UD UD UD UD UD UD UD UD

Checking if <math>L(CFG)</math> is finite is decidable because we just need to see if <math>L(CFG)</math> contains any string with length between <math>n</math> and <math>2n-1</math>, where <math>n</math> is the pumping lemma constant. If so, <math>L(CFG)</math> is infinite otherwise its finite.

Other Undecidable Problems

Proofs

For arbitrary CFGs <math>G</math>, <math>G_1</math> and <math>G_2</math> and an arbitrary regular expression <math>R</math>

The following problems are undecidable:

  1. Whether <math>(L(G_1))^\complement</math> is a CFL?
  2. Whether <math>L(G_1) \cap L(G2)</math> is a CFL? (undecidable for DCFG also)
  3. Whether <math>L(G_1) \cap L(G2)</math> is empty? (undecidable for DCFG also)
  4. Whether <math>L(G) = L(R)</math>?
  5. Whether <math>L(R) \subseteq L(G)</math>?
  6. Whether <math>G</math> is ambiguous?
  7. Whether <math>L(G)</math> is a DCFL?
  8. Whether <math>L(G)</math> is a regular language?

But whether <math>L(G) \subseteq L(R)</math> is decidable. (We can test if <math>L(G) \cap compl(L(R))</math> is <math>\phi</math>)

For arbitrary DCFGs <math>G</math>, <math>G_1</math> and <math>G_2</math> and an arbitrary regular expression <math>R</math>

The following problems are decidable:

  1. Whether <math>(L(G_1))^\complement</math> is a DCFL? (trivial)
  2. Whether <math>L(G) = L(R)</math>?
  3. Whether <math>L(G) \subseteq (R)</math>?
  4. Whether <math>L(R) \subseteq L(G)</math>?
  5. Whether <math>L(G)</math> is a CFL? (trivial)





blog comments powered by Disqus
Grammar: Decidable and Undecidable Problems
Grammar <math>w \in L(G)</math> <math>L(G) = \phi</math> <math>L(G) = \Sigma^*</math> <math>L(G_1) \subseteq L(G_2)</math> <math>L(G_1) = L(G_2)</math> <math>L(G_1) \cap L(G_2) = \phi</math> <math>L(G)</math> is finite
Regular Grammar D D D D D D D
Det. Context Free D D D UD ? UD D
Context Free D D UD UD UD UD D
Context Sensitive D UD UD UD UD UD UD
Recursive D UD UD UD UD UD UD
Recursively Enumerable D UD UD UD UD UD UD

Checking if L(CFG) is finite is decidable because we just need to see if L(CFG) contains any string with length between n and 2n-1 where n is the pumping lemma constant. If so, L(CFG) is infinite otherwise its finite.

Other Undecidable Problems[edit]

For arbitrary CFGs G, G1 and G2 and an arbitrary regular set R[edit]

The following problems are undecidable:

  1. Whether <math>(L(G1))^\complement</math> is a CFL
  2. Whether <math>L(G1) \cap L(G2)</math> is a CFL
  3. Whether <math>L(G1) \cap L(G2)</math> is empty
  4. Whether <math>L(G) = R</math>
  5. Whether <math>L(G) \subseteq R</math>
  6. Whether <math>G</math> is ambiguous
  7. Whether <math>L(G)</math> is a DCFL

But whether <math>R \subseteq L(G)</math> is decidable

For arbitrary DCFGs G, G1 and G2 and an arbitrary regular set R[edit]

The following problems are decidable:

  1. Whether <math>(L(G1))^\complement</math> is a DCFL
  2. Whether <math>L(G) = R</math>
  3. Whether <math>L(G) \subseteq R</math>
  4. Whether <math>R \subseteq L(G)</math>
  5. Whether <math>L(G)</math> is a CFL