A simulating halt decider simulates its input until it correctly proves
that this simulation would never stop unless aborted.
typedef void (*ptr)();
int H(ptr p, ptr i); // simulating halt decider
void P(ptr x)
{
int Halt_Status = H(x, x);
if (Halt_Status)
HERE: goto HERE;
return;
}
int main()
{
Output("Input_Halts = ", H(P, P));
}
(1) I believe that most computer scientists would agree that a halt
decider must compute the mapping from its inputs to an accept or reject
state on the basis of the actual behavior specified by this input.
(2) Furthermore ALL computer scientists would agree that the correct
simulation of a machine description does derive the correct behavior
specified by this machine description.
This logically entails that when H(P,P) simulates its input until the
behavior of this input essentially matches the infinite recursion
behavior pattern, then H has correctly determined the halt status of P.
(a) The invoked H(P,P) simulates P(P) that calls a simulated H(P,P)
(b) that simulates P(P) that calls a simulated H(P,P)
(c) that simulates P(P) that calls a simulated H(P,P)...
Until H aborts the simulation of its input
I have "admitted" that (1) & (2) logically entails that H(P,P)==0 is
correct and if (1) & (2) is true then this proves that the assertion
that H(P,P) must be based on the behavior of P(P) is incorrect.
In other words the textbook definition of the halting function is proven
to be incorrect on the basis that it contradicts (1) & (2).
*Halting problem proofs refuted on the basis of software engineering* ?
https://www.researchgate.net/publication/361701808_Halting_problem_proofs_refuted_on_the_basis_of_software_engineering
--
Copyright 2022 Pete Olcott
"Talent hits a target no one else can hit;
Genius hits a target no one else can see."
Arthur Schopenhauer