In primo luogo, voglio rivolgere i commenti alla domanda, in cui è stato suggerito che "false" esprime perché l'affermazione è falsa. Anche se questa potrebbe essere una buona battuta, in realtà è molto dannoso pensare in questo modo. Quando chiediamo come esprimere una certa frase in un certo sistema formale, non stiamo parlando di valori di verità. Se lo fossimo, allora quando qualcuno chiese "Come faccio a scrivere il fatto che ci sono infiniti numeri primi?" potremmo rispondere "3 + 3 = 6", ma questo chiaramente non lo farà. Per lo stesso motivo "false" non è una risposta valida a "come posso scrivere ?". Penso che Frege e Russell si siano sforzati di insegnarci quella lezione. Ok, ora alla risposta.P = P S P A C EP=PSPACEP=PSPACE
Lascia che ti mostri come esprimere , l'altra direzione è simile, e poi li si può mettere insieme in una congiunzione di ottenere . In ogni caso, per i tuoi scopi potrebbe essere sufficiente esprimere solo , a seconda di cosa stai facendo.P S P A C E = P P S P A C E ⊆ PPSPACE⊆PPSPACE=PPSPA CE⊆ P
Usando tecniche simili a quelle nella costruzione del predicatoT a c c e p t s p a c e ( k , m , n ) Σ 0 0 = Π 0 0 k | n | m n | n | n k m n | n | m 2 | n | m di Kleene , possiamo costruire una formula limitata accetta_ (che risiede quindi in ) dicendo "quando noi avvia la macchina codificata da e limita il suo utilizzo dello spazio a , la macchina accetta l'ingresso . " Quiè la lunghezza di . Un modo informale di vedere che esistono tali formule è questo: dato , e possiamo calcolare il primitivo ricorsivo legato a quanto tempo e quanto spazio avremo mai bisogno (cioè, al massimoa c c e p ts p a c e( k , m , n )Σ00= Π00K| n |mn| n |nkmn|n|m spazio e al massimo tempo). Quindi cerchiamo semplicemente attraverso tutte le possibili tracce di esecuzione che si trovano all'interno dei limiti calcolati - tale ricerca è piuttosto inefficiente, ma è ricorsiva primitiva e quindi possiamo esprimerla come una formula limitata.2|n|m
Esiste una formula simile in cui il tempo di esecuzione è vincolato da .| n | maccepttime(k,m,n)|n|m
Ora considera la formula:
Dice che per ogni macchina che utilizza al massimo lo spazio esiste una macchina che utilizza al massimo il tempo tale che le due macchine accettino esattamente le stesse 's. In altre parole, la formula dice . Questa formula è .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
Possiamo migliorare questo se siamo disposti a esprimere invece la frase " è in polytime", che dovrebbe essere abbastanza buono per la maggior parte delle applicazioni, come TQBF è PSPACE completo e quindi essere in polytime equivale a . Sia essere (il codice di) una macchina che riconosce TQBF nello spazio . Quindi " " può essere espresso come
Questa formula è solo . Se fossi un teorico della complessità, saprei se è possibile fare ancora meglio (ma ne dubito).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Σ 0 2
∃k′,m′.∀n.acceptspace(k0,m0,n)⇔accepttime(k′,m′,n).
Σ02