Cite

This course has no released version yet: the text at this address may change. Cite a released version when one exists.

/courses/arithmetic-hierarchy/codes
@misc{arithmetic-hierarchy-codes,
  title = {{Codes for sets}},
  howpublished = {Lesson 5 of \emph{The arithmetic hierarchy}, Computability Theory course notes},
  url = {/courses/arithmetic-hierarchy/codes},
  note = {Unreleased working version}
}

To cite a single statement, use the # link that appears next to its heading.

Lesson 5 of 5

Codes for sets

Indices of computable, c.e., finite and low sets; the information each kind of index provides, and fixed point arguments showing what cannot be recovered uniformly.

35 min2 questions
Before this lesson:Post's theorem · Kleene's fixed point theorem (Fundamentals of computability) · Low and high sets (Oracles and Turing degrees)
The arithmetic hierarchy · lesson 5 of 5
  1. Σ⁰ₙ and Π⁰ₙ sets
  2. Post's theorem
  3. Classifying index sets
  4. Arithmetic definability
  5. Codes for sets

Constructions in computability theory manipulate sets through finite descriptions: an index of a program computing the set, or enumerating it, or deciding it relative to ∅′\emptyset'. The same set has descriptions of several kinds, and they carry different amounts of information. An index of the characteristic function of a computable set tells more than an index of an enumeration of it; the list of the elements of a finite set tells more than an index of its characteristic function. This lesson defines the usual kinds of indices and proves, by fixed point arguments, that the passage from the poorer to the richer kinds is not uniform. Choosing the right kind of index is often the first decision in a construction.

5.1 Kinds of indices

Definition 5.1.#
  1. A Δ10\Delta^0_1 index of a set AA is an ee such that Φe\Phi_e is the characteristic function of AA.
  2. A Σ10\Sigma^0_1 index of AA is an ee such that We=AW_e = A.
  3. The canonical index of a finite set FF is ∑x∈F2x\sum_{x \in F} 2^x. The finite set with canonical index nn is written DnD_n.
  4. More generally, a Δn+10\Delta^0_{n+1} index of AA is an ee such that Φe∅(n)\Phi^{\emptyset^{(n)}}_e is the characteristic function of AA, and a Σn+10\Sigma^0_{n+1} index is an ee with We∅(n)=AW^{\emptyset^{(n)}}_e = A.

By Theorem 2.2, a set has a Σn+10\Sigma^0_{n+1} index if and only if it is Σn+10\Sigma^0_{n+1}, and a Δn+10\Delta^0_{n+1} index if and only if it is Δn+10\Delta^0_{n+1}. Every integer is a Σ10\Sigma^0_1 index of some set, but not every integer is a Δ10\Delta^0_1 index: the set of Δ10\Delta^0_1 indices is Π20\Pi^0_2-complete (see the exercises). The notion of uniformity of the course on fundamentals can be expressed with indices.

Proposition 5.2.#

A sequence (An)n∈N(A_n)_{n \in \nat} of sets is uniformly computable if and only if there is a computable function hh such that h(n)h(n) is a Δ10\Delta^0_1 index of AnA_n for every nn. Similarly, (An)(A_n) is uniformly c.e., that is, {(n,x):x∈An}\{ (n, x) : x \in A_n \} is c.e., if and only if An=Wh(n)A_n = W_{h(n)} for some computable hh.

Proof of Proposition 5.2.

If χ(n,x)\chi(n, x) is the computable function deciding x∈Anx \in A_n, the parameter form of SMN gives a computable hh with Φh(n)(x)=χ(n,x)\Phi_{h(n)}(x) = \chi(n, x). Conversely, if hh is computable and each h(n)h(n) is a Δ10\Delta^0_1 index of AnA_n, then χ(n,x)=Φh(n)(x)\chi(n, x) = \Phi_{h(n)}(x) is computable by the universal function, and total. The c.e. case is the same, with domains in place of characteristic functions.

Proposition 5.3.#

The relations x∈Dnx \in D_n, ∣Dn∣=k|D_n| = k, Dn⊆DmD_n \subseteq D_m and max⁡Dn=x\max D_n = x are computable. From the canonical index of a finite set one computes a Δ10\Delta^0_1 index and a Σ10\Sigma^0_1 index of it.

Proof of Proposition 5.3.

x∈Dnx \in D_n if and only if the binary digit of nn at position xx is 11, that is, ⌊n/2x⌋\lfloor n / 2^x \rfloor is odd; and all elements of DnD_n are smaller than n+1n + 1, so the other relations are obtained by bounded quantification over x≤nx \leq n. The indices are obtained by the parameter form of SMN, applied to the computable functions (n,x)↦Dn(x)(n, x) \mapsto D_n(x) and to the partial function that converges on (n,x)(n, x) exactly when x∈Dnx \in D_n.

5.2 What cannot be recovered

The converse passages are not uniform. The proofs all have the same structure: a program, built with the fixed point theorem, waits for the alleged conversion procedure to answer about the program itself, and then behaves so as to make the answer wrong.

Proposition 5.4.#

There is no partial computable function ff such that, for every ee with WeW_e computable, f(e) ⁣ ⁣↓f(e)\converge and f(e)f(e) is a Δ10\Delta^0_1 index of WeW_e.

Proof of Proposition 5.4.

Suppose ff exists. By Corollary 5.2 of “Kleene's fixed point theorem”, there is ee such that Φe(x)\Phi_e(x) converges if and only if x=0x = 0, f(e) ⁣ ⁣↓f(e)\converge, and Φf(e)(0) ⁣ ⁣↓=0\Phi_{f(e)}(0)\converge = 0; the description is uniform in ee, since ff and the universal function are partial computable. Then WeW_e is {0}\{0\} or ∅\emptyset, hence computable, so f(e) ⁣ ⁣↓f(e)\converge and Φf(e)\Phi_{f(e)} is the characteristic function of WeW_e. If Φf(e)(0)=0\Phi_{f(e)}(0) = 0, then 0∈We0 \in W_e by construction, while the characteristic function says 0∉We0 \notin W_e. If Φf(e)(0)=1\Phi_{f(e)}(0) = 1, then We=∅W_e = \emptyset, while the characteristic function says 0∈We0 \in W_e. Both cases are contradictory.

Proposition 5.5.#

There is no partial computable function ff such that, for every Δ10\Delta^0_1 index ee of a finite set FF, f(e) ⁣ ⁣↓=∣F∣f(e)\converge = |F|.

Proof of Proposition 5.5.

Suppose f=Φcf = \Phi_c exists. By Corollary 5.2 of “Kleene's fixed point theorem”, there is ee such that for every tt,

Φe(t)={1if t is the least stage with f(e)[t] ⁣ ⁣↓, and f(e)=0,0otherwise.\Phi_e(t) = \begin{cases} 1 & \text{if } t \text{ is the least stage with } f(e)[t]\converge, \text{ and } f(e) = 0,\\ 0 & \text{otherwise.} \end{cases}

The conditions are decidable for each tt, so Φe\Phi_e is total, with values in {0,1}\{0, 1\}, and it is the characteristic function of a set FF with at most one element. So ee is a Δ10\Delta^0_1 index of a finite set, and f(e) ⁣ ⁣↓=∣F∣f(e)\converge = |F|. If f(e)=0f(e) = 0, then FF contains the stage at which f(e)f(e) converges, and ∣F∣=1|F| = 1. If f(e)≥1f(e) \geq 1, then F=∅F = \emptyset and ∣F∣=0|F| = 0. Both cases contradict f(e)=∣F∣f(e) = |F|.

5.3 Lowness indices

A low set AA is Δ20\Delta^0_2, so it has Δ20\Delta^0_2 indices. But lowness says more: ∅′\emptyset' computes A′A'. An index carrying this information is a lowness index: an ee such that Φe∅′\Phi^{\emptyset'}_e is the characteristic function of A′A'. From a lowness index, a Δ20\Delta^0_2 index is computable: by Theorem 3.2 of “The Turing jump” there is a computable gg, independent of the set, with A(n)=A′(g(n))A(n) = A'(g(n)) for every AA, so if Φe∅′=A′\Phi^{\emptyset'}_e = A' then n↦Φe∅′(g(n))n \mapsto \Phi^{\emptyset'}_e(g(n)) computes AA, with an index computable from ee. The converse fails. Its proof uses the fixed point theorem for oracle machines.

Lemma 5.6.#

For every total computable ff, there is ee such that Φf(e)X=ΦeX\Phi^X_{f(e)} = \Phi^X_e for every oracle XX. Consequently, for every oracle machine computing a partial function g(X,e,x)g(X, e, x), there is ee with ΦeX(x)≃g(X,e,x)\Phi^X_e(x) \simeq g(X, e, x) for every XX and xx.

Proof of Lemma 5.6.

The proof of Fixed point theorem uses only the universal function and the SMN theorem, which hold for oracle machines uniformly in the oracle (Relativized universal function and Relativized SMN theorem). The same construction, with the functions dd and f∘df \circ d computable and independent of the oracle, gives a fixed point valid for every oracle. The second statement follows as Corollary 5.2 of “Kleene's fixed point theorem” follows from the theorem.

Proposition 5.7.#

There is no partial computable function ff such that, for every Δ20\Delta^0_2 index ee of a low set AA, f(e) ⁣ ⁣↓f(e)\converge and f(e)f(e) is a lowness index of AA.

Proof of Proposition 5.7.

Suppose ff exists. By Theorem 3.2 of “The Turing jump” applied to the uniformly XX-c.e. set {0:X≠∅}\{ 0 : X \neq \emptyset \}, there is bb such that b∈X′  ⟺  X≠∅b \in X' \iff X \neq \emptyset for every XX. By Lemma 5.6, there is ee such that for every oracle ZZ and every tt,

ΦeZ(t)={1if f(e)[t] ⁣ ⁣↓=i and ΦiZ(b)[t] ⁣ ⁣↓=0 for some i,0otherwise.\Phi^Z_e(t) = \begin{cases} 1 & \text{if } f(e)[t]\converge = i \text{ and } \Phi^Z_i(b)[t]\converge = 0 \text{ for some } i,\\ 0 & \text{otherwise.} \end{cases}

With Z=∅′Z = \emptyset', the function Φe∅′\Phi^{\emptyset'}_e is total with values in {0,1}\{0, 1\}; let AA be the set it computes. By monotonicity of stages, once the condition holds at some tt, it holds at all larger tt. So AA is empty or cofinite, hence computable and low, and ee is a Δ20\Delta^0_2 index of it. Hence i=f(e)i = f(e) is defined and is a lowness index of AA: Φi∅′(b)=A′(b)\Phi^{\emptyset'}_i(b) = A'(b), and A′(b)=1A'(b) = 1 if and only if A≠∅A \neq \emptyset. If Φi∅′(b)=0\Phi^{\emptyset'}_i(b) = 0, then the condition holds for all large tt, so A≠∅A \neq \emptyset and A′(b)=1A'(b) = 1. If Φi∅′(b)=1\Phi^{\emptyset'}_i(b) = 1, the condition never holds, so A=∅A = \emptyset and A′(b)=0A'(b) = 0. Both cases are contradictory.

The information that distinguishes a lowness index from a Δ20\Delta^0_2 index is used in constructions that need to answer questions about A′A' with the oracle ∅′\emptyset' while AA is being built, for instance to iterate the construction of low sets.

5.4 Exercises

Exercise 5.8 ★.

Show that from a Δ10\Delta^0_1 index of AA one computes a Σ10\Sigma^0_1 index of AA and a Σ10\Sigma^0_1 index of N∖A\nat \setminus A.

Solution

By the parameter form of SMN, there are computable h1h_1 and h0h_0 such that Φhi(e)(x)\Phi_{h_i(e)}(x) converges if and only if Φe(x) ⁣ ⁣↓=i\Phi_e(x)\converge = i. If ee is a Δ10\Delta^0_1 index of AA, then Wh1(e)=AW_{h_1(e)} = A and Wh0(e)=N∖AW_{h_0(e)} = \nat \setminus A.

Exercise 5.9 ★★.

Show that the set {e:e is a Δ10 index of some set}\{ e : e \text{ is a } \Delta^0_1 \text{ index of some set} \} is Π20\Pi^0_2-complete.

Solution

ee is a Δ10\Delta^0_1 index if and only if ∀x ∃s (Φe(x)[s] ⁣ ⁣↓∧Φe(x)[s]≤1)\forall x\ \exists s\ (\Phi_e(x)[s]\converge \wedge \Phi_e(x)[s] \leq 1), a Π20\Pi^0_2 condition. For completeness, let A={x:∀y ∃z R(x,y,z)}A = \{ x : \forall y\ \exists z\ R(x, y, z) \} with RR computable, and let ff be computable with Φf(x)(y)≃0\Phi_{f(x)}(y) \simeq 0 if ∃z R(x,y,z)\exists z\ R(x, y, z), the program searching for zz and diverging if there is none. Then Φf(x)\Phi_{f(x)} is total, with values in {0,1}\{0, 1\}, if and only if x∈Ax \in A.

Exercise 5.10 ★★.

Show that there is no partial computable function ff such that, for every Σ10\Sigma^0_1 index ee of a finite set FF, f(e) ⁣ ⁣↓f(e)\converge and Df(e)=FD_{f(e)} = F.

Solution

Suppose ff exists. By Corollary 5.2 of “Kleene's fixed point theorem”, there is ee such that Φe(x)\Phi_e(x) converges if and only if x=0x = 0, f(e) ⁣ ⁣↓f(e)\converge and 0∉Df(e)0 \notin D_{f(e)}. Then We⊆{0}W_e \subseteq \{0\} is finite, so f(e) ⁣ ⁣↓f(e)\converge with Df(e)=WeD_{f(e)} = W_e. If 0∈Df(e)0 \in D_{f(e)}, then We=∅W_e = \emptyset, so Df(e)≠WeD_{f(e)} \neq W_e. If 0∉Df(e)0 \notin D_{f(e)}, then We={0}W_e = \{0\}, so Df(e)≠WeD_{f(e)} \neq W_e. Both cases are contradictory.

5.5 Notes and references

Canonical indices of finite sets are standard since Rogers’ book. Lowness indices are used systematically in the constructions of low sets and low degrees, for instance in the proofs of the low basis theorem and of the Sacks splitting theorem; the examples of this lesson follow the presentation in Monin and Patey’s book. Soare’s textbook discusses the various kinds of indices.

  • H. Rogers, Theory of Recursive Functions and Effective Computability, McGraw-Hill, 1967.
  • R. I. Soare, Turing Computability: Theory and Applications, Springer, 2016.