This article is a short version of
The Surprise Examination or Unexpected Hanging Paradox Timothy Y. Chow The American Mathematical Monthly Volume 105, Number 1, January 1998, pp. 41 - 51

Before plunging into an attempt to "resolve" the paradox, let us pause for a moment and think for a moment about what "resolving" a paradox means.

There are two steps involved in resolving a paradox.

1. Establish unambiguously what the paradoxical argument is. To do this it often helps to write down all the assumptions and the logical steps explicitly, possibly in a formal language of some kind.

2. Exhibit the fault in the reasoning. The fault may be due to incorrect reasoning (e.g., dividing by zero or confusing two distinct things by using the same word for both) or faulty assumptions. In the latter case it is often easy to identify exactly which assumption should be rejected, although sometimes what we discover is a set of mutually incompatible assumptions such that rejecting any one of them suffices to eliminate the paradoxical reasoning. In such a situation, simply exhibiting the incompatible axioms without passing judgment on which one is wrong is usually sufficient to dispel the confusion caused by the paradox. (We will see an example of this below.)

In some paradoxes the argument is presented clearly from the outset and we do not need to bother with step 1. Such is the case with many 1 = 0 "proofs." However, some paradoxical arguments can be interpreted in more than one way. The classic problem of two envelopes, one with twice as much money as the other, is an example. In such cases, to resolve the paradox, one should list the different possibilities for formulating the paradoxical argument precisely and apply step 2 to each case.

With these ideas in mind, let us now turn to the prediction paradox.

Fatal Error:

lib/CachedMarkup.php (In template 'browse' < 'body' < 'html'):257: Error: Pure virtual

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

lib/DbaDatabase.php:160: Warning: DbaDatabase: optimize()

Fatal PhpWiki Error

lib/CachedMarkup.php (In template 'browse' < 'body' < 'html'):257: Error: Pure virtual