Правоконтекстные грамматики, эквивалентность автоматам
| Определение: |
| Праволинейной грамматикой называется грамматика, в которой все правила имеют вид , . |
Аналогично можно определить леволинейные грамматики.
| Теорема: |
Множество языков, задаваемых праволинейными грамматиками совпадает со множеством языков, задаваемых конечными автоматами. |
| Доказательство: |
|
Пусть имеется конечный автомат. Построим для него праволинейную грамматику. Множеством нетерминалов нашей грамматики будет множество состояний автомата. Для каждой пары состояний автомата и таких, что имеется переход из в по символу , и – не является допускающим состоянием в автомате, добавим в грамматику правило . Затем для каждой пары состояний автомата и таких, что имеется переход из в по символу , и – является допускающим состоянием в автомате, добавим в грамматику правило . Докажем, что если для автомата верно , то для построенной грамматики верно . Будем доказывать индукцией по переходам в автомате. Базой индукции будут переходы за 0 шагов. Индукционный переход: пусть данное свойство выполняется для переходов длины . Докажем что верно и для переходов за шагов. Рассмотрим переход , а именно его последний шаг: Так как для шагов верно, то но по построению грамматики имеется правило , значит . Таким образом доказали для шагов. Теперь пусть имеется праволинейная грамматика. Построим по ней конечный детерминированный автомат. Введем специальное допускающее состояние . Множеством состояний автомата будет множество нетерминалов грамматики вместе с состоянием (). Для правил вида определим функцию перехода в автомате как . Для правил вида определим функцию перехода в автомате как |