DFS in graph - the whitepath theorem

successor : this function gives for each vertex the set of vertices directly joinable from it

This algorithm is depth-first-search in the graph. It picks randomly the son on which recursive call is done.
This theorem refers to the White-path theorem in book by Cormen et al.
The new visited vertices are exactly the ones reachable from roots by a white path w.r.t the previously visited set.
Fully automatic proof, with inductive definition of white paths and heavy use of the "by" connective.

Notice that this proof uses paths for the soundness part, but relies on the non-black-to-white property for its completeness.
This proof is close to the one in Cormen et al.; but is simpler since
there is no need for the so-called Parenthesis theorem, nor for a
time variable. The present proof follows from the structure of the
recursion.