Контексты и синтаксические моноиды — различия между версиями
(→Правый контекст) |
|||
Строка 12: | Строка 12: | ||
|proof= | |proof= | ||
<tex>\Leftarrow</tex>: | <tex>\Leftarrow</tex>: | ||
− | <br />Пусть множество правых контекстов языка конечно. Тогда построим распознающий его автомат. | + | <br />Пусть множество правых контекстов языка конечно. Тогда построим распознающий его автомат. Состояния автомата будут соответствовать различным правым контекстам. Переход по некоторому символу из одного состояния в другое строится, если контекст, соответствующий первому состоянию, содержит элементы, которые получаются приписыванием этого символа в начало элементам контекста, соответствующего второму. |
<br /><tex>\Rightarrow</tex>: | <br /><tex>\Rightarrow</tex>: | ||
Пусть <tex>L</tex> {{---}} регулярный. Тогда существует автомат <tex>A</tex>, распознающий его. Рассмотрим произвольное слово <tex>y</tex>. Пусть <tex>u</tex> {{---}} состояние <tex>A</tex>, в которое можно перейти из начального по слову <tex>y</tex>. Тогда <tex>C_L^R(y)</tex> совпадает с множеством слов, по которых из состояния <tex>u</tex> можно попасть в допускающее. Причем если по какому-то слову <tex>z</tex> тоже можно перейти из начального состояния в <tex>u</tex>, то <tex>C_L^R(y) = C_L^R(z)</tex>. Наоборот, если <tex>C_L^R(y) = C_L^R(z)</tex>, то состояния, в которые можно перейти по словам <tex>y</tex> и <tex>z</tex>, эквивалентны. Таким образом, можно установить взаимное соответствие между правыми контекстами и классами эквивалентности вершин автомата, которых конечное число. | Пусть <tex>L</tex> {{---}} регулярный. Тогда существует автомат <tex>A</tex>, распознающий его. Рассмотрим произвольное слово <tex>y</tex>. Пусть <tex>u</tex> {{---}} состояние <tex>A</tex>, в которое можно перейти из начального по слову <tex>y</tex>. Тогда <tex>C_L^R(y)</tex> совпадает с множеством слов, по которых из состояния <tex>u</tex> можно попасть в допускающее. Причем если по какому-то слову <tex>z</tex> тоже можно перейти из начального состояния в <tex>u</tex>, то <tex>C_L^R(y) = C_L^R(z)</tex>. Наоборот, если <tex>C_L^R(y) = C_L^R(z)</tex>, то состояния, в которые можно перейти по словам <tex>y</tex> и <tex>z</tex>, эквивалентны. Таким образом, можно установить взаимное соответствие между правыми контекстами и классами эквивалентности вершин автомата, которых конечное число. |
Версия 03:06, 27 сентября 2011
Содержание
Контексты
Правый контекст
Определение: |
Правым контекстом | слова в языке называется множество .
Лемма: |
Язык — регулярный множество его правых контекстов конечно |
Доказательство: |
|
Левый контекст
Определение: |
Левым контекстом | слова в языке называется множество .
Лемма: |
Язык — регулярный множество его левых контекстов конечно |
Доказательство: |
Поскольку множество регулярных языков замкнуто относительно операции разворота, то из того, что | и аналогичного утверждения о правых контекстах получаем требуемое.
Двухсторонний контекст
Определение: |
Двухсторонним контекстом | слова в языке называется множество .
Теорема: |
Язык — регулярный множество его двухсторонних контекстов конечно |
Доказательство: |
|
Синтаксический моноид
Определение: |
Синтаксическим моноидом языка | называется множество его двухсторонних контекстов с введенной на нем операцией конкатенации , где . Нейтральным элементом в нем является
Размер синтаксического моноида является мерой структурной сложности языка. Заметим, что если язык распознается автоматом из
состояний, размер его синтаксического моноида не превосходит .