## The IF Logic Puzzle Mini-Competition: Q&A

I have been asked questions about the model game -- the source code, and the logic behind it all. To be fair (and to avoid repeating myself) I'll post my answers here. (I'll paraphrase questions, and leave out anything which concerns entries-in-progress.)

When you write statements about other pieces of paper, the colors don't seem to come out right. For example:
```  The short paper (which is red) reads, "The short paper is grey."
The wrinkled paper (which is green) reads, "The short paper is brown."```
The short paper is red, but the wrinkled paper says it's brown. And the wrinkled paper is green, meaning "true". What's up?

Indeed. The tricky bit here is this: the model Slightly Clever Logician can't see the colors of the pieces of paper. He knows what's printed on them, but his judgement of the statements -- which is what determines the color -- is based solely on the words.

Furthermore, the Logician thinks he's unable to deal with self-referentiality. He can, in certain cases, but he doesn't know he can.

So, in this case, the short paper means "This statement is paradoxical." Now, we would consider that statement simply false -- if we had a consistent notion of what "paradoxical" meant! And we could argue over that for days. Fortunately, the Logician has a very simple (and consistent!) notion of what "paradoxical" means; it means the Liar statement. (And a few others like the Two-Step Liar.) The short paper is not the Liar, so the Logician does not accept that it's a paradox, so it turns red.

However, the Logician does not know that he knows that it's not a paradox. The wrinkled paper's color depends, not on the color of the short paper (which is certainly red), but on what the Logician thinks he can prove about it. If he was more than Slightly Clever, he would notice his belief that the short paper is not a paradox -- but if he was more than Slightly Clever, we would be unable to assign colors to many statements!

The upshot is, the Logician believes he is unable to prove anything about the short paper. So "The short paper is brown" turns green. "The short paper is green" would turn red; ditto for "...is red" and "...is grey."

The same thing will happen for any self-referential statement or loop, with the exception of the Liar and the Truth-Teller (and loops equivalent to them).

You said "If he was more than Slightly Clever, we would be unable to assign colors to many statements." Can you give an example?

Sure:

`  The short paper (which is green) reads, "The short paper is brown."`
This is a self-referential statement, basically "The Slightly Clever Logician can't prove anything about this statement." It's not the Liar or the Truth-Teller, so -- just as above -- the Logician believes he is unable to prove anything about it. That's what it says, so he believes it is true, so it turns green.

But he does not believe that he believes that it is true. If he did, it would have to turn red! We would be faced with an actual paradox; we would be unable to assign any color to the paper without breaking our own rules. The point of using a Slightly Clever Logician as our touchstone is to avoid this problem.

If I type "give short paper to genie" when the genie already has the short paper, the game says "(taking the short paper)" and then the genie gives it to me. Is this a bug?

Yes. Unfortunately, it's hard to fix. Implicit taking is handled pretty uglily in the Inform library, and I wasn't able to work around this case.

(One solution would be to change the 'give' grammar line to use `noun` instead of `held`. But that would turn off implicit taking for all Give actions, which would break more cases than it fixes.)

Is the grey color really red and green flickering back and forth too fast too see? And is the brown color really a mix of microscopically fine red and green swirls?

Well, if you like, but it's not necessary. They can be just grey and brown.

I considered the approach where the paradoxical colors are "sequential" -- the system evaluates the statements, sets the colors, then re-evaluates them based on the colors, sets the new colors, and repeats this until the colors either stabilize or get into a loop.

This wasn't very nifty, though. It completely sidesteps the interesting question, which is "How do we make a logical system strong enough to recognize paradoxes, but weak enough not to suffer from them?"

Last updated February 12, 2003.