• Re: Concise refutation of halting problem proofs V18 [ strawman error ]

    From olcott@21:1/5 to Richard Damon on Thu Nov 18 23:03:56 2021
    XPost: comp.theory, sci.logic, sci.math

    On 11/18/2021 10:35 PM, Richard Damon wrote:

    On 11/18/21 11:04 PM, olcott wrote:
    typedef void (*ptr)();

    int H(ptr x, ptr y)
    {
       x(y);  // direct execution of P(P)
       return 1;
    }

    // Minimal essence of Linz(1990) Ĥ
    // and Strachey(1965) P
    int P(ptr x)
    {
       H(x, x);
       return 1;  // Give P a last instruction at the "c" level
    }

    int main(void)
    {
       H(P, P);
    }

    computation that halts
    a computation is said to halt whenever it enters a final state.
    (Linz:1990:234)

    Combinations of H/P having pathological self-reference (PSR set)
    For every possible H of H(P,P) invoked from main() where P(P) calls
    this same H(P,P) and H simulates or executes its input and aborts or
    does not abort its input P never reaches its last instruction.


    Right, H will never see its processing of its input reach a final state,
    so maybe H is a correct POOP decider, but that is not the definiton of Halting, that looks at the ACTUAL behavior of the computation the input represents, which if H(P,P) returns 0, will be halting.

    One element of the above (PSR set) Hz simply simulates 100 steps of Pz
    and returns.

    This provides a specific concrete example where the input to H(P,P)
    never halts and P(P) halts thus conclusively proving that such an
    example exists.

    Right, and now let us look at what Pz(Pz) does, when we DIRECTLY run
    Pz(Pz), which is what we need to do to see what that computation does.

    1) Pz(Pz) calls Hz(Pz,Pz)

    2) Hz(Pz,Pz) will execute 100 steps, flipping between code in Hz and Pz perhaps many times.

    3) Hz will then abort its processing of the input.

    4) Hz(Pz,Pz) will return 0 to the Pz(Pz) that called it


    Now that I finally have a precisely defined and named set PSR.
    I can say that your rebuttal is the strawman error.

    A straw man (sometimes written as strawman) is a form of argument and an informal fallacy of having the impression of refuting an argument,
    whereas the real subject of the argument was not addressed or refuted,
    but instead replaced with a false one.
    https://en.wikipedia.org/wiki/Straw_man

    Every technically competent person can easily see that your rebuttal is incorrect.

    5) Pz(Pz) then returns 1

    Thus, the computation Pz(Pz) is shown to reach its final state when run,
    and thus is halting.


    Instead of simply simulating the first 100 instructions of P halt
    decider H might abort the simulation of its input on the basis of the
    behavior of this input. It is still the case that the input to H(P,P)
    never halts and P(P) halts.

    But then the above trace is STILL the results of directly running P(P).


    When H sees that P calls H(P,P) with the same parameters that it was
    called with this gives H its correct (infinite recursion) halt
    deciding basis. H(P,P) then aborts the simulation of its input and
    returns 0.

    Ĥ.q0 ⟨Ĥ⟩ ⊢* Ĥ.qx ⟨Ĥ⟩ ⟨Ĥ⟩ ⊢* Ĥ.qn
    The reasoning applied to H(P,P) and P(P) equally applies to Linz Ĥ.qx
    ⟨Ĥ⟩ ⟨Ĥ⟩ and Ĥ ⟨Ĥ⟩

    Right, and since this is showing the execution path of H^ applied to
    <H^> is shows that H^ applied to <H^> reaches the final state H.qn,
    which is a halting state, thus H^ applied to <H^> is a halting computation.

    We also have that since H^.qx is a copy of H we have that H applied to <H^><H^> gives the decision that its input is non-halting.

    But its input is the representaiton of H^ appied to <H^> which we just
    showed halted, so H is wrong.

    We can also see this by taking that exact input <H^><H^> and applying a
    UTM to it, which BY DEFINITION will behave exactly like H^ applied to
    <H^> so iit will also halt.

    Thus H is wrong, and you claim that it was right is shown to be a LIE.


    Halting problem undecidability and infinitely nested simulation (V2)
    November 2021 PL Olcott

    https://www.researchgate.net/publication/356105750_Halting_problem_undecidability_and_infinitely_nested_simulation_V2





    FAIL.

    You just prove your ignorance of what you are talking about.


    --
    Copyright 2021 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)
  • From olcott@21:1/5 to All on Fri Nov 19 10:45:57 2021
    XPost: comp.theory, sci.logic, sci.math

    On 11/19/2021 9:08 AM, André G. Isaak wrote:
    On 2021-11-19 07:44, olcott wrote:
    On 11/19/2021 6:35 AM, Richard Damon wrote:
    Except that just calling something a 'Strawman' doesn't make it go away.

    Yes it does make it go away.

    When I refer to a the behavior of P in a precisely defined set of
    computations and your rebuttal refers to the behavior of P in an
    entirely different set of computations then you make the logic mistake
    known at the strawman error.

    The problem is that your 'precisely defined set of computations' doesn't match the ones which the halting problem is concerned with.

    Yes it does that you fail to comprehend this is not may fault.

    This is the exact set of all of the "Impossible" inputs to the halting theorem's halt decider:

    Combinations of H/P having pathological self-reference (PSR set)
    For every possible H of H(P,P) invoked from main() where P(P) calls this
    same H(P,P) and H simulates or executes its input and aborts or does not
    abort its input P never reaches its last instruction.

    You can't
    claim to have 'solved' this problem when you are concerned with an
    entirely different set of behaviours than the actual problem is.

    The halting problem is interested *only* in the behaviour of P(P) when
    it is run *outside* of H. You are determined to only discuss its
    behaviour when it is run inside of H.

    André



    --
    Copyright 2021 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)
  • From olcott@21:1/5 to All on Fri Nov 19 11:32:51 2021
    XPost: comp.theory, sci.logic, sci.math

    On 11/19/2021 10:57 AM, André G. Isaak wrote:
    On 2021-11-19 09:45, olcott wrote:
    On 11/19/2021 9:08 AM, André G. Isaak wrote:
    On 2021-11-19 07:44, olcott wrote:
    On 11/19/2021 6:35 AM, Richard Damon wrote:
    Except that just calling something a 'Strawman' doesn't make it go
    away.

    Yes it does make it go away.

    When I refer to a the behavior of P in a precisely defined set of
    computations and your rebuttal refers to the behavior of P in an
    entirely different set of computations then you make the logic
    mistake known at the strawman error.

    The problem is that your 'precisely defined set of computations'
    doesn't match the ones which the halting problem is concerned with.

    Yes it does that you fail to comprehend this is not may fault.

    This is the exact set of all of the "Impossible" inputs to the halting
    theorem's halt decider:

    Combinations of H/P having pathological self-reference (PSR set)
    For every possible H of H(P,P) invoked from main() where P(P) calls
    this same H(P,P) and H simulates or executes its input and aborts or
    does not abort its input P never reaches its last instruction.


    Yes, but the definition of a halt decider, translated into C for your benefit, is a program H which takes an input P, I such that the H in

    int main { H(P, I); }

    returns true if and only if the following computation halts:

    int main { P(I); }


    NO That is a very very persistent fallacy of equivocation error.

    A correct halt decider must base its halt status decision on:
    (a) the actual sequence of instruction steps
    (b) that are actually specified by
    (c) an actual direct execution or
    (d) actual correct simulation of
    (e) the actual input.
    If you get rid of any of the "actuals" the halt decider cannot be relied
    on as correct.




    The input to (H,P) never halts P(P) halts.
    Here are the divergent execution sequences at the C level:

    int main(){ H(P,P); }
    (1) main()
    (2) calls H(P,P) that simulates the input to H(P,P)
    (3) that calls H(P,P) which aborts its simulation of P(P) and returns to
    (4) main().

    int main(){ P(P); }
    (a) main() calls P(P) that
    (b) calls H(P,P) that simulates the input to H(P,P)
    (c) that calls H(P,P) which aborts its simulation of P(P) and returns to
    (d) P(P) that returns to main()

    (1) diverges from (a) causing (4) to diverge from (d)

    It doesn't make a bit of difference whether you call P(P) 'pathological'
    or not. The crucial point is that your H does not correctly answer the question that a halt decider is required to answer for this particular
    input.

    Your claim that your H is 'correct' is because you assume that your H is answering an entirely different question from the above.

    No one, including Linz, has ever claimed that that a TM cannot be
    constructed that answers that question, largely because no one has ever
    even found your question to be sufficiently interesting to even think
    about.

    André



    --
    Copyright 2021 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)
  • From olcott@21:1/5 to All on Fri Nov 19 12:06:48 2021
    XPost: comp.theory, sci.logic, sci.math

    On 11/19/2021 11:46 AM, André G. Isaak wrote:
    On 2021-11-19 10:32, olcott wrote:
    On 11/19/2021 10:57 AM, André G. Isaak wrote:
    On 2021-11-19 09:45, olcott wrote:
    On 11/19/2021 9:08 AM, André G. Isaak wrote:
    On 2021-11-19 07:44, olcott wrote:
    On 11/19/2021 6:35 AM, Richard Damon wrote:
    Except that just calling something a 'Strawman' doesn't make it
    go away.

    Yes it does make it go away.

    When I refer to a the behavior of P in a precisely defined set of
    computations and your rebuttal refers to the behavior of P in an
    entirely different set of computations then you make the logic
    mistake known at the strawman error.

    The problem is that your 'precisely defined set of computations'
    doesn't match the ones which the halting problem is concerned with.

    Yes it does that you fail to comprehend this is not may fault.

    This is the exact set of all of the "Impossible" inputs to the
    halting theorem's halt decider:

    Combinations of H/P having pathological self-reference (PSR set)
    For every possible H of H(P,P) invoked from main() where P(P) calls
    this same H(P,P) and H simulates or executes its input and aborts or
    does not abort its input P never reaches its last instruction.


    Yes, but the definition of a halt decider, translated into C for your
    benefit, is a program H which takes an input P, I such that the H in

    int main { H(P, I); }

    returns true if and only if the following computation halts:

    int main { P(I); }


    NO That is a very very persistent fallacy of equivocation error.

    Where am I equivocating? I am telling you how 'halt decider' is actually DEFINED. The definition is precise and unambiguous. The fact that you
    have come up with a deranged interpretation in attempting to translate
    the Turing Machine terminology (which you really don't understand) into
    C terminology is your problem, not mine.

    A correct halt decider must base its halt status decision on:
    (a) the actual sequence of instruction steps
    (b) that are actually specified by
    (c) an actual direct execution or
    (d) actual correct simulation of
    (e) the actual input.
    If you get rid of any of the "actuals" the halt decider cannot be
    relied on as correct.

    The 'actual input' to a halt decider is a description of a computation.
    The behaviour which it is supposed to decide is that of the computation itself.

    A computation is a self-contained entity which runs independently, not something which runs 'inside' the halt decider.

    André




    The input to (H,P) never halts P(P) halts.
    Here are the divergent execution sequences at the C level:

    int main(){ H(P,P); }
    (1) main()
    (2) calls H(P,P) that simulates the input to H(P,P)
    (3) that calls H(P,P) which aborts its simulation of P(P) and returns to
    (4) main().

    int main(){ P(P); }
    (a) main() calls P(P) that
    (b) calls H(P,P) that simulates the input to H(P,P)
    (c) that calls H(P,P) which aborts its simulation of P(P) and returns to
    (d) P(P) that returns to main()

    (1) diverges from (a) causing (4) to diverge from (d)

    And a halt decider is concerned only with the SECOND case, not the first.


    The halt decider is concerned with the execution trace of a sequence of instructions other than the actual execution trace that is specified by actually executing or simulating its actual input?

    This is a simple matter of definition. If you are addressing the first
    case rather than the second you are not addressing the halting problem
    but rather some other problem of your own making. Neither Linz nor
    anyone else cares about that other problem.

    André




    --
    Copyright 2021 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)
  • From olcott@21:1/5 to All on Fri Nov 19 13:26:50 2021
    XPost: comp.theory, sci.philosophy, sci.math.symbolic

    On 11/19/2021 12:31 PM, André G. Isaak wrote:
    On 2021-11-19 11:06, olcott wrote:
    On 11/19/2021 11:46 AM, André G. Isaak wrote:
    On 2021-11-19 10:32, olcott wrote:

    The input to (H,P) never halts P(P) halts.
    Here are the divergent execution sequences at the C level:

    int main(){ H(P,P); }
    (1) main()
    (2) calls H(P,P) that simulates the input to H(P,P)
    (3) that calls H(P,P) which aborts its simulation of P(P) and
    returns to
    (4) main().

    int main(){ P(P); }
    (a) main() calls P(P) that
    (b) calls H(P,P) that simulates the input to H(P,P)
    (c) that calls H(P,P) which aborts its simulation of P(P) and
    returns to
    (d) P(P) that returns to main()

    (1) diverges from (a) causing (4) to diverge from (d)

    And a halt decider is concerned only with the SECOND case, not the
    first.


    The halt decider is concerned with the execution trace of a sequence
    of instructions other than the actual execution trace that is
    specified by actually executing or simulating its actual input?

    Your question makes no sense.


    It is proven that the execution trace of P(P) and the execution trace of
    the input to H(P,P) are not the same and that this difference results in different behavior.

    int main(){ H(P,P); }
    (1) main()
    (2) calls H(P,P) that simulates the input to H(P,P)
    (3) that calls H(P,P) which aborts its simulation of P(P) and returns to
    (4) main().

    int main(){ P(P); }
    (a) main() calls P(P) that
    (b) calls H(P,P) that simulates the input to H(P,P)
    (c) that calls H(P,P) which aborts its simulation of P(P) and returns to
    (d) P(P) that returns to main()

    P(P) has a whole other invocation of P(P) prepended to the execution
    trace of the input to H(P,P). It is proven that this different execution
    trace derives opposite halting behavior between P(P) and the input to
    H(P,P).



    int main() { P(P); } *is* actually executing the input to int main() { H(P,P); }. In int main() { H(P,P); } it is *not* being executed; it is
    being passed as a parameter to another function.

    The halting problem asks whether a given computation will halt *when it
    is performed*.

    When you execute H(H_Hat, H_Hat) the computation H_Hat(H_Hat) is *not*
    being performed. It is having a question asked about it. That's true
    even if H makes use of partial simulation.

    The computation is being performed only when you actually run
    H_Hat(H_Hat), not when you provide a description of it to another Turing Machine.

    André



    --
    Copyright 2021 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)
  • From olcott@21:1/5 to All on Fri Nov 19 15:55:21 2021
    XPost: comp.theory, sci.logic, sci.math

    On 11/19/2021 3:05 PM, André G. Isaak wrote:
    On 2021-11-19 13:13, olcott wrote:
    On 11/19/2021 2:03 PM, André G. Isaak wrote:
    On 2021-11-19 12:26, olcott wrote:
    On 11/19/2021 12:31 PM, André G. Isaak wrote:
    On 2021-11-19 11:06, olcott wrote:
    On 11/19/2021 11:46 AM, André G. Isaak wrote:
    On 2021-11-19 10:32, olcott wrote:

    The input to (H,P) never halts P(P) halts.
    Here are the divergent execution sequences at the C level:

    int main(){ H(P,P); }
    (1) main()
    (2) calls H(P,P) that simulates the input to H(P,P)
    (3) that calls H(P,P) which aborts its simulation of P(P) and
    returns to
    (4) main().

    int main(){ P(P); }
    (a) main() calls P(P) that
    (b) calls H(P,P) that simulates the input to H(P,P)
    (c) that calls H(P,P) which aborts its simulation of P(P) and
    returns to
    (d) P(P) that returns to main()

    (1) diverges from (a) causing (4) to diverge from (d)

    And a halt decider is concerned only with the SECOND case, not
    the first.


    The halt decider is concerned with the execution trace of a
    sequence of instructions other than the actual execution trace
    that is specified by actually executing or simulating its actual
    input?

    Your question makes no sense.


    It is proven that the execution trace of P(P) and the execution
    trace of the input to H(P,P) are not the same and that this
    difference results in different behavior.

    And the halting problem, BY DEFINITION, is concerned only with the
    former. The latter is not of interest to anyone.


    It may seem that way until you realize that any other case would not
    be reporting on the actual behavior of the actual sequence of
    instructions specified by the actual execution trace of the actual
    simulation or execution of its actual input.

    The definition is what it is. A halt reporter reports on the behaviour
    of the computation described by its input when that computation is run
    as an independent computation; not when it is wrapped inside your H.

    No academic definition of halt decider that I have ever seen directly contradicts this definition that I provide:

    A halt decider must base its halt status decision on the sequence
    instruction steps (sequence of configurations) specified by the direct execution or correct simulation of its actual input. **

    ** For non-halting inputs this execution or simulation need not be
    complete.




    Just because you don't like the definition doesn't mean you can change it.

    When Bill Jones robs a liquor store people may get confused and arrest
    his identical twin brother that is also named Bill Jones.

    Except that you are the one who is arresting the wrong Bill Jones.

    André




    --
    Copyright 2021 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)
  • From olcott@21:1/5 to All on Fri Nov 19 16:15:47 2021
    XPost: comp.theory, sci.logic, sci.math

    On 11/19/2021 3:05 PM, André G. Isaak wrote:
    On 2021-11-19 13:13, olcott wrote:
    On 11/19/2021 2:03 PM, André G. Isaak wrote:
    On 2021-11-19 12:26, olcott wrote:
    On 11/19/2021 12:31 PM, André G. Isaak wrote:
    On 2021-11-19 11:06, olcott wrote:
    On 11/19/2021 11:46 AM, André G. Isaak wrote:
    On 2021-11-19 10:32, olcott wrote:

    The input to (H,P) never halts P(P) halts.
    Here are the divergent execution sequences at the C level:

    int main(){ H(P,P); }
    (1) main()
    (2) calls H(P,P) that simulates the input to H(P,P)
    (3) that calls H(P,P) which aborts its simulation of P(P) and
    returns to
    (4) main().

    int main(){ P(P); }
    (a) main() calls P(P) that
    (b) calls H(P,P) that simulates the input to H(P,P)
    (c) that calls H(P,P) which aborts its simulation of P(P) and
    returns to
    (d) P(P) that returns to main()

    (1) diverges from (a) causing (4) to diverge from (d)

    And a halt decider is concerned only with the SECOND case, not
    the first.


    The halt decider is concerned with the execution trace of a
    sequence of instructions other than the actual execution trace
    that is specified by actually executing or simulating its actual
    input?

    Your question makes no sense.


    It is proven that the execution trace of P(P) and the execution
    trace of the input to H(P,P) are not the same and that this
    difference results in different behavior.

    And the halting problem, BY DEFINITION, is concerned only with the
    former. The latter is not of interest to anyone.


    It may seem that way until you realize that any other case would not
    be reporting on the actual behavior of the actual sequence of
    instructions specified by the actual execution trace of the actual
    simulation or execution of its actual input.

    The definition is what it is. A halt reporter reports on the behaviour
    of the computation described by its input when that computation is run
    as an independent computation; not when it is wrapped inside your H.

    Just because you don't like the definition doesn't mean you can change it.

    given the description of a Turing machine M and an input w, does M,
    when started in the initial configuration q0 w, perform a computation
    that eventually halts? (Linz:1990:317)

    In other words: Does UTM(M, w) halt?





    When Bill Jones robs a liquor store people may get confused and arrest
    his identical twin brother that is also named Bill Jones.

    Except that you are the one who is arresting the wrong Bill Jones.

    André




    --
    Copyright 2021 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)
  • From olcott@21:1/5 to All on Fri Nov 19 18:16:43 2021
    XPost: comp.theory, sci.logic, sci.math

    On 11/19/2021 5:33 PM, André G. Isaak wrote:
    On 2021-11-19 15:15, olcott wrote:
    On 11/19/2021 3:05 PM, André G. Isaak wrote:
    On 2021-11-19 13:13, olcott wrote:
    On 11/19/2021 2:03 PM, André G. Isaak wrote:
    On 2021-11-19 12:26, olcott wrote:
    On 11/19/2021 12:31 PM, André G. Isaak wrote:
    On 2021-11-19 11:06, olcott wrote:
    On 11/19/2021 11:46 AM, André G. Isaak wrote:
    On 2021-11-19 10:32, olcott wrote:

    The input to (H,P) never halts P(P) halts.
    Here are the divergent execution sequences at the C level: >>>>>>>>>>
    int main(){ H(P,P); }
    (1) main()
    (2) calls H(P,P) that simulates the input to H(P,P)
    (3) that calls H(P,P) which aborts its simulation of P(P) and >>>>>>>>>> returns to
    (4) main().

    int main(){ P(P); }
    (a) main() calls P(P) that
    (b) calls H(P,P) that simulates the input to H(P,P)
    (c) that calls H(P,P) which aborts its simulation of P(P) and >>>>>>>>>> returns to
    (d) P(P) that returns to main()

    (1) diverges from (a) causing (4) to diverge from (d)

    And a halt decider is concerned only with the SECOND case, not >>>>>>>>> the first.


    The halt decider is concerned with the execution trace of a
    sequence of instructions other than the actual execution trace >>>>>>>> that is specified by actually executing or simulating its actual >>>>>>>> input?

    Your question makes no sense.


    It is proven that the execution trace of P(P) and the execution
    trace of the input to H(P,P) are not the same and that this
    difference results in different behavior.

    And the halting problem, BY DEFINITION, is concerned only with the
    former. The latter is not of interest to anyone.


    It may seem that way until you realize that any other case would not
    be reporting on the actual behavior of the actual sequence of
    instructions specified by the actual execution trace of the actual
    simulation or execution of its actual input.

    The definition is what it is. A halt reporter reports on the
    behaviour of the computation described by its input when that
    computation is run as an independent computation; not when it is
    wrapped inside your H.

    Just because you don't like the definition doesn't mean you can
    change it.

    given the description of a Turing machine M and an input w, does M,
    when started in the initial configuration q0 w, perform a computation
    that eventually halts? (Linz:1990:317)

    In other words: Does UTM(M, w) halt?

    That definition makes no mention of UTMs, and he carefully distinguishes between the description of M (which he elsewhere notates as w_M).

    But yes, UTM(w_M, w) will halt if and only if M(w) halts.


    Because the behavior of the UTM simulation of the machine description of
    TM X on input Y is defined to precisely correspond to the direct
    execution of TM X on input Y we can also always rely on the following:

    If UTM U is adapted to become a halt decider H for a subset of inputs Z
    such that it aborts the simulation of its input only when the behavior
    of the pure simulation of this input conclusively proves that this input
    would never reach its final state, then H can abort the simulation of
    every element of Z and correctly report that its input does not halt.

    But that isn't what you've been claiming since your H is not a UTM, nor
    are you claiming that H(P, P) halts if and only if P(P) halts but are
    instead claiming something about the "input" to H.

    If an actual UTM were applied to P(P), you would find that UTM(P, P)
    does in fact halt just as P(P) does.

    André



    --
    Copyright 2021 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)