Відповіді:
Я все-таки вважаю, CFL, з адаптацією класичного доказу. Ось ескіз.
Розглянемо , що є доповненням , при цьому слова довжиною не мод вилучені.
Нехай . Зрозуміло, що - CFL, оскільки ви можете здогадатися про позицію і вважати, що закінчується після цього. Покажемо, що .
Отже, у це положення:
Якщо , то нехай є першим символів, так щоє; - решта. Потім:
Ось як я думаю про вирішення цієї проблеми за допомогою КПК. На мою думку, це інтуїтивно зрозуміліше.
Ми використовуємо звичайний трюк використання стека для підтримки цілого числа , маючи новий символ "знизу стека" , зберігаючи абсолютне значенняяк кількість лічильників на стеку, так і sgn ( ) за станом PDA. Таким чином, ми можемо збільшити чи зменшити , зробивши відповідну операцію.
Мета полягає у використанні недетермінізму для відгадування позицій двох символів, які ви порівнюєте, та використання стека для запису , де - відстань між цими двома символами.
Ми виконуємо це наступним чином: приріст для кожного символу, що бачиться, поки не буде обраний перший відгаданий символ , і запишіть у стан. Для кожного наступного символу введення, поки ви не вирішите, що бачили , зменшіть на ( для введення довжини та для відстані). Відгадайте положення другого символу і запишіть, чи . Продовжуйте збільшувати для наступних символів введення. Прийміть, якщо (виявляється зверху) і .
Приємне в тому, що слід повністю зрозуміти, як поширити це на довільні повноваження.
Просто інша ("орієнтована на граматику") перспектива, щоб довести, що доповнення є CF для будь-якого фіксованого використанням властивостей закриття.
Спершу зауважте, що у додатку завжди є таке, що . Ми зосереджуємося на і починаємо з простої граматики CF, яка створює:
Наприклад, , маємо ,
Потім застосуйте закриття при зворотному гомоморфізмі та об'єднанні :
Перший гомоморфізм:
Другий гомоморфізм:
все ще вільний від контексту
Застосовуйте замикання під циклічними зрушеннями до щоб отримати набір рядків довжиною не виду :
.
Нарешті додайте звичайний набір рядків, довжина яких не ділиться на , щоб отримати точно доповнення :