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 Last modified 13 September 2007
Question 1.4, 11 September 2007
Question 1.3, 11 September 2007
Question 1.2, 9 September 2007
Question 1.1, 9 September 2007
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.