CMPSCI 601: Theory of Computation

David Mix Barrington

Spring, 2003

This page currently contains interesting questions I have received from students in CMPSCI 601, together with my answers. These are questions related to the Homework #5 -- links to previous questions and answers are at the bottom of this page. weeks. Questions are in black, answers in blue. Most recently answered questions are listed first.

Question 5.7, 8 April 2003

In exercise 13.29 we are asked to show that:

∀x (Small(x) -> Cube(x))

∃x ~Cube(x) -> Ex Small(x)

-----

∃x Cube(x)

However, this seems to be false if there are no objects at all! Tarski's World won't evaluate the sentences in an empty world, however... is there some requirement that any world have some object in it?

LPL's first order logic assumes that the universe of a structure is always non-empty. I'm not sure where they first say it, but they say it again on page 498.

So, for example, if φ(x) is always true, then so is ∃xφ(x). Here you want to say that there exists an object that either is a cube or isn't a cube -- I believe that Fitch will give you this as an axiom.

Question 5.6, 8 April 2003

I'm having trouble with Question 11(b), showing that if S is r.e., then S is Σ1. The definition of r.e. refers to recursive functions, but for Σ1 I need a primitive recursive function.

In 11(a) you probably used the Comp function to talk about K, and the Comp function is primitive recursive. (No matter how complicated a TM's computation is, it is still primitive recursive to input an alleged computation and determine whether it is legitimate.) The same Comp function can be used in most or all of the other problems. Think of Σ1 as being "a number exists such that some primitive recursive thing happens to that number and my input". In 11(a) the number that might or might not exist was a computation -- this happens in most or all of the other problems as well.

Question 5.5, 7 April 2003

Is it implied in today's lecture that we aren't allowed to use the transitivity of reduction to conclude that LEVELLED-REACH is NL-complete? If not, what else should I be thinking about?

No, sorry if I gave that impression. If you follow my hint and construct a reduction from REACH to LEVELLED-REACH, then you need the transitivity to conclude that everything else in NP reduces to LEVELLED-REACH. So you may assume without proof that log-space reduction is transitive.

It's also possible to solve this problem without following my hint. You have the proof in lecture that an arbitrary language in NL reduces to REACH. If you can adapt this proof so that the arbitrary language reduces to LEVELLED-REACH, you are done.

Note that with a log-space reduction, though, you cannot implement breadth-first or depth-first search because these use linear space. The reduction (if you use my hint) must take a graph G and create another graph H that is levelled and two nodes x and y such that there is a path in G from s to t iff there is a path in H from x to y. In general H will have to be a different graph, because you can't in general make a graph levelled by just adding some level numbers.

Question 5.4, 7 April 2003

I'm having trouble reading the homework assignment because of the symbols, using either Mozilla or Netscape.

Unfortunately no technical advance comes without its costs. Thanks to a tip from an off-campus student, I'm now using the HTML entities correctly (at least for IE) by ending them with semicolons. Unfortunately, some (many?) browsers just print blank space when they see an entity in the source that they don't recognize. The best suggestion I can give is to print out my HTML source using the "View Source" button, and then write the correct symbols onto the hard-copy assignment sheet yourself.

Question 5.3, 7 April 2003

In order to show that a language L is in co-r.e. is it sufficient to show that there is a Turing machine that rejects on inputs not in the language and runs forever on all other inputs? I like to think of the class co-r.e. this way, but I haven't seen any such definition of a "non-recognizer" in a book.

The standard way to show that L is in co-r.e. would be to build a machine that accepts strings in L-bar and loops on strings in L. This would be an ordinary recognizer for L-bar, proving that L-bar is r.e. and thus that L is co-r.e. as desired. It's pretty clear that your "co-recognizer" for L can be built iff this recognizer for L-bar can be built, since you convert one to the other by swapping accepting and rejecting states. So your method of showing L to be co-r.e. is just fine.

The way I actually think of the class co-r.e., if you're interested, is as the class Π1 from Problem 11 on HW#5. If you can rewrite "x is in A" as "(x,n) has some Bloop-testable property for all n", then A is co-r.e., as will follow from that problem.

Question 5.2, 3 April 2003

I had a question about part c of #11. If we want to say that a set is harder than than re/co-re, do we need to define the corresponding \Pi_k or \Sigma_k definition exactly, or can we just say that it is in that region up top?

The correct answer would be of the form "I can put it in Pi_4, but not in Sigma_3 or Pi_3". So I do care about where in the not-r.e., not-co-r.e. range the language falls. The closer you get to the best possible level for the langauge, the better your score, but you don't have to prove that you have the best possible.

Question 5.1, 3 April 2003

Homework #5, problem #11, part (c), includes the languages:

INFINITE = {n : W[n] is an infinite set of numbers}

COFINITE = {n : W[n] contains all but finitely many numbers}

Before doing the problem I wanted to make sure my rationale was correct. Are the following definitions correct?

FINITE = {n : W[n] is finite}

co-FINITE = N - {n : W[n] is finite} = {n : W[n] is infinite} = INFINITE

COFINITE = {n : N - W[n] is finite}

Yes, these are correct definitions.

When I tried to come up with set for W[n] that satisfy N - W[n] is finite, I only could come up with sets that somehow involved something of the form {n : n > c} for some c. Are there other subsets of N that are cofinite?

Yes, but they are similar. Consider {n: n is prime OR n > 1,000,000}. This is certainly cofinite but not of the form you gave. Every cofinite set must contain all numbers above some number c, but then it may also include some or all of the numbers less than c as well.

Also, isn't it such that for every n in COFINITE, W[n] is infinite, and hence n is in INFINITE? I guess they're not equal, though, since if W[n] generated the language of even natural numbers it would be in INFINITE, but then N - W[n] = language of odd natural numbers, which isn't finite and so it's not in COFINITE... Or am I completely lost?

Yes, it is true that the language COFINITE is properly contained in INFINITE, and that you have given an example of a number/machine that is in INFINITE but not in COFINITE.

Answers to Questions on the Midterm

Answers to Questions during HW#4 (through 26 Mar 2003)

Answers to Questions during HW#3 (through 17 Mar 2003)

Answers to Questions during HW#2 (through 3 Mar 2003)

Answers to Questions during HW#1 (through 12 Feb 2003)

Last modified 8 April 2003