Inductive counting certifies complete reachable sets while retaining only a count and a few vertex indices. For a directed graph with vertices and start , let contain the vertices reachable in at most steps and write .
Suppose the exact count is known. A nondeterministic computation can enumerate each vertex, guess which belong to , and justify every positive guess by a path of length at most . Requiring exactly justified vertices prevents omissions: false positives have no valid path certificate. To certify , also check and that none of those enumerated vertices has an edge to .
Starting from , certify membership or nonmembership for each vertex and accumulate . After stages every reachable vertex has been counted, since cycles can be removed from a reaching path. Loop counters and the current vertex use only logarithmic space; guessed paths are checked one edge at a time, and the full reachable set is never stored. This is the counting mechanism behind the Immerman–Szelepcsényi theorem.[ref]
New to topics? Read the docs here!