Доказательство нерегулярности языков: лемма о разрастании — различия между версиями
Zarubkin (обсуждение | вклад) |
|||
Строка 2: | Строка 2: | ||
{{Лемма | {{Лемма | ||
|about=О разрастании | |about=О разрастании | ||
− | |statement=<tex>L</tex> - регулярный <tex>\ | + | |statement= |
− | |proof=L - регулярный <tex>\Rightarrow</tex> <tex>\exists</tex> автомат <tex>A : \: n=|Q|</tex> допускающий этот язык. Возьмём <tex>\omega\in L : |\omega|\geqslant n</tex> тогда рассмотрим переходы в автомате <tex>\langle s,\omega\rangle \vdash\langle u_1, \omega[0]^{-1}\omega\dots\vdash\langle u_{l},\epsilon\rangle, \: l\geqslant n</tex>. Так как <tex>l\geqslant n</tex>, то возьмём первое совпадение состояний в автомате <tex>u_i, u_j</tex>. В нашем автомате для <tex>\omega : \: \langle s, xyz\rangle \vdash^*\langle u_i, yz\rangle\vdash^*\langle u_j, z\rangle\vdash^*\langle u_l, \epsilon\rangle</tex>. Тогда <tex>xy^kz</tex> подходит. | + | Пусть <tex>L</tex> - регулярный язык над алфавитом <tex>\Sigma</tex>, тогда существует <tex>n</tex>, такой что для любого слова <tex> \omega \in L</tex>, длины не меньше <tex> n </tex> найдутся слова <tex> x,y,z \in \Sigma^*</tex>, для которых верно <tex>xyz=\omega, y\neq \varepsilon, |xy|\leqslant n</tex> и <tex>xy^{k}z\in L</tex> для всех <tex> k \geqslant 0</tex>. |
+ | |proof= | ||
+ | <tex>L</tex> - регулярный <tex>\Rightarrow</tex> <tex>\exists</tex> автомат <tex>A : \: n=|Q|</tex> допускающий этот язык. Возьмём <tex>\omega\in L : |\omega|\geqslant n</tex> тогда рассмотрим переходы в автомате <tex>\langle s,\omega\rangle \vdash\langle u_1, \omega[0]^{-1}\omega\dots\vdash\langle u_{l},\epsilon\rangle, \: l\geqslant n</tex>. Так как <tex>l\geqslant n</tex>, то возьмём первое совпадение состояний в автомате <tex>u_i, u_j</tex>. В нашем автомате для <tex>\omega : \: \langle s, xyz\rangle \vdash^*\langle u_i, yz\rangle\vdash^*\langle u_j, z\rangle\vdash^*\langle u_l, \epsilon\rangle</tex>. Тогда <tex>xy^kz</tex> подходит. | ||
}} | }} | ||
Версия 03:18, 8 октября 2010
Лемма (О разрастании): |
Пусть - регулярный язык над алфавитом , тогда существует , такой что для любого слова , длины не меньше найдутся слова , для которых верно и для всех . |
Доказательство: |
- регулярный автомат допускающий этот язык. Возьмём тогда рассмотрим переходы в автомате . Так как , то возьмём первое совпадение состояний в автомате . В нашем автомате для . Тогда подходит. |
Чаще используется отрицание леммы для доказательства нерегулярности языка.
Пример 1 Правильная скобочная последовательность.
Для мы берём . Так как , то . Берём и получаем , что не является правильной скобочной последовательностью. Значит правильная скобочная последовательность не регулярный язык.
Пример 2 Язык
Для мы берём . Так как , то . Берём и получаем , что не является элементом нашего языка, значит наш язык не регулярен.
Интерпретация булевых формул с кванторами как игр для двух игроков
Рассмотрим формулу
, где - квантор зависящий от чётности . Теперь возьмём двух игроков и первый будет ставить с нечётными номерами, а второй с чётными. Если в итоге получается истина, то побеждает первый игрок, если получается ложь, то выигрывает второй. Если истинна, то побеждает второй игрок, в противном случае побеждает первый (при правильных ходах). Пусть истинно, тогда отделим первый квантор. , тогда по предположению есть такой , что будет истинно. Верно и для любого с предположением для лжи. В итоге получаем, верное утверждение.