Can you write a program for a Turing machine for which no human will ever know whether it will halt or not? A few rules/assumptions:
- I'm not talking about a program too long to read, because that's boring, but something whose halting status is essentially unknowable. After all what if humans solve aging, solve solar catastrophe, etc.?
- I assume Turing machines have no random number generator, so you can't write a program like "if rand() > 0.5 then halt else spin."
- I'm asking about programs that are not just undecided but undecidable. For instance you could write a computer that halts iff it finds a positive even integer that is not a sum of two primes (cf. Goldbach's conjecture), and no one knows yet whether that program will halt. But who's to say someone won't figure it out in a hundred years? Can you write a program whose halting status is demonstrably undecidable?
Another way to approach the problem is to talk about the reals and the naturals: the cardinality of the reals is greater than the cardinality of the naturals. Turing machines are encoded in binary, hence the set of Turing machines is no larger than the set of natural numbers. Hence there are some reals that cannot be computed by a Turing machine.
This suggests an obvious example: write a program to compute the square root of a number with infinite precision. Then let it run. For any input, can you tell me whether it's stuck trying to compute an irrational number, or just taking a long time to compute a very large rational number?