Comme Max a dit que la modification n'est pas difficile, je vous suggère de ne pas lire le reste de cette réponse et de réfléchir un peu plus au problème, il n'y a qu'une partie qui doit être modifiée et se souvenir de la définition du moment où un machine accepte vous aidera à réparer cette partie.coNP
J'expliquerai la modification requise ci-dessous, mais commençons par avoir un bref aperçu de la preuve d'origine.
Dans la preuve d'origine est construit en étapes où à l'étape avec assurez-vous que la machine dans , , ne décide pas de la langue correctement. Notez que le jeu est dans . i i P M i { x ∣ ∃ y ∈ A | x | = | y | }A=⋃nAniiPMi{x∣∃y∈A |x|=|y|}NPA
Nous y parvenons en simulant utilisant la partie de nous avons construite sur un où est assez grand (la chaîne est plus longue que les chaînes considérées dans les étapes précédentes). accepte, nous n'ajoutons rien, s'il rejette, nous ajoutons une chaîne de longueur que ne fait pas de requête à l'ensemble (Une telle chaîne existe car il existe de façon exponentielle de nombreuses chaînes de longueur mais ne peut pas demander tous en temps polynomial). Nous ne modifierons pas cette partie de dans les prochaines étapes (c'est-à-dire que les chaînes de longueur ou moins resteront les mêmes). Cela garantit que A 0 m m M i m M i m M i A m M A iMiA0mmMimMimMiAmMAi ne décidera pas la langue correctement et complétera la preuve.
Supposons maintenant que les machines étaient dans à la place de . Nous devons modifier la preuve pour vous assurer que ne reconnaîtra pas . S'il accepte, nous conservons comme avant et tout fonctionne bien comme dans la preuve d'origine. S'il rejette, nous devons ajouter une chaîne à l'ensemble pour nous assurer qu'il ne répond pas correctement. Nous pouvons toujours simuler avec la partie de nous avons, le problème est que peut interroger toutes les chaînes de longueur . Ici, le fonctionnement d'une machine devient important. Il accepte si et seulement si tousc o N P P M A i L A M i A M i n c o N P m AMicoNPPMAiLAMiAMincoNPles chemins de calcul acceptent. Puisqu'il rejette dans ce cas, il y a un chemin de calcul qui rejette. Tant que nous garderons ce chemin intact, tout fonctionnera, nous n'avons donc besoin que de garder les réponses aux requêtes de ce chemin. Le nombre de requêtes dans ce chemin est polynomial (puisque la machine fonctionne en temps polynomial), donc il y a des chaînes de longueur que le chemin ne demande pas, ajoutez simplement l'une d'elles à et le reste de la preuve fonctionne comme avant.mA
Les étapes sont algorithmiques, donc l'ensemble est récursif (l'essentiel de la construction est de pouvoir simuler des machines qui peuvent être faites dans say ).D S p a c e ( n ω ( 1 ) )ADSpace(nω(1))