Definition of the halting problem (from Wikipedia):
For any program f that might determine if programs halt, a
"pathological" program g, called with some input, can
pass its own source and its input to f and then
specifically do the opposite of what f predicts g will
do. No f can exist that handles this case.
The reason no f can exist for the case described is because it involves
an INVALID infinite recursion and NOT because a general algorithm that
can answer the question as to whether a program and its given input
halts or runs for ever cannot exist.
The key to understanding this is to recognize that the pathological
infinite recursion described above is INVALID for the same reason that
a recursive definition is INVALID; this is NOT the same as
infinite recursion due to normal recursive function calls defined
within a non-pathological program which can be viewed as:
a) non-halting (infinite stack for recursion)
b) non-halting (tail recursion being optimized into an infinite loop)
c) halting (finite stack exhausted)
/Flibble
On Sat, 13 Nov 2021 09:54:33 -0500
Richard Damon <Richard@Damon-Family.org> wrote:
On 11/13/21 9:25 AM, Mr Flibble wrote:
Definition of the halting problem (from Wikipedia):
For any program f that might determine if programs halt, a
"pathological" program g, called with some input, can
pass its own source and its input to f and then
specifically do the opposite of what f predicts g will
do. No f can exist that handles this case.
The reason no f can exist for the case described is because it
involves an INVALID infinite recursion and NOT because a general
algorithm that can answer the question as to whether a program and
its given input halts or runs for ever cannot exist.
The key to understanding this is to recognize that the pathological
infinite recursion described above is INVALID for the same reason
that a recursive definition is INVALID; this is NOT the same as
infinite recursion due to normal recursive function calls defined
within a non-pathological program which can be viewed as:
a) non-halting (infinite stack for recursion)
b) non-halting (tail recursion being optimized into an infinite
loop) c) halting (finite stack exhausted)
/Flibble
Incorrect.
Given a claimed Turing Machine H that is supposed to return the
correct halting decision of the computation that is provided as its
input, the formation of the H^ Turing Machine is a simple mechanical
operation, as is converting the machine into a description <H^> to
give to H or H^. Thus there is on INVALID machine creation, given the
assumption that the original H was properly provided.
There is nothing about the problem statement that requires the H to
be infinitely recursive, and there are many examples of partial halt
deciders that are most definitely valid.
There is nothing INVALID in view here, merely that it has been shown
that when we look at the countably infinite number of Turing Machines
possible, that NONE of them have the needed property. It isn't that
there is something that has outlawed that machine, it just doesn't
exist.
You miss the fact that infinite behavior is NOT 'INVALID' for Turing
Machines, we just require that Turing Machines that are classified as
'Deciders' never have that type of behavior.
You are incorrect. The halting problem as currently defined is basically
a category error; recursive definitions are bogus.
/Flibble
Sysop: | Keyop |
---|---|
Location: | Huddersfield, West Yorkshire, UK |
Users: | 456 |
Nodes: | 16 (2 / 14) |
Uptime: | 102:21:46 |
Calls: | 9,320 |
Files: | 13,530 |
Messages: | 6,079,655 |