Documentation

DescriptiveComplexity.LogSpace

NL, by the Krom fragment #

The class NL: the problems definable in the Krom fragment SO-Krom of existential second-order logic (DescriptiveComplexity.SigmaSOKromDefinable), which captures nondeterministic logarithmic space on ordered structures (Grädel 1992). This is the same move as defining PTIME by the Horn fragment and NP by Σ₁-definability: the class is a definition, not an axiom, and it is a bona fide DescriptiveComplexity.ComplexityClass because SO-Krom definability is closed under (ordered) first-order reductions – the Krom shape survives the pullback, see DescriptiveComplexity.SecondOrderKromPull.

NL is not a level of the polynomial hierarchy of DescriptiveComplexity.Hierarchy, which is why it lives in its own file. What relates it to that hierarchy are two theorems that are not free here:

Note that the containment SO-Krom ⊆ NL on the machine side already uses Immerman–Szelepcsényi: satisfiability of a 2-CNF is the complement of a reachability condition on the implication graph. Nothing in this library depends on that, since NL is defined by the fragment rather than by a machine; it is why the fragment is the right primitive here.

The class NL: the problems definable in the Krom fragment SO-Krom of existential second-order logic, which captures nondeterministic logarithmic space on ordered structures (Grädel 1992).

Hardness is stated cofinally, exactly as for the other classes of this library (DescriptiveComplexity.CofinalHard), which is the usual notion, DescriptiveComplexity.hard_NL_iff.

Equations
  • One or more equations did not get rendered due to their size.
Instances For
    Dependency graph
    @[reducible, inline]

    coNL, the complement class of NL. That it coincides with NL is Immerman–Szelepcsényi, not proved here (see the module docstring).

    Equations
    Instances For
      Dependency graph