Corrections and Pedagogical Issues
- Item 4
of Example 1.11 is too cumbersome.
Replace with
<{card(X) | X \in
C}, \leq >.
- The
proof of Theorem 2.1 uses multitape Turing machines, but occurs in the
section before defining multitape Turing machines. It would be best to state the
result here, but postpone its proof to after discussion of multitape
Turing machines. This proof
is a good illustration of the usefulness of multitape Turing machines. There is another unfortunate
aspect to the current placement of the proof. Namely, students should solve Homework 2.1 using
single-tape Turing machines.
They should do this for the experience and because this exercise will
help to drive home the point that multitape Turing machines are both more
efficient and easier to program.
- Homework
2.2 should occur in Section 2.3.1, because it is acceptable to use
multitape Turing machines for this exercise.
- Lemma
3.1 should state that the graph of a TOTAL computable function is
decidable. It is a common
convention to use ÒcomputableÓ to mean Òtotal computable,Ó but so far we
have been careful to write Òtotal computableÓ when that is what we mean,
and we should continue that style.
- Homework
3.21 should ask for a nontrivial
language (i.e., L \notin {\Sigma^*, \emptyset}).
- This
note is similar to item 4.
Theorem 3.7 promises existence of a total computable function. So does Corollary 3.3 So do Theorems 3.9 and Corollary
3.4. Theorem 3.10 applies to
total computable functions.
In general ÒcomputableÓ means total computable.
- The
description of UNIT RESOLUTION on page 178 might be confusing to
students. On page 7 we
defined a clause to be a
disjunction of literals.
However in this example we use set notation to describe
clauses. It would be best to
write ÒIdentify a clause $c = x_1 \vee \ldots x_k$ with the set
$c =
\{ x_1, \ldots, x_k \}$.Ó