XPost: comp.theory, comp.software-eng, sci.math.symbolic
// Simplified Linz Ĥ (Linz:1990:319)
// Strachey(1965) CPL translated to C
void P(u32 x)
{
if (H(x, x))
HERE: goto HERE;
}
int main()
{
Output("Input_Halts = ", H((u32)P, (u32)P));
P((u32)P);
}
The H executed on line 1 of main() is the same function with the same
input as The executed H called from P(P) executed on line 2 of main.
These two instances have identical behavior.
The simulated H called from the P simulated by the executed H on line 1
of main() is the same function called with the same input as the
executed H.
The simulated P called from the executed H on line 1 of main() is the
same function called with the same input as the executed P on line 2 of
main().
In this case we have a brand new exception to the rule that the same
function called with the same input must have identical behavior.
When one of these function instances is directly executed and the other
is simulated by a simulating halt decider their behavior need not be
identical. The executed function can not be aborted and the simulated
function can be aborted. This forms an exception to the rule that the
same function called with the same input must have identical behavior.
The P executed on line 2 of main() is computationally distinct from the
P simulated by H executed on the first line of main(). Because these are
two different computations they can have different behavior without contradiction.
https://www.researchgate.net/publication/351947980_Halting_problem_undecidability_and_infinitely_nested_simulation
--
Copyright 2021 Pete Olcott
"Great spirits have always encountered violent opposition from mediocre
minds." Einstein
--- SoupGate-Win32 v1.05
* Origin: fsxNet Usenet Gateway (21:1/5)