Теорема Париха в теоретической информатике гласит, что если смотреть только на количество вхождений каждого терминального символа в контекстно-свободном языке , без учета их порядка, то язык неотличим от обычного языка . [1] Она полезна для принятия решения о том, что строки с заданным количеством терминалов не принимаются контекстно-свободной грамматикой. [2] Впервые она была доказана Рохитом Парихом в 1961 году [3] и переиздана в 1966 году. [4]
Определения и формальные заявления
Пусть будет алфавитом . Вектор Париха слова определяется как функция , заданная формулой [1]
, где обозначает количество вхождений символа в слово .
Подмножество называется линейным, если
для некоторых векторов оно имеет вид . Подмножество называется полулинейным, если оно является объединением конечного числа линейных подмножеств.
Теорема — Пусть — контекстно-свободный язык или регулярный язык, пусть — множество векторов Париха слов в , то есть . Тогда — полулинейное множество.
Если — любое полулинейное множество, то существует регулярный язык (который a fortiori является контекстно-свободным), векторы Париха которого равны .
Короче говоря, изображение контекстно-свободных языков и регулярных языков одно и то же и равно множеству полулинейных множеств.
Говорят, что два языка коммутативно эквивалентны, если они имеют одинаковый набор векторов Париха. Таким образом, каждый контекстно-свободный язык коммутативно эквивалентен некоторому регулярному языку.
Доказательство
Вторую часть легко доказать.
Доказательство
Для заданного полулинейного множества построить регулярный язык, множество векторов Париха которого равно .
является объединением 0 или более линейных множеств. Поскольку пустой язык является регулярным, а объединение регулярных языков является регулярным, достаточно доказать, что любое линейное множество является множеством векторов Париха регулярного языка.
Пусть , тогда это множество векторов Париха , где каждый имеет вектор Париха .
Первая часть менее проста. Следующее доказательство приписывается Голдстайну. [5]
Лемма — Если порождается грамматикой нормальной формы Хомского, то , такой что
Для любого и для любого с , существует способ разбиения на сегменты и нетерминальный символ , такой что
для всех , и
Доказательство по сути такое же, как и в стандартной лемме о накачке: используем принцип ящика для поиска копий некоторого нетерминального символа в самом длинном пути в самом коротком дереве вывода.
Теперь докажем первую часть теоремы Париха, используя приведенную выше лемму.
Доказательство
Сначала построим грамматику нормальной формы Хомского для .
Для каждого конечного непустого подмножества нетерминалов , определим как множество предложений в , такое, что существует вывод, который использует каждый нетерминал в , не больше и не меньше. Ясно, что , поэтому достаточно доказать, что каждое является полулинейным множеством.
Теперь зафиксируем некоторое , и пусть . Построим два конечных множества , таких, что , что, очевидно, полулинейно.
Для ясности записи запишем так, чтобы это означало «существует вывод, использующий не более (но возможно и меньше) нетерминалов в » . При этом мы определяем следующим образом:
Для доказательства проведем индукцию по длине .
Если , то , так что . В противном случае, по усиленной лемме о накачке, существует вывод, использующий именно элементы , и имеет вид
где , , и .
Так как в , но в середине есть подвыводы , мы можем удалить один подвывод и получить более короткий , который все еще находится в , с
По индукции, , и по построению, , поэтому .
Чтобы доказать , рассмотрим элемент . Нам нужно показать, что . Мы выводим из минимального числа факторов, которое необходимо для идентификации как элемента .
Если фактор из не нужен, то .
В противном случае для некоторых и , где требуется меньше факторов из , чем .
По индукции, для некоторого . По построению , существует такое, что .
По построению , символ появляется в выводе с использованием точно всех . Затем мы можем интерполировать в этот вывод, чтобы получить некоторые такие, что
Усиление для ограниченных языков
Язык ограничен, если для некоторых фиксированных слов . Гинзбург и Спаниер [6]
дали необходимое и достаточное условие, аналогичное теореме Париха, для ограниченных языков.
Назовем линейное множество стратифицированным , если в его определении для каждого вектора указано свойство, что он имеет не более двух ненулевых координат, а для каждого если каждый из векторов имеет две ненулевые координаты, и , соответственно, то их порядок не равен . Полулинейное множество стратифицировано, если оно является объединением конечного числа стратифицированных линейных подмножеств.
Гинзбург-Спениер — Ограниченный язык является контекстно-свободным тогда и только тогда, когда является стратифицированным полулинейным множеством.
^ Аб Козен, Декстер (1997). Автоматы и вычислимость . Нью-Йорк: Springer-Verlag. ISBN3-540-78105-6.
^ Хокан Линдквист. «Теорема Париха» (PDF) . Университет Умео.
^ Парих, Рохит (1961). «Устройства генерации языка». Ежеквартальный отчет о ходе работ, Исследовательская лаборатория электроники, Массачусетский технологический институт .