In Problem 1.5.4, what exactly is meant by a "loop"? I haven't been able to do part (b) with four circles.

By "loop" I mean a "simple closed curve" -- a line of any shape that eventually meets itself (closing the loop) but doesn't cross itself. I don't think it's possible to get sixteen regions with four circles (I can get fifteen) but you're not restricted to circles so that gives you more options. Any shape of simple closed curve is allowed.

In Problem 1.2.7 part (b), how do we handle the case of the empty string?

A good question. A one-letter string isn't a problem --
all one-letter strings are in this language because the last letter of a
one-letter string *is the first letter and so is the same letter. But
I interpret "the first letter and last letter are the same" to mean that the
first and last letter have to exist, so I would say that the empty string is
not in this language. I should have said "strings whose first letter
exists and is the same as the last letter", which is similar to part (a).
Remember that statements of the form "all x are..." are true if there aren't
any x's, but this isn't really the same thing.
*

In Problem 1.4.6, we are asked only to do parts (a), (c), (e), and (g). Do we still have to do all eight parts of Problem 1.4.5?

Yes. Note that in 1.4.6, you need to make your English clear enough that a reader could reproduce the compound proposition in symbolic form. In particular, the English should indicate whether you mean the statement of (a) or that of (b) -- just saying "x and y or z" doesn't make this clear. There are translation hints throughout Section 1.4 and in Excursion 1.11. Sometimes, for example, it's better to translate "x∨y" as "either x or y, or both" rather than just "x or y".

In Problem 1.4.5 part (h), I'm not sure what to do when I get to an expression of the form "a ⊕ b ↔ c", because I don't know whether to evaluate the ⊕ or the ↔ next. Don't I need more parentheses?

I should have given you one more set of parentheses, yes, so you may assume that the ⊕ is evaluated first, i.e., that the formula is:

(((y ∧ ¬x) ⊕ (¬y → x) ) ↔ (z ∨ ¬x)) ↔ z

As I'll show in lecture Monday 10 September, it actually doesn't matter whether you evaluate the ⊕ or the ↔ first because these two operators are associative with each other. (You can rewrite "a ↔ b" as "a ⊕ b ⊕ 1" and use the fact that separate ⊕ operators are associative (and commutative) with each other.)

In Problem 1.2.7, what kind of answer are you expecting? Java code?

Yes -- for each of the four parts you should write a Java static method that
takes a `String`

argument and returns a `boolean`

, because
that's what a "decision procedure" does. (For each set, your decision
procedure returns `true`

if the input `String`

is in the
set and `false`

if it isn't.) You won't be graded strictly on your
Java syntax, but actually running the code is an excellent way to increase your
confidence that it is not only syntactically correct but actually does the right
thing.

Last modified 13 September 2007