標準のパディング引数の単純なバリアントを使用することにより、が少なくとも線形に増加する場合、DSPACE DSPACEであることが証明できます。言語場合、ます。(f(32n))≠ (f(n))fLL′={x0| x| /2|X∈L}(f(n))fLL′={x0|x|/2∣x∈L}
請求。 DSPACE if and only if DSPACE if。L∈(F (N ))L ' ∈ (F (2(f(n))L′∈(f(23n))f(n)≥32n
(私の最初の答えは、これを発見したエミルのおかげで、いくつかの誤った記述がありました。)
最初に、クレームを使用して階層を証明する方法を示します。は少なくとも線形に増加するため、DSPACE DSPACEます。言語 DSPACE DSPACEます。クレームを使用して、 DSPACE DSPACEで、最後の等式は間接的な仮定によるものです。しかし、 DSPACE DSPACEで、最後の等式は間接的な仮定によるものであり、矛盾が生じます。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))
クレームの証明。
場合 DSPACE、その後、証明するため DSPACE、我々だけで記述する必要が入力の終わりまで0のおよびシミュレートを受け入れたマシン。以来、これは我々が使用するスペースを増やすことはありません。(実際、が小さくアルファベットサイズを増やすことができない場合、書き込む0の数を知ることはまったく明確ではありません-代わりに、別のテープを使用して、の末尾以降に来るすべてを書き込むことができます。)L′∈(f (2(f(23n))L∈(F(N))| x| /2XL'、F(N)≥3(f(n))|x|/2xL′f(n)≥32nfx
もう1つの方向は、*の書き込みが許可されている場合、0を*に置き換えるだけの簡単な方法です。(質問に対する私のコメントでこれに関する問題を参照してください。)星を書くことが許可されていない場合、の定義をとしてわずかに変更します。。さて、星を書く代わりに、元の入力L′L′={x10|x|/2∣x∈L}x10|x|/2 f x 10 | x | / 2 fそれで動作します。しかし、1に到達するたびに、別の1に到達するまで右に進み、それが語末1であるかどうかを確認します。別の1が見つかった場合は、1に戻ります。見つからない場合は、元に戻りますが、星として扱う必要があることがわかります。書き込みを行う場合は、また、新しい現在の単語の終わりマーカーを持つために、その後に10を書き込みます。(実際、が小さい場合、この部分にも小さなキャッチがあります-入力がの形式であるかどうかをどのように確認できますか?入力を破壊せずに、これを解決するには小さな用の複数のヘッド。)fx10|x|/2f