Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Pumping lemma (Regular language)

I need some help with a pumping lemma problem.

L = { {a,b,c}* | #a(L) < #b(L) < #c(L) }

This is what I got so far:

y = uvw is the string from the pumping lemma.

I let y = abbc^n, n is the length from the pumping lemma. y is in L because the number of a:s is less than the number of b:s, and the number of b:s is less than the number of c:s.

I let u = a, v = bb and w = c^n. |uv| < y, as stated in pumping lemma. If I "pump" (bb)^2 then i get

y = abbbbc^n which violates the rule #b(L) < #c(L).

Is this right ? Am I on the "right path" ?

Thanks

like image 991
mrjasmin Avatar asked Nov 16 '12 00:11

mrjasmin


1 Answers

The main idea of the pumping lemma is to tell you that when you have a regular language L with infinite number of terms there is a pattern in the language that repeats forever.

The regular expression associated with that language will contain KLEENE-STAR(pattern).

The automaton associated with that regular expression (and language) will contain a loop.

The proof is done using the pigeon principle.

This image is very suggestive.

Note that all terms must start in q0 and end in qn in this case. So, the automata defining the language is finite (max N states), so there are a limited number of states, but the words (i.e. terms) can have >N letters. The pigeon principle tells us that there must be a state that is reached 2 times, so at that state a loop will be present.

In your notation, you can make the correspondence with the image so:

  • your u is x from image

  • v is y in image

  • w is z from image

To arrive from q0 to qn, you can use any of the strings from the set: { uw , uvw, uvvw, uvvvw, ... }.

In this particular case the pattern P is y, the set X is {xz xyz xyyz xyyyz ...} and S is length(x)+length(y).

like image 143
alinsoar Avatar answered Sep 19 '22 02:09

alinsoar