• Re: Correct simulation of DDD by HHH is proven --- Here is Heathfield's

    From Richard Heathfield@21:1/5 to olcott on Thu Aug 21 17:50:32 2025
    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

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Heathfield@21:1/5 to olcott on Thu Aug 21 18:24:32 2025
    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

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Heathfield@21:1/5 to olcott on Thu Aug 21 19:30:37 2025
    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

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