On 7/3/2021 10:56 AM, Richard Damon wrote:
> On 7/3/21 11:32 AM, olcott wrote:
>> On 7/3/2021 10:25 AM, wij wrote:
>>>
>>> In computability theory, the halting problem is the problem of
>>> determining, from a description of an arbitrary computer program and
>>> an input, whether the program will finish running, or continue to run
>>> forever. Alan Turing proved in 1936 that a general algorithm to solve
>>> the halting problem for all possible program-input pairs cannot exist.
>>>
https://en.wikipedia.org/wiki/Halting_problem
>>>
>>
>> There is a huge gap in the reasoning of the halting problem proofs.
>> All of the conventional halting problem proofs simply assume that H
>> must return the correct halt status of P(P) to P. None of these
>> proofs considered the possibility that a simulating halt decider
>> would be required to abort its input before ever returning any value
>> to this input.
>>
>
> But what does aborting the simulation have to do with returning the
> answer to the caller. THEY ARE DIFFERENT.
>
void P(u32 x)
{
u32 Input_Halts = H(x, x);
if (Input_Halts)
HERE: goto HERE;
}
int main()
{
u32 Input_Halts = H((u32)P, (u32)P);
Output("Input_Halts = ", Input_Halts);
}
When the called is calling H in infinitely nested simulation
IN THE ABOVE C COMPUTATION NOT ANY OTHER COMPUTATION
IN THE ABOVE C COMPUTATION NOT ANY OTHER COMPUTATION
IN THE ABOVE C COMPUTATION NOT ANY OTHER COMPUTATION
IN THE ABOVE C COMPUTATION NOT ANY OTHER COMPUTATION
IN THE ABOVE C COMPUTATION NOT ANY OTHER COMPUTATION
IN THE ABOVE C COMPUTATION NOT ANY OTHER COMPUTATION
IN THE ABOVE C COMPUTATION NOT ANY OTHER COMPUTATION
IN THE ABOVE C COMPUTATION NOT ANY OTHER COMPUTATION
The simulating halt decider H must abort the simulation of its input in
the computation H(P,P) before returning any value to P.
IN THE ABOVE C COMPUTATION NOT ANY OTHER COMPUTATION
IN THE ABOVE C COMPUTATION NOT ANY OTHER COMPUTATION
IN THE ABOVE C COMPUTATION NOT ANY OTHER COMPUTATION
IN THE ABOVE C COMPUTATION NOT ANY OTHER COMPUTATION
IN THE ABOVE C COMPUTATION NOT ANY OTHER COMPUTATION
IN THE ABOVE C COMPUTATION NOT ANY OTHER COMPUTATION
IN THE ABOVE C COMPUTATION NOT ANY OTHER COMPUTATION
IN THE ABOVE C COMPUTATION NOT ANY OTHER COMPUTATION
> You don't seem to be able to understand the fundamental Software
> Engineering concept of execution context.
>
> After H aborts the simulation, it needs to do something. By its
> requriements, it needs to return that answer to its caller.
>
H does return a value of 0 to main(). H does not return any value to the
simulated P that calls H in infinitely nested simulation.
> When it does, it tells that caller that it thinks that P(P) is
> non-Halting, but when it does that to the caller P, that P then halts,
> showing that the answer it gave was wrong.
>
Because a simulating halt decider must always abort the simulation of
every input that never halts its halt deciding criteria must be adapted.
Does the input halt on its input?
must become
Does the input halt without having its simulation aborted?
This change is required because every input to a simulating halt decider
either halts on its own or halts because its simulation has been aborted.
> The FUNDAMENTAL definition of Halting is what the machine does when run
> as a machine with the given input. It is shown that P(P) does Halt (and
> you admit this at times) thus P(P) IS a HALTING computation, by definition.
>
That definition simply ignores simulating halt deciders. The fatal
mistake of the halting problem proofs is they simply ignoring simulating
halt deciders.
> The non-Halting answer is wrong, by definition.
>
The non-halting answer is correct the definition must be adapted.
> Any 'logic' that 'proves' otherwise is by definition wrong or at least
> shows the logic is inconsistent.
>
According to your incorrect reasoning a simulating halt decider must
always report true because all of its inputs either halt own their own
or are aborted.
Because people that are not dumber than a box of rocks do understand
that computations that only halt because they were aborted are
computations that never halt there is agreement that your reasoning is
incorrect.
Ben and Kaz both agree. that computations that only halt because their
simulation was aborted are non-halting computations.