Pode-se provar que DSPACE DSPACE se cresce pelo menos linearmente usando uma variante simples do argumento de preenchimento padrão. Para um idioma , deixe .(f(32n))≠ (f(n))fLL′={x0| x| /2|x∈L}(f(n))fLL′={x0|x|/2∣x∈L}
Afirmação. DSPACE se e somente se DSPACE se .L∈( f ( n ) ) L ' ∈ ( f ( 2(f(n))L′∈(f(23n))f(n)≥32n
(Minha primeira resposta teve várias declarações incorretas, obrigado a Emil por descobrir isso.)
Primeiro, mostrarei como usar a reivindicação para provar a hierarquia. Como cresce pelo menos linearmente, temos DSPACE DSPACE . Pegue um idioma DSPACE DSPACE . Usando a reivindicação, DSPACE DSPACE , onde a última igualdade é pela suposição indireta. Mas então DSPACE DSPACE , onde a última igualdade é novamente pela suposição indireta, dando uma contradição.f( 2 f ( n ) ) ⊂ ( F ( 2 N ) ) L ∈ ( F ( 2 N ) ) ∖ ( f ( n ) ) L ' ∈ ( f ( 4(2f(n))⊂(f(2n))L∈(f(2n))∖ (f(n))L′∈(f(43n))= (f(n))L∈(f(3(f(n))L∈(f(32n))= (f(n))(f(n))
Prova da reivindicação.
Se DSPACE , para provar DSPACE , só precisamos escrever 0 no final da entrada e simular a máquina que aceitou . Como , isso não aumentará o espaço que usamos. (De fato, saber quantos Z 's devem ser escritos não fica claro se é pequeno e não podemos aumentar o tamanho do alfabeto - em vez disso, podemos usar outra fita e escrever sobre tudo o que viria após o final de .)L′∈( f ( 2(f(23n))L∈(f(n))| x| /2xL′f(n)≥3(f(n))|x|/2xL′f(n)≥32nfx
A outra direção é simples assim, substituindo os zeros por * 's, se pudermos escrever *' s. (Veja os problemas com isso no meu comentário à pergunta.) Se não temos permissão para escrever estrelas, então modificamos ligeiramente a definição de como . Agora, em vez de escrever estrelas, mantemos a entrada originalL′L′={x10|x|/2∣x∈L}x10|x|/2 f x 10 | x | / 2 fe trabalhar com isso. Mas sempre que atingimos um 1, seguimos para a direita até atingirmos outro 1 para verificar se foi o final da palavra 1 ou não. Se encontramos outro 1, voltamos ao nosso 1. Se não o encontramos, ainda voltamos, mas saberemos que deve ser tratado como uma estrela - se quisermos escrever sobre ele, também escrevemos um 10 depois dele para ter um novo marcador de fim de palavra atual. (De fato, também há uma pequena captura nessa parte se for pequena - como podemos verificar se a entrada tem o formato ? Sem destruir a entrada, só posso resolver isso usando várias cabeças para pequenas .)fx10|x|/2f