XPost: comp.theory, comp.software-eng, sci.math.symbolic
void P2(u32 x)
{
if (H1(x, x))
HERE: goto HERE;
}
int main()
{
Output("Input_Halts = ", H((u32)P2, (u32)P2));
}
Even though H1 has identical machine code to H the fact that H(P,P) has
a dependency on the halt status decision of H1(P,P) whereas H1(P,P) has
no such dependency proves that H(P,P) and H1(P,P) are distinctly
different computations that can have different behavior without
contradiction.
This same reasoning applies to the Peter Linz proof:
Ĥ.q0 ⟨Ĥ1⟩ ⊢* Ĥ.qx ⟨Ĥ1⟩ ⟨Ĥ2⟩ ⊢* Ĥ.qy ∞
if ⟨Ĥ1⟩ applied to ⟨Ĥ2⟩ halts, and
Ĥ.q0 ⟨Ĥ1⟩ ⊢* Ĥ.qx ⟨Ĥ1⟩ ⟨Ĥ2⟩ ⊢* Ĥ.qn
if ⟨Ĥ1⟩ applied to ⟨Ĥ2⟩ does not halt
The fact that Ĥ applied to ⟨Ĥ⟩ transitions to its final state of Ĥ.qn and halts does not nullify the fact that Ĥ.qx ⟨Ĥ1⟩ ⟨Ĥ2⟩ does correctly
decide that its input never halts.
Because the executed Ĥ has a dependency on the halt status decision of
Ĥ.qx ⟨Ĥ1⟩ ⟨Ĥ2⟩ and the simulated ⟨Ĥ1⟩ on input ⟨Ĥ2⟩ by Ĥ.qx has no such
dependency the computation of Ĥ applied to ⟨Ĥ1⟩ is not equivalent to the simulation of ⟨Ĥ1⟩ on input ⟨Ĥ2⟩ performed by Ĥ.qx. The fact that these
are two distinctly different computations allows them to 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)