On 10/27/20 10:55 PM, olcott wrote:
>
> No that is not true. I thought that might be true too the first time
> that I analyzed this months ago. It turns out that unless H_Hat is
> aborted it really never does stop running. If we simply wait and see
> what H_Hat does it never ever stops running.
And that is the problem with your H, not with H_Hat.
H, by definition, must have finite execution. If we can supply H with
some input which it can't determine the right answer with finite
execution, then H is NOT a proper halting determinater. Your 'abort'
result is really, at least sometimes, an 'I don't know' answer, you
haven't proven that the supplied program will never halt (because you
haven't seen repeated state) or seen that it halted (which makes the
answer easy) so it punts and just aborts and makes a bold statement,
that can be wrong.
It is theroretically possible, within the definition of H, that all H is
is a finite regex on the input machine, or some magic hash. None of
these can possibly have this infinite recursion issue, so H can't
'blame' the recursion on H_Hat, so can't claim that H_Hat 'was aborted'.
Again part of the issue is you want to change the question, but if you
do, you can't apply your results to the original question. The ONLY
question of a Halt Decider is that H(M,N) will indicate in finite time,
what will happen if we run M(N). It doesn't matter if H(M,N) releases
the 7 plagues, if running M(N) doesn't, then that is not part of the answer.
It is clear, that from the answer you say H(H_Hat, H_Hat) will produce,
that is 'Will Not Halt' (that you call 'Aborted') that when you apply
that to the run of H_Hat(H_Hat), and that machine terminates in finite
time, the H(H_Hat, H_Hat) got the answer wrong.
The question is NOT about what happened to the emulated M(N), because
the problem doesn't assume emulation (in fact it can be shown that
emulation can't be a universal solution), but what would happen to a
REAL M(N) run.
It is like disproving that you can't trisect an arbitrary angle with
compass and straight edge, by saying you can if the angle happens to be
a right angle. Different Question, different results.
The original, classical, halting problem statement has useful
implication in the theory of Mathematics and Logic. Your modified
question, I don't know of a use.
Yes, you can disproof Linz, if you change to domain that you are
applying Linz to. It has LONG been know that if you don't need to be a
UNIVERSAL halt determinater, that there are a number of classes a Turing
machines that you can determine if they will halt or not. The key here
is that they can't handle any arbitrary Turing Machine. In particular,
the easiest case is for machines that stay bounded over there full
execution of the problem. It is the unboundedness that causes the
problems, and is where you seem to have the issues, and where other
aspects you have problems with, like incompleteness, come in.