Пусть L(G) - некоторый e-свободный КС-язык, причем G - грамматика в НФХ.
Теорема: Если некоторая цепочка х языка L(G) имеет дерево вывода глубины m, то длина цепочки |x|£ 2m-1.
Следствие: Если длина некоторой цепочки |x|>2m, то дерево вывода имеет глубину более чем m.
Основная теорема КС-языков:
Пусть L - КС-язык, порожденный грамматикой G в НФХ. Тогда существуют целые числа l1 и l2 такие, что для любой zÌL, длина которой |z|>l1 справедливо следующее утверждение:
z= uvwxy.
1. длина цепочки |vwx|£l2;
2. цепочка vx¹e;
3. для любых i³0 существует цепочка uviwxiy.
Доказательство: Положим n= |N| - мощность множества нетерминалов. Возьмем l1= 2n-1 и l2= 2n. По условию теоремы |z|>2n-1, тогда глубина дерева больше n. На этом пути обязательно встретятся два одинаковых нетерминала. Возьмем два таких нетерминала, которые дальше всего отстоят от корня. Начиная с N1 путь имеет длину не более n+1. Таким образом, длина цепочки, выводимой из вершины N1 не более, чем 2n. Значит любая цепочка, выводимая из N1 не больше 2n.
|vwx|<2n= l2 и vx¹e, так как из N1 выходят две дуги.
|
|
A®*vAx и A®*w, следовательно A®*vwx. Тогда A®*vAx®*v2Ax2®* viAxi. Следовательно, S®*uAy®* uviwxiy.
Вопросы и упражнения
Пусть задана грамматика G=(T, N, S, P):
S®AB
A®ba
B®с
1.Постройте вывод цепочки в данной грамматики.
2.Постройте для полученной цепочки дерево вывода.
3. Сравните длину цепочки и глубину дерева вывода. Верна ли данная теорема?