==> logic/boxes.s <==
The problem cannot be solved with the information given.
The sign on box A says "The sign on box B is true and the gold is in box A".
The sign on box B says "The sign on box A is false and the gold is in box A".
The following argument can be made: If the statement on box A is true, then
the statement on box B is true, since that is what the statement on box A
says. But the statement on box B states that the statement on box A is false,
which contradicts the original assumption. Therefore, the statement on box A
must be false. This implies that either the statement on box B is false or
that the gold is in box B. If the statement on box B is false, then either
the statement on box A is true (which it cannot be) or the gold is in box B.
Either way, the gold is in box B.
However, there is a hidden assumption in this argument: namely, that
each statement must be either true or false. This assumption leads to
paradoxes, for example, consider the statement: "This statement is
false." If it is true, it is false; if it is false, it is true. The
only way out of the paradox is to deny that the statement is either true
or false and label it meaningless instead. Both of the statements on the
boxes are therefore meaningless and nothing can be concluded from them.
In general, statements about the truth of other statements lead to
contradictions. Tarski invented metalanguages to avoid this problem.
To avoid paradox, a statement about the truth of a statement in a language
must be made in the metalanguage of the language.
Common sense dictates that this problem cannot be solved with the information
given. After all, how can we deduce which box contains the gold simply by
reading statements written on the outside of the box? Suppose we deduce that
the gold is in box B by whatever line of reasoning we choose. What is to stop
us from simply putting the gold in box A, regardless of what we deduced?
(cf. Smullyan, "What Is the Name of This Book?", Prentice-Hall, 1978, #70)