NL = co-NL
In 1988, Neil Immerman (now Professor Emeritus at UMass Amherst, as of 2024) published a famous paper in which he proved 
I first learned their theorem (now widely known as Immerman-Szelepcsényi) in an undergraduate course that covered, among other topics, introductory complexity theory. We discussed the proof idea only briefly in class as we were more interested in the result itself, but there are a number of interesting results about alternation that follow from the proof. This post discusses the idea behind the Immerman-Szelepcsényi theorem.
The Basics
I forego restating any formal definitions of a Turing machine for the sake of brevity; any standard formulation (e.g. Sipser or Hopcroft-Ullman) suffices.
Given some function 
Connectivity in NL
We now divert our attention to a particular graph problem that will be of use to us: s-t connectivity. Given a directed graph 
There is an obvious argument that places 
It turns out that 
Non-connectivity in NL
The complement of the s-t connectivity problem asks, given graph 
Since 
It is not immediately obvious how we can decide non-connectivity in nondeterministic log-space. Doing a graph search from 
So how did they approach the problem? The idea is quite clever, and there are no advanced mechanisms involved. Given graph 
Immerman and Szelepcsényi's key insight is that it's possible to progressively verify 
Suppose 
We compute 
So we're essentially done! We have described an inductive procedure to certify 
NL = co-NL
We spent a great deal of time talking about graph connectivity problems. How does this help us show 
Consider some arbitrary 
It follows that 
Results Related to Alternating Space
From Immerman-Szelepcsényi we can prove that the "log-space hierarchy" collapses to 
(-.-)...zzz - Aaron