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)

lib/DbaDatabase.php:134: Warning: dba_replace() [<a href='function.dba-replace'>function.dba-replace</a>]: You cannot perform a modification to a database without proper access