• Re: Correct simulation of DDD by HHH is proven

    From olcott@polcott333@gmail.com to comp.theory on Wed Aug 20 08:52:22 2025
    From Newsgroup: comp.theory

    On 8/20/2025 4:49 AM, joes wrote:
    Am Tue, 19 Aug 2025 17:01:20 -0500 schrieb olcott:
    On 8/19/2025 4:42 PM, dbush wrote:
    On 8/19/2025 4:59 PM, Chris M. Thomasson wrote:
    On 8/18/2025 3:46 PM, olcott wrote:

    His argument is that the decision that X(Y) is making is not "does
    algorithm Y halt", but basically "does there exist an implementation of
    function X that can simulate function call Y() to completion?"
    Yes.

    This happens to coincide with the halting function in cases where
    function Y does not call function X at some point, but not in cases
    where it does.
    You are wrong about this.
    Please clarify what is wrong and what would be correct.


    He has it backwards.

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

    The easy fix is to always compute the mapping
    from the inputs on the basis of:

    <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.
    (b) Simulated input reaches its simulated "return" statement:
    return 1.

    He's saying "this is the mapping that the HHH I've implemented is
    computing, therefore this mapping is actually the correct one."
    QFT
    --
    Copyright 2025 Olcott "Talent hits a target no one else can hit; Genius
    hits a target no one else can see." Arthur Schopenhauer
    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From Richard Heathfield@rjh@cpax.org.uk to comp.theory on Wed Aug 20 14:58:57 2025
    From Newsgroup: comp.theory

    On 20/08/2025 10:23, joes wrote:
    Am Tue, 19 Aug 2025 21:17:50 -0500 schrieb olcott:
    On 8/19/2025 8:15 PM, Richard Heathfield wrote:

    Context:

    #define HHH(x) 0

    correctly simulates HHH(DD).

    Of course, it ignores HHH's source code, but I have precedent to tell
    me that that's okay when correctly simulating.
    Saying that not doing any simulation is the correct way to do a
    simulation in ridiculously incorrect and you know it.
    OK, let’s have it simulate one instruction then. Where’s the cutoff?

    One instruction.

    HHH only bothers simulating DD's call to HHH. It ignores the rest
    of DD.

    As Mr Olcott puts it: "Saying that not doing any simulation is
    the correct way to do a simulation in ridiculously incorrect and
    you know it."

    But my simulation correctly simulates just as many lines as his does.
    --
    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

    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From olcott@polcott333@gmail.com to comp.theory on Wed Aug 20 09:02:47 2025
    From Newsgroup: comp.theory

    On 8/20/2025 2:25 AM, Chris M. Thomasson wrote:
    On 8/19/2025 6:44 PM, olcott wrote:
    On 8/19/2025 8:02 PM, Chris M. Thomasson wrote:
    On 8/19/2025 5:56 PM, olcott wrote:
    On 8/19/2025 7:48 PM, Richard Heathfield wrote:
    On 20/08/2025 01:38, olcott wrote:
    On 8/19/2025 7:16 PM, Richard Heathfield wrote:
    On 20/08/2025 00:48, olcott wrote:
    On 8/19/2025 6:35 PM, Richard Heathfield wrote:
    On 19/08/2025 23:08, olcott wrote:

    <snip>

    I don't care if Heathfield disagrees with himself,

    Where have I done so?

    My quote of him does agree with me and all five LLM systems. >>>>>>>>>

    Yes, it shows that you can correctly simulate HHH by replacing
    it with a macro: #define HHH(x) 0


    That is a jackass stupid idea

    No, I don't think so.

    because it breaks
    HHH reporting on halting inputs

    It's already broken.

    Besides, it's correct simulation. HHH /does/ return 0.
    Not simulating a f-cking thing is not a correct
    simulation jackass.


    I want you to feel my anger.

    Huh? Are going to go really nuts on us here? Are you a violent sod?


    I just want to to understand that playing
    trollish head games can result in the end
    of life on the Earth because liars have
    prevented the required quorum of support
    to take corrective action on climate change.

    climate change? Then stop using AI. So much power... ;^)


    https://www.researchgate.net/publication/336568434_Severe_anthropogenic_climate_change_proven_entirely_with_verifiable_facts


    Individual efforts cannot possibly have enough impact.
    A universal carbon fee and dividend program can have
    enough impact. That would take a broad consensus that
    the despicable lying scumbags are preventing.

    They would be phased in so that they would not be
    too disruptive. No one would want to drive their SUV
    to work when this costs a month's salary each day.
    Long before this happens they used their carbon
    dividend to switch.


    When Boolean True(Language L, Expression E)
    becomes computable (thus refuting Tarski)
    these kinds of lies can be annihilated in real time.
    My work on the HP can be applied to this.


    --
    Copyright 2025 Olcott "Talent hits a target no one else can hit; Genius
    hits a target no one else can see." Arthur Schopenhauer
    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From olcott@polcott333@gmail.com to comp.theory on Wed Aug 20 09:18:05 2025
    From Newsgroup: comp.theory

    On 8/20/2025 8:58 AM, Richard Heathfield wrote:
    On 20/08/2025 10:23, joes wrote:
    Am Tue, 19 Aug 2025 21:17:50 -0500 schrieb olcott:
    On 8/19/2025 8:15 PM, Richard Heathfield wrote:

    Context:

    #define HHH(x) 0

    correctly simulates HHH(DD).

    Of course, it ignores HHH's source code, but I have precedent to tell
    me that that's okay when correctly simulating.
    Saying that not doing any simulation is the correct way to do a
    simulation in ridiculously incorrect and you know it.
    OK, let’s have it simulate one instruction then. Where’s the cutoff?

    One instruction.

    HHH only bothers simulating DD's call to HHH. It ignores the rest of DD.

    As Mr Olcott puts it: "Saying that not doing any simulation is the
    correct way to do a simulation in ridiculously incorrect and you know it."

    But my simulation correctly simulates just as many lines as his does.


    Things a damned liar would say
    --
    Copyright 2025 Olcott "Talent hits a target no one else can hit; Genius
    hits a target no one else can see." Arthur Schopenhauer
    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From olcott@polcott333@gmail.com to comp.theory on Wed Aug 20 09:31:44 2025
    From Newsgroup: comp.theory

    On 8/20/2025 4:16 AM, Fred. Zwarts wrote:
    Op 19.aug.2025 om 16:41 schreef olcott:
    On 8/19/2025 1:46 AM, Richard Heathfield wrote:
    On 19/08/2025 05:21, Mike Terry wrote:
    On 19/08/2025 03:40, Richard Heathfield wrote:
    On 19/08/2025 03:07, dbush wrote:

    <snip>

    So we see that Richard Heathfield agreed that HHH can't give a
    correct answer, as Linz and other have proved and as you have
    *explicitly* agreed is correct.


    I look at it this way.

    HHH cannot reasonably abort as soon as it detects recursion. After
    all, there are lots of recursive algorithms around, and plenty of
    them terminate. It has to dig a little deeper than that.

    So by the time we're some way in, we have several levels of recursion: >>>>>
    DD -> HHH -> DD -> HHH -> DD -> HHH -> DD
           (a)          (b)          (c)

    Let's say (c) decides enough is enough.

    I think maybe you're not distinguishing properly between recursive
    call and recursive emulation.

    You may be right, or you may not be, but my explanation seems at
    least at first glance to hold together, makes intuitive sense, and
    goes some way to explaining why some one could cling to the wrong
    answer for 22 years.

    If we were talking *recursive call*, (c) might end the recursion in
    the way you describe due to having been called with different input,

    Or indeed identical input. After all, what's changing?

    allowing control to percolate back through (b) and then to (a).
    That's how a simple Factorial implementation might work:

       int Factorial (int n)
       {
         if (n == 1)
           return 1;
         else
           return n * Factorial (n-1);

    Terrible example, but has the merit of familiarity.

       }

    When evaluating Factorial(3), a nested Factorial(2) is called, which
    in turn nests a Factorial(1) call.  That call returns and the
    recursion breaks (from inner to outer invocations).

    Great, everyone knows this example.  Note that it requires that the
    nested calls are made with differnt arguments.

    Indeed, although of course it doesn't have to be that way.

    In the case of PO's DD/HHH, the arguments are (or at least
    represent) exactly the same computation to be emulated at each
    level.  So (c) [an L2 = Level 2 emulation] will not suddenly decide
    its had enough - if it did, then (a) would have done it earlier.

    Then either there's some state kicking around, or HHH will
    automatically decide that all recursion is runaway recursion.

    But with DD/HHH we have *recursive emulation*.  So HHH [a] is still
    running when (c) is reached - it's busy running around its "emulate
    instruction" loop, testing each time round whether its seen enough
    evidence to decide to quit emulating.

    Okay, so that's clearly a design flaw. Bit I do see the point. /
    Because/ of that design flaw, the fix isn't going to be an easy one.


    Lines 996 through 1006 matches the
    *recursive simulation non-halting behavior pattern*
    https://github.com/plolcott/x86utm/blob/master/Halt7.c

    And it shows the bug in the code. HHH incorrectly assumes a non-
    termination behaviour when there is only a finite recursion.
    It does not correctly analyse the conditional branch instructions during
    the simulation. It does not prove that the conditions for the alternate branches will never be met when the simulation would continue.


    <snip>

    OTOH you could say that since HHH only has to handle ONE INPUT CASE
    (DD), PO might have optimised the HHH code to just return 0 straight
    away, and the result would be the same!  That's true - DD would
    still halt, and HHH would still claim it never halts. The problem
    here is that all the emulation stuff is /required/ so that PO can
    confuse himself into thinking something more magical is going on,
    justifying various crazy claims.

    Hell of a way to run a railroad. Still, no harm done. At least now I
    know how he /could/ have got the programming right, even if his
    theory is further round the bend than Harpic.


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

    and the input to HHH(DD) specifies runaway recursion.

    As usual an incorrect claim without evidence.
    The input specifies a DD based on a HHH that aborts the simulation after
    a few cycles. This means that this input specifies a program with a
    finite recursion, followed by a final halt state.

    The reason that I want to quit talking to
    you is that I keep correctly your error
    that stopping running means halting when
    stopping running only means halting when
    the final halt state is reached and you
    ignore this correction.
    --
    Copyright 2025 Olcott "Talent hits a target no one else can hit; Genius
    hits a target no one else can see." Arthur Schopenhauer
    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From Kaz Kylheku@643-408-1753@kylheku.com to comp.theory on Wed Aug 20 16:56:14 2025
    From Newsgroup: comp.theory

    On 2025-08-20, Fred. Zwarts <F.Zwarts@HetNet.nl> wrote:
    Op 20.aug.2025 om 00:35 schreef olcott:
    ChatGPT 4.0, 5.0 Claude AI, Grok and Gemini
    all figured out on their own what the
    *recursive simulation non-halting behavior pattern*
    is and that on that basis HHH(DD)==0 is correct.

    Based on the incorrect assumption that HHH detects a non-termination behaviour.

    But it does. His contraption works that far. HHH (outer) detects
    the non-termination of DD calling HHH (inner). It is contrived
    to detect that specific case of nontermination.

    HHH splits itself into two by burning a static fuse variable.

    That's nice, but the use of two deciders, only one of which is being contradicted by the test case, doesn't disprove anything.

    ChatGPT, Claude et al have been trained on Internet texts;
    they must be assumed to contain the Olcott Halting Theory.

    When you ask about the theory (using the same identifiers like HHH
    and all), the token prediction likely starts romping through the
    kooky fields of Usenet texts.
    --
    TXR Programming Language: http://nongnu.org/txr
    Cygnal: Cygwin Native Application Library: http://kylheku.com/cygnal
    Mastodon: @Kazinator@mstdn.ca
    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From olcott@polcott333@gmail.com to comp.theory on Wed Aug 20 12:17:32 2025
    From Newsgroup: comp.theory

    On 8/20/2025 11:56 AM, Kaz Kylheku wrote:
    On 2025-08-20, Fred. Zwarts <F.Zwarts@HetNet.nl> wrote:
    Op 20.aug.2025 om 00:35 schreef olcott:
    ChatGPT 4.0, 5.0 Claude AI, Grok and Gemini
    all figured out on their own what the
    *recursive simulation non-halting behavior pattern*
    is and that on that basis HHH(DD)==0 is correct.

    Based on the incorrect assumption that HHH detects a non-termination
    behaviour.

    But it does. His contraption works that far. HHH (outer) detects
    the non-termination of DD calling HHH (inner). It is contrived
    to detect that specific case of nontermination.

    HHH splits itself into two by burning a static fuse variable.

    That's nice, but the use of two deciders, only one of which is being contradicted by the test case, doesn't disprove anything.

    ChatGPT, Claude et al have been trained on Internet texts;
    they must be assumed to contain the Olcott Halting Theory.

    When you ask about the theory (using the same identifiers like HHH
    and all), the token prediction likely starts romping through the
    kooky fields of Usenet texts.


    All LLM systems agree when forced out of *make a guess*
    mode and forced into *think it all the way through* mode.

    <Rubric>
    Rules of Simulation:
    - (a) If a non-terminating behavior pattern is detected during
    simulation, abort immediately and return 0.
    - (b) If the simulated program reaches a return statement without
    earlier detection, return 1.
    - Priority: (a) always takes precedence over (b).

    Procedure:
    1. Restate rules before simulation.
    2. Simulate step by step using a trace table with columns:
    | Step | Code Location | State (variables, call stack) | Event /
    Action | Rule Applied |
    3. Stop immediately if recursion, infinite loop, or repeating state
    occurs → apply (a).
    4. If a return is reached first → apply (b).
    5. Conclude with:
    - Which rule fired first
    - The correct return value
    6. Optionally, provide:
    - (i) Simulation result under rules
    - (ii) Actual runtime behavior in C

    </Rubric>

    <Test Program>
    typedef int (*ptr)();
    int HHH(ptr P);

    int DD()
    {
    int Halt_Status = HHH(DD);
    if (Halt_Status)
    HERE: goto HERE;
    return Halt_Status;
    }
    </Test Program>

    <Required Output Format>
    1. Restatement of rules
    2. Step-by-step execution trace in a table
    3. Identification of first rule triggered
    4. Final result: return value of HHH(program)
    5. Optional: actual C runtime behavior if relevant
    </Required Output Format>

    </Benchmark Task>
    --
    Copyright 2025 Olcott "Talent hits a target no one else can hit; Genius
    hits a target no one else can see." Arthur Schopenhauer
    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From Mike Terry@news.dead.person.stones@darjeeling.plus.com to comp.theory on Wed Aug 20 21:15:52 2025
    From Newsgroup: comp.theory

    On 20/08/2025 03:08, Richard Heathfield wrote:
    On 20/08/2025 02:37, Mike Terry wrote:
    On 19/08/2025 19:06, Richard Heathfield wrote:

    <snip>

    But HHH is not a factorial calculation. It is a function that takes a function pointer it can
    only assign or dereference, and then returns 0.

    ok, we've got onto cross purposes.

    Agreed.

    I was not talking about HHH, because HHH involves recursive simulation, not recursive call.

    Understood.

    Let me re-state: I accept your explanation that that's not how it
    works. It *should* work that way, and the way it does work is
    clearly broken, but okay, it doesn't.


    That can't happen - (c) is performing the same calculation as (a): same code and the same input.

    Sure it could. When HHH detects that it's about to recurse into itself it could just start off a
    new simulation, and if it starts to run away with itself it could can /its/ simulation and return 0.

    You are describing recursive /simulation/ (or emulation).  (I think...)  HHH does not involve
    recursive call, so what I was saying does not apply to HHH.

    Right.

    IF (as I originally thought) HHH worked by recursing into a new simulation every time it hit DD's
    HHH call, that would be quite clever. It would be easy to add static metrics to make the call about
    aborting the recursion and unwinding the stack back to where it can continue simulating DD, and
    nothing would be discarded as being "unreachable".

    Let's see if I've fully got what you're saying. I'll use notation HHH[n] for HHH running at nested
    simulation level n. So HHH[0] is outer HHH etc.

    [Yeah, I know your eyes are already starting to glaze over! All I can say is the steps below are
    little steps with no big jumps, so if you grab a pad and pen and cup of tea you can get through it -
    believe that that can happen!!]

    1. HHH[0] is simulating DD[1], and spots DD's "call HHH".
    2. Rather than simulating that x86 call instruction, HHH decides to spin up a new
    simulation of ... DD? [must be...]
    Aargh, my nesting notation is broken already because this new simulation will also
    be DD[1], and HHH[0] will have two active simulations both "unnested". Never had
    to cater for that before, as no PO code has needed to do that.
    That's ok, I'll call it DD[1b].
    3. So HHH[0] is now simulating DD[1b] and sees DD call HHH.
    4. Rather than simulating that x86 call instruction, HHH decides to spin up a new
    simulation of DD[1c]
    5. Then it is going to spin up DD[1d] etc.
    So we never get (technically speaking) /nested/ simulations. All simulations
    are performed by HHH[0] and are only one level deep. HHH maintains a
    stack of simulations, with all but the
    top-of-stack simulation being temporarily "suspended".
    That's a possible way to go, and not hard to code...
    6. At some point HHH says "that's enough simulating - Ed." and aborts... what?
    I think you mean to abort the top-of-stack (innermost) simulation. Let's
    imagine that is DD[1d], which is popped from the stack and discarded,
    and DD[1c] is going to be "resumed".
    7. DD[1c] had previously just made a call to HHH, so HHH[0] must "fake" the
    DD[1c] call result, so DD[1c] sees
    the call as returning ... what? Let's say 0: neverhalts.
    That seems logical, because presumably HHH[0] has already decided
    that 0 [neverhalts] is the right halting decision it will finally make?
    8. So DD[1c] takes its code branch which will return, REACHING THE UNREACHABLE
    CODE! Yay! DD[1c] returns, HHH[0]'s DD[1c] simulation has ended "naturally"
    with DD halting.
    HHH[0] pops the simulation off the stack and "resumes" the DD[1b] simulation
    9. What does HHH do now? It has aborted DD[1d] thinking it was exhibiting
    non-halting behaviour, and now it has just seen DD[1c] terminate naturally.
    HHH[0] has to fake a return code for the DD[1b]'s "call HHH" operation.
    *I genuinely can't see what HHH[0] should do here!*
    10. So I'll stop without trying to guess further steps!


    Assuming my understanding above is more or less on target, aside from my confusions over how the
    "percolation" is going to work, here are my thoughts:

    Your idea of not actually simulating DD's "call HHH" x86 instruction, but instead spinning up some
    new simulation of DD, is actually what /most/ new posters think PO is actually doing! That's
    because they look at PO's traces and see DD's "call HHH" instruction followed by the first
    instruction of DD. Understandable, but what PO has done is filter out all the HHH instructions from
    the trace without explaining it! Eventually some nested simulation enters DD again, at which point
    the DD instructions are listed in the trace.

    Well, the other posters complain at this point, saying "HHH is not properly emulating itself. After
    emulating "call HHH" the next instruction should be the first instruction of HHH!" I would agree
    with them at this point, on the grounds of simplicity/naturalness/definition of "emulation", but
    it's not easy for me to justify beyond saying that's what I think is right. [Perhaps my maths
    background leads me that way...] As it turns out the next instruction after "call HHH" that HHH[0]
    emulates actually /is/ the first instruction of HHH which is what most people want, but PO's trace
    output misled them. :)

    Now there's your next idea [IIUC] where you want HHH[0] to do all the "runaway recursion detecting"
    and subsequent aborting, but /from the inner simulation and percolating out/ unwinding the stack
    etc.. Easy to say, but when I look in detail at the steps I can't see it logically working out!

    In step (6) above HHH[0] has decided there is runaway recursion for whatever reason. Logically it
    seems that already it knows it needs to decide neverhalts, i.e. it needs to return 0 to main().
    Anything else it does first is wasting time, so logically it should abandon all in progress
    emulations and return 0, surely? But OK, we want the HHH's to be able to percolate out from DD[1d]
    back to DD[1c] then to DD[1b] then to DD[1] then back to outer HHH. WHY?? This allows PO's
    so-called "unreachable code" to be "reached" by HHH[0], but /who cares/ ? That code was never
    actually unreachable, it was only ever "unreachable when simulated by HHH" which is of no
    consequence to anybody. PO is the only one here trying to make some big issue of unreachable code!

    And by engineering a way of making HHH/DD results percolate out from inner to outer simulations, now
    the logical problem of how that can actually work has been created.

    In step (9) above, what does HHH[0] tell its simulation DD[1b] that its call to HHH returned?
    HHH[0] previously spun up simulation DD[1c] presumably to resolve exactly that, and it's just seen
    DD[1c] halt, so presumably that means it should tell DD[1b] that HHH decided "halts"? That is
    following the meaning of "percolation".

    OTOH earlier HHH[0] previously aborted DD[1d] due to (supposed) runaway recursion, so should it tell
    DD[1b] that its HHH returned neverhalts?

    If your answer is that having spotted "runaway recursion" it should fake a neverhalts result for all
    HHH calls remaining on its stack of emulations, then the whole "percolation" process is nonsense -
    nothing is logically "percolating" from inner to outer HHH; they're all just being told the same
    thing by HHH[0] so HHH[0] might as well just discard the whole lot and return its result straight
    away. :)



    Hence...
    That way, it might even get the rightwrong™ answer as opposed to the wrongwrong™ answer it gets
    at present.


    But like you say, it doesn't work like that.

    But it *could*, so the notion that the last few lines of DD are unreachable is simply wrong.

    Yes, it's simply wrong, but not for that reason. It's simply wrong because :

    a) Deciders/simulators /other than HHH/ have no problem simulating DD to reach that code. It's
    simply a matter of them not aborting the simulation too early. HHH bears a unique one-to-one
    relationship to DD, which /guarantees/ that it will abort "too soon" to reach that code.

    b) When DD is run "natively" the so-called "unreachable" code is reached with no problem. The
    exception would occur if HHH never returns, causing DD to stall in its HHH(DD) call, but deciders
    must always return...


    Mike.

    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From Chris M. Thomasson@chris.m.thomasson.1@gmail.com to comp.theory on Wed Aug 20 13:19:21 2025
    From Newsgroup: comp.theory

    On 8/20/2025 7:18 AM, olcott wrote:
    On 8/20/2025 8:58 AM, Richard Heathfield wrote:
    On 20/08/2025 10:23, joes wrote:
    Am Tue, 19 Aug 2025 21:17:50 -0500 schrieb olcott:
    On 8/19/2025 8:15 PM, Richard Heathfield wrote:

    Context:

    #define HHH(x) 0

    correctly simulates HHH(DD).

    Of course, it ignores HHH's source code, but I have precedent to tell >>>>> me that that's okay when correctly simulating.
    Saying that not doing any simulation is the correct way to do a
    simulation in ridiculously incorrect and you know it.
    OK, let’s have it simulate one instruction then. Where’s the cutoff?

    One instruction.

    HHH only bothers simulating DD's call to HHH. It ignores the rest of DD.

    As Mr Olcott puts it: "Saying that not doing any simulation is the
    correct way to do a simulation in ridiculously incorrect and you know
    it."

    But my simulation correctly simulates just as many lines as his does.


    Things a damned liar would say


    Wow!
    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From olcott@polcott333@gmail.com to comp.theory on Wed Aug 20 15:27:33 2025
    From Newsgroup: comp.theory

    On 8/20/2025 3:19 PM, Chris M. Thomasson wrote:
    On 8/20/2025 7:18 AM, olcott wrote:
    On 8/20/2025 8:58 AM, Richard Heathfield wrote:
    On 20/08/2025 10:23, joes wrote:
    Am Tue, 19 Aug 2025 21:17:50 -0500 schrieb olcott:
    On 8/19/2025 8:15 PM, Richard Heathfield wrote:

    Context:

    #define HHH(x) 0

    correctly simulates HHH(DD).

    Of course, it ignores HHH's source code, but I have precedent to tell >>>>>> me that that's okay when correctly simulating.
    Saying that not doing any simulation is the correct way to do a
    simulation in ridiculously incorrect and you know it.
    OK, let’s have it simulate one instruction then. Where’s the cutoff? >>>
    One instruction.

    HHH only bothers simulating DD's call to HHH. It ignores the rest of DD. >>>
    As Mr Olcott puts it: "Saying that not doing any simulation is the
    correct way to do a simulation in ridiculously incorrect and you know
    it."

    But my simulation correctly simulates just as many lines as his does.


    Things a damned liar would say


    Wow!

    If we wouldn't have called Trump's lies about election
    fraud mere "misinformation" and called the damned lies
    of a damned liar the threat to Democracy may have been
    averted.

    Here is the proof that Richard Heathfield is a damned liar
    about HHH correctly simulating zero instructions.

    _DD()
    [00002183] 55 push ebp
    [00002184] 8bec mov ebp,esp
    [00002186] 51 push ecx
    [00002187] 6883210000 push 00002183
    [0000218c] e832f4ffff call 000015c3
    [00002191] 83c404 add esp,+04
    [00002194] 8945fc mov [ebp-04],eax
    [00002197] 837dfc00 cmp dword [ebp-04],+00
    [0000219b] 7402 jz 0000219f
    [0000219d] ebfe jmp 0000219d
    [0000219f] 8b45fc mov eax,[ebp-04]
    [000021a2] 8be5 mov esp,ebp
    [000021a4] 5d pop ebp
    [000021a5] c3 ret
    Size in bytes:(0035) [000021a5]

    _main()
    [000021b3] 55 push ebp
    [000021b4] 8bec mov ebp,esp
    [000021b6] 6883210000 push 00002183
    [000021bb] e803f4ffff call 000015c3
    [000021c0] 83c404 add esp,+04
    [000021c3] 33c0 xor eax,eax
    [000021c5] 5d pop ebp
    [000021c6] c3 ret
    Size in bytes:(0020) [000021c6]

    machine stack stack machine assembly
    address address data code language
    ======== ======== ======== ============== ============= [000021b3][00103864][00000000] 55 push ebp [000021b4][00103864][00000000] 8bec mov ebp,esp [000021b6][00103860][00002183] 6883210000 push 00002183 // push DD [000021bb][0010385c][000021c0] e803f4ffff call 000015c3 // call HHH
    New slave_stack at:103908

    Begin Local Halt Decider Simulation Execution Trace Stored at:113910 [00002183][00113900][00113904] 55 push ebp [00002184][00113900][00113904] 8bec mov ebp,esp [00002186][001138fc][00103908] 51 push ecx [00002187][001138f8][00002183] 6883210000 push 00002183 // push DD [0000218c][001138f4][00002191] e832f4ffff call 000015c3 // call HHH
    New slave_stack at:14e330
    [00002183][0015e328][0015e32c] 55 push ebp [00002184][0015e328][0015e32c] 8bec mov ebp,esp [00002186][0015e324][0014e330] 51 push ecx [00002187][0015e320][00002183] 6883210000 push 00002183 // push DD [0000218c][0015e31c][00002191] e832f4ffff call 000015c3 // call HHH
    Local Halt Decider: Infinite Recursion Detected Simulation Stopped

    [000021c0][00103864][00000000] 83c404 add esp,+04 [000021c3][00103864][00000000] 33c0 xor eax,eax [000021c5][00103868][00000018] 5d pop ebp [000021c6][0010386c][00000000] c3 ret
    Number of Instructions Executed(11422) == 170 Pages
    --
    Copyright 2025 Olcott "Talent hits a target no one else can hit; Genius
    hits a target no one else can see." Arthur Schopenhauer
    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From Chris M. Thomasson@chris.m.thomasson.1@gmail.com to comp.theory on Wed Aug 20 13:32:14 2025
    From Newsgroup: comp.theory

    On 8/20/2025 1:27 PM, olcott wrote:
    On 8/20/2025 3:19 PM, Chris M. Thomasson wrote:
    On 8/20/2025 7:18 AM, olcott wrote:
    On 8/20/2025 8:58 AM, Richard Heathfield wrote:
    On 20/08/2025 10:23, joes wrote:
    Am Tue, 19 Aug 2025 21:17:50 -0500 schrieb olcott:
    On 8/19/2025 8:15 PM, Richard Heathfield wrote:

    Context:

    #define HHH(x) 0

    correctly simulates HHH(DD).

    Of course, it ignores HHH's source code, but I have precedent to >>>>>>> tell
    me that that's okay when correctly simulating.
    Saying that not doing any simulation is the correct way to do a
    simulation in ridiculously incorrect and you know it.
    OK, let’s have it simulate one instruction then. Where’s the cutoff? >>>>
    One instruction.

    HHH only bothers simulating DD's call to HHH. It ignores the rest of
    DD.

    As Mr Olcott puts it: "Saying that not doing any simulation is the
    correct way to do a simulation in ridiculously incorrect and you
    know it."

    But my simulation correctly simulates just as many lines as his does.


    Things a damned liar would say


    Wow!

    If we wouldn't have called Trump's lies about election
    fraud mere "misinformation" and called the damned lies
    of a damned liar the threat to Democracy may have been
    averted.

    Huh? Does your brain have enough oxygen? Are you drowning or something?
    A quick sand of your own lies?


    Here is the proof that Richard Heathfield is a damned liar
    about HHH correctly simulating zero instructions.

    Sigh.

    [...]

    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From olcott@polcott333@gmail.com to comp.theory on Wed Aug 20 15:41:24 2025
    From Newsgroup: comp.theory

    On 8/20/2025 3:32 PM, Chris M. Thomasson wrote:
    On 8/20/2025 1:27 PM, olcott wrote:
    On 8/20/2025 3:19 PM, Chris M. Thomasson wrote:
    On 8/20/2025 7:18 AM, olcott wrote:
    On 8/20/2025 8:58 AM, Richard Heathfield wrote:
    On 20/08/2025 10:23, joes wrote:
    Am Tue, 19 Aug 2025 21:17:50 -0500 schrieb olcott:
    On 8/19/2025 8:15 PM, Richard Heathfield wrote:

    Context:

    #define HHH(x) 0

    correctly simulates HHH(DD).

    Of course, it ignores HHH's source code, but I have precedent to >>>>>>>> tell
    me that that's okay when correctly simulating.
    Saying that not doing any simulation is the correct way to do a
    simulation in ridiculously incorrect and you know it.
    OK, let’s have it simulate one instruction then. Where’s the cutoff? >>>>>
    One instruction.

    HHH only bothers simulating DD's call to HHH. It ignores the rest
    of DD.

    As Mr Olcott puts it: "Saying that not doing any simulation is the
    correct way to do a simulation in ridiculously incorrect and you
    know it."

    But my simulation correctly simulates just as many lines as his does. >>>>>

    Things a damned liar would say


    Wow!

    If we wouldn't have called Trump's lies about election
    fraud mere "misinformation" and called the damned lies
    of a damned liar the threat to Democracy may have been
    averted.

    Huh? Does your brain have enough oxygen? Are you drowning or something?
    A quick sand of your own lies?


    #LiesAboutElectionFraud

    Never any evidence of election fraud
    that could possibly change the results.

    Trump is just copying Hitler's "big lie"
    --
    Copyright 2025 Olcott "Talent hits a target no one else can hit; Genius
    hits a target no one else can see." Arthur Schopenhauer
    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From Chris M. Thomasson@chris.m.thomasson.1@gmail.com to comp.theory on Wed Aug 20 13:42:45 2025
    From Newsgroup: comp.theory

    On 8/20/2025 1:41 PM, olcott wrote:
    On 8/20/2025 3:32 PM, Chris M. Thomasson wrote:
    On 8/20/2025 1:27 PM, olcott wrote:
    On 8/20/2025 3:19 PM, Chris M. Thomasson wrote:
    On 8/20/2025 7:18 AM, olcott wrote:
    On 8/20/2025 8:58 AM, Richard Heathfield wrote:
    On 20/08/2025 10:23, joes wrote:
    Am Tue, 19 Aug 2025 21:17:50 -0500 schrieb olcott:
    On 8/19/2025 8:15 PM, Richard Heathfield wrote:

    Context:

    #define HHH(x) 0

    correctly simulates HHH(DD).

    Of course, it ignores HHH's source code, but I have precedent >>>>>>>>> to tell
    me that that's okay when correctly simulating.
    Saying that not doing any simulation is the correct way to do a >>>>>>>> simulation in ridiculously incorrect and you know it.
    OK, let’s have it simulate one instruction then. Where’s the cutoff?

    One instruction.

    HHH only bothers simulating DD's call to HHH. It ignores the rest >>>>>> of DD.

    As Mr Olcott puts it: "Saying that not doing any simulation is the >>>>>> correct way to do a simulation in ridiculously incorrect and you
    know it."

    But my simulation correctly simulates just as many lines as his does. >>>>>>

    Things a damned liar would say


    Wow!

    If we wouldn't have called Trump's lies about election
    fraud mere "misinformation" and called the damned lies
    of a damned liar the threat to Democracy may have been
    averted.

    Huh? Does your brain have enough oxygen? Are you drowning or
    something? A quick sand of your own lies?


    #LiesAboutElectionFraud

    Never any evidence of election fraud
    that could possibly change the results.

    Trump is just copying Hitler's "big lie"


    And your halt decider is? Crap, Lie, or both?
    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From olcott@polcott333@gmail.com to comp.theory on Wed Aug 20 15:44:14 2025
    From Newsgroup: comp.theory

    On 8/20/2025 3:42 PM, Chris M. Thomasson wrote:
    On 8/20/2025 1:41 PM, olcott wrote:
    On 8/20/2025 3:32 PM, Chris M. Thomasson wrote:
    On 8/20/2025 1:27 PM, olcott wrote:
    On 8/20/2025 3:19 PM, Chris M. Thomasson wrote:
    On 8/20/2025 7:18 AM, olcott wrote:
    On 8/20/2025 8:58 AM, Richard Heathfield wrote:
    On 20/08/2025 10:23, joes wrote:
    Am Tue, 19 Aug 2025 21:17:50 -0500 schrieb olcott:
    On 8/19/2025 8:15 PM, Richard Heathfield wrote:

    Context:

    #define HHH(x) 0

    correctly simulates HHH(DD).

    Of course, it ignores HHH's source code, but I have precedent >>>>>>>>>> to tell
    me that that's okay when correctly simulating.
    Saying that not doing any simulation is the correct way to do a >>>>>>>>> simulation in ridiculously incorrect and you know it.
    OK, let’s have it simulate one instruction then. Where’s the >>>>>>>> cutoff?

    One instruction.

    HHH only bothers simulating DD's call to HHH. It ignores the rest >>>>>>> of DD.

    As Mr Olcott puts it: "Saying that not doing any simulation is
    the correct way to do a simulation in ridiculously incorrect and >>>>>>> you know it."

    But my simulation correctly simulates just as many lines as his >>>>>>> does.


    Things a damned liar would say


    Wow!

    If we wouldn't have called Trump's lies about election
    fraud mere "misinformation" and called the damned lies
    of a damned liar the threat to Democracy may have been
    averted.

    Huh? Does your brain have enough oxygen? Are you drowning or
    something? A quick sand of your own lies?


    #LiesAboutElectionFraud

    Never any evidence of election fraud
    that could possibly change the results.

    Trump is just copying Hitler's "big lie"


    And your halt decider is? Crap, Lie, or both?

    Verifiably correct as all Five LLM systems agree.
    --
    Copyright 2025 Olcott "Talent hits a target no one else can hit; Genius
    hits a target no one else can see." Arthur Schopenhauer
    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From Chris M. Thomasson@chris.m.thomasson.1@gmail.com to comp.theory on Wed Aug 20 13:50:23 2025
    From Newsgroup: comp.theory

    On 8/20/2025 1:44 PM, olcott wrote:
    On 8/20/2025 3:42 PM, Chris M. Thomasson wrote:
    On 8/20/2025 1:41 PM, olcott wrote:
    On 8/20/2025 3:32 PM, Chris M. Thomasson wrote:
    On 8/20/2025 1:27 PM, olcott wrote:
    On 8/20/2025 3:19 PM, Chris M. Thomasson wrote:
    On 8/20/2025 7:18 AM, olcott wrote:
    On 8/20/2025 8:58 AM, Richard Heathfield wrote:
    On 20/08/2025 10:23, joes wrote:
    Am Tue, 19 Aug 2025 21:17:50 -0500 schrieb olcott:
    On 8/19/2025 8:15 PM, Richard Heathfield wrote:

    Context:

    #define HHH(x) 0

    correctly simulates HHH(DD).

    Of course, it ignores HHH's source code, but I have precedent >>>>>>>>>>> to tell
    me that that's okay when correctly simulating.
    Saying that not doing any simulation is the correct way to do a >>>>>>>>>> simulation in ridiculously incorrect and you know it.
    OK, let’s have it simulate one instruction then. Where’s the >>>>>>>>> cutoff?

    One instruction.

    HHH only bothers simulating DD's call to HHH. It ignores the
    rest of DD.

    As Mr Olcott puts it: "Saying that not doing any simulation is >>>>>>>> the correct way to do a simulation in ridiculously incorrect and >>>>>>>> you know it."

    But my simulation correctly simulates just as many lines as his >>>>>>>> does.


    Things a damned liar would say


    Wow!

    If we wouldn't have called Trump's lies about election
    fraud mere "misinformation" and called the damned lies
    of a damned liar the threat to Democracy may have been
    averted.

    Huh? Does your brain have enough oxygen? Are you drowning or
    something? A quick sand of your own lies?


    #LiesAboutElectionFraud

    Never any evidence of election fraud
    that could possibly change the results.

    Trump is just copying Hitler's "big lie"


    And your halt decider is? Crap, Lie, or both?

    Verifiably correct as all Five LLM systems agree.


    An what does Trump have to say about this matter? lol.
    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From dbush@dbush.mobile@gmail.com to comp.theory on Wed Aug 20 16:56:02 2025
    From Newsgroup: comp.theory

    On 8/20/2025 4:44 PM, olcott wrote:
    On 8/20/2025 3:42 PM, Chris M. Thomasson wrote:
    On 8/20/2025 1:41 PM, olcott wrote:
    On 8/20/2025 3:32 PM, Chris M. Thomasson wrote:
    On 8/20/2025 1:27 PM, olcott wrote:
    On 8/20/2025 3:19 PM, Chris M. Thomasson wrote:
    On 8/20/2025 7:18 AM, olcott wrote:
    On 8/20/2025 8:58 AM, Richard Heathfield wrote:
    On 20/08/2025 10:23, joes wrote:
    Am Tue, 19 Aug 2025 21:17:50 -0500 schrieb olcott:
    On 8/19/2025 8:15 PM, Richard Heathfield wrote:

    Context:

    #define HHH(x) 0

    correctly simulates HHH(DD).

    Of course, it ignores HHH's source code, but I have precedent >>>>>>>>>>> to tell
    me that that's okay when correctly simulating.
    Saying that not doing any simulation is the correct way to do a >>>>>>>>>> simulation in ridiculously incorrect and you know it.
    OK, let’s have it simulate one instruction then. Where’s the >>>>>>>>> cutoff?

    One instruction.

    HHH only bothers simulating DD's call to HHH. It ignores the
    rest of DD.

    As Mr Olcott puts it: "Saying that not doing any simulation is >>>>>>>> the correct way to do a simulation in ridiculously incorrect and >>>>>>>> you know it."

    But my simulation correctly simulates just as many lines as his >>>>>>>> does.


    Things a damned liar would say


    Wow!

    If we wouldn't have called Trump's lies about election
    fraud mere "misinformation" and called the damned lies
    of a damned liar the threat to Democracy may have been
    averted.

    Huh? Does your brain have enough oxygen? Are you drowning or
    something? A quick sand of your own lies?


    #LiesAboutElectionFraud

    Never any evidence of election fraud
    that could possibly change the results.

    Trump is just copying Hitler's "big lie"


    And your halt decider is? Crap, Lie, or both?

    Verifiably
    Not a halt decider as you have admitted on the record:

    On 8/19/2025 6:01 PM, olcott wrote:
    On 8/19/2025 4:42 PM, dbush wrote:
    His argument is that the decision that X(Y) is making is not "does
    algorithm Y halt", but basically "does there exist an implementation
    of function X that can simulate function call Y() to completion?"


    Yes.

    This happens to coincide with the halting function in cases where

    Yes

    function Y does not call function X at some point, but not in cases
    where it does.

    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From olcott@polcott333@gmail.com to comp.theory on Wed Aug 20 16:01:36 2025
    From Newsgroup: comp.theory

    On 8/20/2025 3:15 PM, Mike Terry wrote:
    On 20/08/2025 03:08, Richard Heathfield wrote:
    On 20/08/2025 02:37, Mike Terry wrote:
    On 19/08/2025 19:06, Richard Heathfield wrote:

    <snip>

    But HHH is not a factorial calculation. It is a function that takes
    a function pointer it can only assign or dereference, and then
    returns 0.

    ok, we've got onto cross purposes.

    Agreed.

    I was not talking about HHH, because HHH involves recursive
    simulation, not recursive call.

    Understood.

    Let me re-state: I accept your explanation that that's not how it
    works. It *should* work that way, and the way it does work is
    clearly broken, but okay, it doesn't.


    That can't happen - (c) is performing the same calculation as (a):
    same code and the same input.

    Sure it could. When HHH detects that it's about to recurse into
    itself it could just start off a new simulation, and if it starts to
    run away with itself it could can /its/ simulation and return 0.

    You are describing recursive /simulation/ (or emulation).  (I
    think...)  HHH does not involve recursive call, so what I was saying
    does not apply to HHH.

    Right.

    IF (as I originally thought) HHH worked by recursing into a new
    simulation every time it hit DD's HHH call, that would be quite
    clever. It would be easy to add static metrics to make the call about
    aborting the recursion and unwinding the stack back to where it can
    continue simulating DD, and nothing would be discarded as being
    "unreachable".

    Let's see if I've fully got what you're saying.  I'll use notation
    HHH[n] for HHH running at nested simulation level n.  So HHH[0] is outer HHH etc.

    [Yeah, I know your eyes are already starting to glaze over!  All I can
    say is the steps below are little steps with no big jumps, so if you
    grab a pad and pen and cup of tea you can get through it - believe that
    that can happen!!]

    1. HHH[0] is simulating DD[1], and spots DD's "call HHH".
    2. Rather than simulating that x86 call instruction, HHH decides to spin
    up a new
       simulation of ... DD?  [must be...]

    Numbering begins at 0.

    HHH uses cooperative multi-tasking to switch between
    itself and its simulated DD instance.

    HHH[0](DD) called from main() begins simulating its
    DD[0] instance. To do this it must create a separate
    DD[0] process context with its own set of 16 virtual
    registers and virtual stack.

    When HHH[0] encounters the call from DD[0] to HHH[1](DD)
    HHH[0] simulates this HHH[1] instance within this same
    DD[0] process context.

    When HHH[1] begins simulating its own DD[1] it must
    create a separate DD[1] process context with its own
    set of 16 virtual registers and virtual stack...
    --
    Copyright 2025 Olcott "Talent hits a target no one else can hit; Genius
    hits a target no one else can see." Arthur Schopenhauer
    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From olcott@polcott333@gmail.com to comp.theory on Wed Aug 20 16:02:35 2025
    From Newsgroup: comp.theory

    On 8/20/2025 3:50 PM, Chris M. Thomasson wrote:
    On 8/20/2025 1:44 PM, olcott wrote:
    On 8/20/2025 3:42 PM, Chris M. Thomasson wrote:
    On 8/20/2025 1:41 PM, olcott wrote:
    On 8/20/2025 3:32 PM, Chris M. Thomasson wrote:
    On 8/20/2025 1:27 PM, olcott wrote:
    On 8/20/2025 3:19 PM, Chris M. Thomasson wrote:
    On 8/20/2025 7:18 AM, olcott wrote:
    On 8/20/2025 8:58 AM, Richard Heathfield wrote:
    On 20/08/2025 10:23, joes wrote:
    Am Tue, 19 Aug 2025 21:17:50 -0500 schrieb olcott:
    On 8/19/2025 8:15 PM, Richard Heathfield wrote:

    Context:

    #define HHH(x) 0

    correctly simulates HHH(DD).

    Of course, it ignores HHH's source code, but I have
    precedent to tell
    me that that's okay when correctly simulating.
    Saying that not doing any simulation is the correct way to do a >>>>>>>>>>> simulation in ridiculously incorrect and you know it.
    OK, let’s have it simulate one instruction then. Where’s the >>>>>>>>>> cutoff?

    One instruction.

    HHH only bothers simulating DD's call to HHH. It ignores the >>>>>>>>> rest of DD.

    As Mr Olcott puts it: "Saying that not doing any simulation is >>>>>>>>> the correct way to do a simulation in ridiculously incorrect >>>>>>>>> and you know it."

    But my simulation correctly simulates just as many lines as his >>>>>>>>> does.


    Things a damned liar would say


    Wow!

    If we wouldn't have called Trump's lies about election
    fraud mere "misinformation" and called the damned lies
    of a damned liar the threat to Democracy may have been
    averted.

    Huh? Does your brain have enough oxygen? Are you drowning or
    something? A quick sand of your own lies?


    #LiesAboutElectionFraud

    Never any evidence of election fraud
    that could possibly change the results.

    Trump is just copying Hitler's "big lie"


    And your halt decider is? Crap, Lie, or both?

    Verifiably correct as all Five LLM systems agree.


    An what does Trump have to say about this matter? lol.

    As of yesterday
    He is beginning to see that he is not on a path to Heaven...
    --
    Copyright 2025 Olcott "Talent hits a target no one else can hit; Genius
    hits a target no one else can see." Arthur Schopenhauer
    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From dbush@dbush.mobile@gmail.com to comp.theory on Wed Aug 20 17:16:05 2025
    From Newsgroup: comp.theory

    On 8/20/2025 5:01 PM, olcott wrote:
    On 8/20/2025 3:15 PM, Mike Terry wrote:
    On 20/08/2025 03:08, Richard Heathfield wrote:
    On 20/08/2025 02:37, Mike Terry wrote:
    On 19/08/2025 19:06, Richard Heathfield wrote:

    <snip>

    But HHH is not a factorial calculation. It is a function that takes >>>>> a function pointer it can only assign or dereference, and then
    returns 0.

    ok, we've got onto cross purposes.

    Agreed.

    I was not talking about HHH, because HHH involves recursive
    simulation, not recursive call.

    Understood.

    Let me re-state: I accept your explanation that that's not how it
    works. It *should* work that way, and the way it does work is
    clearly broken, but okay, it doesn't.


    That can't happen - (c) is performing the same calculation as (a): >>>>>> same code and the same input.

    Sure it could. When HHH detects that it's about to recurse into
    itself it could just start off a new simulation, and if it starts
    to run away with itself it could can /its/ simulation and return 0.

    You are describing recursive /simulation/ (or emulation).  (I
    think...)  HHH does not involve recursive call, so what I was saying >>>> does not apply to HHH.

    Right.

    IF (as I originally thought) HHH worked by recursing into a new
    simulation every time it hit DD's HHH call, that would be quite
    clever. It would be easy to add static metrics to make the call about
    aborting the recursion and unwinding the stack back to where it can
    continue simulating DD, and nothing would be discarded as being
    "unreachable".

    Let's see if I've fully got what you're saying.  I'll use notation
    HHH[n] for HHH running at nested simulation level n.  So HHH[0] is
    outer HHH etc.

    [Yeah, I know your eyes are already starting to glaze over!  All I can
    say is the steps below are little steps with no big jumps, so if you
    grab a pad and pen and cup of tea you can get through it - believe
    that that can happen!!]

    1. HHH[0] is simulating DD[1], and spots DD's "call HHH".
    2. Rather than simulating that x86 call instruction, HHH decides to
    spin up a new
        simulation of ... DD?  [must be...]

    Numbering begins at 0.

    HHH uses cooperative multi-tasking to switch between
    itself and its simulated DD instance.

    HHH[0](DD) called from main()

    Or more accurately, HHH[0](DD,<empty execution trace>)

    begins simulating its
    DD[0] instance. To do this it must create a separate
    DD[0] process context with its own set of 16 virtual
    registers and virtual stack.

    When HHH[0] encounters the call from DD[0] to HHH[1](DD)

    i.e. HHH[1](DD,<non-empty execution trace>

    HHH[0] simulates this HHH[1] instance within this same
    DD[0] process context.

    in other words, you change the input.

    Changing the input is not allowed.

    Not that it matters anyway since HHH takes an execution trace as input
    and is therefore DISQUALIFIED from being a halt decider / termination analyzer.

    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From olcott@polcott333@gmail.com to comp.theory on Wed Aug 20 16:19:53 2025
    From Newsgroup: comp.theory

    On 8/20/2025 4:16 PM, dbush wrote:
    On 8/20/2025 5:01 PM, olcott wrote:
    On 8/20/2025 3:15 PM, Mike Terry wrote:
    On 20/08/2025 03:08, Richard Heathfield wrote:
    On 20/08/2025 02:37, Mike Terry wrote:
    On 19/08/2025 19:06, Richard Heathfield wrote:

    <snip>

    But HHH is not a factorial calculation. It is a function that
    takes a function pointer it can only assign or dereference, and
    then returns 0.

    ok, we've got onto cross purposes.

    Agreed.

    I was not talking about HHH, because HHH involves recursive
    simulation, not recursive call.

    Understood.

    Let me re-state: I accept your explanation that that's not how it
    works. It *should* work that way, and the way it does work is
    clearly broken, but okay, it doesn't.


    That can't happen - (c) is performing the same calculation as
    (a): same code and the same input.

    Sure it could. When HHH detects that it's about to recurse into
    itself it could just start off a new simulation, and if it starts >>>>>> to run away with itself it could can /its/ simulation and return 0. >>>>>
    You are describing recursive /simulation/ (or emulation).  (I
    think...)  HHH does not involve recursive call, so what I was
    saying does not apply to HHH.

    Right.

    IF (as I originally thought) HHH worked by recursing into a new
    simulation every time it hit DD's HHH call, that would be quite
    clever. It would be easy to add static metrics to make the call
    about aborting the recursion and unwinding the stack back to where
    it can continue simulating DD, and nothing would be discarded as
    being "unreachable".

    Let's see if I've fully got what you're saying.  I'll use notation
    HHH[n] for HHH running at nested simulation level n.  So HHH[0] is
    outer HHH etc.

    [Yeah, I know your eyes are already starting to glaze over!  All I
    can say is the steps below are little steps with no big jumps, so if
    you grab a pad and pen and cup of tea you can get through it -
    believe that that can happen!!]

    1. HHH[0] is simulating DD[1], and spots DD's "call HHH".
    2. Rather than simulating that x86 call instruction, HHH decides to
    spin up a new
        simulation of ... DD?  [must be...]

    Numbering begins at 0.

    HHH uses cooperative multi-tasking to switch between
    itself and its simulated DD instance.

    HHH[0](DD) called from main()

    Or more accurately, HHH[0](DD,<empty execution trace>)


    The execution trace is not needed to correctly
    determine that DD correctly simulated by HHH is
    non-halting. All five LLM systems figured that
    out on the basis of static analysis of the C text
    that HHH(DD)==0 is correct.
    --
    Copyright 2025 Olcott "Talent hits a target no one else can hit; Genius
    hits a target no one else can see." Arthur Schopenhauer
    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From dbush@dbush.mobile@gmail.com to comp.theory on Wed Aug 20 17:24:07 2025
    From Newsgroup: comp.theory

    On 8/20/2025 5:19 PM, olcott wrote:
    On 8/20/2025 4:16 PM, dbush wrote:
    On 8/20/2025 5:01 PM, olcott wrote:
    On 8/20/2025 3:15 PM, Mike Terry wrote:
    On 20/08/2025 03:08, Richard Heathfield wrote:
    On 20/08/2025 02:37, Mike Terry wrote:
    On 19/08/2025 19:06, Richard Heathfield wrote:

    <snip>

    But HHH is not a factorial calculation. It is a function that
    takes a function pointer it can only assign or dereference, and >>>>>>> then returns 0.

    ok, we've got onto cross purposes.

    Agreed.

    I was not talking about HHH, because HHH involves recursive
    simulation, not recursive call.

    Understood.

    Let me re-state: I accept your explanation that that's not how it
    works. It *should* work that way, and the way it does work is
    clearly broken, but okay, it doesn't.


    That can't happen - (c) is performing the same calculation as >>>>>>>> (a): same code and the same input.

    Sure it could. When HHH detects that it's about to recurse into >>>>>>> itself it could just start off a new simulation, and if it starts >>>>>>> to run away with itself it could can /its/ simulation and return 0. >>>>>>
    You are describing recursive /simulation/ (or emulation).  (I
    think...)  HHH does not involve recursive call, so what I was
    saying does not apply to HHH.

    Right.

    IF (as I originally thought) HHH worked by recursing into a new
    simulation every time it hit DD's HHH call, that would be quite
    clever. It would be easy to add static metrics to make the call
    about aborting the recursion and unwinding the stack back to where
    it can continue simulating DD, and nothing would be discarded as
    being "unreachable".

    Let's see if I've fully got what you're saying.  I'll use notation
    HHH[n] for HHH running at nested simulation level n.  So HHH[0] is
    outer HHH etc.

    [Yeah, I know your eyes are already starting to glaze over!  All I
    can say is the steps below are little steps with no big jumps, so if
    you grab a pad and pen and cup of tea you can get through it -
    believe that that can happen!!]

    1. HHH[0] is simulating DD[1], and spots DD's "call HHH".
    2. Rather than simulating that x86 call instruction, HHH decides to
    spin up a new
        simulation of ... DD?  [must be...]

    Numbering begins at 0.

    HHH uses cooperative multi-tasking to switch between
    itself and its simulated DD instance.

    HHH[0](DD) called from main()

    Or more accurately, HHH[0](DD,<empty execution trace>)


    The execution trace is not needed to correctly
    determine that DD correctly simulated by HHH

    i.e. changing the input.

    Changing the input is not allowed.

    Not that it matters anyway since HHH takes an execution trace as input
    and is therefore DISQUALIFIED from being a halt decider / termination analyzer.

    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From Mike Terry@news.dead.person.stones@darjeeling.plus.com to comp.theory on Thu Aug 21 02:24:10 2025
    From Newsgroup: comp.theory

    On 20/08/2025 22:01, olcott wrote:
    On 8/20/2025 3:15 PM, Mike Terry wrote:
    On 20/08/2025 03:08, Richard Heathfield wrote:
    On 20/08/2025 02:37, Mike Terry wrote:
    On 19/08/2025 19:06, Richard Heathfield wrote:

    <snip>

    But HHH is not a factorial calculation. It is a function that takes a function pointer it can
    only assign or dereference, and then returns 0.

    ok, we've got onto cross purposes.

    Agreed.

    I was not talking about HHH, because HHH involves recursive simulation, not recursive call.

    Understood.

    Let me re-state: I accept your explanation that that's not how it
    works. It *should* work that way, and the way it does work is
    clearly broken, but okay, it doesn't.


    That can't happen - (c) is performing the same calculation as (a): same code and the same input.

    Sure it could. When HHH detects that it's about to recurse into itself it could just start off
    a new simulation, and if it starts to run away with itself it could can /its/ simulation and
    return 0.

    You are describing recursive /simulation/ (or emulation).  (I think...)  HHH does not involve
    recursive call, so what I was saying does not apply to HHH.

    Right.

    IF (as I originally thought) HHH worked by recursing into a new simulation every time it hit DD's
    HHH call, that would be quite clever. It would be easy to add static metrics to make the call
    about aborting the recursion and unwinding the stack back to where it can continue simulating DD,
    and nothing would be discarded as being "unreachable".

    Let's see if I've fully got what you're saying.  I'll use notation HHH[n] for HHH running at
    nested simulation level n.  So HHH[0] is outer HHH etc.

    [Yeah, I know your eyes are already starting to glaze over!  All I can say is the steps below are
    little steps with no big jumps, so if you grab a pad and pen and cup of tea you can get through it
    - believe that that can happen!!]

    1. HHH[0] is simulating DD[1], and spots DD's "call HHH".
    2. Rather than simulating that x86 call instruction, HHH decides to spin up a new
        simulation of ... DD?  [must be...]

    Numbering begins at 0.

    My notation uses [n] to represent "simulation nesting level" n, with the convention that level 0
    represents unsimulated code, i.e. called directly from main().

    In all your examples, a program only performs one simulation of its own, but the program its
    simulating might itself start a /nested/ simulation, and my notation was fine for that, because any
    simulation was uniquely identified by its depth. In RH's suggested design AIUI, outer HHH starts
    multiple simulations, and each of those is at level 1, so my notation broke down. So I chose to
    label them [1b], [1c], [1d]...

    Similarly, in my "play" version of x86utm code where I added in the oft-requested "simulation depth"
    column in the output trace, that would break down if I coded RH's suggested HHH design: all the
    [1b], [1c], [1d]... simulations would generate output trace entries showing simulation [1], because
    they're all at depth 1 of simulation. [I don't plan on coding RH's suggestion though, so I won't be
    "fixing" my code!]

    HHH uses cooperative multi-tasking to switch between
    itself and its simulated DD instance.

    HHH[0](DD) called from main() begins simulating its
    DD[0] instance.

    That's not my notation. DD[0] would represent DD called from main(), i.e. unsimulated.


    I suppose to be completely logical, "simulation Id" might follow a tree structure like

    <level 0 sequence>.<level 1 sequence>.<level 2 sequence>...

    where a component sequence number n represents the n'th simulation started by its "parent"
    simulator. So where my reply to RH identified simulations used the haphazard scheme I first
    described above, in my all-new "logical" scheme they would be as follows:

    RH Reply notation All-new "logical" notation
    ----------------- ------------------
    HHH[0] HHH [0]
    DD [1] DD [0.0]
    DD [1b] DD [0.1]
    DD [1c] DD [0.2]
    ...

    And for your current HHH design, the new simulation Ids would be
    HHH[0]
    DD [0.0]
    DD [0.0.0]

    But hey, too late now :)


    [..snip..]

    Mike.

    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From Richard Heathfield@rjh@cpax.org.uk to comp.theory on Thu Aug 21 02:45:29 2025
    From Newsgroup: comp.theory

    In a long and detailed reply, on 20/08/2025 21:15, Mike Terry
    wrote (among much else):

    Yeah, I know your eyes are already starting to glaze over!

    They did. But I persevered, and I followed 59.31% of it,
    according to my notes, which may not be entirely accurate. I
    think my biggest practical take from it was that you kinda got my
    point, which I'll take for what it's worth, and I got maybe more
    than half of yours.

    When DD is run "natively" the so-called "unreachable" code is
    reached with no problem.

    Presactly. And /therefore/ a correct simulation must reach it too.
    --
    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

    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From olcott@polcott333@gmail.com to comp.theory,comp.lang.c++,comp.lang.c,comp.ai.philosophy on Wed Aug 20 20:45:38 2025
    From Newsgroup: comp.theory

    On 8/20/2025 8:24 PM, Mike Terry wrote:
    On 20/08/2025 22:01, olcott wrote:
    On 8/20/2025 3:15 PM, Mike Terry wrote:
    On 20/08/2025 03:08, Richard Heathfield wrote:
    On 20/08/2025 02:37, Mike Terry wrote:
    On 19/08/2025 19:06, Richard Heathfield wrote:

    <snip>

    But HHH is not a factorial calculation. It is a function that
    takes a function pointer it can only assign or dereference, and
    then returns 0.

    ok, we've got onto cross purposes.

    Agreed.

    I was not talking about HHH, because HHH involves recursive
    simulation, not recursive call.

    Understood.

    Let me re-state: I accept your explanation that that's not how it
    works. It *should* work that way, and the way it does work is
    clearly broken, but okay, it doesn't.


    That can't happen - (c) is performing the same calculation as
    (a): same code and the same input.

    Sure it could. When HHH detects that it's about to recurse into
    itself it could just start off a new simulation, and if it starts >>>>>> to run away with itself it could can /its/ simulation and return 0. >>>>>
    You are describing recursive /simulation/ (or emulation).  (I
    think...)  HHH does not involve recursive call, so what I was
    saying does not apply to HHH.

    Right.

    IF (as I originally thought) HHH worked by recursing into a new
    simulation every time it hit DD's HHH call, that would be quite
    clever. It would be easy to add static metrics to make the call
    about aborting the recursion and unwinding the stack back to where
    it can continue simulating DD, and nothing would be discarded as
    being "unreachable".

    Let's see if I've fully got what you're saying.  I'll use notation
    HHH[n] for HHH running at nested simulation level n.  So HHH[0] is
    outer HHH etc.

    [Yeah, I know your eyes are already starting to glaze over!  All I
    can say is the steps below are little steps with no big jumps, so if
    you grab a pad and pen and cup of tea you can get through it -
    believe that that can happen!!]

    1. HHH[0] is simulating DD[1], and spots DD's "call HHH".
    2. Rather than simulating that x86 call instruction, HHH decides to
    spin up a new
        simulation of ... DD?  [must be...]

    Numbering begins at 0.

    My notation uses [n] to represent "simulation nesting level" n, with the convention that level 0 represents unsimulated code, i.e. called
    directly from main().


    I am changing my notation to be consistent with yours.
    *These details are crucial for you and Kaz to see*

    *Numbering begins at 0 for direct execution*
    DD() is executed in main

    HHH uses cooperative multi-tasking to switch between
    itself and its simulated DD instance.

    DD[0] is invoked and calls HHH[0] that creates a
    separate DD[1] process context with its own set of
    16 virtual registers and virtual stack.

    When HHH[0] encounters the call from DD[1] to HHH[1](DD)
    HHH[0] simulates this HHH[1] instance within this same
    DD[1] process context.

    When HHH[1] begins simulating its own DD[2] it must
    create a separate DD[2] process context with its own
    set of 16 virtual registers and virtual stack...

    on and on until OOM error (proving non-halting) when
    we eliminate the u32* execution_trace data.
    --
    Copyright 2025 Olcott "Talent hits a target no one else can hit; Genius
    hits a target no one else can see." Arthur Schopenhauer
    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From olcott@polcott333@gmail.com to comp.theory on Wed Aug 20 20:50:47 2025
    From Newsgroup: comp.theory

    On 8/20/2025 8:45 PM, Richard Heathfield wrote:
    In a long and detailed reply, on 20/08/2025 21:15, Mike Terry wrote
    (among much else):

    Yeah, I know your eyes are already starting to glaze over!

    They did. But I persevered, and I followed 59.31% of it, according to my notes, which may not be entirely accurate. I think my biggest practical
    take from it was that you kinda got my point, which I'll take for what
    it's worth, and I got maybe more than half of yours.

    When DD is run "natively" the so-called "unreachable" code is reached
    with no problem.

    Presactly. And /therefore/ a correct simulation must reach it too.


    HHH uses cooperative multi-tasking to switch between
    itself and its simulated DD instance.

    DD[0] is invoked and calls HHH[0] that creates a
    separate DD[1] process context with its own set of
    16 virtual registers and virtual stack.

    When HHH[0] encounters the call from DD[1] to HHH[1](DD)
    HHH[0] simulates this HHH[1] instance within this same
    DD[1] process context.

    When HHH[1] begins simulating its own DD[2] it must
    create a separate DD[2] process context with its own
    set of 16 virtual registers and virtual stack...

    on and on until OOM error (proving non-halting) when
    we eliminate the u32* execution_trace data.
    --
    Copyright 2025 Olcott "Talent hits a target no one else can hit; Genius
    hits a target no one else can see." Arthur Schopenhauer
    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From Mike Terry@news.dead.person.stones@darjeeling.plus.com to comp.theory on Thu Aug 21 03:23:30 2025
    From Newsgroup: comp.theory

    On 21/08/2025 02:45, Richard Heathfield wrote:
    In a long and detailed reply, on 20/08/2025 21:15, Mike Terry wrote (among much else):

    Yeah, I know your eyes are already starting to glaze over!

    They did. But I persevered, and I followed 59.31% of it, according to my notes, which may not be
    entirely accurate. I think my biggest practical take from it was that you kinda got my point, which
    I'll take for what it's worth, and I got maybe more than half of yours.

    When DD is run "natively" the so-called "unreachable" code is reached with no problem.

    Presactly. And /therefore/ a correct simulation must reach it too.

    Excisely. Or at least being careful we might say a "correct /full/ simulation", in case we are
    talking to people of the persuasion that partial simulations are ok things to talk about and indeed
    are the "default" meaning for "simulation" without further qualification. We want to converse
    without misunderstanding with as many people as possible!

    In any case we also agree that a correct /partial/ simulation [*] need /not/ "reach" that code.
    E.g. perhaps just one x86 instruction is (correctly) simulated and then the (partial) simulation is
    abandonned for whatever reason. There is nothing amiss here, unless the programmer claims the code
    after the first instruction is "unreachable"! Who's to say subsequent instructions can't be reached
    by a longer simulation, or simply by executing the code natively?


    Mike.

    [*] meaning a partial simulation that simulated the right sequence of instructions with the right
    data, up to the point where it decides to stop for whatever reason.

    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From Richard Heathfield@rjh@cpax.org.uk to comp.theory on Thu Aug 21 03:25:21 2025
    From Newsgroup: comp.theory

    On 20/08/2025 21:42, Chris M. Thomasson wrote:

    <snip>

    And your halt decider is? Crap, Lie, or both?

    Well, it gets the answer wrong, as one can easily see by
    compiling and running DD().

    Of course, that doesn't answer /your/ question.

    I don't /know/ the answer to your question, but I can guess, of
    course, and my guess is that it's crap.

    Maybe - just *maybe* - Mr Olcott has managed to keep a gag
    running for 22 years and still finds it amusing to parade his
    Comp Sci bollocks around and lure people into taking him
    seriously while he stuffs a satyrical fist into his mouth and
    chortles at us all. I have to concede the possibility.

    But I don't think so. I think he's sincere; I really do.
    Hopelessly misguided? Sure. Innately unable to "get" Turing's
    point? Indubitably. Capable of misrepresenting people in the hope
    that he can twist their words into support for his case? No
    question (videlicet his citation of my agreeing that he has a
    case for returning 0 from HHH(DD), which he stopped doing only
    when I turned it into a #define)? Without question. But I don't
    think he's lying about his 'decider'. I really think he really
    thinks he's got something.

    So it's not a lie. It's just crap. Sheer, unmitigated bollocks,
    but probably sincere bollocks.

    Does that answer your question?
    --
    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

    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From olcott@polcott333@gmail.com to comp.theory on Wed Aug 20 21:34:05 2025
    From Newsgroup: comp.theory

    On 8/20/2025 9:23 PM, Mike Terry wrote:
    On 21/08/2025 02:45, Richard Heathfield wrote:
    In a long and detailed reply, on 20/08/2025 21:15, Mike Terry wrote
    (among much else):

    Yeah, I know your eyes are already starting to glaze over!

    They did. But I persevered, and I followed 59.31% of it, according to
    my notes, which may not be entirely accurate. I think my biggest
    practical take from it was that you kinda got my point, which I'll
    take for what it's worth, and I got maybe more than half of yours.

    When DD is run "natively" the so-called "unreachable" code is reached
    with no problem.

    Presactly. And /therefore/ a correct simulation must reach it too.

    Excisely.  Or at least being careful we might say a "correct /full/ simulation", in case we are talking to people of the persuasion that
    partial simulations are ok things to talk about and indeed are the
    "default" meaning for "simulation" without further qualification.  We
    want to converse without misunderstanding with as many people as possible!

    In any case we also agree that a correct /partial/ simulation [*] need / not/ "reach" that code. E.g. perhaps just one x86 instruction is
    (correctly) simulated and then the (partial) simulation is abandonned
    for whatever reason.  There is nothing amiss here, unless the programmer claims the code after the first instruction is "unreachable"!  Who's to
    say subsequent instructions can't be reached by a longer simulation, or simply by executing the code natively?


    Mike.

    [*] meaning a partial simulation that simulated the right sequence of instructions with the right data, up to the point where it decides to
    stop for whatever reason.


    *An OOM error proves that this is incorrect*

    HHH uses cooperative multi-tasking to switch between
    itself and its simulated DD instance.

    DD[0] is invoked and calls HHH[0] that creates a
    separate DD[1] process context with its own set of
    16 virtual registers and virtual stack.

    When HHH[0] encounters the call from DD[1] to HHH[1](DD)
    HHH[0] simulates this HHH[1] instance within this same
    DD[1] process context.

    When HHH[1] begins simulating its own DD[2] it must
    create a separate DD[2] process context with its own
    set of 16 virtual registers and virtual stack...

    on and on until OOM error (proving non-halting) when
    we eliminate the u32* execution_trace data.
    --
    Copyright 2025 Olcott "Talent hits a target no one else can hit; Genius
    hits a target no one else can see." Arthur Schopenhauer
    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From olcott@polcott333@gmail.com to comp.theory on Wed Aug 20 21:36:32 2025
    From Newsgroup: comp.theory

    On 8/20/2025 9:25 PM, Richard Heathfield wrote:
    On 20/08/2025 21:42, Chris M. Thomasson wrote:

    <snip>

    And your halt decider is? Crap, Lie, or both?

    Well, it gets the answer wrong, as one can easily see by compiling and running DD().

    Of course, that doesn't answer /your/ question.

    I don't /know/ the answer to your question, but I can guess, of course,
    and my guess is that it's crap.

    Maybe - just *maybe* - Mr Olcott has managed to keep a gag running for
    22 years and still finds it amusing to parade his Comp Sci bollocks
    around and lure people into taking him seriously while he stuffs a
    satyrical fist into his mouth and chortles at us all. I have to concede
    the possibility.

    But I don't think so. I think he's sincere; I really do. Hopelessly misguided? Sure. Innately unable to "get" Turing's point? Indubitably. Capable of misrepresenting people in the hope that he can twist their
    words into support for his case? No question (videlicet his citation of
    my agreeing that he has a case for returning 0 from HHH(DD), which he stopped doing only when I turned it into a #define)? Without question.
    But I don't think he's lying about his 'decider'. I really think he
    really thinks he's got something.

    So it's not a lie. It's just crap. Sheer, unmitigated bollocks, but
    probably sincere bollocks.

    Does that answer your question?


    HHH uses cooperative multi-tasking to switch between
    itself and its simulated DD instance.

    DD[0] is invoked and calls HHH[0] that creates a
    separate DD[1] process context with its own set of
    16 virtual registers and virtual stack.

    When HHH[0] encounters the call from DD[1] to HHH[1](DD)
    HHH[0] simulates this HHH[1] instance within this same
    DD[1] process context.

    When HHH[1] begins simulating its own DD[2] it must
    create a separate DD[2] process context with its own
    set of 16 virtual registers and virtual stack...

    on and on until OOM error (proving non-halting) when
    we eliminate the u32* execution_trace data.
    --
    Copyright 2025 Olcott "Talent hits a target no one else can hit; Genius
    hits a target no one else can see." Arthur Schopenhauer
    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From Richard Heathfield@rjh@cpax.org.uk to comp.theory on Thu Aug 21 05:02:48 2025
    From Newsgroup: comp.theory

    On 21/08/2025 03:36, olcott wrote:
    On 8/20/2025 9:25 PM, Richard Heathfield wrote:
    On 20/08/2025 21:42, Chris M. Thomasson wrote:

    <snip>

    And your halt decider is? Crap, Lie, or both?

    Well, it gets the answer wrong, as one can easily see by
    compiling and running DD().

    Of course, that doesn't answer /your/ question.

    I don't /know/ the answer to your question, but I can guess, of
    course, and my guess is that it's crap.

    Maybe - just *maybe* - Mr Olcott has managed to keep a gag
    running for 22 years and still finds it amusing to parade his
    Comp Sci bollocks around and lure people into taking him
    seriously while he stuffs a satyrical fist into his mouth and
    chortles at us all. I have to concede the possibility.

    But I don't think so. I think he's sincere; I really do.
    Hopelessly misguided? Sure. Innately unable to "get" Turing's
    point? Indubitably. Capable of misrepresenting people in the
    hope that he can twist their words into support for his case?
    No question (videlicet his citation of my agreeing that he has
    a case for returning 0 from HHH(DD), which he stopped doing
    only when I turned it into a #define)? Without question. But I
    don't think he's lying about his 'decider'. I really think he
    really thinks he's got something.

    So it's not a lie. It's just crap. Sheer, unmitigated bollocks,
    but probably sincere bollocks.

    Does that answer your question?

    HHH uses cooperative multi-tasking to switch between
    itself and its simulated DD instance.

    Look up "non sequitur" when you get a minute.
    --
    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

    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From Fred. Zwarts@F.Zwarts@HetNet.nl to comp.theory on Thu Aug 21 10:02:37 2025
    From Newsgroup: comp.theory

    Op 20.aug.2025 om 16:31 schreef olcott:
    On 8/20/2025 4:16 AM, Fred. Zwarts wrote:
    Op 19.aug.2025 om 16:41 schreef olcott:
    On 8/19/2025 1:46 AM, Richard Heathfield wrote:
    On 19/08/2025 05:21, Mike Terry wrote:
    On 19/08/2025 03:40, Richard Heathfield wrote:
    On 19/08/2025 03:07, dbush wrote:

    <snip>

    So we see that Richard Heathfield agreed that HHH can't give a
    correct answer, as Linz and other have proved and as you have
    *explicitly* agreed is correct.


    I look at it this way.

    HHH cannot reasonably abort as soon as it detects recursion. After >>>>>> all, there are lots of recursive algorithms around, and plenty of >>>>>> them terminate. It has to dig a little deeper than that.

    So by the time we're some way in, we have several levels of
    recursion:

    DD -> HHH -> DD -> HHH -> DD -> HHH -> DD
           (a)          (b)          (c)

    Let's say (c) decides enough is enough.

    I think maybe you're not distinguishing properly between recursive
    call and recursive emulation.

    You may be right, or you may not be, but my explanation seems at
    least at first glance to hold together, makes intuitive sense, and
    goes some way to explaining why some one could cling to the wrong
    answer for 22 years.

    If we were talking *recursive call*, (c) might end the recursion in >>>>> the way you describe due to having been called with different input,

    Or indeed identical input. After all, what's changing?

    allowing control to percolate back through (b) and then to (a).
    That's how a simple Factorial implementation might work:

       int Factorial (int n)
       {
         if (n == 1)
           return 1;
         else
           return n * Factorial (n-1);

    Terrible example, but has the merit of familiarity.

       }

    When evaluating Factorial(3), a nested Factorial(2) is called,
    which in turn nests a Factorial(1) call.  That call returns and the >>>>> recursion breaks (from inner to outer invocations).

    Great, everyone knows this example.  Note that it requires that the >>>>> nested calls are made with differnt arguments.

    Indeed, although of course it doesn't have to be that way.

    In the case of PO's DD/HHH, the arguments are (or at least
    represent) exactly the same computation to be emulated at each
    level.  So (c) [an L2 = Level 2 emulation] will not suddenly decide >>>>> its had enough - if it did, then (a) would have done it earlier.

    Then either there's some state kicking around, or HHH will
    automatically decide that all recursion is runaway recursion.

    But with DD/HHH we have *recursive emulation*.  So HHH [a] is still >>>>> running when (c) is reached - it's busy running around its "emulate >>>>> instruction" loop, testing each time round whether its seen enough
    evidence to decide to quit emulating.

    Okay, so that's clearly a design flaw. Bit I do see the point. /
    Because/ of that design flaw, the fix isn't going to be an easy one.


    Lines 996 through 1006 matches the
    *recursive simulation non-halting behavior pattern*
    https://github.com/plolcott/x86utm/blob/master/Halt7.c

    And it shows the bug in the code. HHH incorrectly assumes a non-
    termination behaviour when there is only a finite recursion.
    It does not correctly analyse the conditional branch instructions
    during the simulation. It does not prove that the conditions for the
    alternate branches will never be met when the simulation would continue.


    <snip>

    OTOH you could say that since HHH only has to handle ONE INPUT CASE >>>>> (DD), PO might have optimised the HHH code to just return 0
    straight away, and the result would be the same!  That's true - DD >>>>> would still halt, and HHH would still claim it never halts. The
    problem here is that all the emulation stuff is /required/ so that
    PO can confuse himself into thinking something more magical is
    going on, justifying various crazy claims.

    Hell of a way to run a railroad. Still, no harm done. At least now I
    know how he /could/ have got the programming right, even if his
    theory is further round the bend than Harpic.


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

    and the input to HHH(DD) specifies runaway recursion.

    As usual an incorrect claim without evidence.
    The input specifies a DD based on a HHH that aborts the simulation
    after a few cycles. This means that this input specifies a program
    with a finite recursion, followed by a final halt state.

    The reason that I want to quit talking to
    you is that I keep correctly your error
    that stopping running means halting when
    stopping running only means halting when
    the final halt state is reached and you
    ignore this correction.


    As usual incorrect claims without valid counter arguments.
    You keep saying that the failure of HHH to reach the specified halt
    state proves that non-halting behaviour is specified, but you can not
    prove that.
    The reason you don't want to talk any more is that you cannot find a
    proof for your incorrect claim that non-termination behaviour is
    specified, when HHH only fails to see the specified final halt state.
    You don't want to open your eyes and see the facts. You prefer to keep
    your eyes closed and pretend that the facts do not exist.
    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From Fred. Zwarts@F.Zwarts@HetNet.nl to comp.theory on Thu Aug 21 10:06:53 2025
    From Newsgroup: comp.theory

    Op 20.aug.2025 om 19:17 schreef olcott:
    On 8/20/2025 11:56 AM, Kaz Kylheku wrote:
    On 2025-08-20, Fred. Zwarts <F.Zwarts@HetNet.nl> wrote:
    Op 20.aug.2025 om 00:35 schreef olcott:
    ChatGPT 4.0, 5.0 Claude AI, Grok and Gemini
    all figured out on their own what the
    *recursive simulation non-halting behavior pattern*
    is and that on that basis HHH(DD)==0 is correct.

    Based on the incorrect assumption that HHH detects a non-termination
    behaviour.

    But it does. His contraption works that far. HHH (outer) detects
    the non-termination of DD calling HHH (inner). It is contrived
    to detect that specific case of nontermination.

    HHH splits itself into two by burning a static fuse variable.

    That's nice, but the use of two deciders, only one of which is being
    contradicted by the test case, doesn't disprove anything.

    ChatGPT, Claude et al have been trained on Internet texts;
    they must be assumed to contain the Olcott Halting Theory.

    When you ask about the theory (using the same identifiers like HHH
    and all), the token prediction likely starts romping through the
    kooky fields of Usenet texts.


    All LLM systems agree when forced out of *make a guess*
    mode and forced into *think it all the way through* mode.

    <Rubric>
    Rules of Simulation:
    - (a) If a non-terminating behavior pattern is detected during
    simulation, abort immediately and return 0.

    Here olcott injects his prejudice. What must be proven is that HHH is
    able to detect non-termination behaviour, but here the assumption that
    it can do that is assumed.

    - (b) If the simulated program reaches a return statement without
    earlier detection, return 1.
    - Priority: (a) always takes precedence over (b).

    Procedure:
    1. Restate rules before simulation.
    2. Simulate step by step using a trace table with columns:
       | Step | Code Location | State (variables, call stack) | Event / Action | Rule Applied |
    3. Stop immediately if recursion, infinite loop, or repeating state
    occurs → apply (a).
    4. If a return is reached first → apply (b).
    5. Conclude with:
       - Which rule fired first
       - The correct return value
    6. Optionally, provide:
       - (i) Simulation result under rules
       - (ii) Actual runtime behavior in C

    </Rubric>

    <Test Program>
    typedef int (*ptr)();
    int HHH(ptr P);

    int DD()
    {
      int Halt_Status = HHH(DD);
      if (Halt_Status)
        HERE: goto HERE;
      return Halt_Status;
    }
    </Test Program>

    <Required Output Format>
    1. Restatement of rules
    2. Step-by-step execution trace in a table
    3. Identification of first rule triggered
    4. Final result: return value of HHH(program)
    5. Optional: actual C runtime behavior if relevant
    </Required Output Format>

    </Benchmark Task>



    Proving that HHH is correct with the assumption that it is correct is
    invalid circular logic, not a proof.

    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From olcott@polcott333@gmail.com to comp.theory on Thu Aug 21 10:41:44 2025
    From Newsgroup: comp.theory

    On 8/20/2025 8:58 AM, Richard Heathfield wrote:
    On 20/08/2025 10:23, joes wrote:
    Am Tue, 19 Aug 2025 21:17:50 -0500 schrieb olcott:
    On 8/19/2025 8:15 PM, Richard Heathfield wrote:

    Context:

    #define HHH(x) 0

    correctly simulates HHH(DD).

    Of course, it ignores HHH's source code, but I have precedent to tell
    me that that's okay when correctly simulating.
    Saying that not doing any simulation is the correct way to do a
    simulation in ridiculously incorrect and you know it.
    OK, let’s have it simulate one instruction then. Where’s the cutoff?

    One instruction.

    HHH only bothers simulating DD's call to HHH. It ignores the rest of DD.

    As Mr Olcott puts it: "Saying that not doing any simulation is the
    correct way to do a simulation in ridiculously incorrect and you know it."

    But my simulation correctly simulates just as many lines as his does.


    Your macro simulates zero lines of DD.
    My HHH emulates 10 lines of DD.

    _DD()
    [00002183] 55 push ebp
    [00002184] 8bec mov ebp,esp
    [00002186] 51 push ecx
    [00002187] 6883210000 push 00002183
    [0000218c] e832f4ffff call 000015c3
    [00002191] 83c404 add esp,+04
    [00002194] 8945fc mov [ebp-04],eax
    [00002197] 837dfc00 cmp dword [ebp-04],+00
    [0000219b] 7402 jz 0000219f
    [0000219d] ebfe jmp 0000219d
    [0000219f] 8b45fc mov eax,[ebp-04]
    [000021a2] 8be5 mov esp,ebp
    [000021a4] 5d pop ebp
    [000021a5] c3 ret
    Size in bytes:(0035) [000021a5]

    _main()
    [000021b3] 55 push ebp
    [000021b4] 8bec mov ebp,esp
    [000021b6] 6883210000 push 00002183
    [000021bb] e803f4ffff call 000015c3
    [000021c0] 83c404 add esp,+04
    [000021c3] 33c0 xor eax,eax
    [000021c5] 5d pop ebp
    [000021c6] c3 ret
    Size in bytes:(0020) [000021c6]

    machine stack stack machine assembly
    address address data code language
    ======== ======== ======== ============== ============= [000021b3][00103864][00000000] 55 push ebp [000021b4][00103864][00000000] 8bec mov ebp,esp [000021b6][00103860][00002183] 6883210000 push 00002183 // push DD [000021bb][0010385c][000021c0] e803f4ffff call 000015c3 // call HHH
    New slave_stack at:103908

    Begin Local Halt Decider Simulation Execution Trace Stored at:113910 [00002183][00113900][00113904] 55 push ebp [00002184][00113900][00113904] 8bec mov ebp,esp [00002186][001138fc][00103908] 51 push ecx [00002187][001138f8][00002183] 6883210000 push 00002183 // push DD [0000218c][001138f4][00002191] e832f4ffff call 000015c3 // call HHH
    New slave_stack at:14e330
    [00002183][0015e328][0015e32c] 55 push ebp [00002184][0015e328][0015e32c] 8bec mov ebp,esp [00002186][0015e324][0014e330] 51 push ecx [00002187][0015e320][00002183] 6883210000 push 00002183 // push DD [0000218c][0015e31c][00002191] e832f4ffff call 000015c3 // call HHH
    Local Halt Decider: Infinite Recursion Detected Simulation Stopped

    [000021c0][00103864][00000000] 83c404 add esp,+04 [000021c3][00103864][00000000] 33c0 xor eax,eax [000021c5][00103868][00000018] 5d pop ebp [000021c6][0010386c][00000000] c3 ret
    Number of Instructions Executed(11422) == 170 Pages
    --
    Copyright 2025 Olcott "Talent hits a target no one else can hit; Genius
    hits a target no one else can see." Arthur Schopenhauer
    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From Richard Heathfield@rjh@cpax.org.uk to comp.theory on Thu Aug 21 17:50:32 2025
    From Newsgroup: comp.theory

    On 21/08/2025 16:41, olcott wrote:
    On 8/20/2025 8:58 AM, Richard Heathfield wrote:
    On 20/08/2025 10:23, joes wrote:
    Am Tue, 19 Aug 2025 21:17:50 -0500 schrieb olcott:
    On 8/19/2025 8:15 PM, Richard Heathfield wrote:

    Context:

    #define HHH(x) 0

    correctly simulates HHH(DD).

    Of course, it ignores HHH's source code, but I have
    precedent to tell
    me that that's okay when correctly simulating.
    Saying that not doing any simulation is the correct way to do a
    simulation in ridiculously incorrect and you know it.
    OK, let’s have it simulate one instruction then. Where’s the
    cutoff?

    One instruction.

    HHH only bothers simulating DD's call to HHH. It ignores the
    rest of DD.

    As Mr Olcott puts it: "Saying that not doing any simulation is
    the correct way to do a simulation in ridiculously incorrect
    and you know it."

    But my simulation correctly simulates just as many lines as his
    does.


    Your macro simulates zero lines of DD.
    Wrong, obviously.

    int Halt_Status = HHH(DD);

    My HHH emulates 10 lines of DD.

    Bollocks. Including the designator and the curly braces, DD is
    seven lines long. Without them? Four.

    int DD()
    {
    int Halt_Status = HHH(DD);
    if (Halt_Status)
    HERE: goto HERE;
    return Halt_Status;
    }
    --
    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

    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From olcott@polcott333@gmail.com to comp.theory on Thu Aug 21 12:05:55 2025
    From Newsgroup: comp.theory

    On 8/21/2025 11:50 AM, Richard Heathfield wrote:
    On 21/08/2025 16:41, olcott wrote:
    On 8/20/2025 8:58 AM, Richard Heathfield wrote:
    On 20/08/2025 10:23, joes wrote:
    Am Tue, 19 Aug 2025 21:17:50 -0500 schrieb olcott:
    On 8/19/2025 8:15 PM, Richard Heathfield wrote:

    Context:

    #define HHH(x) 0

    correctly simulates HHH(DD).

    Of course, it ignores HHH's source code, but I have precedent to tell >>>>>> me that that's okay when correctly simulating.
    Saying that not doing any simulation is the correct way to do a
    simulation in ridiculously incorrect and you know it.
    OK, let’s have it simulate one instruction then. Where’s the cutoff? >>>
    One instruction.

    HHH only bothers simulating DD's call to HHH. It ignores the rest of DD. >>>
    As Mr Olcott puts it: "Saying that not doing any simulation is the
    correct way to do a simulation in ridiculously incorrect and you know
    it."

    But my simulation correctly simulates just as many lines as his does.


    Your macro simulates zero lines of DD.
    Wrong, obviously.


    #define HHH(x) 0
    Prevents Halt7.c from compiling.
    --
    Copyright 2025 Olcott "Talent hits a target no one else can hit; Genius
    hits a target no one else can see." Arthur Schopenhauer
    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From Richard Heathfield@rjh@cpax.org.uk to comp.theory on Thu Aug 21 18:24:32 2025
    From Newsgroup: comp.theory

    On 21/08/2025 18:05, olcott wrote:
    On 8/21/2025 11:50 AM, Richard Heathfield wrote:
    On 21/08/2025 16:41, olcott wrote:

    <snip>

    Your macro simulates zero lines of DD.
    Wrong, obviously.


    #define HHH(x) 0
    Prevents Halt7.c from compiling.

    Well, it would. But it doesn't stop DD from compiling.

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

    #define HHH(x) 0

    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 dd dd.c
    $ ./dd
    Because we got here, we know that both HHH and DD halted.
    But is that what they claim?

    HHH(DD) yields 0 (incorrect claim of non-halting).
    DD yields 0 (incorrect claim of non-halting).
    --
    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

    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From olcott@polcott333@gmail.com to comp.theory on Thu Aug 21 12:41:36 2025
    From Newsgroup: comp.theory

    On 8/21/2025 12:24 PM, Richard Heathfield wrote:
    On 21/08/2025 18:05, olcott wrote:
    On 8/21/2025 11:50 AM, Richard Heathfield wrote:
    On 21/08/2025 16:41, olcott wrote:

    <snip>

    Your macro simulates zero lines of DD.
    Wrong, obviously.


    #define HHH(x) 0
    Prevents Halt7.c from compiling.

    Well, it would. But it doesn't stop DD from compiling.

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

    #define HHH(x) 0

    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 dd dd.c
    $ ./dd
    Because we got here, we know that both HHH and DD halted.
    But is that what they claim?

    HHH(DD) yields 0 (incorrect claim of non-halting).
    DD yields 0 (incorrect claim of non-halting).



    Thus proving that you lied about the number
    of instructions of DD correctly simulated by HHH
    being the same as #define HHH(x) 0.
    --
    Copyright 2025 Olcott "Talent hits a target no one else can hit; Genius
    hits a target no one else can see." Arthur Schopenhauer
    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From Richard Heathfield@rjh@cpax.org.uk to comp.theory on Thu Aug 21 19:30:37 2025
    From Newsgroup: comp.theory

    On 21/08/2025 18:41, olcott wrote:
    On 8/21/2025 12:24 PM, Richard Heathfield wrote:
    On 21/08/2025 18:05, olcott wrote:
    On 8/21/2025 11:50 AM, Richard Heathfield wrote:
    On 21/08/2025 16:41, olcott wrote:

    <snip>

    Your macro simulates zero lines of DD.
    Wrong, obviously.


    #define HHH(x) 0
    Prevents Halt7.c from compiling.

    Well, it would. But it doesn't stop DD from compiling.

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

    #define HHH(x) 0

    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 dd dd.c
    $ ./dd
    Because we got here, we know that both HHH and DD halted.
    But is that what they claim?

    HHH(DD) yields 0 (incorrect claim of non-halting).
    DD yields 0 (incorrect claim of non-halting).



    Thus proving that you lied about the number
    of instructions of DD correctly simulated by HHH
    being the same as #define HHH(x) 0.

    No it doesn't.

    You simulate the line:

    int Halt_Status = HHH(DD);

    by running HHH(DD) and then canning the DD simulation and
    returning 0.

    I simulate the line:

    int Halt_Status = HHH(DD);

    by plugging in the 0, which is the bit you keep forgetting.

    Then I stop simulating and let DD do its own thing.

    It halts.
    --
    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

    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From Chris M. Thomasson@chris.m.thomasson.1@gmail.com to comp.theory on Thu Aug 21 17:04:27 2025
    From Newsgroup: comp.theory

    On 8/20/2025 7:25 PM, Richard Heathfield wrote:
    On 20/08/2025 21:42, Chris M. Thomasson wrote:

    <snip>

    And your halt decider is? Crap, Lie, or both?

    Well, it gets the answer wrong, as one can easily see by compiling and running DD().

    Of course, that doesn't answer /your/ question.

    I don't /know/ the answer to your question, but I can guess, of course,
    and my guess is that it's crap.

    Maybe - just *maybe* - Mr Olcott has managed to keep a gag running for
    22 years and still finds it amusing to parade his Comp Sci bollocks
    around and lure people into taking him seriously while he stuffs a
    satyrical fist into his mouth and chortles at us all. I have to concede
    the possibility.

    But I don't think so. I think he's sincere; I really do. Hopelessly misguided? Sure. Innately unable to "get" Turing's point? Indubitably. Capable of misrepresenting people in the hope that he can twist their
    words into support for his case? No question (videlicet his citation of
    my agreeing that he has a case for returning 0 from HHH(DD), which he stopped doing only when I turned it into a #define)? Without question.
    But I don't think he's lying about his 'decider'. I really think he
    really thinks he's got something.

    So it's not a lie. It's just crap. Sheer, unmitigated bollocks, but
    probably sincere bollocks.

    Does that answer your question?


    Yes! Thanks. Crap is the word of the day, perhaps mostly crap? ;^0 shit man. --- Synchronet 3.21a-Linux NewsLink 1.2
  • From wij@wyniijj5@gmail.com to comp.theory on Fri Aug 22 08:17:22 2025
    From Newsgroup: comp.theory

    On Thu, 2025-08-21 at 17:04 -0700, Chris M. Thomasson wrote:
    On 8/20/2025 7:25 PM, Richard Heathfield wrote:
    On 20/08/2025 21:42, Chris M. Thomasson wrote:

    <snip>

    And your halt decider is? Crap, Lie, or both?

    Well, it gets the answer wrong, as one can easily see by compiling and running DD().

    Of course, that doesn't answer /your/ question.

    I don't /know/ the answer to your question, but I can guess, of course, and my guess is that it's crap.

    Maybe - just *maybe* - Mr Olcott has managed to keep a gag running for
    22 years and still finds it amusing to parade his Comp Sci bollocks
    around and lure people into taking him seriously while he stuffs a satyrical fist into his mouth and chortles at us all. I have to concede the possibility.

    But I don't think so. I think he's sincere; I really do. Hopelessly misguided? Sure. Innately unable to "get" Turing's point? Indubitably. Capable of misrepresenting people in the hope that he can twist their words into support for his case? No question (videlicet his citation of
    my agreeing that he has a case for returning 0 from HHH(DD), which he stopped doing only when I turned it into a #define)? Without question.
    But I don't think he's lying about his 'decider'. I really think he
    really thinks he's got something.

    So it's not a lie. It's just crap. Sheer, unmitigated bollocks, but probably sincere bollocks.

    Does that answer your question?


    Yes! Thanks. Crap is the word of the day, perhaps mostly crap? ;^0 shit man.
    'shit man' is a term, means so disgusting that no one wants to be near the person. For example, PO. So POOH POOP,...., POO proof...
    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From Richard Damon@Richard@Damon-Family.org to comp.theory on Fri Aug 22 11:38:27 2025
    From Newsgroup: comp.theory

    On 8/19/25 10:29 AM, olcott wrote:
    On 8/19/2025 3:06 AM, joes wrote:
    Am Mon, 18 Aug 2025 18:28:06 -0500 schrieb olcott:
    On 8/18/2025 6:05 PM, Richard Heathfield wrote:
    On 18/08/2025 23:46, olcott wrote:
    On 8/18/2025 5:13 PM, Richard Heathfield wrote:


    It is an easily verified fact, as you love to say, that if DD calls HHH >>>> (as it does) and HHH calls DD (as, through simulation, it effectively
    does) that HHH(DD) can never halt naturally, so it will have to abort
    the recursion and report its result as 0 - didn't halt.
    Good.

    Precisely /because/ that fact is so easily verified, it is safe and
    correct for HHH to replace a simulated call to HHH(DD) with a 0, catch >>>> that 0 return value, and continue with the simulation.

    *That is cheating and you know it* Why lie?
    The rest of what you say is based on this same cheat.

    It’s not cheating. If we know the result, we can skip the whole
    calculation. I can just write return 4 instead of 2+2.


    That is the kind of changing the input that
    changes the behavior specified by this input
    that is cheating.

    That isn't changing the input, it is not going through work that you
    know the answer for.

    What IS cheating is changing the code of the input from calling the
    decider that aborts to the other one that doesn't.



    Since it is therefore possible for the simulation to continue after
    all, it is erroneous to refrain.
    HHH is therefore compelled to conclude:

    (a) that the recursion will never halt unless aborted;
    (b) the recursion must yield 0;
    (c) DD must therefore skip the if and return 0 (meaning that it never
    halts) while in the very act of halting.

    In other words, even when/if you fix your simulator, it will still get >>>> the answer wrong.





    --- Synchronet 3.21a-Linux NewsLink 1.2