Undecidability and sets

Functions that can be computed in finite time by systems like Turing machines are often called recursive (or effectively computable). Sets are called recursive if there is a recursive function that can test whether or not any given element is in them. Sets are called recursively enumerable if there is a recursive function that can eventually generate any element in them. The set of initial conditions for which a given Turing machine halts is thus not recursive. But it turns out that this set is recursively enumerable. And the reason is that one can generate the elements in it by effectively maintaining a copy of the Turing machine for each possible initial condition, then following a procedure where for example at step n one updates the one for initial condition IntegerExponent[n, 2], and watches to see if it halts. Note that while the complement of a recursive set is always recursive, the complement of a recursively enumerable set may not be recursively enumerable. (An example is the set of initial conditions for which a Turing machines does not halt.) Recursively enumerable sets are characteristically associated with so-called Σ_{1} statements of the form Exists[t, φ[t]] (where φ is recursive). (Asking whether a system ever halts is equivalent to asking whether there exists a number of steps t at which the system can be determined to be in its halting state.) Complements of recursively enumerable sets are characteristically associated with Π_{1} statements of the form ForAll[t, φ[t]]—an example being whether a given system never halts. (Π_{1} and Σ_{1} statements are such that if they can be shown to be undecidable, then respectively they must be true or false, as discussed on page 1167.) If a statement in minimal form involves n alternations of Exists and ForAll it is Σ_{n+1} if it starts with Exists and Π_{n+1} if it starts with ForAll. The Π_{n} and Σ_{n} form the so-called arithmetic hierarchy in which statements with larger n can be constructed by allowing φ to access an oracle for statements with smaller n (see page 1126). (Showing that a statement with n>=1 is undecidable does not establish that it is always true or always false.)