Since context-free languages are so important, it is desirable to have
some way of proving when a language isn't context-free. We did
this for regular languages by choosing those which were ``big enough''
(ie. infinite) to cause a particular type of repetition (or periodicity) in their derivation. The nature of the ``pump'' (for
regular expressions it was Kleene Closure) could then be used to
characterise these languages.
So we consider some questions about context-free grammars:
This ``matching'' or ``balancing'' of two patterns is the hallmark of context-free languages.
Let us suppose that u, x and z are strings such that:
Tying all this together we get: