Time loop logic is a system of computation that requires the computer to be able to send data backwards through time, and relies upon the Novikov self-consistency principle to force the result of a computation sent backwards through time to be correct. This approach can overcome many limitations on traditional algorithmic complexity.
A program exploiting time loop logic can be quite simple in outline. For example, to find a factor for a large number:
- wait for the result to be transmitted from the future.
- upon receiving the result, test whether it is a factor by dividing the input number by it.
- if the received result is indeed a correct factor of the number, send the result back in time.
- else if the received result is not a correct factor of the number (or no result is received at all within the desired timeframe), generate a number different from the received result and send it back in time. Note that this results in a paradox, since the result sent back is not the same as the one that was received.
Of course, time loop logic is a purely theoretical exercise at this point. It is not known whether time travel is possible, or if it is whether Novikov's principle really applies to it.