260 likes | 301 Views
Dive into nonregular languages, the pumping lemma, and examples that explore the complexity and computability of finite automata. Gain insights into why most languages are not regular and the fundamental principles that shape regular languages. Explore the notion of pumping lemma and its relevance in determining the nature of regular languages. Learn about finite and infinite languages through practical examples and formal proofs. Enhance your knowledge of automata theory and language recognition through engaging lectures by Rina Zviel-Girshin and Leah Epstein.
E N D
Complexity and Computability Theory I Lecture #7 Instructor: Rina Zviel-Girshin Leah Epstein
Overview • Nonregular languages • The pumping lemma • Examples Rina Zviel-Girshin @ASC
Are all languages regular? • No. • Most of the languages are not regular. • Why? • A finite automaton has limited memory. Rina Zviel-Girshin @ASC
Example The language L = {0n1n | n>0} is not regular. • Two sequences of same length: first of 0's and second of 1's. • It is not regular because when we reach substring of 1’s we have to remember the length of the 0’s substring. • The length is remembered by states - one state for each letter. • The length of 0's substring can be any number. • A finite automaton has a finite number of states. So it can not remember the length of 0’s substring. Rina Zviel-Girshin @ASC
The pumping lemma • The central theorem concerning regular languages is the pumping lemma. • It determines the basic nature of regular languages. • A basic property of a regular language is • in each word (except for a small finite set of words) there is a part which can be repeated and the resulting word - "pumped" word - is still in the language. • The lemma that allows the "pumping" is called the pumping lemma. Rina Zviel-Girshin @ASC
Examples of automata and finite languages • If L(A) is finite, and number of states in A is n, then the longest word in L is less than n in length. Example: A: A has 3 states. The language of A is all words of length 2 or less. Rina Zviel-Girshin @ASC
Finite Languages • If L is finite then L is regular. • Proof idea: • Build an automaton for every word w in L: A(w). • Add qstart with -transitions to each q0 of A(w) • The resulting automaton recognizes L. Rina Zviel-Girshin @ASC
Examples of automata and infinite languages L= ab*c A: Each word in L has a path q0any number of loops on q1q2. Denote the path from q0 to q1 by x Denote the path from q1 to q1 by y Denote the path from q1 to q2 by z Rina Zviel-Girshin @ASC
Examples (cont.) Each word in L has the following three parts: x – a substring on which A goes from q0 to q1 y – a substring on which A goes from q1 to q1 z – a substring on which A goes from q1 to q2 We can say that each word wL is xyz. Rina Zviel-Girshin @ASC
Examples (cont.) All the strings over the * We see that x and z can be . y is never . Rina Zviel-Girshin @ASC
Pumping lemma If L is a regular language then there is a number n such that any string w L of length at least n may be divided into three parts w=xyz such that: • |y|>0 • |xy| n • for each i0 xyiz L Rina Zviel-Girshin @ASC
Informally • For each regular language there is a constant number n, such that any string of length more than n can be pumped. • The pumped part is obviously should not be of length 0 (at least one letter). • The parts before and after the "pumpable" part could be . • The part we may pump is inside a prefix of length at most n. Rina Zviel-Girshin @ASC
Proof idea • Any finite automaton without cycles can recognize only a finite language. • An infinite language is created by automaton with loops. • The infinite number of words is the result of repeating the loop any number of times. • Each word in language L of length more than the number of states includes a path in a cycle (by the pigeonhole principle). Rina Zviel-Girshin @ASC
Proof idea • The part before the cycle is x. • The cycle is y. • The part after is z. • The z part ends with an accepting state as the word is in L. • The loop can be repeated any number of times and still go through z to an accepting state. • Hence the y part can be pumped. • We can repeat the cycle any number of times and still proceed through z to accepting state. Rina Zviel-Girshin @ASC
Formal Proof • Let M be a DFA that recognizes L. Let n be the number of states of M. • Let w be a string in L of length at least n. • It has a prefix of length n. The sequence of states in automaton M that we went through while processing the prefix is q0 and one state for each letter read. • After reading this prefix we have a sequence of n+1 length. Rina Zviel-Girshin @ASC
Formal Proof (cont.) • As there are only n different states in automaton M at least one state has to be repeated while reading the prefix. • Denote one of them r. • The substring read before first appearance of r : x. • The substring between first and second appearance: y. • And the substring after second appearance of r till the end of the string: z. Rina Zviel-Girshin @ASC
Formal Proof (cont.) • z ends with an accepting state f because the string is in L. • y is the cycle in the automaton. • y has at least length 1 because we move from state to state in the DFA only upon reading a letter. Rina Zviel-Girshin @ASC
Formal Proof (cont.) • As there is a path from r to an accepting state f (z) there is a direct path q0 - r - f without going through the r cycle even once (xy0z=xz). • On the other hand we can go through the cycle more than once and still get out from r to I (xyiz). • There is no limit on a number of times we can do through the cycle. Q.E.D. Rina Zviel-Girshin @ASC
Usage of the lemma The main usage of pumping lemma is to prove that some language is not regular. The technique: • Assume that the language is regular. • Find a string w that has a length greater than n. • Find a partition of w into x,y,z such that properties 1 and 2 of pumping lemma hold. • Find an i such that xyiz is not in the language. Rina Zviel-Girshin @ASC
L = {0m1m | m>0} • Is L = {0m1m | m>0} regular? • We will use pumping lemma to show that L is not regular. • Assume to the contrary that L is regular. • Let n be the pumping length given by the pumping lemma. • We choose w= 0n1n . • w is in L, |w|>n so by pumping lemma w can be divided into three parts w=xyz. Rina Zviel-Girshin @ASC
L = {0n1n | n>0} • x and y are both in prefix of length n and so are build of 0's. • Denote the length of x by s and the length of y by t. • Then : • x=0s s0 • y=0t t1,s+tn • z=0n-s-t1n • By pumping lemma if the language is regular then xyiz is in L for any i. Rina Zviel-Girshin @ASC
L = {0n1n | n>0} • Take i=2. • The resulting word is xy2z = 0s02t0n-s-t1n = 0n+t1n . • It is not in L as t1 and the number of 0 is greater than the number of 1. • Thus we have a contradiction to the pumping lemma. • That means: our assumption that L is regular is wrong. • L is not regular language. Rina Zviel-Girshin @ASC
L={an! | n0} • Is L={an! | n0} regular? • We will use pumping lemma to show that L is not regular. • Assume to the contrary that L is regular. • Let n’ be the pumping length given by the pumping lemma. • We choose w= an! where n=max(n’,2) . • w is in L, |w|>n’ so by pumping lemma w can be divided into three parts w=xyz. Rina Zviel-Girshin @ASC
L={an! | n0} • x and y are both in the prefix of length n and consist of a's only. • Denote the length of x by s and the length of y by t. • Then : • x=as s>=0 • y=at t>0,s+t<=n • z=an!-t-s • By pumping lemma if the language is regular then xyiz is in L for any i. Rina Zviel-Girshin @ASC
L={an! | n0} • Take i=2. • The resulting word is xy2z =an!+t . • Now we proove that an!+t is not in L. • We know that t>0 and n>=t that means n!+t <= n!+n < n!+(n+1) < n!*(n+1) = (n+1)! • Thus we have a contradiction to the pumping lemma. • That means: our assumption that L is regular is wrong. • L is not regular language. Rina Zviel-Girshin @ASC
Any Questions? Rina Zviel-Girshin @ASC