formal_language_theory / lectures / unit_5
.pdfL — cfl L = N(M)
Очевидно, что в магазине pda M, если он не пуст, всегда находится нетерминальная цепочка, причём на вершине — символ, подлежащий замене на текущем шаге левостороннего вывода.
Заметим, что pda M не совершает - движений.
61
L — cfl L = N(M)
Чтобы показать, что L(G) = N(M), достаточно доказать, что
A |
|
x |
|
|
* |
|
|
|
lm |
|
|
тогда и только тогда, когда |
|||
(q, x, A) |
* |
(q, , ) |
|
M |
|||
|
|
для любых x VT+, A VN, VN*. Утверждение теоремы последует как
частный случай этого вспомогательного утверждения при A = S, = .
62
L — cfl L = N(M)
I. Индукцией по длине вывода l покажем,
что если A x , |
где x VT+, VN*, |
||
* |
|
|
|
lm |
* |
(q, , ). |
|
то (q, x, A) |
|
||
M |
|
||
|
|
|
|
База. Пусть l = 1. Имеем A |
x . |
||
|
|
|
lm |
Это значит, что существует правило
A x P, где x VT, VN*.
Одновременно по построению автомата M мы имеем
(q, ) (q, x, A), а тогда (q, x, A) __M (q, , ).
63
L — cfl L = N(M)
Индукционная гипотеза. Предположим, что для всех l n (n 1),
l |
|
(q, , ). |
если A x , то (q, x, A) |
* |
|
lm |
M |
|
|
|
Индукционный переход. Докажем это утверждение для l = n + 1.
n |
|
Пусть A yB ya = x — левосторон- |
|
lm |
lm |
ний вывод длиной n + 1.
В нём x = ya, = и B a P.
64
L — cfl L = N(M)
В соответствии с индукционной гипотезой
n |
следует (q, y, A) |
* |
(q, , B ). |
|||
из A yB |
M |
|||||
lm |
|
|
|
|
||
|
|
|
|
|
||
стороны, B |
a P, и по |
|||||
С другой |
построению pda M имеем (q, ) (q, a, B). Учитывая эти два обстоятельства, можем
написать:
(q, x, A) = (q, ya, A) M* (q, a, B ) __M (q, , ) = = (q, , ).
Утверждение I доказано.
65
L — cfl L = N(M)
II. Теперь индукцией по числу l движений автомата M покажем, что
если (q, x, A) |
l |
(q, , ), |
||
M |
||||
* |
|
|
||
|
|
|
||
то A x . |
|
|
|
|
lm |
|
|
|
|
База. Пусть l = 1. |
|
|
||
Имеем (q, x, A) |
__ |
(q, , ), |
||
M |
|
|||
|
|
|
где x VT+, VN*,
где x VT+, VN*.
Это движение определятся тем, что (q, ) (q, x , A), где x VT (pda M не совершает-движений). Оно обусловлено тем, что существует правило A x P, с помощью которого получаем требуемый вывод A x .
lm 66
L — cfl L = N(M)
Индукционная гипотеза. Предположим, что утверждение выполняется для всех l n
(n 1).
Индукционный переход. Докажем это утверждение для l = n + 1. Пусть
(q, x, A)
=
=
(q, ya, A) |
n |
(q, a, B ) |
__ |
(q, , |
|
||||
M |
M |
(q, , ), где x = ya, = .
) =
Последнее из этих движений подразуме-
вает, что (q, ) (q, a, B), где a VT, а это обусловлено существованием правила
B a P.
67
L — cfl L = N(M)
Учитывая следствие индукционной гипотезы из перехода
(q, ya, A)
n
M
(q, a, B )
и упомянутое правило,
A * yB
мы можем написать: ya = x .
lm
Утверждение
lm |
x |
|
|
II доказано.
Из рассуждений, проведённых в пп. I и II, при A = S и = получаем утверждение теоремы.
Что и требовалось доказать.
68
L = N(M) L — cfl
Теорема 5.3. Если M — недетерминированный магазинный автомат, и L = N(M), то L — контекстно-свободный язык.
Доказательство. Пусть
M = (Q, , , , q0, Z0, ) —
недетерминированный pda, такой, что
L = N(M).
69
L = N(M) L — cfl
Построим cfg G, левосторонние выводы
вкоторой моделируют движения pda M.
Вчастности, нетерминалы, которые появляются в сентенциальных формах на любом шаге левостороннего вывода в грамматике G, соответствуют символам в магазине автомата M в момент, когда он уже просмотрел такую же часть входной цепочки, какую грамматика уже породила.
70