# Theory of Computation CS3102 – Spring 2014 A tale of computers, math, problem solving, life, love and tragic death Nathan Brunelle Department of Computer.

## Presentation on theme: "Theory of Computation CS3102 – Spring 2014 A tale of computers, math, problem solving, life, love and tragic death Nathan Brunelle Department of Computer."— Presentation transcript:

Theory of Computation CS3102 – Spring 2014 A tale of computers, math, problem solving, life, love and tragic death Nathan Brunelle Department of Computer Science University of Virginia

Closure Properties of CFLs
Theorem: The context-free languages are closed under union. Hint: Derive a new grammar for the union. Let G1 =(V1, Σ,R1, S1), G2 =(V2, Σ,R2, S2) Then G1+2 =(V1 +V2 +{S}, Σ, R1 + R2 +{S→ S1 | S2}, S) S→ S1 | S2 S1 →… S2 →…

Closure Properties of CFLs
Theorem: The CFLs are closed under Kleene closure. Hint: Derive a new grammar for the Kleene closure. Let G =(V, Σ,R, S) Then G* =(V, Σ,R+ {S → SS|ε}, S) S → SS|ε|…

Closure Properties of CFLs
Theorem: The CFLs are closed under Ç with regular langs. Hint: Simulate PDA and FA in parallel. Let FSA Mfsa=(Qf, S, df, qf, Ff), PDA Mpda =(Qp, S, G, dp, qp, Fp) Then M∩=(Qf ×Qp, S, G, d, (qf ,qp), Ff ×Fp) d: Qf ×Qp ´(SÈ{e})´G ® 2Q´G* s.t. d (qf, qp, s, g) = df(qf, s) ´ dp(qp, s, g) Mpda a b stack × Mfsa

Closure Properties of CFLs
Theorem: The CFLs are not closed under intersection. Hint: Find a counter example. L={an bn cn} is not context free (Involves pumping lemma of CFLs, we’ll get to it) Let L1={ai bj cj}, L2 ={ai bi cj} L1 ∩L1 = L

Closure Properties of CFLs
Theorem: The CFLs are not closed under complementation. Hint: Use De Morgan’s law. Assume FSORC that CFLs are closed under complementation. Since we know that they are closed under union we can find

Decidable PDA / CFG Problems
Given an arbitrary pushdown automata M the following problems are decidable (i.e., have algorithms): Q1: Is L(M) = Ø ? Q5: Is L(G) = Ø ? Q2: Is L(M) finite ? Q6: Is L(G) finite ? Q3: Is L(M) infinite ? Q7: Is L(G) infinite ? Q4: Is w Î L(M) ? Q8: Is w Î L(G) ? (or CFG G) Extra-credit: prove each!

Undecidable PDA / CFG Problems
Theorem: the following are undecidable (i.e., there exist no algorithms to answer these questions): Q: Is PDA M minimal ? Q: Are PDAs M1 and M2 equivalent ? Q: Is CFG G minimal ? Q: Is CFG G ambiguous ? Q: Is L(G1) = L(G2) ? Q: Is L(G1) Ç L(G2) = Ø ? Q: Is CFL L inherently ambiguous ? Extra-credit: prove each!

Extra-credit: prove each!
PDA Enhancements Theorem: 2-way PDAs are more powerful than 1-way PDAs. Hint: Find an example non-CFL accepted by a 2-way PDA. Theorem: 2-stack PDAs are more powerful than 1-stack PDAs. Hint: Find an example non-CFL accepted by a 2-stack PDA. Theorem: 1-queue PDAs are more powerful than 1-stack PDAs. Hint: Find an example non-CFL accepted by a 1-queue PDA. Theorem: 2-head PDAs are more powerful than 1-head PDAs. Hint: Find an example non-CFL accepted by a 2-head PDA. Theorem: Non-determinism increases the power of PDAs. Hint: Find a CFL not accepted by any deterministic PDA. Extra-credit: prove each!

PDA = CFG Loop start Var S end
Theorem: If a Language is derivable by some context free grammar then it is accepted by some PDA Proof idea: Construct a PDA which checks if there is a way of reversing the substitution rules of the grammar to produce the start variable. Machine description: Put the symbol ‘\$’ onto the stack Put the start symbol onto the stack Repeat the following: If the top of the stack has a variable V, nondeterministically choose a substitution rule . Pop the V and push the rhs of the rule onto the stack If the top is a terminal symbol ‘a’ then check if the next input symbol is also ‘a’ . If so then pop the ‘a’, if not then reject. If the top of the stack is ‘\$’ then enter the accept state, accept if all input has been read. ε, ↓\$ Var S ε, ↑V↓R ε, ↓S Loop ε, ↑\$ a, ↑a end

PDA = CFG Loop start Var S end Example: S→aSb|ε ε, ↓\$ ε, ↑S↓bSa ε, ↓S
b, ↑b a, ↑a ε, ↑\$ end

PDA = CFG Loop start Var S end Example: S→aSaa|B B→bB|ε ε, ↓\$
ε, ↑S↓aaSa ε, ↓S b, ↑b Loop ε, ↑S↓B a, ↑a ε, ↑B ε, ↑B↓Bb ε, ↑\$ end

PDA = CFG Theorem: If a Language is accepted by some PDA then it is derivable by some CFG Proof idea: For every pair of states (p,q) in the machine construct a variable. This variable generates all strings that cause the machine to transition from p with an empty stack to q on an empty stack. The variable for (start, accept) is the start variable. Machine restrictions: There is a unique accept state The stack is empty before accepting Each transition performs at most 1 stack operation Construction: There are two cases for states (p,q): The last item popped is the same as the first item pushed, apply the rule Vpq →a Vrs b where ‘a’ matches the transition out of p to state r, and ‘b’ matches the transition out of state s to state q. The stack was emptied previously in in the path. For the latter we add rule Vpq →Vpr Vrq where r is the state where the stack becomes empty.

PDA = CFG start a‘s b‘s Va,a → ε Va,b → b Va,end →ba Vb,b → ε
Example: Vstart,start → ε Vstart,a → a Vstart,b →ab Vstart,end → a Va,b a a b a start a‘s b‘s end Va,a → ε Va,b → b Va,end →ba Vb,b → ε Vb,end →a Vend,end → ε

PDA = CFG a‘s b‘s start Va,b → a Va,b b|a Va,ab Va,end → Vb,start →
Example: Vstart,start → ε Vstart,a → Vstart,b → Vstart,end → ε| ε Va,b ε Va,start → Va,a → ε a‘s ε, ↓\$ end b‘s a, ↓a start b, ↑a ε, ↑\$ ε Va,b → a Va,b b|a Va,ab Va,end → Vb,start → Vb,a → Vb,b → ε Vb,end → Vend, start → Vend,a → Vend,b → Vend,end → ε

PDA = CFG a‘s b‘s start Va,b → a Va,b a| b Va,b b| ε Va,end →
Example: Vstart,start → ε Vstart,a → Vstart,b → Vstart,end → ε Va,b ε Va,start → Va,a → ε a‘s ε, ↓\$ end b‘s a, ↓a b, ↓b start ε ε, ↑\$ a, ↑ a b, ↑ b Va,b → a Va,b a| b Va,b b| ε Va,end → Vb,start → Vb,a → Vb,b → ε Vb,end → Vend, start → Vend,a → Vend,b → Vend,end → ε

Parse Tree Describes derivation of a string from a CFG Examples:
S→aSaa|B B→BB|b|ε S B a aa b S ® a for each aÎSL S ® (S) | SS | S* | S+S S ( a + b ) *

Pumping Lemma for Context Free Languages
If L is a CFL then there is some number p such that for any string s in L where |s|>p we can divide s into 5 substrings s=uvxyz in a way to satisfy all of the following: For each i≥0, |vy|>0 |vxy|≤p

Pumping Lemma for Context Free Languages
For each i≥0, |vy|>0 |vxy|≤p Proof: Consider the CFG for L. The grammar has a finite number of production rules. If a string is long enough, some variable must have been reached twice. S u z R v y x S R u v x y z S R u x z

Pumping Lemma for Context Free Languages
For each i≥0, |vy|>0 |vxy|≤p Example: Consider: If any of a,b,c are not part of vy then we definitely fail rule 1. Because of rule 3 if v contains the letter ‘a’ then y cannot contain the letter ‘b’

Pumping Lemma for Context Free Languages
For each i≥0, |vy|>0 |vxy|≤p Example:. Consider: If neither a,c or b,d are not part of vy then we definitely fail rule 1. Because of rule 3 if v contains the letter ‘a’ then y cannot contain the letter ‘c’ If v contains the letter ‘b’ then y cannot contain the letter ‘d’

Pumping Lemma for Context Free Languages
For each i≥0, |vy|>0 |vxy|≤p Example: Consider: If I modify the first set of ‘a’s then I must also modify the second set. If v contains one of the first set of ‘a’s then y cannot contain one of the second set due to rule 3. The case for the ‘b’s is similar.

Here Be an extra slide

Pumping Lemma for Context Free Languages
For each i≥0, |vy|>0 |vxy|≤p Proof: Consider the CFG for L. The grammar has a finite number of production rules. If a string is long enough, some rule must have been applied twice. S R u v x y z S R u x z S R u v x y z

Download ppt "Theory of Computation CS3102 – Spring 2014 A tale of computers, math, problem solving, life, love and tragic death Nathan Brunelle Department of Computer."

Similar presentations