Теорема Парика
Линейные множества
В этом разделе предполагается, что зафиксирован некоторый линейный порядок на алфавите . Пусть .
Определение: |
Через | будем обозначать функцию , определённую следующим образом: , где — число появлений символа в слове . Аналогично, каждому языку ставится в соответствие множество , определённое так: .
Пусть и . Тогда .
Определение: |
Пусть | при — вектора в множестве . Множество называется линейным (англ. linear) подмножеством множества .
Говоря проще, линейное подмножество может быть построено с помощью любого m-размерного вектора добавлением к нему произвольного числа m-размерных векторов из конечного множества, например, 1 раз и 0 раз остальные вектора, 1 раз , 1 раз и 0 раз остальные, и так далее.
Множество является линейным.
Определение: |
Подмножество множества | называется полулинейным (англ. semilinear), если оно является объединением конечного числа линейных множеств.
Полулинейное множество имеет следующие свойства:
- Любое конечное подмножество — полулинейно.
- Полулинейные множества замкнуты относительно операции объединения, пересечения, разности и проекции.
- Полулинейные множества по теореме Гинзбурга-Спаниера (англ. Ginsburg and Spanier theorem) — те, которые определяемы в арифметике Пресбургера (англ. Presburger arithmetic)[1].
Пусть
, , и линейные подмножества , а является полулинейным подмножеством .Теорема Парика
Теорема (Парика, англ. Parikh's theorem): | ||||||||||||||||||
Если язык контекстно-свободным, то множество является полулинейным. является | ||||||||||||||||||
Доказательство: | ||||||||||||||||||
Пусть — контекстно-свободная грамматика. Вместо того, чтобы рассматривать , рассмотрим язык , содержащий только строки, порожденные выводами, в которых встречаются все нетерминалы грамматики. Так как теорема Парика говорит о том, что для множество полулинейно, то же самое должно сохраняться и для .
Стоит заметить, что число таких языков в лемме ограничено числом нетерминалов в грамматике: . Вычитание происходит из-за того, что начальный нетерминал не должен быть удален.
Деревья из этого множества соотносятся с деревьями разбора языка , так как при выводе каждого слова из этого языка также используются все нетерминалы грамматики.В отличие от предыдущего определения, для следующего множества число для любого нетерминала не ограничено.
В дополнение, деревья разбора множества должны удовлетворять условию 2 в определении . Еще можно заметить, что деревья из и имеют конечную высоту.
| ||||||||||||||||||
Теорема Парика связывает два понятия: функцию
Эта теорема, так же, как и лемма о накачке и лемма Огдена, не является достаточной: язык не является контекстно-свободным, однако его множество является полулинейным: .
Примеры
Язык
— простое число не является контекстно-свободным, так как множество простых чисел не является полулинейным (в арифметике Пресбургера нельзя определить множество простых чисел).Язык
или — простое и не является контекстно свободным, так как множество, порождаемое функцией , не является полулинейным: множество таких пар — линейно, множество таких пар — линейно, при этом множество простых чисел не является полулинейным, и, как следствие, множество — простое и не является полулинейным, так же не полулинейно.См. также
Примечания
Источники информации
- Гинзбург С. — Математическая теория контекстно-свободных языков
- Håkan Lindqvist — Parikh’s theorem
- Stack Exchange — How to prove that a language is not context-free?