• Halting problem undecidability and infinitely nested simulation (V5)

    From olcott@21:1/5 to Malcolm McLean on Fri Apr 15 13:33:11 2022
    XPost: comp.theory, sci.logic, sci.math

    A simulating halt decider computes the mapping from its inputs to its
    own final states on the basis of the behavior of its correctly simulated
    input.

    All of the conventional halting problem counter-example inputs are
    simply rejected by a simulating halt decider as non-halting because they
    fail to meet the Linz definition of halting:

    computation that halts … the Turing machine will halt whenever it enters
    a final state. (Linz:1990:234)

    USENET comp.theory: On 4/11/2022 3:19 PM, Malcolm McLean wrote:
    PO's idea is to have a simulator with an infinite cycle detector.
    You would achieve this by modifying a UTM, so describing it as
    a "modified UTM", or "acts like a UTM until it detects an infinite
    cycle", is reasonable. And such a machine is a fairly powerful
    halt decider. Even if the infinite cycle detector isn't very
    sophisticated, it will still catch a large subset of non-halting
    machines.

    The following simplifies the syntax for the definition of the Linz
    Turing machine Ĥ.

    There is no need for the infinite loop after H.qy because it is never
    reached.

    Ĥ.q0 ⟨Ĥ⟩ ⊢* H ⟨Ĥ⟩ ⟨Ĥ⟩ ⊢* H.qy
    If the correctly simulated input ⟨Ĥ⟩ ⟨Ĥ⟩ to H would reach its own final
    state.

    Ĥ.q0 ⟨Ĥ⟩ ⊢* H ⟨Ĥ⟩ ⟨Ĥ⟩ ⊢* H.qn
    If the correctly simulated input ⟨Ĥ⟩ ⟨Ĥ⟩ to H would never reach its own
    final state.

    When Ĥ is applied to ⟨Ĥ⟩
    Ĥ copies its input ⟨Ĥ0⟩ to ⟨Ĥ1⟩ then H simulates ⟨Ĥ0⟩ ⟨Ĥ1⟩

    Then these steps would keep repeating: (unless their simulation is aborted)
    Ĥ0 copies its input ⟨Ĥ1⟩ to ⟨Ĥ2⟩ then H0 simulates ⟨Ĥ1⟩ ⟨Ĥ2⟩
    Ĥ1 copies its input ⟨Ĥ2⟩ to ⟨Ĥ3⟩ then H1 simulates ⟨Ĥ2⟩ ⟨Ĥ3⟩
    Ĥ2 copies its input ⟨Ĥ3⟩ to ⟨Ĥ4⟩ then H2 simulates ⟨Ĥ3⟩ ⟨Ĥ4⟩...

    Since we can see that the simulated input: ⟨Ĥ0⟩ to H would never reach
    its own final state of ⟨Ĥ0.qy⟩ or ⟨Ĥ0.qn⟩ we know that it is non-halting.


    Here is the same thing that has all of the missing Linz ⊢* wildcard
    state transitions filled in by fully operational code. H uses an x86
    emulator to simulate its input one x86 instruction at a time.

    void P(u32 x)
    {
    if (H(x, x)) //
    HERE: goto HERE;
    }

    int main()
    {
    Output("Input_Halts = ", H((u32)P, (u32)P));
    }

    _P()
    [000009d6](01) 55 push ebp
    [000009d7](02) 8bec mov ebp,esp
    [000009d9](03) 8b4508 mov eax,[ebp+08]
    [000009dc](01) 50 push eax // push P
    [000009dd](03) 8b4d08 mov ecx,[ebp+08]
    [000009e0](01) 51 push ecx // push P
    [000009e1](05) e840feffff call 00000826 // call H
    [000009e6](03) 83c408 add esp,+08
    [000009e9](02) 85c0 test eax,eax
    [000009eb](02) 7402 jz 000009ef
    [000009ed](02) ebfe jmp 000009ed
    [000009ef](01) 5d pop ebp
    [000009f0](01) c3 ret // Final state
    Size in bytes:(0027) [000009f0]

    Begin Local Halt Decider Simulation
    ...[000009d6][00211368][0021136c] 55 push ebp // enter P ...[000009d7][00211368][0021136c] 8bec mov ebp,esp ...[000009d9][00211368][0021136c] 8b4508 mov eax,[ebp+08] ...[000009dc][00211364][000009d6] 50 push eax // Push P ...[000009dd][00211364][000009d6] 8b4d08 mov ecx,[ebp+08] ...[000009e0][00211360][000009d6] 51 push ecx // Push P ...[000009e1][0021135c][000009e6] e840feffff call 00000826 // Call H ...[000009d6][0025bd90][0025bd94] 55 push ebp // enter P ...[000009d7][0025bd90][0025bd94] 8bec mov ebp,esp ...[000009d9][0025bd90][0025bd94] 8b4508 mov eax,[ebp+08] ...[000009dc][0025bd8c][000009d6] 50 push eax // Push P ...[000009dd][0025bd8c][000009d6] 8b4d08 mov ecx,[ebp+08] ...[000009e0][0025bd88][000009d6] 51 push ecx // Push P ...[000009e1][0025bd84][000009e6] e840feffff call 00000826 // Call H
    Local Halt Decider: Infinite Recursion Detected Simulation Stopped

    Because the correctly simulated input to H(P,P) cannot possibly reach
    its own final state at [000009f0] it is necessarily correct for H to
    reject this input as non-halting.

    As long as the correctly simulated input to H(P,P) would never halt then
    we know it is non-halting.

    Anyone that disagrees with this is a liar by definition.
    Anyone that disagrees with this is a liar by definition.
    Anyone that disagrees with this is a liar by definition.




    Halting problem undecidability and infinitely nested simulation (V5)

    https://www.researchgate.net/publication/359984584_Halting_problem_undecidability_and_infinitely_nested_simulation_V5


    --
    Copyright 2022 Pete Olcott

    "Talent hits a target no one else can hit;
    Genius hits a target no one else can see."
    Arthur Schopenhauer

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)