Apply Savitch step-by-step on a small NSPACE machine.
Savitch's theorem (Sipser §8.2): for f(n) ≥ log n, NSPACE(f(n)) ⊆ SPACE(f²(n)). The polynomial blowup is only quadratic, so PSPACE = NPSPACE — nondeterminism gives no extra power in polynomial space. (Contrast with P vs NP, which is open.)
For an NSPACE(f) machine on input w, "does it accept?" is equivalent to "is there a path in the configuration graph from Cstart to some Caccept in ≤ 2O(f) steps?"
Define CANYIELD(c, d, t) = true iff c reaches d in ≤ t steps. Recursive structure:
CANYIELD(c, d, t):
if t = 1: check (c, d) is an edge
else: for each midpoint m:
if CANYIELD(c, m, t/2) and CANYIELD(m, d, t/2): return true
return false
The recursion has log2(t) = O(f) levels. Each level stores one configuration (size O(f)) on the stack. Total space: O(f) levels × O(f) per frame = O(f²). Quadratic, not exponential — that's the magic.
Each recursive call reuses the same f² cells when the previous call returns. Time can't be reused this way, which is why no analogous "NTIME(f) ⊆ TIME(f²)" result exists.
Sipser: Theorem 8.5 (Savitch). Lecture notes: Module 6 slide 1. Companion problems: P34 (Savitch tree), P33 (space-time chart).