On 11/21/20 4:18 PM, olcott wrote:
> On 11/21/2020 2:45 PM, Richard Damon wrote:
>> Yes, If the halt decider desided that the input would not halt unless
>> aborted, and then when that copy of the halt decider is changed to not
>> abort, but the input question remains the same (using the old halt
>> decider) and that case does not stop, then Yes, it has made the right
>> decision.
>>
>> But when that copy of the halt decider is changed, but the input is not
>> changed, and we actually do run that case, the halt decider does return,
>> showing that the halt decider made an incorrect decision.
> I present a very specific case where the not halting decision of a halt
> decider on a specific input can be known to be correct on the basis of
> logical necessity and you continue to use the dishonest dodge of the
> straw-man error of reasoning.
https://en.wikipedia.org/wiki/Straw_man
>
> It is true by logical necessity that any decider that decides to abort
> the simulation of any input that would never otherwise halt has made a
> correct not halting decision.
You *CLAIM* it is a logical necessity, but the logic that says it is a
necessity is flawed.
The fact that a simple test of what happens shows different results is
proof that the logc is flawed.
If you are pulled over for running a red light, and try to show a
logical proof that you couldn't of, but they pull out the stop light
camera photo of you running the light, you WILL be found guilty.
>
> Anyone that denies this that understands the technical details is
> necessarily a liar.
>
> Anyone that tries to obscure the truth of this by using a dishonest
> dodge of the the straw-man error of reasoning is also a liar.
>
>
Showing what the machine actually does is a 'dishonest dodge'?
Let me try to explain the falicy in your logically necessity.
Yes, if you find a recursive loop with NO conditionals in it (and no
external force that can break it) then yes, you can prove that the
behavior will be an infinite loop.
But that ISN'T the case we have here. When you trace through the loop
there IS a conditional in it. That conditional is the halt detection
code added to you emulator. Because there IS a conditional, you can no
longer use the property of unconditional looping.
You have some how gotten into your mind that this conditional doesn't
count, because it is part of the halt detection code, but it does. In
fact that code is very much needed to be in there to keep your decider
from having non-halting behavior itself (which is a requirement on it).
The problem is that you seem so intent on trying to 'prove' Linz wrong,
that you are being blinded to the actual facts.
You seem to thnk that the ONLY way to solve this halting problem is with
brute force emulation and adding code to detect non-halting behavior.
Not only is it not the only way, it is well known to be a BAD way to do it.
There are many other ways to solve this problem (of course none work in
all cases). One method that handles this sort of issue is to detect the
recusrion like you are doing, and when you detect recursive identical
use of the halt detector, rather than just assuming this means
non-halting behavior (because is doesn't) is to fork the execution into
trying two paths, one assuming you return true, and one assuming you
return false. If the True path ends up actually halting, then you can
just assume your answer is true. If it doesn't, and the false path also
gets into infinite execution, then you can answer false.
If the true path goes non-halting and the false path halting, then you
have a machine that is like Linz. This situation has no valid answer by
the classical halting problem, but you could define an alternate problem
of halting-or-contradiction decider, and let it answer contradiction.
This method still needs to solve other forms of non-halting behavior (so
some of the other proofs of its non-existence may still apply), and you
would also need to see if this modified halting-or-contradictor decider
is actually useful for anything.
I suspect that some of the other proof will likely also provide some
conditions that are not decidable, but it also may be possible to come
up with a machine with a tri-nary answer: Halt, Non-Halting, or
Undecidable. Again, it comes down to seeing if such a machine has any
practical uses. It doesn't directly affect most of things based on the
halting problem, but maybe someone with more background in the field
might be able to tell. I also would expect that someone has already done
a lot of this work, I am just not familiar with it.