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
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
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
isx
from imagev
isy
in imagew
isz
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)
.
来源:https://stackoverflow.com/questions/13408487/pumping-lemma-regular-language