|
20 | 20 | Let $S$ be a set of natural numbers. Then the following are |
21 | 21 | equivalent: |
22 | 22 | \begin{enumerate} |
23 | | -\item $S$ is computably enumerable. |
24 | | -\item $S$ is the range of a \emph{partial} computable function. |
25 | | -\item $S$ is empty or the range of a primitive recursive function. |
26 | | -\item $S$ is the \emph{domain} of a partial computable function. |
| 23 | +\item\ollabel{case:ce} $S$ is computably enumerable. |
| 24 | +\item\ollabel{case:ran-pc} $S$ is the range of a \emph{partial} computable function. |
| 25 | +\item\ollabel{case:ran-prim} $S$ is empty or the range of a primitive recursive function. |
| 26 | +\item\ollabel{case:ce-domain} $S$ is the \emph{domain} of a partial computable function. |
27 | 27 | \end{enumerate} |
28 | 28 | \end{thm} |
29 | 29 |
|
|
32 | 32 | computably enumerable set to be enumerated by either a computable |
33 | 33 | function, a partial computable function, or a primitive recursive |
34 | 34 | function. The fourth clause tells us that if $S$ is computably |
35 | | -enumerable, then for some index $e$, |
| 35 | +enumerable, then for some index~$e$, |
36 | 36 | \[ |
37 | 37 | S = \Setabs{x}{\cfind{e}(x) \fdefined}. |
38 | 38 | \] |
|
44 | 44 |
|
45 | 45 | \begin{proof} |
46 | 46 | Since every primitive recursive function is computable and every |
47 | | -computable function is partial computable, (3) implies (1) and (1) |
48 | | -implies~(2). (Note that if $S$ is empty, $S$ is the range of the |
49 | | -partial computable function that is nowhere defined.) If we show that |
50 | | -(2) implies (3), we will have shown the first three clauses |
51 | | -equivalent. |
| 47 | +computable function is partial computable, \olref{case:ran-prim} |
| 48 | +implies \olref{case:ce} and \olref{case:ce} |
| 49 | +implies~\olref{case:ran-pc}. (Note that if $S$ is empty, $S$~is the |
| 50 | +range of the partial computable function that is nowhere defined.) If |
| 51 | +we show that \olref{case:ran-pc} implies \olref{case:ran-prim}, we |
| 52 | +will have shown the first three clauses equivalent. |
52 | 53 |
|
53 | 54 | So, suppose $S$ is the range of the partial computable function |
54 | 55 | $\cfind{e}$. If $S$ is empty, we are done. Otherwise, let $a$ be any |
55 | 56 | element of~$S$. By Kleene's normal form theorem, we can write |
56 | 57 | \[ |
57 | | -\cfind{e}(x) = U (\umin{s}{T(e, x, s)}). |
| 58 | +\cfind{e}(x) = U(\umin{s}{T(e, x, s)}). |
58 | 59 | \] |
59 | 60 | In particular, $\cfind{e}(x) \fdefined$ and $= y$ if and only if there |
60 | 61 | is an $s$ such that $T(e, x, s)$ and $U(s) = y$. Define $f(z)$ by |
61 | 62 | \[ |
62 | 63 | f(z) = \begin{cases} |
63 | | -U((z)_1) & \text{if $T(e, (z)_0, (z)_1)$} \\ |
64 | | -a & \text{otherwise.} |
| 64 | + U((z)_1) & \text{if $T(e, (z)_0, (z)_1)$} \\ |
| 65 | + a & \text{otherwise.} |
65 | 66 | \end{cases} |
66 | 67 | \] |
67 | 68 | Then $f$ is primitive recursive, because $T$ and $U$ |
68 | 69 | are. \iftag{TMs}{Expressed in terms of Turing machines, if $z$ codes a |
69 | 70 | pair $\tuple{(z)_0, (z)_1}$ such that $(z)_1$ is a halting |
70 | | - computation of machine $e$ on input $(z)_0$, then $f$ returns the |
71 | | - output of the computation; otherwise, it returns $a$.} |
| 71 | + computation of machine~$M_e$ on input $(z)_0$, then $f$ returns the |
| 72 | + output of the computation; otherwise, it returns~$a$.} |
72 | 73 |
|
73 | | -We need to show that $S$ is the range of $f$, i.e., for any natural |
74 | | -number $y$, $y \in S$ if and only if it is in the range of~$f$. In the |
| 74 | +We need to show that $S$ is the range of~$f$, i.e., for any natural |
| 75 | +number~$y$, $y \in S$ if and only if it is in the range of~$f$. In the |
75 | 76 | forwards direction, suppose $y \in S$. Then $y$ is in the range of |
76 | | -$\cfind{e}$, so for some $x$ and $s$, $T(e,x,s)$ and $U(s) = y$; but then |
77 | | -$y = f(\tuple{x,s})$. Conversely, suppose $y$ is in the range of |
78 | | -$f$. Then either $y = a$, or for some $z$, $T(e,(z)_0,(z)_1)$ and |
79 | | -$U((z)_1) = y$. Since, in the latter case, $\cfind{e}(x) \fdefined = y$, |
80 | | -either way, $y$ is in $S$. |
| 77 | +$\cfind{e}$, so for some $x$ and~$s$, $T(e,x,s)$ holds and $U(s) = y$. |
| 78 | +But then $y = f(\tuple{x,s})$. Conversely, suppose $y$ is in the range |
| 79 | +of~$f$. Then either $y = a$, or for some~$z$, $T(e,(z)_0,(z)_1)$ and |
| 80 | +$U((z)_1) = y$. Since, in the latter case, $\cfind{e}(x) \fdefined = |
| 81 | +y$, either way, $y$ is in~$S$. |
81 | 82 |
|
82 | 83 | (The notation $\cfind{e}(x) \fdefined = y$ means ``$\cfind{e}(x)$ is |
83 | 84 | defined and equal to $y$.'' We could just as well use $\cfind{e}(x) = |
84 | 85 | y$, but the extra arrow is sometimes helpful in reminding us that we |
85 | 86 | are dealing with a partial function.) |
86 | 87 |
|
87 | 88 | To finish up the proof of \olref{thm:ce-equiv}, it suffices to show |
88 | | -that (1) and (4) are equivalent. First, let us show that (1) implies |
89 | | -(4). Suppose $S$ is the range of a computable function~$f$, i.e., |
| 89 | +that \olref{case:ce} and~\olref{case:ce-domain} are equivalent. First, |
| 90 | +let us show that \olref{case:ce} implies~\olref{case:ce-domain}. |
| 91 | +Suppose $S$ is the range of a computable function~$f$, i.e., |
90 | 92 | \[ |
91 | | -S = \Setabs{y}{\text{for some $x$,} f(x) = y}. |
| 93 | +S = \Setabs{y}{\text{for some $x$, } f(x) = y}. |
92 | 94 | \] |
93 | 95 | Let |
94 | 96 | \[ |
95 | | -g(y) = \umin{x}{f(x) = y}. |
| 97 | +g(y) = \umin{x}{(f(x) = y)}. |
96 | 98 | \] |
97 | 99 | Then $g$ is a partial computable function, and $g(y)$ is defined if |
98 | | -and only if for some $x$, $f(x) = y$. In other words, the domain of |
| 100 | +and only if for some~$x$, $f(x) = y$. In other words, the domain of |
99 | 101 | $g$~is the range of~$f$. \iftag{TMs}{Expressed in terms of Turing |
100 | | - machines: given a Turing machine $F$ that enumerates the elements of |
101 | | - $S$, let $G$ be the Turing machine that semi-decides $S$ by |
102 | | - searching through the outputs of~$F$ to see if a given element is in |
103 | | - the set.}{} |
104 | | - |
105 | | -Finally, to show (4) implies (1), suppose that $S$~is the domain of the |
106 | | -partial computable function~$\cfind{e}$, i.e., |
| 102 | +machines: given a Turing machine~$F$ that enumerates the elements |
| 103 | +of~$S$, let $G$ be the Turing machine that semi-decides $S$ by |
| 104 | +searching through the outputs of~$F$ to see if a given element is in |
| 105 | +the set, halts if it is and keeps searching forever if it isn't.}{} |
| 106 | + |
| 107 | +Finally, to show \olref{case:ce-domain} implies~\olref{case:ce}, |
| 108 | +suppose that $S$~is the domain of the partial computable |
| 109 | +function~$\cfind{e}$, i.e., |
107 | 110 | \[ |
108 | 111 | S = \Setabs{x}{\cfind{e}(x) \fdefined}. |
109 | 112 | \] |
|
123 | 126 | to halting computations.}{} |
124 | 127 | \end{proof} |
125 | 128 |
|
126 | | -The fourth clause of \olref{thm:ce-equiv} provides us with a |
127 | | -convenient way of enumerating the computably enumerable sets: for each |
128 | | -$e$, let $W_e$ denote the domain of $\cfind{e}$. Then if $A$ is any |
129 | | -computably enumerable set, $A = W_e$, for some $e$. |
| 129 | +Clause~\olref{case:ce-domain} of \olref{thm:ce-equiv} provides us with |
| 130 | +a convenient way of enumerating the computably enumerable sets: for |
| 131 | +each~$e$, let $W_e$ denote the domain of $\cfind{e}$, i.e., |
| 132 | +\[ |
| 133 | +W_e = \Setabs{x}{\cfind{e}(x) \fdefined}. |
| 134 | +\] |
| 135 | +Then if $A$ is any computably enumerable set, $A = W_e$, for some~$e$. |
130 | 136 |
|
131 | 137 | The following provides yet another characterization of the computably |
132 | 138 | enumerable sets. |
133 | 139 |
|
134 | 140 | \begin{thm} |
135 | 141 | \ollabel{thm:exists-char} |
136 | 142 | A set $S$ is computably enumerable if and only if there is a |
137 | | -computable relation $\Atom{R}{x,y}$ such that |
| 143 | +computable relation $R(x,y)$ such that |
138 | 144 | \[ |
139 | | -S = \Setabs{ x }{ \lexists[y][\Atom{R}{x,y}] }. |
| 145 | +S = \Setabs{ x }{ \lexists[y][R(x,y)] }. |
140 | 146 | \] |
141 | 147 | \end{thm} |
142 | 148 |
|
143 | 149 | \begin{proof} |
144 | 150 | In the forward direction, suppose $S$ is computably |
145 | | -enumerable. Then for some $e$, $S = W_e$. For this value of $e$ |
| 151 | +enumerable. Then for some $e$, $S = W_e$. For this value of~$e$ |
146 | 152 | we can write $S$ as |
147 | 153 | \[ |
148 | 154 | S = \Setabs{ x }{ \lexists[y][T(e, x, y)] }. |
149 | 155 | \] |
150 | 156 | In the reverse direction, suppose $S = \Setabs{ x }{ |
151 | | - \lexists[y][\Atom{R}{x, y}] }$. Define $f$~by |
| 157 | + \lexists[y][R(x, y)] }$. Define $f$~by |
152 | 158 | \[ |
153 | | -f(x) \simeq \umin{y}{Atom{R}{x,y}}. |
| 159 | +f(x) \simeq \umin{y}{R(x, y)}. |
154 | 160 | \] |
155 | 161 | Then $f$ is partial computable, and $S$ is the domain of~$f$. |
156 | 162 | \end{proof} |
|
0 commit comments