The scenario goes thus:

There is a prediction machine which predicts very accurately but always states its prediction, and a boy who always defy what he is told. If the machine predicts that the boy will turn left, and says "you will turn left", upon hearing this, the boy turns right in defiance.

Because the machine predicts accurately, it knows that if it said "you will turn left", the boy must turn right, and therefore it should predict and say "you will turn right", but if the boy hears that, he will turn left, and so on.

What is the name of this problem, if it has one, and what concept is being discussed here?

1 Answer 1


What you are describing here is a version of a self-referential paradox, or more specifically a circular reference paradox. From a computational point of view what you are describing is an algorithm which goes into an infinite loop.

The way you stated it is similar to the algorithm that is used to prove that the halting problem is undecidable:

  • A(x) is a program that determines if any program halts or goes into an infinite loop. It outputs 'yes' if the program halts, and outputs 'no' if the program goes into an infinite loop.
  • B(A) is a program that halts whenever the output of A is 'no', and goes into an infinite loop whenever the output of 'A' is 'yes'.

Now feed this program B to A, i.e. is A(B(A)) = 'yes' or 'no' ?

Douglas Hofsdater calls this general type of paradox a "Strange Loop", and talks about it extensively in his book "I am a Strange Loop". The situation you describe can be formalized into a Godel sentence.

Mathematician David Woplert uses ideas similar to yours to prove that no being, no matter how knowledgeable and wise, can ever predict the whole future. See Wolpert's theorem.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .