What would be an effective enumeration of the collection of effectively enumerable sets?

Why is the collection of effectively enumerable sets effectively enumerable? The proof I've seen (Peter Smith, Intro to Godel's Theorems) uses a function $F$ that first enumerates the possible programs (algorithms); let $f$ denote this latter computable function. So far so good. Say $f(n) = \Pi_n$ (the nth algorithm). But that is not yet the output desired - the domain of $\Pi_n$ is the desired output of our enumerating function. If you say, just run the algorthim $\Pi_n$ to get its domain $W_n$ - that is a problem since our as our function $F$ is to produce output $W_n$ in its totality in a finite number of steps (since $F$ is to be a computable function that with input n produces output $W_n$). But if $W_n$ is infinite, the usual way to produce $W_n$ from $\Pi_n$ requires an infinite number of steps generally (using the diagonals in $\mathbb N\times \mathbb N$ for computing, given $(i,j)$, $\Pi(i)$ for $j$ steps). How do we produce $W_n$ from $\Pi_n$ in a finite number of steps as required if $F$ is to be an effective listing of the effectively enumerable sets $W_1,W_2, \cdots$?

Thank you.

• Can you provide a definition of "effectively enumerable" in your post? Commented Feb 12, 2017 at 22:03
• By definition, a set is effectively enumerable if it is either the empty set or it is the image of an effectively computable function. Commented Feb 13, 2017 at 22:14
• In particular, given an input $n$, the output $f(n)$ must be produced by a finite number of basic computations (such as performed by a Turing machine). This seems to mean that if one wants to extend the definition of computable function to codomains that are general sets (not necessarily a subset of $\mathbb N$) that the members of this codomain must be finite sets so that they can be produced in a finite number of steps. For instance, the collection of algorithms is effectively enumerable due in part to the fact that each algorithm is a finite set of symbols. Commented Feb 14, 2017 at 16:52
• This would seem to imply the (mathematically equivalent) collection of effectively enumerable sets is effectively enumerable. However, this collection contains infinite sets which precludes the collection from being effectively enumerable per the comment above. Commented Feb 14, 2017 at 16:54

Taking a "recursively enumerable" set to mean the range of a total computable function (which seems to be the most challenging definition to work with for this purpose):

Here's one algorithm that enumerates all recursively enumerable sets, where $f$ is your favorite computable surjection $\mathbb N\to\mathbb N\times\mathbb N$:

 read n, i
let (a,j) = f(n)
let (d,k) = f(i)
simulate Turing machine number j on input d for at most k steps
if the machine halted, output what it produced
otherwise output a


It should be clear that this algorithm always halts.

And for every recursively enumerable set $W_j$, you can get the machine to enumerate that set by choosing some $a\in W_j$, fixing $n$ such that $f(n)=(a,j)$ and letting $i$ range over $\mathbb N$.

• I am not trying to enumerate $W_n$, I am trying to enumerate $\{W\,|\, \text{$W$is an enumerable set}\}$. This requires that each enumerable set $W$ be the output of a total computable function $f$, say $f(n)=W$. This in turn requires the algorithm specified by $f$ to produce $W$ from input $n$ in a finite number of steps. That is, it must produce the entire set $W$ in a finite number of steps. Your algorithm (as the one specified in the question) must run through all of the natural numbers to produce the set $W$. The output $f(n)$ can be the program that will produce $W$, but not $W$ itself. Commented Feb 13, 2017 at 23:33
• I appreciate any insight you can give me on this. Thank you. Commented Feb 13, 2017 at 23:38
• @user415738: You can apply the s-m-n theorem to this algorithm to get an enumeration of machines such that each r.e. set is computed by at least one of the machines. You can't hope to produce each actual set as a finished infinity, and you can't hope to produce each r.e. set only once (due to Rice's theorem). Commented Feb 15, 2017 at 8:44
• Thank you. You are entirely correct. My apologies in that my original question was due to my own mistake - I did not read the Theorem correctly that is in Peter Smith's book, Intro to Godel's Theorems, which only says the set of effectively enumerable sets is $enumerable$ (which I mistakenly took to mean effectively enumerable). Professor Peter Smith was kind enough to have emailed me this point. Thank you for your pointing this out to me as well. Commented Feb 15, 2017 at 17:23