• =?UTF-8?Q?Re=3A_Olcott_correctly_points_out_misconceptions_in_the_H?= =

    From =?UTF-8?B?QW5kcsOpIEcuIElzYWFr?=@21:1/5 to olcott on Tue Aug 19 16:58:53 2025
    On 2025-08-19 11:42, olcott wrote:
    On 8/19/2025 12:06 PM, Kaz Kylheku wrote:

    You show that even though DD contradicts the result reported by the HHH
    embedded into it, a /different/ HHH (using the same procedure name and
    body, distinguished from DD's HHH by a hidden static flag) can decide

    (1) The static flag is dead and not used.
      if (**execution_trace == 0x90909090) is used instead.

    But if (**execution_trace == 0x90909090) creates the exact same problem
    as using a static variable. You're creating a global state which your
    HHH accesses and thus HHH is not a pure function. Except you're doing it
    in a far messier and more questionable way.

    André


    --
    To email remove 'invalid' & replace 'gm' with well known Google mail
    service.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Heathfield@21:1/5 to Kaz Kylheku on Wed Aug 20 02:20:17 2025
    On 20/08/2025 02:00, Kaz Kylheku wrote:
    On 2025-08-19, olcott <polcott333@gmail.com> wrote:

    <snip>

    Thus the correct return value for HHH(DD) is 0.

    Wishing for HHH(DD) to have some return value doesn't make it have
    that return value.

    If HHH(DD) doens't have that value, it's just wrong.

    Exercise for the discerning student: come up with a return value
    for HHH(DD) that /isn't/ "just wrong".

    --
    Richard Heathfield
    Email: rjh at cpax dot org dot uk
    "Usenet is a strange place" - dmr 29 July 1999
    Sig line 4 vacant - apply within

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Heathfield@21:1/5 to olcott on Wed Aug 20 03:14:13 2025
    On 20/08/2025 03:09, olcott wrote:
    The halting problem proofs depend on the assumption
    that there is an H/D pair such that D is undecidable by H.

    No, they depend on the assumption that D /is/ decidable by H, for
    all D. They then show that the assumption must be false.

    --
    Richard Heathfield
    Email: rjh at cpax dot org dot uk
    "Usenet is a strange place" - dmr 29 July 1999
    Sig line 4 vacant - apply within

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Heathfield@21:1/5 to olcott on Wed Aug 20 03:37:02 2025
    On 20/08/2025 03:21, olcott wrote:
    On 8/19/2025 8:20 PM, Richard Heathfield wrote:
    On 20/08/2025 02:00, Kaz Kylheku wrote:
    On 2025-08-19, olcott <polcott333@gmail.com> wrote:

    <snip>

    Thus the correct return value for HHH(DD) is 0.

    Wishing for HHH(DD) to have some return value doesn't make it
    have
    that return value.

    If HHH(DD) doens't have that value, it's just wrong.

    Exercise for the discerning student: come up with a return
    value for HHH(DD) that /isn't/ "just wrong".


    It is a fact that the input to HHH(DD) does not
    halt thus when HHH reports on this fact it is
    correct in every possible way.

    It is a fact that you fail to simulate DD after its first line of
    code.

    This is not because it's inherently impossible as you like to
    imagine, but because of poor design.

    So your solution is flawed by design.


    --
    Richard Heathfield
    Email: rjh at cpax dot org dot uk
    "Usenet is a strange place" - dmr 29 July 1999
    Sig line 4 vacant - apply within

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Heathfield@21:1/5 to olcott on Wed Aug 20 07:47:53 2025
    On 20/08/2025 05:25, olcott wrote:
    HHH is deciding on the behavior of:
    DD simulated by HHH that calls HHH(DD)
    that simulates DD that calls HHH(DD)...

    But as you already established in Message-ID:
    <10836fg$1uc5$2@dont-email.me> on Tue, 19 Aug 2025 19:56:16
    -0500: "Not simulating a f-cking thing is not a correct
    simulation jackass."

    Your HHH is deciding on the behaviour of a single line of DD's
    code, and it won't touch the rest of the DD function because it
    doesn't know how to do that.

    A 25% simulation is "not a correct simulation jackass", as a
    great man once said.

    --
    Richard Heathfield
    Email: rjh at cpax dot org dot uk
    "Usenet is a strange place" - dmr 29 July 1999
    Sig line 4 vacant - apply within

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Heathfield@21:1/5 to Chris M. Thomasson on Wed Aug 20 08:44:40 2025
    On 20/08/2025 08:37, Chris M. Thomasson wrote:
    On 8/19/2025 6:20 PM, Richard Heathfield wrote:
    On 20/08/2025 02:00, Kaz Kylheku wrote:
    On 2025-08-19, olcott <polcott333@gmail.com> wrote:

    <snip>

    Thus the correct return value for HHH(DD) is 0.

    Wishing for HHH(DD) to have some return value doesn't make it
    have
    that return value.

    If HHH(DD) doens't have that value, it's just wrong.

    Exercise for the discerning student: come up with a return
    value for HHH(DD) that /isn't/ "just wrong".


    Flip a coin and say mostly wrong?

    Is that your best crack at "discerning"?

    Try and reason it out.

    --
    Richard Heathfield
    Email: rjh at cpax dot org dot uk
    "Usenet is a strange place" - dmr 29 July 1999
    Sig line 4 vacant - apply within

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Fred. Zwarts@21:1/5 to All on Wed Aug 20 11:33:17 2025
    Op 20.aug.2025 om 03:39 schreef olcott:
    On 8/19/2025 8:00 PM, Kaz Kylheku wrote:
    On 2025-08-19, olcott <polcott333@gmail.com> wrote:
    On 8/19/2025 12:06 PM, Kaz Kylheku wrote:
    You show that even though DD contradicts the result reported by the HHH >>>> embedded into it, a /different/ HHH (using the same procedure name and >>>> body, distinguished from DD's HHH by a hidden static flag) can decide

    (1) The static flag is dead and not used.
        if (**execution_trace == 0x90909090) is used instead.

    It's the same thing. "static data" doesn't mean that "static" keyword
    must be used.


    Yes I know that yet I wanted you to understand
    my actual code, not a misconception of it.

    String literals like char *s = "abc" are understood to be static data
    in C. Yet, no static keyworcd is used. Moreover, it's common for
    compilers to place them into the text segment, right where the code
    is---much like your *execution_trace word!

    External variables without the "static" keyword are also in static
    storage. At file scope "static" doesn't control the kind of storage,
    but the linkage of the identifier: it give sinternal versus external
    linkage.

    In this debate when I say "static flag" I mean that it's something in
    a persistent memory outside of the function (not allocated and
    initialized on entry into the function, but externally accessed
    and shared by all activations of the function).


    It is not so much a flag as it is a location
    to store the required execution trace.

    I don't mean that the static keyword is used, which is a distracting,
    irrelevant issue.

    On this topic, also ...

    You should go back to the static variable because it's a much more
    portable way to obtain a piece of static storage associated with
    a function than modifying its code. static variables are defined
    by the C language, whereas self-modifying code is undefined behavior.

    It clutters your code with weird gotos around inline assembly.


    I envisioned my way of doing it as analogous to a UTM
    setting aside a portion of its own tape for its slave
    UTMs to use as their own tape.

    I envision HHH as a UTM with extra features.

    Moreover, you're assuming that the EAX register is free for you
    to clobber. That is false; there are calling conventions for X86
    where EAX is the first parameter; if you do some LEA EAX, WHATEVER,
    you will obliterate the argument. Maybe that's not happening with
    your toolchain but it's a threat.


    I could easily see all the generated x86 code verifying
    that this is in fact not an issue in this case.

    that DD does not halt. Bravo! You also know that when you remove the
    static flag, of course the whole show doesn't halt: you get runaway
    simulation. You know that this is because the outside and inside HHH
    are
    then exactly the same (except that the inner one is emulated wheras the >>>> outside one is native).

    Thus the correct return value for HHH(DD) is 0.

    Wishing for HHH(DD) to have some return value doesn't make it have
    that return value.


    Deducing what its return value should be on the basis
    of the actual behavior of DD correctly simulated by
    HHH is proven to be correctly 0.

    If HHH(DD) doens't have that value, it's just wrong.


    Not exactly. The static analysis of the C code does
    prove that HHH(DD) returning 0 would be correct.

    As usual incorrect claims without evidence.
    No, it proves the failure of HHH to reach the final halt state specified
    in the input.


    If you edit HHH tro try to give it a different value, you
    change DD, because DD is built on HHH. That new DD contradicts
    the new HHH.


    When 0 to ∞ instructions of DD are correctly
    simulated by HHH the DD simulated by its HHH never
    reaches its own simulated "return" statement final
    halt state thus the difference between HHH/DD pairs
    is of no relevant consequence.

    It makes a difference, because it proves that for each HHH another DD
    can be constructed for which this HHH fails.
    Each input specifies a final halt state, as can be proven by other
    simulators using exactly the same input.
    But for each HHH there is an input for which it fails to predict the
    correct halting behaviour.
    This is inline with the halting theorem.
    It shows that simulation is not the correct tool to analyse halting
    behaviour, because, no matter how many steps are simulated, it is always possible to construct an input that needs more steps.


    Your ownly way out is to split HHH into two (top level and recursive)
    while pretending it's the same decider, but that is utterly bogus.


    DD simulated by HHH that includes HHH simulating
    and instance of itself simulating another instance
    of DD is all a pure function of the input to HHH(DD).

    Not, if the simulated HHH behaves differently because of the cheat with
    the Root variable.
    Not if HHH does not analyse the conditional branch instructions when
    simulating its own code.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Heathfield@21:1/5 to Kaz Kylheku on Wed Aug 20 18:10:36 2025
    On 20/08/2025 18:05, Kaz Kylheku wrote:
    On 2025-08-20, Kaz Kylheku <643-408-1753@kylheku.com> wrote:
    It is utterly unsurprising that it can obtain a correct answer;
    that doesn't contradict anything int the Halting Theorem.
    ^^^^^^^

    Correction, "unsigned int the Halting Theorem". Sorry about that.

    You're slipping. Should be "size_t the Halting Theorem".

    --
    Richard Heathfield
    Email: rjh at cpax dot org dot uk
    "Usenet is a strange place" - dmr 29 July 1999
    Sig line 4 vacant - apply within

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Heathfield@21:1/5 to olcott on Wed Aug 20 19:32:54 2025
    On 20/08/2025 19:20, olcott wrote:
    Every C programmer knows that HHH(DD) cannot see its
    own caller thus has no idea if its caller is DD or main.

    So HHH is broken.

    Pass the executable image of the program you are analysing, and
    then it doesn't matter how it's invoked.

    The fact that you could do this but don't do it suggests strongly
    that your case relies heavily on sloppy design.

    --
    Richard Heathfield
    Email: rjh at cpax dot org dot uk
    "Usenet is a strange place" - dmr 29 July 1999
    Sig line 4 vacant - apply within

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Heathfield@21:1/5 to olcott on Thu Aug 21 02:28:17 2025
    On 20/08/2025 20:47, olcott wrote:
    On 8/20/2025 1:44 PM, Mr Flibble wrote:
    On Wed, 20 Aug 2025 19:32:54 +0100, Richard Heathfield wrote:

    On 20/08/2025 19:20, olcott wrote:
    Every C programmer knows that HHH(DD) cannot see its own
    caller thus
    has no idea if its caller is DD or main.

    So HHH is broken.

    Wrong, there is no need for HHH to know what is calling it, it
    is only
    concerned with what is passed to it as an input which *just
    happens to be*
    its caller (well, a description thereof).

    /Flibble

    That merely proves that you are not an expert programmer.

    No, it doesn't. It only proves he missed my point, which you do
    all the time. He apparently thinks (as I do not) that HHH doesn't
    need to simulate what happens in DD after the HHH call. It is his
    prerogative to think that, and I have no intention of arguing the
    point with him as well as with you.

    HHH fails to simulate most of DD, you argue, because most of DD's
    code comes after HHH has returned and that no reasonable man can
    expect HHH to analyse code that it can't see because it happens
    in HHH's caller. My point is that what happens in DD after HHH
    returns is critical, and there is no excuse for HHH not to see
    that code, because you can just pass it right on in as an argument.

    --
    Richard Heathfield
    Email: rjh at cpax dot org dot uk
    "Usenet is a strange place" - dmr 29 July 1999
    Sig line 4 vacant - apply within

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Heathfield@21:1/5 to olcott on Thu Aug 21 02:57:36 2025
    On 20/08/2025 21:17, olcott wrote:
    DD correctly simulated by HHH *is* the halting problem
    input/decider pair.

    No, it isn't. For that to be the case, HHH would have to be able
    correctly to decide - not to "correctly simulate" as you like to
    say but to correctly DECIDE - whether any arbitrary program will
    halt, which clearly isn't the case.

    What you call the "halting problem input/decider pair" /starts/
    with a /universal/ decider, from which one can construct an
    undecidable case. You don't have a universal decider. You have a
    flawed simulator for DD. Okay, you dispute "flawed", but I trust
    you won't try to claim that you have a universal decider because
    that's /clearly/ not the case.

    There can be no *the* "halting problem input/decider pair"
    because no such pair exists, because for such a pair to exist you
    need a universal decider, and you simply can't get one.

    Or do you really really think you've got one?

    --
    Richard Heathfield
    Email: rjh at cpax dot org dot uk
    "Usenet is a strange place" - dmr 29 July 1999
    Sig line 4 vacant - apply within

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Heathfield@21:1/5 to olcott on Thu Aug 21 04:57:06 2025
    On 21/08/2025 03:13, olcott wrote:
    On 8/20/2025 8:57 PM, Richard Heathfield wrote:
    On 20/08/2025 21:17, olcott wrote:
    DD correctly simulated by HHH *is* the halting problem
    input/decider pair.

    No, it isn't.
    *It has the same form as the Linz proof*

    Irrelevant. It isn't "the halting problem input/decider pair"
    because no such pair exists. We know this because the decider
    doesn't exist. And we know /that/ because if a decider did exist
    we'd be able to construct a case it can't decide, invalidating
    its claim to decidership.

    --
    Richard Heathfield
    Email: rjh at cpax dot org dot uk
    "Usenet is a strange place" - dmr 29 July 1999
    Sig line 4 vacant - apply within

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Heathfield@21:1/5 to joes on Thu Aug 21 08:48:53 2025
    On 21/08/2025 07:51, joes wrote:
    Am Wed, 20 Aug 2025 14:50:50 -0500 schrieb olcott:
    On 8/20/2025 1:42 PM, Mr Flibble wrote:
    On Wed, 20 Aug 2025 13:20:28 -0500, olcott wrote:
    On 8/20/2025 12:44 PM, Kaz Kylheku wrote:

    When we are careful to make sure to keep this in mind:
    Turing machine deciders only compute the mapping from their inputs...

    Nothing prevents a TM from mapping a description to its direct execution.

    Agreed.

    For a Turing computation to do that, it has to calculate its own
    halting.

    Every C programmer knows that HHH(DD) cannot see its own caller thus
    has no idea if its caller is DD or main.

    Nobody is suggesting that HHH(DD) can see its caller however we are
    passing a *description* of DD to HHH and HHH needs to return a decision
    to its caller, DD.

    It does do that. HHH reports that its DD DOES NOT HALT because its
    simulated DD DOES CALL HHH IN RECURSIVE SIMULATION that would never stop
    running unless aborted.

    It is my opinion that a halt decider should decide itself as halting.

    Well, a decider should certainly halt, but its decision should be
    based on what the facts are, not on what the facts ought to be.
    If a halt decider fails to halt, it should say so.

    Furthermore, it has no business terminating its invoker. To be a
    decider, it must report. If HHH terminates (as we have been told
    it /does/ terminate) DD, it can't report to it, so HHH fails to
    be a decider.

    --
    Richard Heathfield
    Email: rjh at cpax dot org dot uk
    "Usenet is a strange place" - dmr 29 July 1999
    Sig line 4 vacant - apply within

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Fred. Zwarts@21:1/5 to All on Thu Aug 21 10:18:41 2025
    Op 20.aug.2025 om 15:46 schreef olcott:
    On 8/20/2025 4:39 AM, joes wrote:
    Am Tue, 19 Aug 2025 21:09:14 -0500 schrieb olcott:
    On 8/19/2025 8:18 PM, Kaz Kylheku wrote:
    On 2025-08-19, olcott <polcott333@gmail.com> wrote:
    On 8/19/2025 5:58 PM, André G. Isaak wrote:
    On 2025-08-19 11:42, olcott wrote:
    On 8/19/2025 12:06 PM, Kaz Kylheku wrote:

    But if (**execution_trace == 0x90909090) creates the exact same
    problem as using a static variable. You're creating a global state >>>>>> which your HHH accesses and thus HHH is not a pure function.
    I have known that for years.
    After I got people here to quit lying about the behavior of DD correct >>>>> simulated by HHH I had intended to fix that issue.
    You should just go ahead and do it. It would show the behaviour better.

    The correct simulation doesn't matter.
    The static flag (whether using a "static" variable, or de-facto static >>>> data stored in the code segment) throws a monkey wrench into the claim >>>> you are making based on a correct simulation.
    I know that yet if I corrected that everyone here besides you would lie
    about my having eliminated all static data as they lie about nearly
    everything else.
    I can assure you everybody will be completely honest about that.

    The if statement testing the value of *execution_trace, together with
    another part of the code which mutates that storage location,
    give rise to two deciders HHH (top level) and HHH (recursive).
    The fact that HHH (top level) can correctly decide something that HH
    (recursive) doesn't decide is not interesting and doesn't speak to the >>>> Halting Theorem.
    The fact that the counter-example input cannot even reach its own "do
    the opposite" code and remains stuck in recursive simulation does apply
    to the halting problem proofs.
    The input isn’t even doing anything, it’s just data. The simulator is
    doing all the futile work. *That* is the one that can’t reach past
    itself, when it quite clearly does halt. HHH(HHH) thinks itself doesn’t
    halt, and yet it does.

    Contrary to your repeatedly stated belief, The Halting Theorem doesn't >>>> say that there exist test cases whose halting is indeterminate such
    that they cannot be decided by /any/ decider.
    The halting problem proofs depend on the assumption that there is an H/D >>> pair such that D is undecidable by H. When I show how D is correctly
    decided by H these proofs fail.
    The proof shows that the assumption is wrong. D halts, and H does not
    return that.

    I am not just using execution_trace as a flag.
    You are *also* using it as a flag.

    DD correctly simulated by HHH cannot possibly
    reach its own simulated "return" statement final
    halt state thus the *INPUT* specifies non-halting
    behavior to HHH.

    Incorrect. The failure to reach the specified final halt state is not a
    proof for non-termination behaviour.
    Other simulators show that exactly this input specifies a program that
    has a final halt state.


    Turing machine deciders only compute the mapping
    from their inputs...

    HHH need not compute the mapping from its caller
    because its caller *IS NOT ITS INPUT*



    No, its input is code that specifies an abort after a few cycles, but
    HHH does not see that.
    HHH has a bug to ignore conditional branch instructions during the
    simulation. Instead of ignoring them, it should prove that the
    conditions for the alternate branches will never be met.
    It fails to prove that and therefore, it incorrectly thinks that a
    finite recursion implies a non-termination behaviour. Such an essential
    bug in the code show your invalid logic that a finite recursion implies non-termination behaviour.
    But you keep your eyes closed for these facts, so that you can keep
    pretending that these facts do not exist.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Fred. Zwarts@21:1/5 to All on Thu Aug 21 10:21:48 2025
    Op 20.aug.2025 om 21:53 schreef olcott:
    On 8/20/2025 2:33 PM, Chris M. Thomasson wrote:
    On 8/20/2025 12:44 AM, Richard Heathfield wrote:
    On 20/08/2025 08:37, Chris M. Thomasson wrote:
    On 8/19/2025 6:20 PM, Richard Heathfield wrote:
    On 20/08/2025 02:00, Kaz Kylheku wrote:
    On 2025-08-19, olcott <polcott333@gmail.com> wrote:

    <snip>

    Thus the correct return value for HHH(DD) is 0.

    Wishing for HHH(DD) to have some return value doesn't make it have >>>>>> that return value.

    If HHH(DD) doens't have that value, it's just wrong.

    Exercise for the discerning student: come up with a return value
    for HHH(DD) that /isn't/ "just wrong".


    Flip a coin and say mostly wrong?

    Is that your best crack at "discerning"?

    Try and reason it out.


    Humm... Perhaps examine the source code passed into the decider as an
    input. We look at said code and use a LLM or something to see if it
    can detect any run away recursions, or infinite loops from that state
    alone.

    *Been there done that*

    <Input to LLM systems>
    Simulating Termination Analyzer HHH correctly simulates its input until:
    (a) Detects a non-terminating behavior pattern:
          abort simulation and return 0.


    Here olcott injects his prejudice into the input. He needs to prove that
    HHH is able to recognise non-termination, but here it is already assumed
    that HHH can do that. That will lead to an invalid circular reasoning.

    (b) Simulated input reaches its simulated "return" statement:
          return 1.

    typedef int (*ptr)();
    int HHH(ptr P);

    int DD()
    {
      int Halt_Status = HHH(DD);
      if (Halt_Status)
        HERE: goto HERE;
      return Halt_Status;
    }

    What value should HHH(DD) correctly return?
    <Input to LLM systems>

    https://claude.ai/share/da9e56ba-f4e9-45ee-9f2c-dc5ffe10f00c

    https://chatgpt.com/share/68939ee5-e2f8-8011-837d-438fe8e98b9c

    https://grok.com/share/c2hhcmQtMg%3D%3D_810120bb-5ab5-4bf8-af21-
    eedd0f09e141


    Then it can compile the code and run it many times, the original as a
    control, and other "versions" (cheating by altering the source code)
    to try to understand aspects about the source code passed into the
    decider and how it runs. It might say it calls into some sort of known
    TRNG API, so we cannot know if it halts or not. 50% halt, 50% non-
    halt. We have not studied the source code good enough (at this time)
    to determine if the TRNG results are being used in some sort of
    "probability" in the target program or not...



    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Fred. Zwarts@21:1/5 to All on Thu Aug 21 10:31:45 2025
    Op 20.aug.2025 om 16:28 schreef olcott:
    On 8/20/2025 4:33 AM, Fred. Zwarts wrote:
    Op 20.aug.2025 om 03:39 schreef olcott:
    On 8/19/2025 8:00 PM, Kaz Kylheku wrote:
    On 2025-08-19, olcott <polcott333@gmail.com> wrote:
    On 8/19/2025 12:06 PM, Kaz Kylheku wrote:
    You show that even though DD contradicts the result reported by
    the HHH
    embedded into it, a /different/ HHH (using the same procedure name >>>>>> and
    body, distinguished from DD's HHH by a hidden static flag) can decide >>>>>
    (1) The static flag is dead and not used.
        if (**execution_trace == 0x90909090) is used instead.

    It's the same thing. "static data" doesn't mean that "static" keyword
    must be used.


    Yes I know that yet I wanted you to understand
    my actual code, not a misconception of it.

    String literals like char *s = "abc" are understood to be static data
    in C. Yet, no static keyworcd is used. Moreover, it's common for
    compilers to place them into the text segment, right where the code
    is---much like your *execution_trace word!

    External variables without the "static" keyword are also in static
    storage. At file scope "static" doesn't control the kind of storage,
    but the linkage of the identifier: it give sinternal versus external
    linkage.

    In this debate when I say "static flag" I mean that it's something in
    a persistent memory outside of the function (not allocated and
    initialized on entry into the function, but externally accessed
    and shared by all activations of the function).


    It is not so much a flag as it is a location
    to store the required execution trace.

    I don't mean that the static keyword is used, which is a distracting,
    irrelevant issue.

    On this topic, also ...

    You should go back to the static variable because it's a much more
    portable way to obtain a piece of static storage associated with
    a function than modifying its code. static variables are defined
    by the C language, whereas self-modifying code is undefined behavior.

    It clutters your code with weird gotos around inline assembly.


    I envisioned my way of doing it as analogous to a UTM
    setting aside a portion of its own tape for its slave
    UTMs to use as their own tape.

    I envision HHH as a UTM with extra features.

    Moreover, you're assuming that the EAX register is free for you
    to clobber. That is false; there are calling conventions for X86
    where EAX is the first parameter; if you do some LEA EAX, WHATEVER,
    you will obliterate the argument. Maybe that's not happening with
    your toolchain but it's a threat.


    I could easily see all the generated x86 code verifying
    that this is in fact not an issue in this case.

    that DD does not halt. Bravo! You also know that when you remove the >>>>>> static flag, of course the whole show doesn't halt: you get runaway >>>>>> simulation. You know that this is because the outside and inside
    HHH are
    then exactly the same (except that the inner one is emulated
    wheras the
    outside one is native).

    Thus the correct return value for HHH(DD) is 0.

    Wishing for HHH(DD) to have some return value doesn't make it have
    that return value.


    Deducing what its return value should be on the basis
    of the actual behavior of DD correctly simulated by
    HHH is proven to be correctly 0.

    If HHH(DD) doens't have that value, it's just wrong.


    Not exactly. The static analysis of the C code does
    prove that HHH(DD) returning 0 would be correct.

    As usual incorrect claims without evidence.
    No, it proves the failure of HHH to reach the final halt state
    specified in the input.


    If you edit HHH tro try to give it a different value, you
    change DD, because DD is built on HHH. That new DD contradicts
    the new HHH.


    When 0 to ∞ instructions of DD are correctly
    simulated by HHH the DD simulated by its HHH never
    reaches its own simulated "return" statement final
    halt state thus the difference between HHH/DD pairs
    is of no relevant consequence.

    It makes a difference, because it proves that for each HHH another DD
    can be constructed for which this HHH fails.
    Each input specifies a final halt state, as can be proven by other
    simulators using exactly the same input.
    But for each HHH there is an input for which it fails to predict the
    correct halting behaviour.

    Counter-factual.
    The input designed to thwart HHH fails to thwart HHH.

    As usual incorrect claims without evidence.
    A failing HHH cannot prove the correctness of HHH.
    HHH has important bugs. The most important one is that it ignores
    conditional branch instructions, where it should prove that the
    alternate branches will never be followed when the correct simulation
    would be continued.
    The consequence is that, although the input specifies a finite
    recursion, HHH incorrectly assumes a non-termination behaviour pattern.
    This failure of HHH is demonstrated clearly in the input designed to
    show the failure of HHH.


    This is inline with the halting theorem.
    It shows that simulation is not the correct tool to analyse halting
    behaviour, because, no matter how many steps are simulated, it is
    always possible to construct an input that needs more steps.


    Your ownly way out is to split HHH into two (top level and recursive)
    while pretending it's the same decider, but that is utterly bogus.


    DD simulated by HHH that includes HHH simulating
    and instance of itself simulating another instance
    of DD is all a pure function of the input to HHH(DD).

    Not, if the simulated HHH behaves differently because of the cheat
    with the Root variable.
    Not if HHH does not analyse the conditional branch instructions when
    simulating its own code.





    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Heathfield@21:1/5 to olcott on Thu Aug 21 16:17:13 2025
    On 21/08/2025 16:08, olcott wrote:
    On 8/20/2025 10:57 PM, Richard Heathfield wrote:
    On 21/08/2025 03:13, olcott wrote:
    On 8/20/2025 8:57 PM, Richard Heathfield wrote:
    On 20/08/2025 21:17, olcott wrote:
    DD correctly simulated by HHH *is* the halting problem
    input/decider pair.

    No, it isn't.
    *It has the same form as the Linz proof*

    Irrelevant.

    That you say it is irrelevant is a damned lie.

    You don't actually know what a lie is, do you?

    No, it's not a lie. Your claim to a parallel to the form of
    Linz's argument has nothing to do with anything either way, and
    your claim that "DD correctly simulated by HHH *is* the halting
    problem input/decider pair" is absurd. As I said before, it isn't
    "the halting problem input/decider pair" because no such pair
    exists. We know this because the decider doesn't exist. And we
    know /that/ because if a decider did exist we'd be able to
    construct a case it can't decide, invalidating its claim to
    decidership.

    --
    Richard Heathfield
    Email: rjh at cpax dot org dot uk
    "Usenet is a strange place" - dmr 29 July 1999
    Sig line 4 vacant - apply within

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Heathfield@21:1/5 to olcott on Thu Aug 21 18:04:12 2025
    On 21/08/2025 17:18, olcott wrote:
    On 8/21/2025 10:17 AM, Richard Heathfield wrote:
    On 21/08/2025 16:08, olcott wrote:
    On 8/20/2025 10:57 PM, Richard Heathfield wrote:
    On 21/08/2025 03:13, olcott wrote:
    On 8/20/2025 8:57 PM, Richard Heathfield wrote:
    On 20/08/2025 21:17, olcott wrote:
    DD correctly simulated by HHH *is* the halting problem
    input/decider pair.

    No, it isn't.
    *It has the same form as the Linz proof*

    Irrelevant.

    That you say it is irrelevant is a damned lie.

    You don't actually know what a lie is, do you?


    The Linz proof is a halting problem proof.
    When my proof matches the structure of the Linz
    proof then my proof is a halting problem proof.

    When I apply a simulating halt decider in both
    cases we get the same result.

    Is it then your claim that you have a universal halt decider?
    Because you don't.

    When you try to hack HHH/DD so that DD reaches
    its unreachable instructions THIS IS CHEATING.

    I don't touch HHH. All I do is optimise it out by doing what you
    say it does --- i.e. returns 0.

    If HHH is a universal halt decider, it should be able to decide a
    program that doesn't call it.

    No, it's not a lie. Your claim to a parallel to the form of
    Linz's argument has nothing to do with anything either way, and
    your claim that "DD correctly simulated by HHH *is* the halting
    problem input/decider pair" is absurd. As I said before, it
    isn't "the halting problem input/ decider pair" because no such
    pair exists. We know this because the decider doesn't exist.
    And we know /that/ because if a decider did exist we'd be able
    to construct a case it can't decide, invalidating its claim to
    decidership.

    qui tacet consentire videtur ubi loqui debuit ac potuit


    --
    Richard Heathfield
    Email: rjh at cpax dot org dot uk
    "Usenet is a strange place" - dmr 29 July 1999
    Sig line 4 vacant - apply within

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Heathfield@21:1/5 to olcott on Thu Aug 21 18:11:40 2025
    On 21/08/2025 17:28, olcott wrote:

    <snip>

    *I insist that this axiom must be obeyed and not ignored*

    You can insist on any axiom you like for your own reasoning, but
    you can't inject axioms into the Halting Problem or proofs of the undecidability thereof. You don't get to pick other people's
    axioms for them; that's not how axioms work.

    --
    Richard Heathfield
    Email: rjh at cpax dot org dot uk
    "Usenet is a strange place" - dmr 29 July 1999
    Sig line 4 vacant - apply within

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Heathfield@21:1/5 to olcott on Thu Aug 21 18:36:50 2025
    On 21/08/2025 18:20, olcott wrote:
    On 8/21/2025 12:04 PM, Richard Heathfield wrote:
    On 21/08/2025 17:18, olcott wrote:

    <snip>


    When I apply a simulating halt decider in both
    cases we get the same result.

    Is it then your claim that you have a universal halt decider?
    Because you don't.


    I never claimed and always disavowed that I
    have a universal decider and that I am rebutting
    the halting problem.

    That's what I thought. Glad to have it confirmed.

    So when you claim to have a halt decider, you mean it only works
    sometimes, like this one does:

    int usuallyrighthaltdecider(const char **src, size_t nlines)
    {
    return 1;
    }


    At most I have a partial halt decider that refutes
    the conventional proof of the halting problem

    No, it doesn't. The conventional proof of the halting problem
    reasons about a hypothetical /universal/ halt decider (which it
    proves cannot exist).


    yest does not refute the halting problem itself.

    When you try to hack HHH/DD so that DD reaches
    its unreachable instructions THIS IS CHEATING.

    I don't touch HHH. All I do is optimise it out by doing what
    you say it does --- i.e. returns 0.


    It also returns 1 so your "optimization" f-cks it up.

    You want 1? No problem.

    $ cat dd1.c
    #include <stdio.h>

    #define HHH(x) 1

    int DD()
    {
    int Halt_Status = HHH(DD);
    if (Halt_Status)
    HERE: goto HERE;
    return Halt_Status;
    }


    int main()
    {
    int hhh = HHH(DD);
    int dd = DD();

    printf("Because we got here, we know that both HHH and DD
    halted.\n");

    printf("But is that what they claim?\n\n");
    printf("HHH(DD) yields %d (%s).\n", hhh, hhh ? "halted" :
    "incorrect claim of non-halting");
    printf("DD yields %d (%s).\n", dd, dd ? "halted" : "incorrect
    claim of non-halting");

    return 0;
    }

    $ gcc -o dd1 dd1.c
    $ ./dd1
    ^C

    1 from HHH means DD halts, but DD just kept on going. Looks like
    1 breaks it. Best go back to 0, eh?

    --
    Richard Heathfield
    Email: rjh at cpax dot org dot uk
    "Usenet is a strange place" - dmr 29 July 1999
    Sig line 4 vacant - apply within

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Heathfield@21:1/5 to olcott on Thu Aug 21 18:48:08 2025
    On 21/08/2025 18:36, olcott wrote:
    On 8/21/2025 12:11 PM, Richard Heathfield wrote:
    On 21/08/2025 17:28, olcott wrote:

    <snip>

    *I insist that this axiom must be obeyed and not ignored*

    You can insist on any axiom you like for your own reasoning,
    but you can't inject axioms into the Halting Problem or proofs
    of the

    It is common knowledge that this is an axiom
    of the theory of computation.

    Then you'll be able to produce a citation.

    I'll give you a time-saving freebie - don't bother looking at
    Blum's axioms, which are to do with complexity measurement. Nor
    will you find it in Peanp.

    What you *can* have is this:

    "Thus the state of progress of the computation at any stage is
    completely determined by the note of instructions and the symbols
    on the tape."

    Will that suffice for your purposes?

    --
    Richard Heathfield
    Email: rjh at cpax dot org dot uk
    "Usenet is a strange place" - dmr 29 July 1999
    Sig line 4 vacant - apply within

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Heathfield@21:1/5 to olcott on Thu Aug 21 19:37:12 2025
    On 21/08/2025 18:45, olcott wrote:
    On 8/21/2025 12:36 PM, Richard Heathfield wrote:
    On 21/08/2025 18:20, olcott wrote:
    On 8/21/2025 12:04 PM, Richard Heathfield wrote:
    On 21/08/2025 17:18, olcott wrote:

    <snip>


    When I apply a simulating halt decider in both
    cases we get the same result.

    Is it then your claim that you have a universal halt decider?
    Because you don't.


    I never claimed and always disavowed that I
    have a universal decider and that I am rebutting
    the halting problem.

    That's what I thought. Glad to have it confirmed.

    So when you claim to have a halt decider, you mean it only
    works sometimes, like this one does:


    Because most people get confused by the term
    "partial halt decider" yet understand the gist
    of the idea of a halt decider (determines halt status)
    I use the less precisely accurate term.

    That's a mistake.

    int usuallyrighthaltdecider(const char **src, size_t nlines)
    {
       return 1;
    }

    The above is a partial halt decider. It gets the answer right
    most of the time (even DD, unlike your HHH thing), but it proves
    bugger all.



    At most I have a partial halt decider that refutes
    the conventional proof of the halting problem

    No, it doesn't. The conventional proof of the halting problem
    reasons about a hypothetical /universal/ halt decider (which it
    proves cannot exist).


    I prove that the proofs do not prove their point.

    So you claim.

    "As practiced, a proof is expressed in natural language and is a
    rigorous argument intended to convince the audience of the truth
    of a statement."

    This you have singularly failed to do.

    --
    Richard Heathfield
    Email: rjh at cpax dot org dot uk
    "Usenet is a strange place" - dmr 29 July 1999
    Sig line 4 vacant - apply within

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Fred. Zwarts@21:1/5 to All on Fri Aug 22 10:00:01 2025
    Op 21.aug.2025 om 19:55 schreef olcott:
    On 8/21/2025 12:46 PM, Mr Flibble wrote:
    On Thu, 21 Aug 2025 12:45:19 -0500, olcott wrote:

    On 8/21/2025 12:36 PM, Richard Heathfield wrote:
    On 21/08/2025 18:20, olcott wrote:
    On 8/21/2025 12:04 PM, Richard Heathfield wrote:
    On 21/08/2025 17:18, olcott wrote:

    <snip>


    When I apply a simulating halt decider in both cases we get the same >>>>>>> result.

    Is it then your claim that you have a universal halt decider? Because >>>>>> you don't.


    I never claimed and always disavowed that I have a universal decider >>>>> and that I am rebutting the halting problem.

    That's what I thought. Glad to have it confirmed.

    So when you claim to have a halt decider, you mean it only works
    sometimes, like this one does:


    Because most people get confused by the term "partial halt decider" yet
    understand the gist of the idea of a halt decider (determines halt
    status)
    I use the less precisely accurate term.

    int usuallyrighthaltdecider(const char **src, size_t nlines)
    {
        return 1;
    }


    At most I have a partial halt decider that refutes the conventional
    proof of the halting problem

    No, it doesn't. The conventional proof of the halting problem reasons
    about a hypothetical /universal/ halt decider (which it proves cannot
    exist).


    I prove that the proofs do not prove their point.

    You haven't proved shit in 22 years.

    /Flibble

    *From the bottom of page 319 has been adapted to this* https://www.liarparadox.org/Peter_Linz_HP_317-320.pdf

    Turing Machine Linz Ĥ applied to its own machine description ⟨Ĥ⟩
    Ĥ.q0 ⟨Ĥ⟩ ⊢* Ĥ.embedded_H ⟨Ĥ⟩ ⟨Ĥ⟩ ⊢* Ĥ.∞,
    Ĥ.q0 ⟨Ĥ⟩ ⊢* Ĥ.embedded_H ⟨Ĥ⟩ ⟨Ĥ⟩ ⊢* Ĥ.qn

    Repeats until aborted
    (a) Ĥ copies its input ⟨Ĥ⟩
    (b) Ĥ invokes embedded_H ⟨Ĥ⟩ ⟨Ĥ⟩
    (c) embedded_H simulates ⟨Ĥ⟩ ⟨Ĥ⟩

    I proved that Ĥ.embedded_H ⟨Ĥ⟩ ⟨Ĥ⟩ ⊢* Ĥ.qn is correct
    even if Ĥ.embedded_H cannot detect the repeating state.

    Again you are changing the meaning of the words. Here you use 'proved'
    with the meaning of 'assumed'. Nobody has ever seen a proof.


    That people continue to believe that Ĥ applied to ⟨Ĥ⟩
    contradicts that merely shows how the power of
    indoctrination can get people to actually deny
    verified facts:

    Turing machine deciders only compute the mapping
    from their inputs...




    No, that you do not understand this people is a demonstration of self-indoctrination. You have no counter arguments, but keep repeating
    your incorrect assumptions, ignoring the errors that have been pointed
    out to you.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to olcott on Fri Aug 22 15:01:52 2025
    On 8/21/25 1:55 PM, olcott wrote:
    On 8/21/2025 12:46 PM, Mr Flibble wrote:
    On Thu, 21 Aug 2025 12:45:19 -0500, olcott wrote:

    On 8/21/2025 12:36 PM, Richard Heathfield wrote:
    On 21/08/2025 18:20, olcott wrote:
    On 8/21/2025 12:04 PM, Richard Heathfield wrote:
    On 21/08/2025 17:18, olcott wrote:

    <snip>


    When I apply a simulating halt decider in both cases we get the same >>>>>>> result.

    Is it then your claim that you have a universal halt decider? Because >>>>>> you don't.


    I never claimed and always disavowed that I have a universal decider >>>>> and that I am rebutting the halting problem.

    That's what I thought. Glad to have it confirmed.

    So when you claim to have a halt decider, you mean it only works
    sometimes, like this one does:


    Because most people get confused by the term "partial halt decider" yet
    understand the gist of the idea of a halt decider (determines halt
    status)
    I use the less precisely accurate term.

    int usuallyrighthaltdecider(const char **src, size_t nlines)
    {
        return 1;
    }


    At most I have a partial halt decider that refutes the conventional
    proof of the halting problem

    No, it doesn't. The conventional proof of the halting problem reasons
    about a hypothetical /universal/ halt decider (which it proves cannot
    exist).


    I prove that the proofs do not prove their point.

    You haven't proved shit in 22 years.

    /Flibble

    *From the bottom of page 319 has been adapted to this* https://www.liarparadox.org/Peter_Linz_HP_317-320.pdf

    Turing Machine Linz Ĥ applied to its own machine description ⟨Ĥ⟩
    Ĥ.q0 ⟨Ĥ⟩ ⊢* Ĥ.embedded_H ⟨Ĥ⟩ ⟨Ĥ⟩ ⊢* Ĥ.∞,

    And this path only exists *IF* Ĥ.q0 ⟨Ĥ⟩ will halt, since it results in
    it not halting, this path doesn't exist.


    Ĥ.q0 ⟨Ĥ⟩ ⊢* Ĥ.embedded_H ⟨Ĥ⟩ ⟨Ĥ⟩ ⊢* Ĥ.qn

    And this patho only exist *IF* Ĥ.q0 ⟨Ĥ⟩ will run forever, and since if this path exists, that will halt, it doesn't exist.


    Repeats until aborted

    Which, since you presume your H will abort, the loop WILL terminate

    (a) Ĥ copies its input ⟨Ĥ⟩
    (b) Ĥ invokes embedded_H ⟨Ĥ⟩ ⟨Ĥ⟩
    (c) embedded_H simulates ⟨Ĥ⟩ ⟨Ĥ⟩

    I proved that Ĥ.embedded_H ⟨Ĥ⟩ ⟨Ĥ⟩ ⊢* Ĥ.qn is correct
    even if Ĥ.embedded_H cannot detect the repeating state.

    No, you just prove that you think a single program H, can both correctly simulate a non-halting program to its end, and also report on that fact
    in finite time.


    That people continue to believe that Ĥ applied to ⟨Ĥ⟩
    contradicts that merely shows how the power of
    indoctrination can get people to actually deny
    verified facts:

    No, you are just showing that you refuse to look at facts.


    Turing machine deciders only compute the mapping
    from their inputs...

    Right, they only CAN compute a result from their inputs, but NEED to
    produce the answer to the problem given to them, which in this case is
    about the acttual behavior of the actual program described by its input.

    Since it fails to do that, it just is incorrect.

    Your problem is you start with the assumption that the Halting Function
    is computable, and thus you get the wrong answer because that assumption
    leads to contradictions that you just try to ignore.

    THis is because you concept of logic seems incorrect, and doesn't
    distinguish between truth that is, and the knowledge of that truth.

    Not all truth is knowable, and assuming it is leads to error.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Heathfield@21:1/5 to olcott on Tue Aug 26 18:42:08 2025
    On 26/08/2025 17:59, olcott wrote:
    On 8/19/2025 9:14 PM, Richard Heathfield wrote:
    On 20/08/2025 03:09, olcott wrote:
    The halting problem proofs depend on the assumption
    that there is an H/D pair such that D is undecidable by H.

    No, they depend on the assumption that D /is/ decidable by H,
    for all D. They then show that the assumption must be false.


    Until H does correctly decide that D.


    It hasn't happened yet. Nobody ever came up with an H.

    To qualify as an H, it has to correctly decide /every/ possible
    input, not just D.

    Your HHH can't even correctly decide the input you designed it to
    decide.

    --
    Richard Heathfield
    Email: rjh at cpax dot org dot uk
    "Usenet is a strange place" - dmr 29 July 1999
    Sig line 4 vacant - apply within

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Heathfield@21:1/5 to olcott on Tue Aug 26 18:52:52 2025
    On 26/08/2025 18:47, olcott wrote:

    <snip>

    I am not refuting the halting problem.
    I am showing the the conventional proofs do prove
    their conclusion.
    The conventional HP proofs assume that a decider exists and then
    demonstrate than a program can be constructed that the decider
    cannot decide, ergo the decider cannot exist. Classic proof by
    contradiction.

    --
    Richard Heathfield
    Email: rjh at cpax dot org dot uk
    "Usenet is a strange place" - dmr 29 July 1999
    Sig line 4 vacant - apply within

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Heathfield@21:1/5 to olcott on Tue Aug 26 19:20:18 2025
    On 26/08/2025 19:09, olcott wrote:
    On 8/26/2025 12:52 PM, Richard Heathfield wrote:
    On 26/08/2025 18:47, olcott wrote:

    <snip>

    I am not refuting the halting problem.
    I am showing the the conventional proofs do prove
    their conclusion.
    The conventional HP proofs assume that a decider exists and
    then demonstrate than a program can be constructed that the
    decider cannot decide,

    Until this same decider does correctly decide this same input.

    And every integer that's evenly divisible by 2 is even until
    Olcott finds a counter-example by claiming that 1 is even.

    What you call "this same decider" can't exist.

    And you know (or should know by now) perfectly well why not.

    --
    Richard Heathfield
    Email: rjh at cpax dot org dot uk
    "Usenet is a strange place" - dmr 29 July 1999
    Sig line 4 vacant - apply within

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