Из Википедии, язык прокачки для обычных языков выглядит следующим образом:
Пусть обычный язык. Тогда существует целое число p ≥ 1 (в зависимости только от L ), такое, что каждая строка w в L длиной не менее p ( p называется «длиной накачки») может быть записана как w = x y z (т. Е. W может разделить на три подстроки), удовлетворяя следующим условиям:Lp≥1LwLppw=xyzw
- |y|≥1
- и |xy|≤p
- для всех , х у я г ∈ L . y - подстрока, которую можно перекачать (удалить или повторить любое количество раз, а полученная строка всегда находится в L ). i≥0xyiz∈L
yL
(1) означает, что перекачиваемая петля y должна иметь длину не менее одной; (2) означает, что цикл должен происходить в пределах первых p символов. Нет ограничений по x и z.
Проще говоря, для любого регулярного языка L любое достаточно длинное слово можно разбить на 3 части. т.е. ш = х у г , таким образом, что все строки х у к г для к ≥ 0 также находятся в L .w∈Lw=xyzxykzk≥0L
Теперь давайте рассмотрим пример . Пусть .L={(01)n2n∣n≥0}
Чтобы показать, что это не регулярно, вам нужно рассмотреть, как выглядят все разложения , так что можно определить все возможные вещи x, y и z, что x y z = ( 01 ) p 2 p (мы решили посмотреть на это конкретное слово длиной 3 p , где p - длина накачки). Нам нужно рассмотреть, где находится часть y строки. Он может пересекаться с первой частью и, следовательно, будет равен ( 01 ) k + 1 , ( 10 )w=xyzxyz=(01)p2p3ppy(01)k+1 ,1(01 ) k или0(10 ) k для некоторогоk≥0(не забывайте, что | y | ≥1). Он может пересекаться со второй частью, что означает, чтоy= 2 k , для некоторогоk>0. Или он может перекрывать две части слова и будет иметь вид(01 ) k + 1 2 l ,(10 ) k(10)k+11(01)k0(10)kk≥0|y|≥1y=2kk>0(01)k+12l ,1(01 ) k 2 l или0(10 ) k 2 l , дляk≥0иl≥1.(10)k+12l1(01)k2l0(10)k2lk≥0l≥1
Теперь прокачайте каждое из них, чтобы получить противоречие, которое будет словом не на вашем языке. Например, если мы возьмем , лемма прокачки говорит, например, что x y 2 z = x 0 ( 10 ) k 2 l 0 ( 10 ) k 2 l z должно быть в языка, при соответствующем выборе х и г . Но это слово не может быть в языке, так как 2 стоит перед 1 .y=0(10)k2lxy2z=x0(10)k2l0(10)k2lzxz21
В других случаях число будет больше, чем число 2 или наоборот, или приведет к тому, что слова не будут иметь структуру ( 01 ) n 2 n , например, имея два 0 подряд.(01)2(01)n2n0
Не забывай это . Здесь полезно сократить доказательство: многие из приведенных выше разложений невозможны, поскольку они могут сделать часть z слишком длинной.|xy|≤pz
Каждый из приведенных выше случаев должен приводить к такому противоречию, которое тогда будет противоречить лемме о накачке. Вуаля! Язык не будет регулярным.