Em primeiro lugar, quero abordar os comentários da pergunta, em que foi sugerido que "falso" expressa P = P S P A C E porque a afirmaçãoéfalsa. Embora isso possa ser uma boa piada, é realmente muito prejudicial pensar dessa maneira. Quando perguntamos como expressar uma certa sentença em um determinado sistema formal, não estamos falando sobre valores da verdade. Se estivéssemos, então quando alguém perguntou: "Como escrevo o fato de que existem infinitos primos?" poderíamos responder "3 + 3 = 6", mas isso claramente não funciona. Pelo mesmo motivo, "false" não é uma resposta válida para "P=PSPACEP=PSPACEAcho que Frege e Russell tentaram nos ensinar essa lição. Ok, agora a resposta.
Deixe-me mostrar como expressar P S P A C E ⊆ P , a outra direção é semelhante e, em seguida, você pode reuni-los em conjunto para obter P S P A CPSPACE⊆P E = P . De qualquer forma, para seus propósitos, pode ser suficiente expressar apenas P S P A C E ⊆ P , dependendo do que você está fazendo.PSPACE=PPSPACE⊆P
Usando técnicas semelhantes às da construção do predicado TT de Kleene , podemos construir uma fórmula quantificada limitada a c c e p t s p a c e ( k , m , n ) (que assim reside em Σ 0 0 = Π 0 0 ) dizendo "quando executamos a máquina codificada por ke vinculamos seu uso de espaço a | n | m , a máquina aceita a entrada n ." Aqui | n |acceptspace(k,m,n)Σ00=Π00k|n|mn|n| comprimento de n . Uma maneira informal de ver que essas fórmulas existem é esta: dado k , mnkm, e n podemos calcular o limite recursivo primitivo de quanto tempo e quanto espaço vamos precisar (ou seja, no máximo | nn | m espaço e no máximo 2 | n | m de tempo). Simplesmente pesquisamos todos os traços de execução possíveis que estão dentro dos limites computados - essa pesquisa é bastante ineficiente, mas é primitiva recursiva e, portanto, podemos expressá-la como uma fórmula limitada.|n|m2|n|m
Há uma fórmula semelhante um c c e p t t i m e ( k , m , n ) em que o tempo de execução está ligada por | n | m .accepttime(k,m,n)|n|m
Agora considere a fórmula:
∀ k , m . ∃ k ′ , m ′ . ∀ n . a c c e p t s p a c e ( k , m , n ) ⇔ a c c e p t t i m e ( k ′ , m ′ , n ) .
Diz que para cada máquina k
∀k,m.∃k′,m′.∀n.acceptspace(k,m,n)⇔accepttime(k′,m′,n).
kque usa no máximo espaço
| n | m existe uma máquina
k ′ ⊆ P . Esta fórmula é
Π 0 3 .
|n|mk′que usa na maioria das vezes
| n | m 'de modo que as duas máquinas aceitem exatamente os mesmos
n ' s. Em outras palavras, a fórmula diz
P S P A C E|n|m′nPSPACE⊆PΠ03
Podemos melhorar isso se quisermos expressar, em vez disso, a frase " T Q B F está no polytime", que deve ser boa o suficiente para a maioria das aplicações, pois o TQBF é o PSPACE completo e, portanto, estar no polytime é equivalente a P S P A C E ⊆ P . Seja k 0 (o código de) uma máquina que reconheça TQBF no espaço | n | m 0 . Em seguida, " T Q B F ∈ P " pode ser expressa como
∃ k ' , m ' .TQBFPSPACE⊆Pk0|n|m0TQBF∈P∀ n . um c c e p t s p um ce ( k 0 , m 0 ,n)⇔accep t t i m e ( k ′ , m ′ ,n).
Esta fórmula é apenas Σ 0 2 . Se eu fosse um teórico da complexidade, saberia se é possível melhorar ainda mais (mas duvido).
∃k′,m′.∀n.acceptspace(k0,m0,n)⇔accepttime(k′,m′,n).
Σ02