230 likes | 373 Vues
This lecture from CS21 provides an in-depth exploration of the Pumping Lemma for Context-Free Languages (CFLs) and the properties of Deterministic Pushdown Automata (DPAs). It introduces the concept of the pumping length and illustrates its application through examples that prove certain languages are not context-free. Additionally, the lecture discusses how deterministic PDAs function, highlighting their role in recognizing a class of languages known as deterministic CFLs. Key proofs related to the closure properties of DCFLs are also examined.
E N D
CS21 Decidability and Tractability Lecture 7 January 22, 2014 CS21 Lecture 7
Outline • proof of CFL pumping lemma • deterministic PDAs • deciding CFLs CS21 Lecture 7
Pumping Lemma for CFLs CFL Pumping Lemma: Let L be a CFL. There exists an integer p (“pumping length”) for which every w L with |w| p can be written as w = uvxyz such that • for every i 0, uvixyiz L , and • |vy| > 0, and • |vxy| p. CS21 Lecture 7
CFL Pumping Lemma Example Theorem: the following language is not context-free: L = {anbncn : n ≥ 0}. • Proof: • let p be the pumping length for L • choose w = apbpcp w = aaaa…abbbb…bcccc…c • w = uvxyz, with |vy| > 0 and |vxy| p. CS21 Lecture 7
CFL Pumping Lemma Example • possibilities: w = aaaa…aaabbb…bbcccc…c (if v, y each contain only one type of symbol, then pumping on them produces a string not in the language) u v y z x CS21 Lecture 7
CFL Pumping Lemma Example • possibilities: w = aaaa…abbbb…bccccc…c (if v or y contain more than one type of symbol, then pumping on them might produce a string with equal numbers of a’s, b’s, and c’s – if vy contains equal numbers of a’s, b’s, and c’s. But they will be out of order.) u v y z x CS21 Lecture 7
CFL Pumping Lemma Proof: consider a parse tree for a very long string w L: long path S . . . A B C . . . . . . A D S C S A A B a A C b A D D C B A a b b S S b b B A b b b some non-terminal must repeat on long path a a b a CS21 Lecture 7
CFL Pumping Lemma S • Schematic proof: S A S A A A A u v y z u v x y z A u v y z A v x y CS21 Lecture 7
CFL Pumping Lemma S • Schematic proof: S A S A A A u z u v x y z x u z CS21 Lecture 7
CFL Pumping Lemma • how large should pumping length p be? • need to ensure other conditions: |vy| > 0 |vxy| ≤ p • b = max # symbols on rhs of any production (assume b ≥ 2) • if parse tree has height ≤ h, then string generated has length ≤ bh (so length > bh implies height > h) CS21 Lecture 7
CFL Pumping Lemma • let m be the # of nonterminals in the grammar • to ensure path of length at least m+2, require |w| ≥ p = bm+2 • since |w| > bm+1, any parse tree for w has height > m+1 • let T be the smallest parse tree for w • longest root-leaf path must consist of ≥ m+1 non-terminals and 1 terminal. CS21 Lecture 7
CFL Pumping Lemma S • must be a repeated non-terminal A on long path • select a repetition among the lowest m+1 non-terminals on path. • pictures show that for every i 0, uvixyiz L A A u v x y z • is |vy| > 0 ? • smallest parse tree T ensures • is |vxy| ≤ p? • red path has length ≤ m+2, so ≤ bm+2 = p leaves CS21 Lecture 7
Deterministic PDA • A NPDA is a 6-tuple (Q, Σ, , δ, q0, F) where: • δ:Q x (Σ {ε}) x ( {ε}) → (Q x ( {ε})) is a function called the transition function • A deterministic PDA has only one option at every step: • for every state q Q, a Σ, and t ( {ε}), exactly 1 element in δ(q, a, t), or • exactly 1 element in δ(q, ε, t), andδ(q, a, t) empty for all a Σ CS21 Lecture 7
Deterministic PDA • A technical detail: we will give our deterministic machine the ability to detect end of input string • add special symbol ■ to alphabet • require input tape to contain x■ • language recognized by a deterministic PDA is called a deterministic CFL (DCFL) CS21 Lecture 7
Example deterministic PDA L = {0n1n : n 0} (unpictured transitions go to a “reject” state and stay there) 0, ε→ 0 ε, ε→ $ Σ = {0, 1} = {0, 1, $} 1, 0→ε ■, $→ε 1, 0→ε CS21 Lecture 7
Deterministic PDA Theorem: DCFLs are closed under complement (complement of L in Σ* is (Σ* - L) ) Proof attempt: • swap accept/non-accept states • problem: might enter infinite loop before reading entire string • machine for complement must accept in these cases, and read to end of string CS21 Lecture 7
Example of problem 1, ε→ε 0, ε→ε 0, ε→ε ■, ε→ε ■, ε→ε 1, ε→ε ε, ε→ $ ε, ε→ $ Language of this DPDA is 0* CS21 Lecture 7
Example of problem 1, ε→ε 0, ε→ε 0, ε→ε ■, ε→ε ■, ε→ε 1, ε→ε ε, ε→ $ ε, ε→ $ Language of this DPDA is {} CS21 Lecture 7
Deterministic PDA Proof: • convert machine into “normal form” • always reads to end of input • always enters either an accept state or single distinguished “reject” state • step 1: keep track of when we have read to end of input • step 2: eliminate infinite loops CS21 Lecture 7
Deterministic PDA step 1: keep track of when we have read to end of input q0’ q0 q1 q1’ ■, ? → ? ■, ? → ? q3 q3’ q2 q2’ CS21 Lecture 7
Deterministic PDA step 1: keep track of when we have read to end of input ■, ? → ? q0’ q0 q1 q1’ ■, ? → ? q3 q3’ q2 q2’ for accept state q’: replace outgoing “ε, ? → ?” transition with self-loop with same label CS21 Lecture 7
Deterministic PDA step 2: eliminate infinite loops • add new “reject” states a, t →t (for all a, t) ε, t → t (for all t) r’ r ■, t → t (for all t) CS21 Lecture 7
Deterministic PDA step 2: eliminate infinite loops • on input x, if infinite loop, then: stack height time i0 i1 i2 i3 infinite sequence i0< i1< i2< … such that for all k, stack height never decreases below ht(ik) after time ik CS21 Lecture 7