En primer lugar, quiero dirigir los comentarios a la pregunta, donde se sugirió que "falso" expresa porque la declaración es falsa. Si bien esto podría ser una buena broma, en realidad es muy perjudicial pensar de esta manera. Cuando preguntamos cómo expresar una determinada oración en un determinado sistema formal, no estamos hablando de valores de verdad. Si lo fuéramos, entonces cuando alguien preguntó "¿Cómo escribo el hecho de que hay infinitos números primos?" podríamos responder "3 + 3 = 6", pero esto claramente no servirá. Por la misma razón, "falso" no es una respuesta válida a "¿cómo escribo ?". Creo que Frege y Russell se esforzaron por enseñarnos esa lección. Ok, ahora a la respuesta.P = P S P A C EP=PSPACEP=PSPACE
Te voy a enseñar cómo expresar , la otra dirección es similar, y luego se puede ponerlos juntos en una conjunción de conseguir . En cualquier caso, para sus propósitos puede ser suficiente expresar solo , dependiendo de lo que esté haciendo.P S P A C E = P P S P A C E ⊆ PPSPACE⊆PPSPACE=PPSPACE⊆P
Usando técnicas similares a las de la construcción del predicadoT de Kleene , podemos construir una fórmula de limitada accept_ (que por lo tanto reside en ) que dice "cuando ejecute la máquina codificada por y limite su uso de espacio a , la máquina acepta la entrada ". Aquíes la longitud de . Una manera informal de ver que tales fórmulas que existe es la siguiente: dado , y se puede calcular recursiva primitiva con destino en la cantidad de tiempo y la cantidad de espacio que alguna vez va a necesitar (es decir, a lo sumoΣ 0 0 = Π 0 0 k | n | m n | n | n k m n | n | m 2 | n | metroacceptspace(k,m,n)Σ00=Π00k|n|mn|n|nkmn|n|m espacio y como máximo tiempo). Luego, simplemente buscamos a través de todos los rastros de ejecución posibles que se encuentran dentro de los límites calculados; dicha búsqueda es bastante ineficiente, pero es primitiva recursiva y, por lo tanto, podemos expresarla como una fórmula acotada.2|n|m
Hay una fórmula similar en la que el tiempo de ejecución está limitado por .| n | metroaccepttime(k,m,n)|n|m
Ahora considere la fórmula:
Dice que para cada máquina que usa en la mayoría del espacio hay una máquina que usa en la mayoría del tiempo modo que las dos máquinas acepten exactamente las mismas 's. En otras palabras, la fórmula dice . Esta fórmula es .k | n | m k ′
∀k,m.∃k′,m′.∀n.acceptspace(k,m,n)⇔accepttime(k′,m′,n).
k|n|mk′ n P S P A C E ⊆ P Π 0 3|n|m′nPSPACE⊆PΠ03
Podemos mejorar esto si estamos dispuestos a expresar en cambio la frase " está en polytime", que debe ser lo suficientemente bueno para la mayoría de aplicaciones, como TQBF es PSPACE completa y por lo tanto estar en polytime es equivalente a . Deje ser (el código de) una máquina que reconoce TQBF en el espacio . Entonces " " puede expresarse como
Esta fórmula es solo . Si fuera un teórico de la complejidad, sabría si es posible hacerlo aún mejor (pero lo dudo).P S P A C E ⊆ P k 0 | n | m 0 T Q B F ∈ P ∃ k ′ , m ′ . ∀ n . a c c e p t s p a c e ( k 0 , m 0 , n ) ⇔ a c c e pTQBFPSPACE⊆Pk0|n|m0TQBF∈P
∃k′,m′.∀n.acceptspace(k0,m0,n)⇔accepttime(k′,m′,n).
Σ02