Доказательство нерегулярности языков: лемма о разрастании
Лемма о разрастании[1] — лемма, позволяющая во многих случаях проверить, является ли данный язык регулярным.
Содержание
| Лемма (о разрастании): | 
| Пусть  — регулярный язык над алфавитом , тогда существует такое , что для любого слова  длины не меньше  найдутся слова , для которых верно:  и . | 
| Доказательство: | 
| Пусть  — регулярный язык над алфавитом . Поскольку регулярный язык является автоматным, то найдётся автомат , допускающий язык . Пусть  — размер автомата. Докажем, что  удовлетворяет условию леммы. Возьмём произвольное слово длины не меньше из языка . Рассмотрим переходы в автомате . Так как не меньше количества состояний в автомате , то в переходах будет совпадение. Пусть и — первое совпадение. Тогда, повторяя участок слова , который отвечает за переход от к , получаем слово, допускаемое автоматом. То есть, если верно , то тогда верно . Тогда автомат допускает слово , следовательно принадлежит регулярному языку . | 
Замечание. Условие леммы не является достаточным для регулярности языка. (См. пример 2)
Доказательства нерегулярности языков
Для доказательства нерегулярности языка можно использовать свойства регулярных и автоматных языков.
Часто удобно использовать отрицание леммы о разрастании. Пусть  — язык над алфавитом . Если для любого натурального  найдётся такое слово  из данного языка, что его длина будет не меньше  и при любом разбиении на три слова  такие, что  непустое и длина  не больше , существует такое , что , то язык  нерегулярный.
Пример доказательства с использованием леммы
Рассмотрим язык праильных скобочных последовательностей. Для фиксированного предъявляем слово . Пусть как-то разбили на . Так как , то , где . Для любого такого разбиения берём и получаем , что не является правильной скобочной последовательностью. Значит, язык правильных скобочных последовательностей нерегулярен.
Пример доказательства без использования леммы
Докажем нерегулярность языка . Заметим, что здесь условие леммы о накачке выполнено . Докажем нерегулярность языка с помощью свойств ДКА. Пусть для языка существует автомат c состояниями. Пусть после нулей на вход поступило единиц. При помощи рассуждений, аналогичных приведенным в доказательстве леммы, получаем, что с момента завершения считывания нулей до последнего считывания единицы автомат посетит состояние, т. е. хотя бы в одном из них он окажется дважды. Пусть при первом посещении этого состояния автомат считал единиц, при втором — . Поскольку принимается автоматом, а — не принимается, то при подаче автомату, находящемуся в этом состоянии, двоек, автомат, с одной стороны, должен оказаться в допускающем состоянии, с другой — в недопускающем.
См. также
- Лемма о разрастании для КС-грамматик
- Интерпретация булевых формул с кванторами как игр для двух игроков
Примечания
- ↑ Лемму также часто называют леммой о накачке.
Литература
- Хопкрофт Д., Мотвани Р., Ульман Д. — Введение в теорию автоматов, языков и вычислений, 2-е изд. : Пер. с англ. — Москва, Издательский дом «Вильямс», 2002. — 528 с. : ISBN 5-8459-0261-4 (рус.)

