Лемма прокачки гласит:
Если язык A регулярный =>, существует число p (длина накачки), где, если s - любая строка в L такая, что | s | > = p, то s можно разделить на три части: s = xyz, удовлетворяющих следующему условию:
- xy i z находится в L для каждого i> = 0
- | y |> = 0
- p> = | xy |
Правильный способ показать, что определенный язык L не является регулярным, состоит в том, чтобы предположить, что L является регулярным, и попытаться достичь противоречия.
Давайте попробуем продемонстрировать, что L = {0 n 1 n } | n> = 0} не является регулярным.
Мы начинаем предполагать, что L регулярна.
Вы можете думать об этой демонстрации как об игре:
Претендент: Он выбирает длину прокачки с. Вы не можете делать какие-либо предположения об этом.
Вы : Теперь ваша очередь: выберите «вид» строки, которая представляет неправильность языка.
Допустим, строка имеет вид 0 p 1 p .
Хороший совет на этом этапе - попытаться ограничить противника следующим ходом.
Претендент: Он представляет вам строку s в форме 0 p 1 p .
Вы: Пора прокачать! Если вы правильно выбрали форму строки в предыдущем шаге, вы можете сделать некоторые предположения.
В нашем случае, например, мы знаем, что подстрока y состоит только из 0s (по крайней мере, один 0, потому что | y |> 0), потому что | xy | <= p и первые p-элементы равны 0s. </p>
Теперь мы покажем, что он существует i> = 0 так, что xy i z отсутствует в L. Например, для i = 2 строка xyyz имеет больше 0s, чем 1s, и поэтому не является членом Л. Этот случай противоречие. => L не является регулярным.
Никогда не забывайте демонстрировать, почему накачанная колонна не может быть членом L.
Если у вас есть какие-либо сомнения, не стесняйтесь спрашивать :)
Приветствие.