Lecture 3:

Immermann-Szelepcsenyi (1987)

got the Gödel Prize in 1995! ⟶ solved many problems in the aftermath

Th: Immermann-Szelepcsenyi:

coNSPACE(f(n)) ⊆ NSPACE(f(n))

for $f(n)≥ \log (n)$

Reminder: GAP is a.k.a REACH

First step: coGAP ∈ NL

is there NO path between $s$ and $t$?

We will guess the set of reachable states, but we can’t remember them (too large: doesn’t fit in Logspace) ⟶ instead, one remembers their number

d = 0; N = 1
  pN = N # previous value of N
  N = 0
  for all nodes n in G:
    new = false # is it a new one ?
    cpt = 0
    for all nodes n' in G:
      guess if s ⟶_≤d n' # the NL algo for GAP
      if yes:
        cpt += 1
        if n' ⟶_≤1 n:
->         if n == t: reject
          N += 1
          new = true
    if cpt < pN:
      reject # the machine has forgotten some paths s ⟶_≤d n'
    d = d+1 # N is the new value
until N = pN
-> now accept

The run which always guesses right gives the correct computation.

What about $t$? ⟶ the $→$ at the beginning of the lines

Now when it comes to our $f$:

Let $L ∈ coNSPACE(f(n))$

⟹ there exists a non-deterministic TM $ℳ$ recognizing $L$

Given $x ∈ A^\ast$, let’s build a non-deterministic (in space $f(n)$) TM $ℳ’$ which decides “$ℳ$ rejects $x$”.

⟹ Now the graph is the configurations of $ℳ$ on $x$.

$ℳ’$ runs algo for coGAP on this graph, with $s$ being the initial configuration on $x$, $t$ being a final one.

But one has to add those instructions:

(at the beginning)
size seen so far = size of |x|

(after the initial repeat)
configuration of size ≤ size seen so far + O(1)
# to go from one node to another, without testing all the possible configurations (it would require that f is computable)

NB: $f ≥ \log n$ because of the pointer in the input ⟶ not bounded by $f$, bu the need to store it in the configurations.

Corollary: for $f = \log$:

coNL ⊆ NL

And as $co(coNL) = NL$, we have the other inclusion:

coNL = NL

And __


coNL = NL ≠ L

QBF: Quantified Boolean Formulae

Ex: $∃x. ∀y. (x ∧ ∃z.(y ∧ z))$


Recursive algorithm:

  if φ = ∃x. ψ:
    eval(ψ[x←true]) or eval(ψ[x←false])
  if φ = ∀x. ψ:
    eval(ψ[x←true]) and eval(ψ[x←false])  
  if φ = ψ ∨ χ:
    eval(ψ) or eval(χ)
  if φ = ψ ∧ χ:
    eval(ψ) and eval(χ)
  if φ = true:
    return true
    return false

Stack of size $\vert φ \vert$, each level being of size $\vert φ \vert$ ⟶ overall space memory = $\vert φ \vert^2$

$QBF$ is $PSPACE$-complete

Proof: we will reuse the same ideas than when we showed that $NP \ni L ≼ SAT$

$L$ recognized by $ℳ$ in time $t(n)$, space $f(n)$.

We will assume, wlog, that the machine writes on the input tape, in space $≤ f(n)$.

As the space is now in $f(n)$, the time is exponential in $f(n)$, so we use the quantifiers of the QBF formula to resort to dichotomy on the time.

The problem is that the formulas “going from $x$ to $y$ in $2^d$ steps” use exponential space ⟶ trick: we use universal quantifiers not to copy them twice at each recursive step.

Leave a Comment