Honors Theory, Spring 2002, Yap Homework 3 Solution

MOSTLY ABOUT RECURSIVELY ENUMERABLE SETS In the following, we will identify the set {0, 1}^{∗} with ℕ via the dyadic notation. So we will interchangeably talk of (natural) numbers and binary strings.

1. (20 Points) In the notes on the Bernstein-Schröder theorem we showed a fixed point A^{∗} for any monotone map μ : 2^{X} → 2^{X}. This fixed point was based on the idea of sets A ⊆ X that are small in the sense that A ⊆ μ(A). (The set A is “small” relative to its image μ(A).) Now define a set B ⊆ X to be big if μ(B) ⊆ B. Show a fixed point B^{∗} for μ based on big sets.

SOLUTION: Define B^{∗} to be the intersection of all the big sets. To show that B^{∗} is a fixed point, we first show one direction:

μ(B^{∗}) ⊆ B^{∗}

This amounts to saying that B^{∗} is big. If b ∈ μ(B^{∗}), by monotonicity, b ∈ μ(B), for any B that is big. As B satisfies μ(B) ⊆ B, we have b ∈ B, for any B that is big. But B^{∗} is the intersection of all the B’s that are big, thus b ∈ B^{∗}. In the other direction, we make a general observation: if B is big, then μ(B) is big. This is because the bigness of B implies μ(μ(B)) ⊆ μ(B), by monotonicity. Since B^{∗} is big, μ(B^{∗}) must be big. As B^{∗} is the intersection of all big sets, this shows B^{∗} ⊆ μ(B^{∗}).

Extra Credit: Construct an example in which the B^{∗} ≠ A^{∗}.

SOLUTION: An example function: μ : 2^{X} → 2^{X}, μ(S) = S for any S ∈ X. The function is monotone as μ(S_{1}) ⊆ μ(S_{2}), for any S_{1} ⊆ S_{2} ⊆ X. As each set is both small and big, A^{∗} = X is the union of all small sets, and B^{∗} = ∅ is the intersection of all big sets. Thus A^{∗} ≠ B^{∗}.

2. (15 Points) Prove that a set A ⊆ ℕ is r.e. if and only if there exists a recursive set B ⊆ {0, 1, #}^{∗} such that A = {w ∈ {0, 1}^{∗} : (∃y ∈ {0, 1}^{∗})[w#y ∈ B]}.

SOLUTION: Let’s show the direction from right to left first. As B is recursive, there is a STM M_{B} that decides B. We need to prove that the language A = {w ∈ {0, 1}^{∗} : (∃y ∈ {0, 1}^{∗})[w#y ∈ B]} is r.e.. We construct a STM M_{A} that works in the following way:

M_{A} = “On input w:

1. Repeat the following for i = 1,2,3,...

2. Run M_{B} on w#s_{i}.

3. If M_{B} accepts, accept.”

Here s_{1}, s_{2}, s_{3}... is a list of all possible strings in {0, 1}^{∗}. We know that M_{A} recognizes A, because:

For each w ∈ A, there exists a string y such that w#y ∈ B. So after a finite number of tests, y will be found. As M_{B} is a decider, each test of y is done in finite steps. Thus w will be accepted by M_{A} in finite steps. For each w ∉ A, there is no string y such that w#y ∈ B. So M_{A} will try to find y for ever, so it loops.

As STM M_{A} recognizes A, A is r.e..

Then we prove the direction from left to right. Suppose A is r.e., then there is a STM M_{A} that recognizes A. we need to find a recursive language B such that A = {w ∈ {0, 1}^{∗} : (∃y ∈ {0, 1}^{∗})[w#y ∈ B]}. Intuitively, we want B to accept w#C where C is the encoded string for configuration history of M_{A} running w. We construct a STM M_{B} that decides B:

M_{B} = “On input w:

1. If w is not of the form x#C_{1} → C_{2} → ...C_{m}, m ≥ 1 (where symbol → seperates the configurations C_{i}’s), rejects.

2. Repeat stage 3 for i = 1 to m

3. Run M_{A} on w for the ith step. If M_{A} halts and rejects, reject; Else if the current configuration of M_{A} is not the same as C_{i} also reject. Else if i = m and M_{A} accepts w, accept.”

4. If M_{A} still does not accept after m steps (C_{m} is not an accepting configuration), reject.

STM M_{B} is a decider as it always halts in finite simulation steps of M_{A}. Obviously it only accepts those strings of form w#C where C is the encoded string of accepting configuration history of M_{A} running w. If w ∈ A, there exists an accepting configuration history y of M_{A} running w, so M_{B} accepts w#y; If w ∉ A, there is no accepting configuration history of M_{A} running w, M_{B} rejects w#y for all y’s.

3. (15+15+10 Points) Fix a deterministic universal Turing machine U such that K(U) = RE|{0, 1}. We can view this U as computing a function Φ : ℕ × ℕ → ℕ, where the output alphabet of U is assumed to be {0, 1} and we identify the set {0, 1}^{∗} with ℕ via the dyadic notation. Recall how transducers define functions – on input ⟨i, w⟩, if v is the non-blank word that is being scanned by the work head when U enters the accept state q_{A}, then Φ(i, w) is the dyadic number v. If U(i, w) ↑, then Φ(i, w) is undefined. Define

Φ :={ϕ_{i} : i ∈ ℕ}

where ϕ_{i} : ℕ → ℕ be the function ϕ_{i}(w) = Φ(i, w). We define a function f to be partial recursive if f ∈ Φ. Thus Φ is the function analogue of the class RE. Let sets W_{i}:={w ∈ ℕ : ϕ_{i}(w) ↓} and E_{i}:={ϕ_{i}(w) : w ∈ ℕ, ϕ_{i}(w) ↓}. Thus, W_{i}, E_{i} are basically the domain and range of ϕ (Mnemonic: ϕ_{i} is a map from the “west” set W_{i} to the “east” set E_{i}.) Prove the following:

(i) A set A ⊆ ℕ is r.e. iff A = W_{i} for some i. (ii) A set B ⊆ ℕ is r.e. iff B = E_{i} for some i. HINT: to show that E_{i} is r.e. you need to “dovetail” together a denumerable sequence of computations. (iii) The set T OT :={i ∈ ℕ : ϕ_{i} is total} is not r.e.

SOLUTION:

(i) Let’s prove the direction from left to right first. As the set A is r.e., there is a STM M that recognizes it. We construct a function ϕ_{a} for it.

ϕ_{a} = “On input w

1. Run M on w.

2. If M accepts w, halt and output w. Else if M halts and rejects w, loop.”

For each w ∈ A, ϕ_{a} halts; For each w ∉ A, ϕ_{a} is undefined. So A = {w ∈ N : ϕ_{a}(w) ↓}.

Now prove the direction from right to left. This is trivial. If A = W_{i} for some i, we can construct a STM M from ϕ_{i}. Compute ϕ_{i}(w), whenever ϕ_{i} halts, M accepts w. If ϕ_{i} does not halt, M does not halt either. Since M accepts only all the strings in A, it recognizes A. Thus A is r.e..

(ii) Let’s prove the direction from left to right first. As the set A is r.e., there is a STM M that recognizes it. We construct a function ϕ_{a} the same way as part (i).

ϕ_{a} = “On input w

1. Run M on w.

2. If M accepts w, halt and output w. Else if M halts and rejects w, loop.”

For each w ∈ A, ϕ_{a} halts and outputs w; For each w ∉ A, ϕ_{a} is undefined. So A = {ϕ_{a}(w) = w : w ∈ N, ϕ_{a}(w) ↓}.

Now prove the direction from right to left. If A = E_{i} for some i, we can construct a STM M from ϕ_{i}:

M = “On input w

1. Repeat the following for i = 1, 2, 3 ...

2. Compute ϕ_{i} for i steps on each string s_{1}, s_{2}, ...s_{i}.

3. If any computation halts and outputs w, halt and accept.”

Where s_{1}, s_{2}, ...s_{i} is a list of all possible strings.

For each string w ∈ E_{i}, on some string u, ϕ_{i} halts and outputs w, so M will accept w in finite steps. For each string w ∉ E_{i}, ϕ_{i} will never find any string u, such that ϕ_{i}(u) = w, so M will loop for ever. Thus STM M recogizes A.

(iii)Suppose not, the set TOT is r.e.. There is a recursive enumerator E enumerates it. Consider the total function g(m) = ϕ_{m}(m) + 1 for each m ∈ N. Obviously g is computable. But as g differs from each function ϕ_{i}, it is not included in the enumeration E. That’s a contradiction. Thus the set TOT is not r.e..