Documentation

Atlas.TheoryOfComputation.code.NLStrictPSPACE

theorem NLStrictPSPACE.nl_subset_space_log_squared {Γ : Type} (A : Set (List Γ)) (hA : LogSpace.InNL A) :
SpaceComplexity.InSPACE (fun (n : ) => Nat.log 2 n ^ 2) A

Theorem (Lecture 19). NL ⊆ SPACE(log² n). Any language in NL is decidable in deterministic space O((log n)²).

theorem NLStrictPSPACE.two_pow_gt_cube (m : ) (hm : 10 m) :
m ^ 3 < 2 ^ m

For every m ≥ 10, m³ < 2^m. Used to dominate c · (log₂ n)² by n asymptotically.

(log₂ n)² = o(n): the function n ↦ (Nat.log 2 n)² is asymptotically dominated by n. This is the key gap used to separate NL from PSPACE.

If g = O(h) and h = o(f), then g = o(f): composing a Big-O bound with a little-o bound yields a little-o bound.

theorem NLStrictPSPACE.log_sq_le_sq (n : ) :
Nat.log 2 n ^ 2 n ^ 2

Trivial pointwise bound: (log₂ n)² ≤ n² for all n.

SPACE((log₂ n)²) ⊆ PSPACE: any language decidable in space (log₂ n)² is decidable in polynomial space (in particular, in space ).

NL ⊆ PSPACE. Combines NL ⊆ SPACE(log² n) with SPACE(log² n) ⊆ PSPACE.

(log₂ n)² = o(n + 2). Combined with the Space Hierarchy Theorem at bound n + 2, this lets us separate SPACE(n + 2) from NL ⊆ SPACE(log² n).

theorem NLStrictPSPACE.space_log_sq_in_spaceo_succ2 {Γ : Type} (A : Set (List Γ)) (hA : SpaceComplexity.InSPACE (fun (n : ) => Nat.log 2 n ^ 2) A) :
SpaceComplexity.InSPACEo (fun (n : ) => n + 2) A

A language decidable in space (log₂ n)² is decidable in space o(n + 2), i.e. it lies in SPACEo (n + 2).

The function n ↦ n + 2 is space-constructible. This is the technical hypothesis needed to apply the Space Hierarchy Theorem at this bound.

SPACE(n + 2) ⊆ PSPACE. Linear space is contained in polynomial space (in particular ).

Corollary (Sipser, Review of Hierarchy Theorems). NL ⊊ PSPACE.

Concretely we prove the two parts of strict inclusion:

  1. Every NL language lies in PSPACE.
  2. There exists a PSPACE language not in NL, obtained from the Space Hierarchy Theorem at the bound n + 2 (which is space-constructible). Any NL language is in SPACE(log² n), hence in SPACEo(n + 2), contradicting the hierarchy separation.