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 midterm and its material -- 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 M.7, 29 March 2003

In the crib sheet section, it says: The language K = {n: n not in L(M_n)} is r.e.-complete. Should it be "K = {n: n in L(Mn)} is r.e.-complete"?

Yes, thanks. This error is unfortunately repeated on the printed version of the actual midterm's crib sheet -- I'll make a correction on Monday.

Question M.6, 29 March 2003

I have a question about TMs whose language is the empty set.

I know that nonempty for TMs is re-complete, so empty for TMs would not be r.e. What I am confused about is why in the fundamental theorem of r.e. sets we have for point 2 that S=empty or S is the range of a total recursive function. So it seems like from this theorem that empty is r.e. Is there something here I am not understanding?

You're confused between the empty language, which has no elements at all, and EMPTY-TM, which has lots of elements (the numbers of all TM's that never accept). The empty language is recursive and therefore is r.e. as well. We proved in lecture that EMPTY-TM is not r.e. because K-bar reduces to it.

Question M.5, 29 March 2003

In lemma 12.13, lecture 12, what do you mean that A, A' interpret some variable not free in phi?

Remember that A and A' are structures -- they contain elements together with lookup tables for the values of all the variables, constants, relations, and functions. Tarski's definition tells us how to decide whether a statement phi is true in A or A'. This lemma tells us that if A and A' differ in a certain way, phi is either true in both and false in both. They can differ by changing the values of some of the varibles -- those that either do not occur in phi at all or occur only as bound variables. For example, suppose phi is "exists x: R(x,y)". If we change the value of y, this might change the truth of phi. But if we change the value of x in the structures, this can't affect the truth of phi because the use of x in phi is only as a bound variable.

Question M.4, 28 March 2003

In the example of the Horn-SAT algorithm in Lecture 10, I am not sure what is going on. What happens when the clause "not x or not y or not z" is used, and how do we get the correct answer with x and y true and z false?

In this example we are given three clauses, "true implies x", "x implies y", and "(x and y and z) implies false". The algorithm proceeds as follows. Originally we set all three to false. On the first pass we find the clause "true implies x" and set x to true. On the second pass we find "x implies y" and set y to true. On the third pass we see that all three clauses are satisfied and conclude that this formula _is_ satisfiable.

On the third pass, when x and y are set true but z is still false, the algorithm looks at the clause "(x and y and z) implies false" but it doesn't have to do anything. Because z is false, the antecedent of this implication is false and thus the implication is true.

If there were an additional clause (4) saying "(x and y) implies z", the algorithm would behave differently. The first two passes would go the same, but on the third it would find clause (4) and set z to true. Then on the fourth pass it would find clause (2) and conclude that the formula (which is "(1) and (2) and (3) and (4)" is _not_ satisfiable.

Question M.3, 28 March 2003

I have a question about proving something is neither re nor co-re. It seems there are two ways (assuming K is Mn(n) = 1 and S is the set in question):

  1. Show that K < S and K < Sbar, which shows that S is not co-re and not re, respectively.
  2. Show that K < S and Kbar < S, which seems to say the same thing, but in a more indirect manner by using the fact that K < S iff Kbar < Sbar and the second reduction to show that (Kbarbar = K) < Sbar.

I'm trying to distill this from different sources, so I may not have it right - are both of these valid? In your opinion, is one better (or generally easier to apply) than the other?

If a function f reduces K to S-bar, then that same function f also reduces K-bar to S, because in each case n is in K iff f(n) is not in S. So doing either one requires constructing the same function, and each is equally valid.

I like to show S to be neither re nor co-re by showing K &le S and K-bar &le S. The first shows S is not co-re because K isn't, and the second shows S is not re because K-bar isn't.

Question 4.2, 27 March 2003

There are two systems of proof. One is P and another is Fitch. The first one seems much more complciated than the latter. I can understand what is going on in the lecture notes. But it seems quite hard to come up with my own proof like that. Fitch seems much easier to show. In the exam, do we required to use P to do the proof or as long as we can come up a fitch proof will be ok?

We introduced Fitch precisely because it is easier to prove things in it, so you are certainly encouraged to use it for your proofs in the exam. In fact, as you can see from my solution to Question 7 in the practice exam, I don't demand that you be completely exact about the Fitch rules as long as I am convinced that you know what can be done in Fitch and what can't.

Question M.1, 12 March 2003

Hello, Dave. I have a quick question for you:

What does the & mean in "L(M) &emptyset" in Question 2?

Question 2 (20): The set {M: L(M) N and L(M) &emptyset} is neither r.e. nor co-r.e.

In English, can this be interpreted as the set of Turing machines that don't accept everything but accept something?

Your English phrasing is exactly what is meant.

When writing HTML I don't have access to all the symbols that are in the Latex that I use for lecture notes and other printed material. (For the real midterm you'll get a piece of paper composed using Latex.) Theoretically, there are HTML 4.0 standard "entities" such as &emptyset, &Sigma, &le (less than or equal), or &ne (not equal), but most browsers don't implement most of these. The symbol in your example started out as a "&ne" when I first put it in HTML but it changed in going through your mailer, my mailer, and so forth.

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 7 April 2003