Доказательство нерегулярности языков: лемма о разрастании — различия между версиями
(Отмена правки 27233 участника Roman Kolganov (обсуждение) wrong) |
|||
| Строка 1: | Строка 1: | ||
| − | '''Лемма о разрастании'''<ref>Лемму также часто называют ''леммой о накачке''.</ref> — лемма, позволяющая во многих случаях проверить, является ли данный язык [[Регулярные языки: два определения и их эквивалентность|регулярным]]. | + | '''Лемма о разрастании'''<ref>Лемму также часто называют ''леммой о накачке''.</ref>(Pumping lemma) — лемма, позволяющая во многих случаях проверить, является ли данный язык [[Регулярные языки: два определения и их эквивалентность|регулярным]]. |
__TOC__ | __TOC__ | ||
{{Лемма | {{Лемма | ||
Версия 22:54, 10 декабря 2013
Лемма о разрастании[1](Pumping lemma) — лемма, позволяющая во многих случаях проверить, является ли данный язык регулярным.
Содержание
| Лемма (о разрастании, о накачке): |
Пусть — регулярный язык над алфавитом , тогда существует такое , что для любого слова длины не меньше найдутся слова , для которых верно: и . |
| Доказательство: |
|
Пусть — регулярный язык над алфавитом . Поскольку регулярный язык является автоматным, то найдётся автомат , допускающий язык . Пусть — размер автомата. Докажем, что удовлетворяет условию леммы.
|
Замечание. Условие леммы не является достаточным для регулярности языка. (См. пример 2)
Доказательства нерегулярности языков
Для доказательства нерегулярности языка можно использовать свойства регулярных и автоматных языков.
Часто удобно использовать отрицание леммы о разрастании. Пусть — язык над алфавитом . Если для любого натурального найдётся такое слово из данного языка, что его длина будет не меньше и при любом разбиении на три слова такие, что непустое и длина не больше , существует такое , что , то язык нерегулярный.
Пример доказательства с использованием леммы
Рассмотрим язык правильных скобочных последовательностей. Для фиксированного предъявляем слово . Пусть как-то разбили на . Так как , то , где . Для любого такого разбиения берём и получаем , что не является правильной скобочной последовательностью. Значит, язык правильных скобочных последовательностей нерегулярен.
Пример доказательства без использования леммы
Докажем нерегулярность языка . Заметим, что здесь условие леммы о накачке выполнено . TODO: предыдущее утверждение — неправда, возьмем , получим не в языке
Докажем нерегулярность языка с помощью свойств ДКА. Пусть для языка существует автомат c состояниями. Пусть после нулей на вход поступило единиц. При помощи рассуждений, аналогичных приведенным в доказательстве леммы, получаем, что с момента завершения считывания нулей до последнего считывания единицы автомат посетит состояние, т. е. хотя бы в одном из них он окажется дважды. Пусть при первом посещении этого состояния автомат считал единиц, при втором — . Поскольку принимается автоматом, а — не принимается, то при подаче автомату, находящемуся в этом состоянии, двоек, автомат, с одной стороны, должен оказаться в допускающем состоянии, с другой — в недопускающем.
См. также
- Лемма о разрастании для КС-грамматик
- Интерпретация булевых формул с кванторами как игр для двух игроков
Примечания
- ↑ Лемму также часто называют леммой о накачке.
Литература
- Хопкрофт Д., Мотвани Р., Ульман Д. Введение в теорию автоматов, языков и вычислений, 2-е изд. : Пер. с англ. — М.:Издательский дом «Вильямс», 2002. — С. 144. — ISBN 5-8459-0261-4