With more resource comes more power, at least computationally speaking.
Constructibility
Given a function, f:N→N, it is said to be (weakly) time/space construtible if and only if the map 1n↦1f(n) could be computed in O(f(n)) time/space resources.
It basically says that f is computationally easier to determine.
Diagonalization for Undecidability
One way to show that there’s a problem undecidable is by diagonalization.
Consider the following language,
L={w=⟨M,x⟩:w∉L(M)},
where M is a Turing machine. If machine D decides L, then
w=⟨D,x⟩∈L⟺w∉L(D)=L,
which is a contradiction. Thus there exists a undecidable problem.
Space Heirachy Theorem
Given s(n) weakly space constructible, then there exists a language A that
- A∈SPACE(s(n))
- A∉SPACE(o(s(n)))
We are showing this by also diagonalization. Consider a Turing machine D doing the following,
- On input w=⟨M,10k⟩ where M is a Turing machine, we try to simulate M on input w under following modification.
- By space constructibility, calculate 1s(n) as memory boundary, if during simulation M attempt to use more then s(n) memory, reject.
- Maintain a time counter, if simulatation time ever exceeds 2s(n), reject.
- If M accepts w, reject; otherwise, accept.
It is clear from declaration that L(D)∈SPACE(s(n)). If L(D)∈SPACE(o(s(n))), then for those machines M running in space g∈o(f) and large enough N0, g(n)<s(n) whenever n>N0. Therefore consider k=N0, M runs to the last step. But then w∈L(D)⟺w∉L(D), which is a contradiction.
Remark.
SPACE(s(n))⊆TIME(2O(s(n))), so the third step make sure the total process using no more then O(s(n)) memory.
Time Heirachy Theorem
Given t(n) weakly time constructible, then there exists a language A that
- A∈TIME(t(n))
- A∉TIME(o(t/logt))
The proof is essentially similar, but note that to avoid zigzag that typically wasting time, we need to drag the time counter and state information along with the pointer location. That would cause O(log(t)) time for each transition.