|
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