The simplified explanation to the Halting Problem relies on the contradiction in if you have a Turing Machine
H that can decided if a program
p halts, it loops forever if
p halts and halts if the
p doesn't. Then be feeding this program into it's self you end up with the logical contradiction.
I feel like I am missing something fundamental here. Why do the outputs of
H have to be loop or halt, rather than 0 or 1?
Since we start from the assumption that
H is some magic box which can decided the Halting Problem, why can'y we assume that it gives a yes/no answer and then always halts?