Оскільки Макс сказав, що модифікація не є складною, я пропоную вам не читати решту цієї відповіді і подумати над проблемою трохи більше, є лише одна частина, яка потребує модифікації та запам'ятовування визначення, коли a машина приймає допоможе вам виправити цю частину.coNP
Я поясню необхідну модифікацію нижче, але спочатку давайте короткий огляд оригінального доказу.
У оригінальному доказі побудований кроками, де на етапі з переконанням, що машина в , , не визначає мову правильно. Зверніть увагу , що набір в .A=⋃nAniiPMi{x∣∃y∈A |x|=|y|}NPA
Ми досягаємо цього, моделюючи використовуючи частину ми побудували на де досить великий (рядок довший, ніж рядки, розглянуті в попередніх кроках). приймає, ми нічого не додаємо, якщо він відхиляє, ми додаємо рядок довжиною що не робить запит до набору (Така рядок існує, оскільки існує багато експоненціально рядків довжиною але не може запитати про всі вони в поліном час). Ми не будемо змінювати цю частину в наступних кроках (тобто рядки довжиною або менше залишаться однаковими). Це гарантує цеMiA0mmMimMimMiAmMAi не визначить мову належним чином і завершить доказ.
Тепер припустимо, що машини знаходилися в замість . Нам потрібно змінити доказ , щоб переконатися , що не розпізнає . Якщо він приймає, ми зберігаємо як і раніше, і все працює добре, як у оригінальному доказі. Якщо він відхиляє, нам потрібно додати рядок до набору, щоб переконатися, що він не відповідає правильно. Ми все ще можемо імітувати з частиною ми маємо, проблема полягає в тому, що може запитувати всі рядки довжиною . Тут важливим стає спосіб роботи машини . Він приймає, якщо і тільки якщо всіс о Н П Р М А я Л А М і А М і н с о Н П м АMicoNPPMAiLAMiAMincoNPшляхи обчислення приймають. Оскільки він відхиляє в цьому випадку, існує шлях обчислення, який відкидається. Поки ми будемо зберігати цей шлях недоторканим, все буде працювати, тому нам потрібно лише зберегти відповіді на запити на цьому шляху однаковими. Кількість запитів на цьому шляху є многочлена (оскільки машина працює в поліноміальний час), тому є рядки довжиною , про які шлях не запитує, просто додайте один з них до а решта доказів працює як раніше.mA
Етапи є алгоритмічними, тому множина є рекурсивною (істотна частина конструкції полягає в тому, щоб змоделювати машини, які можна виконати в say ).D S p a c e ( n ω ( 1 ) )ADSpace(nω(1))