Sunday, March 31, 2013

Why Future can't be predicted OR Why Crystal-balls won't work?

Consider a machine M with vast computational power/storage that could take as input the current state of the universe (at time t) and predict the state of universe at time (t + dt). The point is that even if we had enough resources to maintain and manipulate the state of the universe (just imagine representing that), we would still always fall short of creating a correct future predictor. This can be proved through the following program which outputs a number '0' or '1' depending on machine M's prediction.

Program: Counter-Crystal Ball
Input: machine M's prediction P = (0 or 1)  at time t about this program's output at time t + dt.
Output: ~P at time (t + dt). ~P denotes negation of P, where P is machine M's prediction at time t. 

Thus, the output of the Program Counter-Crystal Ball at time t + dt is always opposite of the prediction P that machine M made at time t about Program's behavior at time t + dt. Hence, the machine M is always wrong about the behavior of the Program Counter-Crystal Ball, and such an "always-correct" machine is theoretically impossible. 

However, that being said, it is plausible that if objects in the universe (including the Program: Counter-Crystal Ball) were forbidden from interacting with the Crystal Ball or machine M, M might still predict the future events correctly. After all, it was Counter-Crystal Ball's knowledge of M's output that allowed it to render M wrong. However, if no object is allowed to interact with such a crystal ball (including humans), then why would anyone even bother to make one! In short, any "tell-all" crystal-ball making plans are just not worth it. Even if somehow made one, we won't be able to use it if it is to make correct predictions. 

P.S: This line of reasoning is similar to Fred Cohen's reasoning as to how there can never be a perfect virus scanner. Still, it's good to know that crystal-balls are just a thing of fantasy.