• Re: Incorrect requirements --- Computing the mapping from the input to

    From Fred. Zwarts@21:1/5 to All on Thu May 8 21:04:04 2025
    Op 08.mei.2025 om 19:00 schreef olcott:
    On 5/8/2025 11:14 AM, Mike Terry wrote:
    On 08/05/2025 06:33, Richard Heathfield wrote:
    On 08/05/2025 06:22, olcott wrote:
    On 5/7/2025 11:09 PM, Richard Heathfield wrote:
    On 08/05/2025 02:20, olcott wrote:

    <snip>

    Does there exist an HHH such that DDD emulated by
    HHH according to the rules of the C programming language

    Let's take a look.

    The file is 1373 lines long, but don't worry, because I plan to
    stop at HHH's first departure from the rules of the C programming
    language (or at least the first departure I spot).

    Turn in your songbook if you will to:

    void CopyMachineCode(u8* source, u8** destination)
    {
       u32 size;
       for (size = 0; source[size] != 0xcc; size++)
         ;
       *destination = (u8*) Allocate(size);
       for (u32 N = 0; N < size; N++)
       {
         Output("source[N]: ", source[N]);
         *destination[N] = source[N];
       }
       ((u32*)*destination)[-1] = size;
       Output("CopyMachineCode destination[-1]: ", ((u32*)*destination) >>>>> [-1]);
       Output("CopyMachineCode destination[-2]: ", ((u32*)*destination) >>>>> [-2]);
    };


    deprecated.

    It's not just deprecated. It's hopelessly broken.

    Everybody makes mistakes, and one slip would be all very well, but
    you make essentially the same mistake --- writing to memory that your
    program doesn't own --- no fewer than four times in a single function.

    I'll ignore the syntax error (a null statement at file scope is a
    rookie error).

    Instead, let's jump straight to this line:

       *destination = (u8*) Allocate(size);

    On line 79 of my copy of the code, we find:

    u32* Allocate(u32 size) { return 0; }

    In C, 0 is a null pointer constant, so Allocate returns a null
    pointer constant... which is fine as long as you don't try to deref
    it. So now *destination is NULL.

    We go on:

       for (u32 N = 0; N < size; N++)
       {
         Output("source[N]: ", source[N]);
         *destination[N] = source[N];
       }

    *destination[N] is our first big problem (we're ignoring syntax
    errors, remember). destination is a null pointer, so destination[N]
    derefs a null pointer.

    That's a fail. 0/10, D-, go away and write it again. And you /dare/
    to impugn other people's C knowledge! Crack a book, for pity's sake. >>>>>

    If you can't even understand what is essentially
    an infinite recursive relationship between two functions
    except that one function can terminate the other then
    you don't have a clue about the essence of my system.

    If you can't even understand why it's a stupendously bad idea to
    dereference a null pointer, you have no business trying to teach
    anyone anything about C.

    Your code is the work of a programmer so hideously incompetent that
    'programmer' is scarcely a fair word to use.

    When you publish code like that, to even *think* about denigrating
    other people's C knowledge is the height of arrogant hypocrisy.

    One problem here is that you don't understand how PO's code works.
    That's to be expected, and PO's response ought to be to explain it so
    that you understand.  Instead he goes off on one of his rants, so
    blamewise it's really down to PO.

    PO's halt7.c is compiled (it is not linked), then the obj file is fed
    as input to his x87utm.exe which is a kind of x86 obj code execution
    environment.  x87utm provides a number of primative calls that halt7.c
    code can make, such as Allocate(), used to allocate a block of memory
    for use in halt7.c.  Within halt7.c code calls an Allocate() function,
    and x86utm intercepts that and performs the function internally, then
    jumps the calling code in halt7.c over the Allocate call where it
    continues as normal.  The call never goes to the implementation of
    Allocate in halt7.c, so the null pointer dereferencing does not
    actually occur.  There are a whole bunch of similar x86utm primitive
    operations that work in the same way.

    PO should have said all that, not me, but it seems he's not interested
    in genuine communication.

    Mike.



    Thanks for those details, they are correct.
    I try to stay focused on the key essence gist
    of the issue and never delve down into the weeds.

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

    The key gist of the issue (no weeds involved)
    is that HHH emulated DD according to the rules
    of the x86 language

    <MIT Professor Sipser agreed to ONLY these verbatim words 10/13/2022>
        *until H correctly determines that*
        *its simulated D would never stop running unless aborted*
    </MIT Professor Sipser agreed to ONLY these verbatim words 10/13/2022>

    And since H does not correctly determine that its simulated D would
    never stop running unless aborted, it is a vacuous statement and
    Sipser's agreement does not tell anything.


    When HHH(DD) computes the actual mapping from
    its actual input to the actual behavior this
    it specifies it must be according to the rules
    of the x86 language.

    Meaning that it should not abort a halting program, and not skip the
    most important part of its input, where it would see a conditional
    abort, which makes the program halting.
    But HHH violates the x86 language by halting when there is no HLT
    instruction.


    int sum(int x, int y) { return x + y; }
    sum is required to compute the mapping
    from its input into its return value
    according to the rules of arithmetic.

    This means that requiring sum(3,2) to return
    the sum of 5 + 7 is an incorrect requirement.

    Like sum(3,2) HHH(DD) is only allowed to report
    on the behavior that its input actually specifies.


    But HHH is like Sum(3,2) processing only the 3 and not the 2, when it
    aborts after processing only the first part of the input and not the
    whole input. The whole input specifies a halting program, but the
    programmer made HHH blind for the specification that is in the input.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Heathfield@21:1/5 to olcott on Thu May 8 21:01:42 2025
    On 08/05/2025 20:42, olcott wrote:
    On 5/8/2025 2:04 PM, Fred. Zwarts wrote:
    Op 08.mei.2025 om 19:00 schreef olcott:
    On 5/8/2025 11:14 AM, Mike Terry wrote:
    On 08/05/2025 06:33, Richard Heathfield wrote:
    On 08/05/2025 06:22, olcott wrote:
    On 5/7/2025 11:09 PM, Richard Heathfield wrote:
    On 08/05/2025 02:20, olcott wrote:

    <snip>

    Does there exist an HHH such that DDD emulated by
    HHH according to the rules of the C programming language

    Let's take a look.

    The file is 1373 lines long, but don't worry, because I
    plan to stop at HHH's first departure from the rules of
    the C programming language (or at least the first
    departure I spot).

    Turn in your songbook if you will to:

    void CopyMachineCode(u8* source, u8** destination)
    {
       u32 size;
       for (size = 0; source[size] != 0xcc; size++)
         ;
       *destination = (u8*) Allocate(size);
       for (u32 N = 0; N < size; N++)
       {
         Output("source[N]: ", source[N]);
         *destination[N] = source[N];
       }
       ((u32*)*destination)[-1] = size;
       Output("CopyMachineCode destination[-1]: ",
    ((u32*)*destination) [-1]);
       Output("CopyMachineCode destination[-2]: ",
    ((u32*)*destination) [-2]);
    };


    deprecated.

    It's not just deprecated. It's hopelessly broken.

    Everybody makes mistakes, and one slip would be all very
    well, but you make essentially the same mistake --- writing
    to memory that your program doesn't own --- no fewer than
    four times in a single function.

    I'll ignore the syntax error (a null statement at file
    scope is a rookie error).

    Instead, let's jump straight to this line:

       *destination = (u8*) Allocate(size);

    On line 79 of my copy of the code, we find:

    u32* Allocate(u32 size) { return 0; }

    In C, 0 is a null pointer constant, so Allocate returns a
    null pointer constant... which is fine as long as you
    don't try to deref it. So now *destination is NULL.

    We go on:

       for (u32 N = 0; N < size; N++)
       {
         Output("source[N]: ", source[N]);
         *destination[N] = source[N];
       }

    *destination[N] is our first big problem (we're ignoring
    syntax errors, remember). destination is a null pointer,
    so destination[N] derefs a null pointer.

    That's a fail. 0/10, D-, go away and write it again. And
    you / dare/ to impugn other people's C knowledge! Crack a
    book, for pity's sake.


    If you can't even understand what is essentially
    an infinite recursive relationship between two functions
    except that one function can terminate the other then
    you don't have a clue about the essence of my system.

    If you can't even understand why it's a stupendously bad
    idea to dereference a null pointer, you have no business
    trying to teach anyone anything about C.

    Your code is the work of a programmer so hideously
    incompetent that 'programmer' is scarcely a fair word to use.

    When you publish code like that, to even *think* about
    denigrating other people's C knowledge is the height of
    arrogant hypocrisy.

    One problem here is that you don't understand how PO's code
    works. That's to be expected, and PO's response ought to be
    to explain it so that you understand.  Instead he goes off on
    one of his rants, so blamewise it's really down to PO.

    PO's halt7.c is compiled (it is not linked), then the obj
    file is fed as input to his x87utm.exe which is a kind of x86
    obj code execution environment.  x87utm provides a number of
    primative calls that halt7.c code can make, such as
    Allocate(), used to allocate a block of memory for use in
    halt7.c.  Within halt7.c code calls an Allocate() function,
    and x86utm intercepts that and performs the function
    internally, then jumps the calling code in halt7.c over the
    Allocate call where it continues as normal.  The call never
    goes to the implementation of Allocate in halt7.c, so the
    null pointer dereferencing does not actually occur.  There
    are a whole bunch of similar x86utm primitive operations that
    work in the same way.

    PO should have said all that, not me, but it seems he's not
    interested in genuine communication.

    Mike.



    Thanks for those details, they are correct.
    I try to stay focused on the key essence gist
    of the issue and never delve down into the weeds.

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

    The key gist of the issue (no weeds involved)
    is that HHH emulated DD according to the rules
    of the x86 language

    <MIT Professor Sipser agreed to ONLY these verbatim words
    10/13/2022>
         *until H correctly determines that*
         *its simulated D would never stop running unless aborted*
    </MIT Professor Sipser agreed to ONLY these verbatim words
    10/13/2022>

    And since H does not correctly determine that its simulated D
    would never stop running unless aborted, it is a vacuous
    statement and Sipser's agreement does not tell anything.


    That is counter factual as any fully qualified
    C programmer will tell you.

    As any competent C programmer can tell you, your simulation is
    driven by assembly language, not C. Furthermore, neither halt7.c
    nor x86utm.cpp is syntactically correct C. Once you fix the
    syntax errors, that still leaves you with the undefined behaviour.

    Getting it right is tedious.

    --
    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 May 8 23:13:07 2025
    On 08/05/2025 22:41, olcott wrote:
    What my code actually does is totally irrelevant.

    On that, at least, we can agree.

    --
    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 Mr Flibble on Thu May 8 23:12:34 2025
    On 08/05/2025 22:35, Mr Flibble wrote:
    On Thu, 08 May 2025 21:01:42 +0100, Richard Heathfield wrote:

    On 08/05/2025 20:42, olcott wrote:
    On 5/8/2025 2:04 PM, Fred. Zwarts wrote:
    Op 08.mei.2025 om 19:00 schreef olcott:

    <snip>

    I try to stay focused on the key essence gist of the issue and never >>>>> delve down into the weeds.

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

    The key gist of the issue (no weeds involved)
    is that HHH emulated DD according to the rules of the x86 language

    <MIT Professor Sipser agreed to ONLY these verbatim words 10/13/2022> >>>>>      *until H correctly determines that*
         *its simulated D would never stop running unless aborted*
    </MIT Professor Sipser agreed to ONLY these verbatim words
    10/13/2022>

    And since H does not correctly determine that its simulated D would
    never stop running unless aborted, it is a vacuous statement and
    Sipser's agreement does not tell anything.


    That is counter factual as any fully qualified C programmer will tell
    you.

    As any competent C programmer can tell you, your simulation is driven by
    assembly language, not C. Furthermore, neither halt7.c nor x86utm.cpp is
    syntactically correct C. Once you fix the syntax errors, that still
    leaves you with the undefined behaviour.

    I don't believe the C ISO Standard explictly states that stack overflow is undefined behaviour

    I will go one further and assure you that the standard doesn't
    mention the word 'stack' at all. My claim of undefined behaviour
    was not based on stack overflow but on illegal dereferencing.

    6.5.3.2(4) says: "If an invalid value has been assigned to the
    pointer, the behavior of the unary * operator is undefined."

    For the purposes of that paragraph: "Among the invalid values for
    dereferencing a pointer by the unary * operator are a null
    pointer, an address inappropriately aligned for the type of
    object pointed to, and the address of an object after the end of
    its lifetime."

    On the other hand, the standard's definition of undefined
    behaviour is broad: "behavior, upon use of a nonportable or
    erroneous program construct or of erroneous data, for which this
    International Standard imposes no requirements".

    Whether runaway recursion qualifies as nonportable or erroneous
    is a judgement call. Suffice to say that wise programmers take
    steps to ensure that their programs don't follow that path.

    --
    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 Mr Flibble@21:1/5 to Richard Heathfield on Thu May 8 21:35:02 2025
    On Thu, 08 May 2025 21:01:42 +0100, Richard Heathfield wrote:

    On 08/05/2025 20:42, olcott wrote:
    On 5/8/2025 2:04 PM, Fred. Zwarts wrote:
    Op 08.mei.2025 om 19:00 schreef olcott:
    On 5/8/2025 11:14 AM, Mike Terry wrote:
    On 08/05/2025 06:33, Richard Heathfield wrote:
    On 08/05/2025 06:22, olcott wrote:
    On 5/7/2025 11:09 PM, Richard Heathfield wrote:
    On 08/05/2025 02:20, olcott wrote:

    <snip>

    Does there exist an HHH such that DDD emulated by HHH according >>>>>>>>> to the rules of the C programming language

    Let's take a look.

    The file is 1373 lines long, but don't worry, because I plan to >>>>>>>> stop at HHH's first departure from the rules of the C programming >>>>>>>> language (or at least the first departure I spot).

    Turn in your songbook if you will to:

    void CopyMachineCode(u8* source, u8** destination)
    {
       u32 size;
       for (size = 0; source[size] != 0xcc; size++)
         ;
       *destination = (u8*) Allocate(size);
       for (u32 N = 0; N < size; N++)
       {
         Output("source[N]: ", source[N]);
         *destination[N] = source[N];
       }
       ((u32*)*destination)[-1] = size; Output("CopyMachineCode
       destination[-1]: ",
    ((u32*)*destination) [-1]);
       Output("CopyMachineCode destination[-2]: ",
    ((u32*)*destination) [-2]);
    };


    deprecated.

    It's not just deprecated. It's hopelessly broken.

    Everybody makes mistakes, and one slip would be all very well, but >>>>>> you make essentially the same mistake --- writing to memory that
    your program doesn't own --- no fewer than four times in a single
    function.

    I'll ignore the syntax error (a null statement at file scope is a >>>>>>>> rookie error).

    Instead, let's jump straight to this line:

       *destination = (u8*) Allocate(size);

    On line 79 of my copy of the code, we find:

    u32* Allocate(u32 size) { return 0; }

    In C, 0 is a null pointer constant, so Allocate returns a null >>>>>>>> pointer constant... which is fine as long as you don't try to
    deref it. So now *destination is NULL.

    We go on:

       for (u32 N = 0; N < size; N++)
       {
         Output("source[N]: ", source[N]);
         *destination[N] = source[N];
       }

    *destination[N] is our first big problem (we're ignoring syntax >>>>>>>> errors, remember). destination is a null pointer, so
    destination[N] derefs a null pointer.

    That's a fail. 0/10, D-, go away and write it again. And you / >>>>>>>> dare/ to impugn other people's C knowledge! Crack a book, for
    pity's sake.


    If you can't even understand what is essentially an infinite
    recursive relationship between two functions except that one
    function can terminate the other then you don't have a clue about >>>>>>> the essence of my system.

    If you can't even understand why it's a stupendously bad idea to
    dereference a null pointer, you have no business trying to teach
    anyone anything about C.

    Your code is the work of a programmer so hideously incompetent that >>>>>> 'programmer' is scarcely a fair word to use.

    When you publish code like that, to even *think* about denigrating >>>>>> other people's C knowledge is the height of arrogant hypocrisy.

    One problem here is that you don't understand how PO's code works.
    That's to be expected, and PO's response ought to be to explain it
    so that you understand.  Instead he goes off on one of his rants, so >>>>> blamewise it's really down to PO.

    PO's halt7.c is compiled (it is not linked), then the obj file is
    fed as input to his x87utm.exe which is a kind of x86 obj code
    execution environment.  x87utm provides a number of primative calls >>>>> that halt7.c code can make, such as Allocate(), used to allocate a
    block of memory for use in halt7.c.  Within halt7.c code calls an
    Allocate() function, and x86utm intercepts that and performs the
    function internally, then jumps the calling code in halt7.c over the >>>>> Allocate call where it continues as normal.  The call never goes to >>>>> the implementation of Allocate in halt7.c, so the null pointer
    dereferencing does not actually occur.  There are a whole bunch of
    similar x86utm primitive operations that work in the same way.

    PO should have said all that, not me, but it seems he's not
    interested in genuine communication.

    Mike.



    Thanks for those details, they are correct.
    I try to stay focused on the key essence gist of the issue and never
    delve down into the weeds.

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

    The key gist of the issue (no weeds involved)
    is that HHH emulated DD according to the rules of the x86 language

    <MIT Professor Sipser agreed to ONLY these verbatim words 10/13/2022>
         *until H correctly determines that*
         *its simulated D would never stop running unless aborted*
    </MIT Professor Sipser agreed to ONLY these verbatim words
    10/13/2022>

    And since H does not correctly determine that its simulated D would
    never stop running unless aborted, it is a vacuous statement and
    Sipser's agreement does not tell anything.


    That is counter factual as any fully qualified C programmer will tell
    you.

    As any competent C programmer can tell you, your simulation is driven by assembly language, not C. Furthermore, neither halt7.c nor x86utm.cpp is syntactically correct C. Once you fix the syntax errors, that still
    leaves you with the undefined behaviour.

    I don't believe the C ISO Standard explictly states that stack overflow is undefined behaviour however even if it did Flibble's Law applies: if a UTM
    is allowed infinite tape then the simulating halt decider is allowed
    infinite resources (stack space).

    Getting it right is tedious.

    Watching you continually getting it wrong is definitely tedious.

    /Flibble

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Heathfield@21:1/5 to olcott on Fri May 9 00:46:19 2025
    On 09/05/2025 00:41, olcott wrote:

    <snip>

    When HHH <is> a correct simulator then DDD emulated
    by HHH cannot possibly reach its own "return" instruction.

    <https://en.wikipedia.org/wiki/Proof_by_assertion>

    Proof by assertion, sometimes informally referred to as proof by
    repeated assertion, is an informal fallacy in which a proposition
    is repeatedly restated regardless of contradiction and
    refutation.[1] The proposition can sometimes be repeated until
    any challenges or opposition cease, letting the proponent assert
    it as fact, and solely due to a lack of challengers (argumentum
    ad nauseam).


    Refutations abound.


    --
    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 Damon@21:1/5 to olcott on Thu May 8 19:35:54 2025
    On 5/8/25 1:00 PM, olcott wrote:
    On 5/8/2025 11:14 AM, Mike Terry wrote:
    On 08/05/2025 06:33, Richard Heathfield wrote:
    On 08/05/2025 06:22, olcott wrote:
    On 5/7/2025 11:09 PM, Richard Heathfield wrote:
    On 08/05/2025 02:20, olcott wrote:

    <snip>

    Does there exist an HHH such that DDD emulated by
    HHH according to the rules of the C programming language

    Let's take a look.

    The file is 1373 lines long, but don't worry, because I plan to
    stop at HHH's first departure from the rules of the C programming
    language (or at least the first departure I spot).

    Turn in your songbook if you will to:

    void CopyMachineCode(u8* source, u8** destination)
    {
       u32 size;
       for (size = 0; source[size] != 0xcc; size++)
         ;
       *destination = (u8*) Allocate(size);
       for (u32 N = 0; N < size; N++)
       {
         Output("source[N]: ", source[N]);
         *destination[N] = source[N];
       }
       ((u32*)*destination)[-1] = size;
       Output("CopyMachineCode destination[-1]: ", ((u32*)*destination) >>>>> [-1]);
       Output("CopyMachineCode destination[-2]: ", ((u32*)*destination) >>>>> [-2]);
    };


    deprecated.

    It's not just deprecated. It's hopelessly broken.

    Everybody makes mistakes, and one slip would be all very well, but
    you make essentially the same mistake --- writing to memory that your
    program doesn't own --- no fewer than four times in a single function.

    I'll ignore the syntax error (a null statement at file scope is a
    rookie error).

    Instead, let's jump straight to this line:

       *destination = (u8*) Allocate(size);

    On line 79 of my copy of the code, we find:

    u32* Allocate(u32 size) { return 0; }

    In C, 0 is a null pointer constant, so Allocate returns a null
    pointer constant... which is fine as long as you don't try to deref
    it. So now *destination is NULL.

    We go on:

       for (u32 N = 0; N < size; N++)
       {
         Output("source[N]: ", source[N]);
         *destination[N] = source[N];
       }

    *destination[N] is our first big problem (we're ignoring syntax
    errors, remember). destination is a null pointer, so destination[N]
    derefs a null pointer.

    That's a fail. 0/10, D-, go away and write it again. And you /dare/
    to impugn other people's C knowledge! Crack a book, for pity's sake. >>>>>

    If you can't even understand what is essentially
    an infinite recursive relationship between two functions
    except that one function can terminate the other then
    you don't have a clue about the essence of my system.

    If you can't even understand why it's a stupendously bad idea to
    dereference a null pointer, you have no business trying to teach
    anyone anything about C.

    Your code is the work of a programmer so hideously incompetent that
    'programmer' is scarcely a fair word to use.

    When you publish code like that, to even *think* about denigrating
    other people's C knowledge is the height of arrogant hypocrisy.

    One problem here is that you don't understand how PO's code works.
    That's to be expected, and PO's response ought to be to explain it so
    that you understand.  Instead he goes off on one of his rants, so
    blamewise it's really down to PO.

    PO's halt7.c is compiled (it is not linked), then the obj file is fed
    as input to his x87utm.exe which is a kind of x86 obj code execution
    environment.  x87utm provides a number of primative calls that halt7.c
    code can make, such as Allocate(), used to allocate a block of memory
    for use in halt7.c.  Within halt7.c code calls an Allocate() function,
    and x86utm intercepts that and performs the function internally, then
    jumps the calling code in halt7.c over the Allocate call where it
    continues as normal.  The call never goes to the implementation of
    Allocate in halt7.c, so the null pointer dereferencing does not
    actually occur.  There are a whole bunch of similar x86utm primitive
    operations that work in the same way.

    PO should have said all that, not me, but it seems he's not interested
    in genuine communication.

    Mike.



    Thanks for those details, they are correct.
    I try to stay focused on the key essence gist
    of the issue and never delve down into the weeds.

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

    The key gist of the issue (no weeds involved)
    is that HHH emulated DD according to the rules
    of the x86 language

    Excpet, as you have admitted, your DD isn't a program (just a C
    funciton), and thus not a proper input for a halt decider, which by
    definiton must be a program.

    Your C function can't be a program, as you have specifically said that
    the function, and only the funciton is the input, and programs must
    include in them all their code, so since the code of HHH isn't included
    in DD or the input representing it, it isn't a program, and thus not a
    proper input


    <MIT Professor Sipser agreed to ONLY these verbatim words 10/13/2022>
        *until H correctly determines that*
        *its simulated D would never stop running unless aborted*
    </MIT Professor Sipser agreed to ONLY these verbatim words 10/13/2022>


    But that statement implies, as required that H be a halt decider and D
    to be a proper input to one, neither of which are satisfied, as you have admitte

    When HHH(DD) computes the actual mapping from
    its actual input to the actual behavior this
    it specifies it must be according to the rules
    of the x86 language.

    But it doesn't, as it doesn't correctly follow the behavior of the x86 language, as that requires HHH to follow the call instruction, which it
    can not do as the required (and accepted by your) condition that the
    decider is a pure function, which means it can only look at its input,
    which does not include the code which the call points to.


    int sum(int x, int y) { return x + y; }
    sum is required to compute the mapping
    from its input into its return value
    according to the rules of arithmetic.

    Right, and a halt decider is required to (try to) compute the mapping
    from the input (which needs to be the representation of a program) to
    the results of running that program (since that is the DEFINITION of
    Halt Deciding).


    This means that requiring sum(3,2) to return
    the sum of 5 + 7 is an incorrect requirement.

    Right, just as HHH trying to claim that its answer is based on the fact
    that it can't reach the end of its simulation of the input isn't the
    correct requirement for HHH.


    Like sum(3,2) HHH(DD) is only allowed to report
    on the behavior that its input actually specifies.


    Right, which is Halting, since that behavior is DEFINED to be the
    behavior of running the program the input represents.

    Your arguement is just like sum(2, 3) returning 2 + 7.

    Sorry, but you are just showing that you are just a pathological liar
    that doesn't understand what he is talking about.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Heathfield@21:1/5 to olcott on Fri May 9 00:30:23 2025
    On 08/05/2025 23:50, olcott wrote:
    On 5/8/2025 5:26 PM, Keith Thompson wrote:

    <snip>

    No, the problem Richard was pointing out with olcott's Halt7.c
    is that
    *it's not valid C".


    <snip>


    void DDD()
    {
      HHH(DDD);
      return;
    }

    If you are a competent C programmer

    Keith Thompson is a highly-respected and very competent C
    programmer. You, however, are not.

    then you
    know that DDD correctly simulated by HHH cannot
    possibly each its own "return" instruction.

    Assumes facts not in evidence. Whether HHH correctly simulates
    DDD is disputed by a number of people. Your C code has a number
    of issues, and Mike Terry has pointed out exactly how the
    simulator fails to simulate.

    What's left standing? Anything?

    --
    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 Damon@21:1/5 to olcott on Thu May 8 21:13:02 2025
    On 5/8/25 8:05 PM, olcott wrote:
    On 5/8/2025 6:54 PM, Keith Thompson wrote:
    olcott <polcott333@gmail.com> writes:
    On 5/8/2025 6:30 PM, Richard Heathfield wrote:
    On 08/05/2025 23:50, olcott wrote:
    [...]
    If you are a competent C programmer
    Keith Thompson is a highly-respected and very competent C
    programmer.

    *Then he is just who I need*

    No, what you need is someone who is an expert in mathematical logic
    (I am not) who can explain to you, in terms you can understand and
    accept, where you've gone wrong.  Some expertise in C could also
    be helpful.


    The key gap in my proof is that none of the comp.sci
    people seems to have a slight clue about simple C
    programming.

    No, the problem is you don't.


    void DDD()
    {
      HHH(DDD);
      return;
    }

    *THIS IS THE C PART THAT NO ONE HERE UNDERSTANDS*
    DDD correctly simulated by HHH cannot possibly
    reach its own "return" instruction.

    And claiming the behavior of a program that isn;t the behavior of that
    program is just a lie.


    DDD correctly simulated by HHH is the same thing
    as infinite recursion between HHH and DDD yet is
    implemented as recursive simulation.

    But your HHH doesn't do that, and thus this is just a lie.


    I doubt that any such person exists, but only for reasons related
    to you.




    Note, if you retreact your stipulation of Halt7.c, and make your one HHH
    be the one that doesn't abort, then it fails to be a decider by never returning.

    You can't try to equivocate two different HHH's in existance at the same
    time, The DD that the HHH that aborts and answer, is, and can only be,
    the DD that calls the HHH that aborts, and thus *IS* Halting.

    All you are doing is proving you think LYING is acceptable logic.

    And all this is just patching over the fact that you have admitted that
    none of your deciders or inputs actually qualify for the roles, as they
    are just C functions, and NOT programs, as required.

    Sorry, but your own words have sunk your arguement into that lake of
    fire that you will join in the near future (unless you repent).

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to olcott on Thu May 8 21:15:22 2025
    On 5/8/25 7:59 PM, olcott wrote:
    On 5/8/2025 6:49 PM, Keith Thompson wrote:
    olcott <polcott333@gmail.com> writes:
    [...]
    void DDD()
    {
       HHH(DDD);
       return;
    }

    If you are a competent C programmer then you
    know that DDD correctly simulated by HHH cannot
    possibly each its own "return" instruction.

    "cannot possibly each"?

    I am a competent C programmer (and I don't believe you can make
    the same claim).  I don't know what HHH is.  The name "HHH" tells
    me nothing about what it's supposed to do.  Without knowing what
    HHH is, I can't say much about your code (or is it pseudo-code?).


    For the purpose of this discussion HHH is exactly
    what I said it is. It correctly simulates DDD.

    So you retract your stipulations?


    We need not know anything else about HHH to
    know that DDD correctly simulated by HHH cannot
    possibly REACH its own "return" instruction.

    Excpet that then you can't change HHH to make it the decider, as that
    changes the code of the program to be decided.

    But then you have already admitted that you aren't looking at programs,
    and thus just lying about working on the actual halting problem or
    replicating the proof PROGRAM.


    The return statement is harmless but unnecessary.

    "void DDD()" should be "void DDD(void)" (unless you're using C23, but
    we've established that your not).  Why did you choose to use empty
    parentheses?  (If you answer nothing else, please answer that.)


    I am using Microsoft Visual Studio 2017.
    It compiled cleanly.


    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to olcott on Thu May 8 21:07:25 2025
    On 5/8/25 8:14 PM, olcott wrote:
    On 5/8/2025 7:00 PM, Keith Thompson wrote:
    olcott <polcott333@gmail.com> writes:
    On 5/8/2025 6:45 PM, Keith Thompson wrote:
    olcott <polcott333@gmail.com> writes:
    On 5/8/2025 5:26 PM, Keith Thompson wrote:
    [...]
    I am more nearly an expert on C than on the Halting Problem.
    Watching olcott base his arguments on C *and getting C so badly
    wrong* leads me to think that he is largely ignorant of C (which is >>>>>> fine, most people are) and is unwilling to admit it.  Watching the >>>>>> reactions of actual experts to his mathematical arguments leads me >>>>>> to the same conclusion about his knowledge of the relevant fields
    of mathematics.


    If Halt7.c is not compiled with the Microsoft
    compiler then it will not produce the required
    object file type.

    The rest of the system has compiled under
    Linux. I haven't tried this in a few years.
    [...]
    So you normally compile your code using the 2017 version of
    Microsoft
    Visual Studio.
    I have no particular problem with that, but your failure to correct
    a number of C errors in your code is odd.

    As I already proved Microsoft reported no such errors.

    Microsoft's compiler did not report certain errors that any conforming C
    compiler is required by the standard to report.

    Microsoft's compiler *can* be invoked in a way that causes it to
    diagnose such errors, though it may or may not become fully conforming.
    I haven't used it lately, but a web search should tell you how to do
    that.

      I've pointed out several
    syntax errors and constraint violations; at least the syntax errors
    would be trivial to fix (even if your compiler is lax enough to
    fail to diagnose them).  Richard Heathfield has pointed out code
    that dereferences a null pointer.


    Mike corrected Richard on this.
    Those are stub functions intercepted
    by x86utm the operating system.

    You are using C, a language in which you appear to have little
    apparent expertise or willingness to learn, to demonstrate claims
    that, if true, would overturn ideas that have been generally accepted
    for decades.  Can you understand why I might decide that analyzing
    your claims is not worth my time?


    I learned C back when K & R was the standard.

    So did I.  I've kept up with the language as it has changed.

    void DDD()
    {
       HHH(DDD);
       return;
    }

    We don't need to look at any of my code for me
    to totally prove my point.

    Great.  Then why do you keep posting code?  Or is the above DDD()
    function not included in "any of my code")?

                                For example when
    the above DDD is correctly simulated by HHH
    this simulated DDD cannot possibly reach its own
    "return" instruction.

    That's too vague for me to comment.


    Do you know what a C language interpreter is?
    I actually do this at the x86 machine code level
    yet most people don't have a clue about that.

    _DDD()
    [00002172] 55         push ebp      ; housekeeping
    [00002173] 8bec       mov ebp,esp   ; housekeeping
    [00002175] 6872210000 push 00002172 ; push DDD
    [0000217a] e853f4ffff call 000015d2 ; call HHH(DDD)
    [0000217f] 83c404     add esp,+04
    [00002182] 5d         pop ebp
    [00002183] c3         ret
    Size in bytes:(0018) [00002183]

    The above hypothetical HHH emulates the first four
    instructions of DDD. This sequence repeats until a
    OOM error.


    Which is INVALID as in input to a halt decider as it isn't the code for
    a PROGRAM, as it has a call to an address that isn't part of the program.

    If that memory is supposed to be part of the program, it needs to be in
    the input.

    If it isn't part of the program, then it isn't a program.

    And, when you define that your *ONE* HHH (as there can only be one at a
    time in a C program) to abort and return 0 as it "claims" that its input
    is non-halting, then the function, when called will return as it calls
    the HHH that does just that, and then halts.

    If you try to define your *ONE* HHH to not abort and actually do your
    correct simulition, then it fails to be a decider, and thus you also fail.

    Note, the function HHH that aborts can not be given the DD that calls
    the HHH that doesn't as that violates the one definition rule.

    Sorry, your "proof" is just proven to be a pathological lie.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to olcott on Thu May 8 21:18:20 2025
    On 5/8/25 7:48 PM, olcott wrote:
    On 5/8/2025 6:35 PM, Richard Damon wrote:
    On 5/8/25 1:00 PM, olcott wrote:
    On 5/8/2025 11:14 AM, Mike Terry wrote:
    On 08/05/2025 06:33, Richard Heathfield wrote:
    On 08/05/2025 06:22, olcott wrote:
    On 5/7/2025 11:09 PM, Richard Heathfield wrote:
    On 08/05/2025 02:20, olcott wrote:

    <snip>

    Does there exist an HHH such that DDD emulated by
    HHH according to the rules of the C programming language

    Let's take a look.

    The file is 1373 lines long, but don't worry, because I plan to
    stop at HHH's first departure from the rules of the C programming >>>>>>> language (or at least the first departure I spot).

    Turn in your songbook if you will to:

    void CopyMachineCode(u8* source, u8** destination)
    {
       u32 size;
       for (size = 0; source[size] != 0xcc; size++)
         ;
       *destination = (u8*) Allocate(size);
       for (u32 N = 0; N < size; N++)
       {
         Output("source[N]: ", source[N]);
         *destination[N] = source[N];
       }
       ((u32*)*destination)[-1] = size;
       Output("CopyMachineCode destination[-1]: ",
    ((u32*)*destination) [-1]);
       Output("CopyMachineCode destination[-2]: ",
    ((u32*)*destination) [-2]);
    };


    deprecated.

    It's not just deprecated. It's hopelessly broken.

    Everybody makes mistakes, and one slip would be all very well, but
    you make essentially the same mistake --- writing to memory that
    your program doesn't own --- no fewer than four times in a single
    function.

    I'll ignore the syntax error (a null statement at file scope is a >>>>>>> rookie error).

    Instead, let's jump straight to this line:

       *destination = (u8*) Allocate(size);

    On line 79 of my copy of the code, we find:

    u32* Allocate(u32 size) { return 0; }

    In C, 0 is a null pointer constant, so Allocate returns a null
    pointer constant... which is fine as long as you don't try to
    deref it. So now *destination is NULL.

    We go on:

       for (u32 N = 0; N < size; N++)
       {
         Output("source[N]: ", source[N]);
         *destination[N] = source[N];
       }

    *destination[N] is our first big problem (we're ignoring syntax
    errors, remember). destination is a null pointer, so
    destination[N] derefs a null pointer.

    That's a fail. 0/10, D-, go away and write it again. And you /
    dare/ to impugn other people's C knowledge! Crack a book, for
    pity's sake.


    If you can't even understand what is essentially
    an infinite recursive relationship between two functions
    except that one function can terminate the other then
    you don't have a clue about the essence of my system.

    If you can't even understand why it's a stupendously bad idea to
    dereference a null pointer, you have no business trying to teach
    anyone anything about C.

    Your code is the work of a programmer so hideously incompetent that
    'programmer' is scarcely a fair word to use.

    When you publish code like that, to even *think* about denigrating
    other people's C knowledge is the height of arrogant hypocrisy.

    One problem here is that you don't understand how PO's code works.
    That's to be expected, and PO's response ought to be to explain it
    so that you understand.  Instead he goes off on one of his rants, so
    blamewise it's really down to PO.

    PO's halt7.c is compiled (it is not linked), then the obj file is
    fed as input to his x87utm.exe which is a kind of x86 obj code
    execution environment.  x87utm provides a number of primative calls
    that halt7.c code can make, such as Allocate(), used to allocate a
    block of memory for use in halt7.c.  Within halt7.c code calls an
    Allocate() function, and x86utm intercepts that and performs the
    function internally, then jumps the calling code in halt7.c over the
    Allocate call where it continues as normal.  The call never goes to
    the implementation of Allocate in halt7.c, so the null pointer
    dereferencing does not actually occur.  There are a whole bunch of
    similar x86utm primitive operations that work in the same way.

    PO should have said all that, not me, but it seems he's not
    interested in genuine communication.

    Mike.



    Thanks for those details, they are correct.
    I try to stay focused on the key essence gist
    of the issue and never delve down into the weeds.

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

    The key gist of the issue (no weeds involved)
    is that HHH emulated DD according to the rules
    of the x86 language

    Excpet, as you have admitted, your DD isn't a program (just a C
    funciton), and thus not a proper input for a halt decider, which by
    definiton must be a program.

    Your C function can't be a program, as you have specifically said that
    the function, and only the funciton is the input, and programs must
    include in them all their code, so since the code of HHH isn't
    included in DD or the input representing it, it isn't a program, and
    thus not a proper input


    <MIT Professor Sipser agreed to ONLY these verbatim words 10/13/2022>
         *until H correctly determines that*
         *its simulated D would never stop running unless aborted*
    </MIT Professor Sipser agreed to ONLY these verbatim words 10/13/2022>


    But that statement implies, as required that H be a halt decider and D
    to be a proper input to one, neither of which are satisfied, as you
    have admitte

    When HHH(DD) computes the actual mapping from
    its actual input to the actual behavior this
    it specifies it must be according to the rules
    of the x86 language.

    But it doesn't, as it doesn't correctly follow the behavior of the x86
    language, as that requires HHH to follow the call instruction, which
    it can not do as the required (and accepted by your) condition that
    the decider is a pure function, which means it can only look at its
    input, which does not include the code which the call points to.


    int sum(int x, int y) { return x + y; }
    sum is required to compute the mapping
    from its input into its return value
    according to the rules of arithmetic.

    Right, and a halt decider is required to (try to) compute the mapping
    from the input (which needs to be the representation of a program) to
    the results of running that program (since that is the DEFINITION of
    Halt Deciding).


    This means that requiring sum(3,2) to return
    the sum of 5 + 7 is an incorrect requirement.

    Right, just as HHH trying to claim that its answer is based on the
    fact that it can't reach the end of its simulation of the input isn't
    the correct requirement for HHH.


    Like sum(3,2) HHH(DD) is only allowed to report
    on the behavior that its input actually specifies.


    Right, which is Halting, since that behavior is DEFINED to be the
    behavior of running the program the input represents.


    Just like requiring sum(3,2) to report on the sum of 5 + 7
    a value other than its input specifies HHH IS NOT ALLOWED
    to report on anything other than the behavior that its input
    specifies.

    Its input specifies that it calls HHH(DD) in recursive
    emulation. THIS CANNOT BE IGNORED.


    No it doesn't, it calls HHH, which does what it does. Since your decider
    HHH is defined to abort and return 0, so is the HHH that DD calls, since
    it was built from that machine.

    What we can not ignore is that HHH has a definition, and HHH needs to interprete the call in DD by that definition, not you LIE that HHH is
    just a correct simulator, since it isn't.

    Sorry, you are the one that is choosing to ignore the input and replace
    it with somethng it isn't, becaue you don't understand that you did
    define it when you created your HHH to abort and return 0.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to olcott on Thu May 8 21:02:22 2025
    On 5/8/25 7:53 PM, olcott wrote:
    On 5/8/2025 6:45 PM, Keith Thompson wrote:
    olcott <polcott333@gmail.com> writes:
    On 5/8/2025 5:26 PM, Keith Thompson wrote:
    [...]
    I am more nearly an expert on C than on the Halting Problem.
    Watching olcott base his arguments on C *and getting C so badly
    wrong* leads me to think that he is largely ignorant of C (which is
    fine, most people are) and is unwilling to admit it.  Watching the
    reactions of actual experts to his mathematical arguments leads me
    to the same conclusion about his knowledge of the relevant fields
    of mathematics.


    If Halt7.c is not compiled with the Microsoft
    compiler then it will not produce the required
    object file type.

    The rest of the system has compiled under
    Linux. I haven't tried this in a few years.

    [...]

    So you normally compile your code using the 2017 version of Microsoft
    Visual Studio.

    I have no particular problem with that, but your failure to correct
    a number of C errors in your code is odd.

    As I already proved Microsoft reported no such errors.

     I've pointed out several
    syntax errors and constraint violations; at least the syntax errors
    would be trivial to fix (even if your compiler is lax enough to
    fail to diagnose them).  Richard Heathfield has pointed out code
    that dereferences a null pointer.


    Mike corrected Richard on this.
    Those are stub functions intercepted
    by x86utm the operating system.

    You are using C, a language in which you appear to have little
    apparent expertise or willingness to learn, to demonstrate claims
    that, if true, would overturn ideas that have been generally accepted
    for decades.  Can you understand why I might decide that analyzing
    your claims is not worth my time?


    I learned C back when K & R was the standard.

    void DDD()
    {
      HHH(DDD);
      return;
    }

    We don't need to look at any of my code for me
    to totally prove my point. For example when
    the above DDD is correctly simulated by HHH
    this simulated DDD cannot possibly reach its own
    "return" instruction.



    And thus not correctly simulatd.

    Sorry, there is no "OS Exemption" to correct simulaiton;.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to olcott on Thu May 8 22:18:12 2025
    On 5/8/25 9:41 PM, olcott wrote:
    On 5/8/2025 8:15 PM, Richard Damon wrote:
    On 5/8/25 7:59 PM, olcott wrote:
    On 5/8/2025 6:49 PM, Keith Thompson wrote:
    olcott <polcott333@gmail.com> writes:
    [...]
    void DDD()
    {
       HHH(DDD);
       return;
    }

    If you are a competent C programmer then you
    know that DDD correctly simulated by HHH cannot
    possibly each its own "return" instruction.

    "cannot possibly each"?

    I am a competent C programmer (and I don't believe you can make
    the same claim).  I don't know what HHH is.  The name "HHH" tells
    me nothing about what it's supposed to do.  Without knowing what
    HHH is, I can't say much about your code (or is it pseudo-code?).


    For the purpose of this discussion HHH is exactly
    what I said it is. It correctly simulates DDD.

    So you retract your stipulations?


    We need not know anything else about HHH to
    know that DDD correctly simulated by HHH cannot
    possibly REACH its own "return" instruction.

    Excpet that then you can't change HHH to make it the decider, as that
    changes the code of the program to be decided.


    *We can't get to that step until after this step is complete*
    So you agree with my above paragraph:

    We need not know anything else about HHH to
    know that DDD correctly simulated by HHH cannot
    possibly REACH its own "return" instruction.



    Excpet that as pointed out, your DDD is impossible to correctly
    simulate, as it doesn't include the code for the HHH that it calls, and
    thus any simulator that tries to simulate it finds undefined behavior,
    as it needs to access that which it isn't allowed to access and meet the requriment to be a pure funciton.

    All you are doing is proving you don't understand the basic terms you
    are using.

    If fact, you have admitted to enough details of what you are doing to
    totally disquiarlify all your work, as you admit that you consider
    neither HHH or DD to be programs, just C functions, which are not
    categories that the field talks about.


    Sorry, you are just proving you are too stupid to understand the
    elementary basics of the field you claim to be making great discoveries
    in, when in fact you prove that you are just lying about everything.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to olcott on Thu May 8 22:13:58 2025
    On 5/8/25 9:35 PM, olcott wrote:
    On 5/8/2025 8:13 PM, Richard Damon wrote:
    On 5/8/25 8:05 PM, olcott wrote:
    On 5/8/2025 6:54 PM, Keith Thompson wrote:
    olcott <polcott333@gmail.com> writes:
    On 5/8/2025 6:30 PM, Richard Heathfield wrote:
    On 08/05/2025 23:50, olcott wrote:
    [...]
    If you are a competent C programmer
    Keith Thompson is a highly-respected and very competent C
    programmer.

    *Then he is just who I need*

    No, what you need is someone who is an expert in mathematical logic
    (I am not) who can explain to you, in terms you can understand and
    accept, where you've gone wrong.  Some expertise in C could also
    be helpful.


    The key gap in my proof is that none of the comp.sci
    people seems to have a slight clue about simple C
    programming.

    No, the problem is you don't.


    void DDD()
    {
       HHH(DDD);
       return;
    }

    *THIS IS THE C PART THAT NO ONE HERE UNDERSTANDS*
    DDD correctly simulated by HHH cannot possibly
    reach its own "return" instruction.

    And claiming the behavior of a program that isn;t the behavior of that
    program is just a lie.


    DDD correctly simulated by HHH cannot possibly
    reach its own "return" instruction.

    DDD correctly simulated by HHH cannot possibly
    reach its own "return" instruction.

    DDD correctly simulated by HHH cannot possibly
    reach its own "return" instruction.


    Your DDD can't be correctly simulated by HHH as it isn't a program.

    The call HHH can not be correctly simulated, as the code for HHH is not
    part of the input.

    If you want it to be part of the input, it needs to be there. If HHH
    tries to acccess the code just from memory, it proves it isn't a proper
    pure funciton, and thus disqualifies itself.

    You are just proving that you are just an ignorant pathological liar.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to olcott on Thu May 8 22:11:22 2025
    On 5/8/25 9:33 PM, olcott wrote:
    On 5/8/2025 8:07 PM, Richard Damon wrote:
    On 5/8/25 8:14 PM, olcott wrote:
    On 5/8/2025 7:00 PM, Keith Thompson wrote:
    olcott <polcott333@gmail.com> writes:
    On 5/8/2025 6:45 PM, Keith Thompson wrote:
    olcott <polcott333@gmail.com> writes:
    On 5/8/2025 5:26 PM, Keith Thompson wrote:
    [...]
    I am more nearly an expert on C than on the Halting Problem.
    Watching olcott base his arguments on C *and getting C so badly >>>>>>>> wrong* leads me to think that he is largely ignorant of C (which is >>>>>>>> fine, most people are) and is unwilling to admit it.  Watching the >>>>>>>> reactions of actual experts to his mathematical arguments leads me >>>>>>>> to the same conclusion about his knowledge of the relevant fields >>>>>>>> of mathematics.


    If Halt7.c is not compiled with the Microsoft
    compiler then it will not produce the required
    object file type.

    The rest of the system has compiled under
    Linux. I haven't tried this in a few years.
    [...]
    So you normally compile your code using the 2017 version of
    Microsoft
    Visual Studio.
    I have no particular problem with that, but your failure to correct >>>>>> a number of C errors in your code is odd.

    As I already proved Microsoft reported no such errors.

    Microsoft's compiler did not report certain errors that any
    conforming C
    compiler is required by the standard to report.

    Microsoft's compiler *can* be invoked in a way that causes it to
    diagnose such errors, though it may or may not become fully conforming. >>>> I haven't used it lately, but a web search should tell you how to do
    that.

      I've pointed out several
    syntax errors and constraint violations; at least the syntax errors >>>>>> would be trivial to fix (even if your compiler is lax enough to
    fail to diagnose them).  Richard Heathfield has pointed out code
    that dereferences a null pointer.


    Mike corrected Richard on this.
    Those are stub functions intercepted
    by x86utm the operating system.

    You are using C, a language in which you appear to have little
    apparent expertise or willingness to learn, to demonstrate claims
    that, if true, would overturn ideas that have been generally accepted >>>>>> for decades.  Can you understand why I might decide that analyzing >>>>>> your claims is not worth my time?


    I learned C back when K & R was the standard.

    So did I.  I've kept up with the language as it has changed.

    void DDD()
    {
       HHH(DDD);
       return;
    }

    We don't need to look at any of my code for me
    to totally prove my point.

    Great.  Then why do you keep posting code?  Or is the above DDD()
    function not included in "any of my code")?

                                For example when >>>>> the above DDD is correctly simulated by HHH
    this simulated DDD cannot possibly reach its own
    "return" instruction.

    That's too vague for me to comment.


    Do you know what a C language interpreter is?
    I actually do this at the x86 machine code level
    yet most people don't have a clue about that.

    _DDD()
    [00002172] 55         push ebp      ; housekeeping
    [00002173] 8bec       mov ebp,esp   ; housekeeping
    [00002175] 6872210000 push 00002172 ; push DDD
    [0000217a] e853f4ffff call 000015d2 ; call HHH(DDD)
    [0000217f] 83c404     add esp,+04
    [00002182] 5d         pop ebp
    [00002183] c3         ret
    Size in bytes:(0018) [00002183]

    The above hypothetical HHH emulates the first four
    instructions of DDD. This sequence repeats until a
    OOM error.


    Which is INVALID as in input to a halt decider

    We aren't even talking about a halt decider yet.

    Sure we are, as we are discussing the behavior of what you will make the
    input to one.

    It also is an invalid input to a correct emulator for exactly the same
    reason,


    We are only testing to see if the idea of recursive
    simulation is understood to be equivalent to infinite
    recursion.


    And how do you emulate something that doesn't define all its code?

    Remember, the DEFINITION of the emulation of the call HHH instruciton
    include next emulating the first instruction of HHH, which izn't in the
    input, and thus your emulator also isn't a pure function.

    Sorry, you deceptions just doesn't work, and all you are doing is
    proving your ignorance of what you are talkking about.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to olcott on Thu May 8 22:30:22 2025
    On 5/8/25 10:22 PM, olcott wrote:
    On 5/8/2025 9:02 PM, Keith Thompson wrote:
    olcott <polcott333@gmail.com> writes:
    On 5/8/2025 6:54 PM, Keith Thompson wrote:
    olcott <polcott333@gmail.com> writes:
    On 5/8/2025 6:30 PM, Richard Heathfield wrote:
    On 08/05/2025 23:50, olcott wrote:
    [...]
    If you are a competent C programmer
    Keith Thompson is a highly-respected and very competent C
    programmer.

    *Then he is just who I need*
    No, what you need is someone who is an expert in mathematical logic
    (I am not) who can explain to you, in terms you can understand and
    accept, where you've gone wrong.  Some expertise in C could also
    be helpful.

    The key gap in my proof is that none of the comp.sci
    people seems to have a slight clue about simple C
    programming.

    You see, this is something you've gotten wrong, and you need somebody
    who can explain that to you in terms you can understand and accept.

    void DDD()
    {
       HHH(DDD);
       return;
    }

    *THIS IS THE C PART THAT NO ONE HERE UNDERSTANDS*
    DDD correctly simulated by HHH cannot possibly
    reach its own "return" instruction.

    Is there any reason you couldn't have written that as follows?

    void DDD(void)
    {
       HHH(DDD);
    }

    You could then talk about it not reaching its closing brace rather
    than not reaching its "return" instruction.  BTW, it's correctly
    called a "return statement" in C; dropping it would make it easier
    to avoid your incorrect use of terminology.  (Assembly or machine
    code has "instructions"; C has "statements" and "declarations".)

    DDD correctly simulated by HHH is the same thing
    as infinite recursion between HHH and DDD yet is
    implemented as recursive simulation.

    Sure, infinite recursion is infinite, regardless of how it's
    implemented, assuming it's implemented correctly.  That's so trivally
    obvious that I simply don't believe that "the comp.sci" people are
    failing to understand it -- though I can believe that you believe it.


    Look at their replies to this post.
    Not a one of them will agree that

    void DDD()
    {
      HHH(DDD);
      return; // final halt state
    }

    When 1 or more instructions of DDD are correctly
    simulated by HHH then the correctly simulated DDD cannot
    possibly reach its "return" instruction (final halt state).

    Because that isn't the definiton of Non-Halting.

    And, your emulators are violating the rules they need to follow by
    looking at memory that isn't part of their input.


    They have consistently disagreed with this
    simple point for three years.

    because your statement is irrelvent, and a violation of the criteria you aggreed you needed to follow.

    If you can't follow your own rules, you are just being a liar.


    I doubt that any such person exists, but only for reasons related
    to you.





    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to olcott on Thu May 8 22:26:55 2025
    On 5/8/25 9:55 PM, olcott wrote:
    On 5/8/2025 8:18 PM, Richard Damon wrote:
    On 5/8/25 7:48 PM, olcott wrote:
    On 5/8/2025 6:35 PM, Richard Damon wrote:
    On 5/8/25 1:00 PM, olcott wrote:
    On 5/8/2025 11:14 AM, Mike Terry wrote:
    On 08/05/2025 06:33, Richard Heathfield wrote:
    On 08/05/2025 06:22, olcott wrote:
    On 5/7/2025 11:09 PM, Richard Heathfield wrote:
    On 08/05/2025 02:20, olcott wrote:

    <snip>

    Does there exist an HHH such that DDD emulated by
    HHH according to the rules of the C programming language

    Let's take a look.

    The file is 1373 lines long, but don't worry, because I plan to >>>>>>>>> stop at HHH's first departure from the rules of the C
    programming language (or at least the first departure I spot). >>>>>>>>>
    Turn in your songbook if you will to:

    void CopyMachineCode(u8* source, u8** destination)
    {
       u32 size;
       for (size = 0; source[size] != 0xcc; size++)
         ;
       *destination = (u8*) Allocate(size);
       for (u32 N = 0; N < size; N++)
       {
         Output("source[N]: ", source[N]);
         *destination[N] = source[N];
       }
       ((u32*)*destination)[-1] = size;
       Output("CopyMachineCode destination[-1]: ",
    ((u32*)*destination) [-1]);
       Output("CopyMachineCode destination[-2]: ",
    ((u32*)*destination) [-2]);
    };


    deprecated.

    It's not just deprecated. It's hopelessly broken.

    Everybody makes mistakes, and one slip would be all very well,
    but you make essentially the same mistake --- writing to memory
    that your program doesn't own --- no fewer than four times in a
    single function.

    I'll ignore the syntax error (a null statement at file scope is >>>>>>>>> a rookie error).

    Instead, let's jump straight to this line:

       *destination = (u8*) Allocate(size);

    On line 79 of my copy of the code, we find:

    u32* Allocate(u32 size) { return 0; }

    In C, 0 is a null pointer constant, so Allocate returns a null >>>>>>>>> pointer constant... which is fine as long as you don't try to >>>>>>>>> deref it. So now *destination is NULL.

    We go on:

       for (u32 N = 0; N < size; N++)
       {
         Output("source[N]: ", source[N]);
         *destination[N] = source[N];
       }

    *destination[N] is our first big problem (we're ignoring syntax >>>>>>>>> errors, remember). destination is a null pointer, so
    destination[N] derefs a null pointer.

    That's a fail. 0/10, D-, go away and write it again. And you / >>>>>>>>> dare/ to impugn other people's C knowledge! Crack a book, for >>>>>>>>> pity's sake.


    If you can't even understand what is essentially
    an infinite recursive relationship between two functions
    except that one function can terminate the other then
    you don't have a clue about the essence of my system.

    If you can't even understand why it's a stupendously bad idea to >>>>>>> dereference a null pointer, you have no business trying to teach >>>>>>> anyone anything about C.

    Your code is the work of a programmer so hideously incompetent
    that 'programmer' is scarcely a fair word to use.

    When you publish code like that, to even *think* about
    denigrating other people's C knowledge is the height of arrogant >>>>>>> hypocrisy.

    One problem here is that you don't understand how PO's code works. >>>>>> That's to be expected, and PO's response ought to be to explain it >>>>>> so that you understand.  Instead he goes off on one of his rants, >>>>>> so blamewise it's really down to PO.

    PO's halt7.c is compiled (it is not linked), then the obj file is
    fed as input to his x87utm.exe which is a kind of x86 obj code
    execution environment.  x87utm provides a number of primative
    calls that halt7.c code can make, such as Allocate(), used to
    allocate a block of memory for use in halt7.c.  Within halt7.c
    code calls an Allocate() function, and x86utm intercepts that and
    performs the function internally, then jumps the calling code in
    halt7.c over the Allocate call where it continues as normal.  The >>>>>> call never goes to the implementation of Allocate in halt7.c, so
    the null pointer dereferencing does not actually occur.  There are >>>>>> a whole bunch of similar x86utm primitive operations that work in
    the same way.

    PO should have said all that, not me, but it seems he's not
    interested in genuine communication.

    Mike.



    Thanks for those details, they are correct.
    I try to stay focused on the key essence gist
    of the issue and never delve down into the weeds.

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

    The key gist of the issue (no weeds involved)
    is that HHH emulated DD according to the rules
    of the x86 language

    Excpet, as you have admitted, your DD isn't a program (just a C
    funciton), and thus not a proper input for a halt decider, which by
    definiton must be a program.

    Your C function can't be a program, as you have specifically said
    that the function, and only the funciton is the input, and programs
    must include in them all their code, so since the code of HHH isn't
    included in DD or the input representing it, it isn't a program, and
    thus not a proper input


    <MIT Professor Sipser agreed to ONLY these verbatim words 10/13/2022> >>>>>      *until H correctly determines that*
         *its simulated D would never stop running unless aborted*
    </MIT Professor Sipser agreed to ONLY these verbatim words 10/13/2022> >>>>>

    But that statement implies, as required that H be a halt decider and
    D to be a proper input to one, neither of which are satisfied, as
    you have admitte

    When HHH(DD) computes the actual mapping from
    its actual input to the actual behavior this
    it specifies it must be according to the rules
    of the x86 language.

    But it doesn't, as it doesn't correctly follow the behavior of the
    x86 language, as that requires HHH to follow the call instruction,
    which it can not do as the required (and accepted by your) condition
    that the decider is a pure function, which means it can only look at
    its input, which does not include the code which the call points to.


    int sum(int x, int y) { return x + y; }
    sum is required to compute the mapping
    from its input into its return value
    according to the rules of arithmetic.

    Right, and a halt decider is required to (try to) compute the
    mapping from the input (which needs to be the representation of a
    program) to the results of running that program (since that is the
    DEFINITION of Halt Deciding).


    This means that requiring sum(3,2) to return
    the sum of 5 + 7 is an incorrect requirement.

    Right, just as HHH trying to claim that its answer is based on the
    fact that it can't reach the end of its simulation of the input
    isn't the correct requirement for HHH.


    Like sum(3,2) HHH(DD) is only allowed to report
    on the behavior that its input actually specifies.


    Right, which is Halting, since that behavior is DEFINED to be the
    behavior of running the program the input represents.


    Just like requiring sum(3,2) to report on the sum of 5 + 7
    a value other than its input specifies HHH IS NOT ALLOWED
    to report on anything other than the behavior that its input
    specifies.

    Its input specifies that it calls HHH(DD) in recursive
    emulation. THIS CANNOT BE IGNORED.


    No it doesn't, it calls HHH, which does what it does. Since your
    decider HHH is defined to abort and return 0, so is the HHH that DD
    calls, since it was built from that machine.

    What we can not ignore is that HHH has a definition, and HHH needs to
    interprete the call in DD by that definition, not you LIE that HHH is
    just a correct simulator, since it isn't.

    Sorry, you are the one that is choosing to ignore the input and
    replace it with somethng it isn't, becaue you don't understand that
    you did define it when you created your HHH to abort and return 0.

    void DDD()
    {
      HHH(DDD);
      return;
    }

    _DDD()
    [00002172] 55         push ebp      ; housekeeping
    [00002173] 8bec       mov ebp,esp   ; housekeeping
    [00002175] 6872210000 push 00002172 ; push DDD
    [0000217a] e853f4ffff call 000015d2 ; call HHH(DDD)
    [0000217f] 83c404     add esp,+04
    [00002182] 5d         pop ebp
    [00002183] c3         ret
    Size in bytes:(0018) [00002183]

    For every HHH that can possibly exist at machine address
    000015d2 that correctly emulates 1 or more x86 instructions
    of DDD (the exact machine code bytes specified above) no
    correctly emulated DDD ever reaches their own "return"
    instruction.

    Since the input doesn't include the code at 000015d2, no HHH that
    emulates past the call instruction is a correct program per the
    definition of computaiton theory, as it depends on things that are not
    its input.


    This may simply be too difficult for most everyone here.
    Instead of simply saying they they don't understand the
    x86 language they try to deflect away from this subject
    to try to hide their own ignorance.


    No, you are just proving that you don't understand the meaning of your
    words.

    If you want to change the domain to x86 programs, and that HHH and DD
    are all part of one program, then you might be able to show that no
    program that has a HHH that acts the way you describe every reaches the
    return instruction.

    Tbhis does NOT say that the "input" is non-halting, as that is a
    Computation Theory Term, and not applicable here.

    It is still the fact, that by the definition of the Halting Problem,
    even when broght into this computation realm, the DEFINITION of a Halt
    Decider is, and only is, that it must answer about the behavior of the
    directly called program defined by the input.

    Since if HHH(DD) return 0, that fact that no HHH emulated its input to a
    final state is just an irrelevent fact, the direct execution of the
    input returns, and thus is halting.

    All you are doing is proving that you can't keep a fact straight, and
    your habit is to change statements into lies and false statement,
    because you are just a pathoological liar.

    Your strawman in irrelvent, becuase the Halting Criteria is clearly
    Stated, and anything else which gives a different answer can't be the equivalent to it.

    Unless of course, you are just trying to show that in your mind, every
    thing is just lies that you beleive.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to Keith Thompson on Thu May 8 23:01:18 2025
    On 5/8/25 10:23 PM, Keith Thompson wrote:
    Richard Damon <richard@damon-family.org> writes:
    On 5/8/25 7:53 PM, olcott wrote:
    [...]
    void DDD()
    {
      HHH(DDD);
      return;
    }
    We don't need to look at any of my code for me
    to totally prove my point. For example when
    the above DDD is correctly simulated by HHH
    this simulated DDD cannot possibly reach its own
    "return" instruction.

    And thus not correctly simulatd.

    Sorry, there is no "OS Exemption" to correct simulaiton;.

    Perhaps I've missed something. I don't see anything in the above that implies that HHH does not correctly simulate DDD. Richard, you've read
    far more of olcott's posts than I have, so perhaps you can clarify.

    If we assume that HHH correctly simulates DDD, then the above code is equivalent to:

    void DDD()
    {
    DDD();
    return;
    }

    which is a trivial case of infinite recursion. As far as I can tell, assuming that DDD() is actually called at some point, neither the
    outer execution of DDD nor the nested (simulated) execution of DDD
    can reach the return statement. Infinite recursion might either
    cause a stack overflow and a probable program crash, or an unending
    loop if the compiler implements tail call optimization.

    I see no contradiction, just an uninteresting case of infinite
    recursion, something that's well understood by anyone with a
    reasonable level of programming experience. (And it has nothing to
    do with the halting problem as far as I can tell, though of course
    olcott has discussed the halting problem elsewhere.)

    Richard, what am I missing?


    You are missing the equivocation he is using on what is "DDD()"

    First, he tries to define it as just the code of the function, and not including any of the code that it calls. He does this so all the various
    HHH that he talks about are given the "same" input.

    Then he tries to also say that when those functions look at DDD, they
    can follow the memory chain to the functions that it calls, that weren't actually part of the input.

    This means the "behavior" of his input isn't actually defined by the input.

    He has also, to get around other objections about what he is doing,
    stipulated that his functions must be pure functions, and thus only
    dependent on their direct input, other wise we can add the following
    code to the beginning of HHH to make his statement false:


    int HHH(void (*p)()) {
    static int flag = 0;
    if (flag) return 0;
    flag = 1;
    /* then the rest of the code that he uses to simulate the input */

    Such an HHH obviously can "correctly simulate" a call to itself in the
    same memory space to the return of DDD.

    But, since HHH has been stipulated to be a pure function, it can't
    access memory that wasn't part of its input, and thus his first
    definition can't be used, and when we use the second definiton, it is
    clear that each of his HHH's get different input, so is ploy to show
    that the HHH that does correctly emulate the input which show that "the"
    DDD is non-halting also shows that the HHH that does abort, and was
    given the "same" input can also conclude that.

    Of course, different inputs can behavie differently and thus he is just
    using his projection that HHH(DDD) is just like the sum(2,3) that
    returned 7 as the sum of 2 + 5 since it "changed" the input to something
    it wasn't.

    His goal is to ge this "fact" agreed to in the abstract case, so he can
    claim it must also be true when HHH is now defined to be that HHH that
    aborts by his equivocation.

    The HHH that correctly emulates its input can only do its job when the
    input includes all the code it is to emulate as a valid part of its input.

    If you look at some of his other posts, what he really is trying to do
    is say that HHH can "correctly" emulate the call to HHH(DDD) as actually starting a new level of emulation within the actual emulator instead of actually emulating the emulator emulating the input, as that "gets too
    long" and thus hidding that the emulation WILL be aborted by his actual
    HHH and not create the claimed infinite recursion, which only exists in
    his "hypothectical" HHH that isn't what he will actually define it to be.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to olcott on Thu May 8 22:35:21 2025
    On 5/8/25 10:13 PM, olcott wrote:
    On 5/8/2025 8:30 PM, Keith Thompson wrote:
    olcott <polcott333@gmail.com> writes:
    On 5/8/2025 6:49 PM, Keith Thompson wrote:
    olcott <polcott333@gmail.com> writes:
    [...]
    void DDD()
    {
        HHH(DDD);
        return;
    }

    If you are a competent C programmer then you
    know that DDD correctly simulated by HHH cannot
    possibly each its own "return" instruction.
    "cannot possibly each"?
    I am a competent C programmer (and I don't believe you can make
    the same claim).  I don't know what HHH is.  The name "HHH" tells
    me nothing about what it's supposed to do.  Without knowing what
    HHH is, I can't say much about your code (or is it pseudo-code?).


    For the purpose of this discussion HHH is exactly
    what I said it is. It correctly simulates DDD.

    Does HHH correctly simulate DDD *and do nothing else*?

    Does HHH correctly simulate *every* function whose address is passed
    to it?  Must the passed function be one that takes no arguments
    and does not return a value?

    Can HHH just *call* the function whose address is passed to it?
    If it's a correct simulation, there should be no difference between
    calling the function and "correctly simulating" it.

    My knowledge of C tells me nothing about *how* HHH might simulate
    DDD.


    HHH can only simulate a function that take no arguments
    and has no return value. HHH also simulates the entire
    chain of functions that this function calls. These can
    take arguments or not and have return values or not.

    Thus HHH ends up simulating itself (and everything
    that HHH calls) simulating DDD in an infinite
    sequence of recursive emulation until OOM error.

    We need not know anything else about HHH to
    know that DDD correctly simulated by HHH cannot
    possibly REACH its own "return" instruction.

    Assuming that HHH(DDD) "correctly simulates" DDD, and assuming it
    does nothing else, your code would be equivalent to this:

         void DDD(void) {
             DDD();
             return;
         }


    Exactly. None of these people on comp.theory could
    get that even after three years.

    Then the return statement (which is unnecessary anyway) will never be
    reached.

    It is only there to mark a final halt state.

    In practice, the program will likely crash due to a stack
    overflow, unless the compiler implements tail-call optimization, in
    which case the program might just run forever -- which also means the
    unnecessary return statement will never be reached.


    Yes you totally have this correctly.
    None of the dozens of comp.theory people could
    ever achieve that level of understanding even
    after three years. That is why I needed to post
    on comp.lang.c.

    And thus fails to be the pure function you agreed it needed to be.




    This conclusion relies on my understanding of what you've said about
    your code, which I consider to be unreliable.


    I am not even talking about my code. I am
    talking about the purely hypothetical code
    that you just agreed to.

    Based on assuming the code violates the rules you say it must follow.

    That is a self-contradiction.


    No doubt you believe that there is some significance to the
    apparent fact that the return statement will never be reached,
    assuming that's a correct and relevant conclusion.  I don't know
    what that significance might be.


    I will tell you that later after you understand
    some prerequisite ideas first.

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

    The same thing that applied to DDD equally
    applies to the more complicated DD.

    When 1 or more instructions of DD are correctly
    simulated by HHH the correctly simulated DD
    cannot possibly get past its call to HHH(DD).
    Thus DD also never reaches its "return" instruction.

    But we can't correctly emulate the call insturciton of DD or DDD as the
    target is not part of the input, and thus any emulator that looks there
    has violate the requirements of being a pure function that you agreed to.

    So, if x is a square circle then x is correct. Sorry, that isn't valid
    logic.

    All you are doing is proving you don't understand what you are talking
    abour.

    Until you explain why this isn't a violation of your stipulations, we
    can't move past this point.

    Your input is just INVALID by your own rules, as it CAN'T be correctly emulated, as it is incomplete.


    The return statement is harmless but unnecessary.
    "void DDD()" should be "void DDD(void)" (unless you're using C23,
    but
    we've established that your not).  Why did you choose to use empty
    parentheses?  (If you answer nothing else, please answer that.)

    I am using Microsoft Visual Studio 2017.
    It compiled cleanly.

    Microsoft Visual Studio 2017 is not a conforming C compiler.  It has
    options that cause it to attempt to be one.  You are feeding it
    incorrect code, and it's failing to diagnose it.  Your code would
    also compile cleanly if you fixed the errors.  *Correct* C code
    might be part of a more valid argument for your claims than the
    one you're making.  *Incorrect* C code hurts your credibility,
    something I thought you cared about.  (Using C at all is an odd
    choice, but I won't get into that.)

    If there were a refutation of the proof of the insolubility of the
    Halting Problem, I do not believe it would really depend on the
    vagaries of the 2017 version of Microsoft Visual Studio.

    Oh, and I'm very likely to tire of this discussion very soon, so
    think carefully if you want to make a point that you'd like me to
    pay attention to.  Among other things, your repeated insults against
    people who dare to disagree with you do not motivate me to engage
    with you.  I probably shouldn't have jumped into this discussion,
    but the noise level here is already so high I don't feel very bad
    about it.




    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Mike Terry@21:1/5 to olcott on Fri May 9 04:14:42 2025
    On 09/05/2025 03:13, olcott wrote:
    On 5/8/2025 8:30 PM, Keith Thompson wrote:
    olcott <polcott333@gmail.com> writes:
    On 5/8/2025 6:49 PM, Keith Thompson wrote:
    olcott <polcott333@gmail.com> writes:
    [...]
    void DDD()
    {
    HHH(DDD);
    return;
    }

    If you are a competent C programmer then you
    know that DDD correctly simulated by HHH cannot
    possibly each its own "return" instruction.
    "cannot possibly each"?
    I am a competent C programmer (and I don't believe you can make
    the same claim). I don't know what HHH is. The name "HHH" tells
    me nothing about what it's supposed to do. Without knowing what
    HHH is, I can't say much about your code (or is it pseudo-code?).


    For the purpose of this discussion HHH is exactly
    what I said it is. It correctly simulates DDD.

    Does HHH correctly simulate DDD *and do nothing else*?

    Does HHH correctly simulate *every* function whose address is passed
    to it? Must the passed function be one that takes no arguments
    and does not return a value?

    Can HHH just *call* the function whose address is passed to it?
    If it's a correct simulation, there should be no difference between
    calling the function and "correctly simulating" it.

    My knowledge of C tells me nothing about *how* HHH might simulate
    DDD.


    HHH can only simulate a function that take no arguments
    and has no return value. HHH also simulates the entire
    chain of functions that this function calls. These can
    take arguments or not and have return values or not.

    Thus HHH ends up simulating itself (and everything
    that HHH calls) simulating DDD in an infinite
    sequence of recursive emulation until OOM error.

    We need not know anything else about HHH to
    know that DDD correctly simulated by HHH cannot
    possibly REACH its own "return" instruction.

    Assuming that HHH(DDD) "correctly simulates" DDD, and assuming it
    does nothing else, your code would be equivalent to this:

    void DDD(void) {
    DDD();
    return;
    }


    Exactly. None of these people on comp.theory could
    get that even after three years.


    PO is being quite deceptive here.

    His simulation is in fact a single-stepped x86 instruction simulation, where the stepping of each
    x86 instruction is under the HHH's control. HHH can continue stepping the simulation until its
    target returns, in which case the situation is logically just like direct call, as you have
    described. Or HHH could step just 3 x86 instructions (say) and then decide to return (aka "abort"
    its simulation). Let's call that /partial/ simulation in contrast with /full/ simulation which
    you've been supposing.

    Oh, did he forget to mention that? Anyhow, in the general case with /partial/ simulation there is
    more to think about as it is obvioudly /not/ logically equivalent to direct execution.


    Oh, and obviously everybody in comp.theory gets all this. The problem is with PO and his inability
    to communicate his ideas properly and his inability to understand what other people understand or
    disagree with. He goes on for months/years claiming people don't understand things they agree with,
    but it's down to his duffer wording...

    Then the return statement (which is unnecessary anyway) will never be
    reached.

    It is only there to mark a final halt state.

    In practice, the program will likely crash due to a stack
    overflow, unless the compiler implements tail-call optimization, in
    which case the program might just run forever -- which also means the
    unnecessary return statement will never be reached.


    Yes you totally have this correctly.
    None of the dozens of comp.theory people could
    ever achieve that level of understanding even
    after three years. That is why I needed to post
    on comp.lang.c.

    Everybody on comp.theory understands this much. PO's plan is that when he goes elsewhere he can
    start with noobies and trick them into agreeing with certain "wordings" by not explaining relevent
    context for his questions. Then he goes back to comp.theory and triumphantly claims support from
    elsewhere, proving to himself that comp.theory posters are all idiots. :)

    So beware!


    This conclusion relies on my understanding of what you've said about
    your code, which I consider to be unreliable.

    Hmm, did PO make it clear that when he says

    "..DDD correctly simulated by HHH cannot
    possibly REACH its own "return" instruction."

    he is not talking about whether "DDD halts"? [I.e. halts when run directly from main() outside of a
    simulator.] No, what he is talking about is whether the /step-by-step partial simuation/ of DDD
    performed by HHH proceeds as far as DDD returning. Don't forget - HHH is allowed to simply stop
    simulating and return whenever it likes! Maybe it only wants to simulate 48 x86 instructions, or
    just 1, or maybe it's in for the long haul and simulates until DDD returns [if it ever does].

    So you need to re-analyse everything you've said with this new information that PO forgot to make
    clear.


    Regards,
    Mike.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Heathfield@21:1/5 to olcott on Fri May 9 05:35:54 2025
    On 09/05/2025 00:53, olcott wrote:
    On 5/8/2025 6:45 PM, Keith Thompson wrote:
    olcott <polcott333@gmail.com> writes:
    On 5/8/2025 5:26 PM, Keith Thompson wrote:
    [...]
    I am more nearly an expert on C than on the Halting Problem.
    Watching olcott base his arguments on C *and getting C so badly
    wrong* leads me to think that he is largely ignorant of C
    (which is
    fine, most people are) and is unwilling to admit it.
    Watching the
    reactions of actual experts to his mathematical arguments
    leads me
    to the same conclusion about his knowledge of the relevant
    fields
    of mathematics.


    If Halt7.c is not compiled with the Microsoft
    compiler then it will not produce the required
    object file type.

    The rest of the system has compiled under
    Linux. I haven't tried this in a few years.

    [...]

    So you normally compile your code using the 2017 version of
    Microsoft
    Visual Studio.

    I have no particular problem with that, but your failure to
    correct
    a number of C errors in your code is odd.

    As I already proved Microsoft reported no such errors.

    That's tantamount to a claim of a bug in your compiler.
    Conforming C compilers are /required/ to report syntax errors.

     I've pointed out several
    syntax errors and constraint violations; at least the syntax
    errors
    would be trivial to fix (even if your compiler is lax enough to
    fail to diagnose them).  Richard Heathfield has pointed out code
    that dereferences a null pointer.


    Mike corrected Richard on this.

    No, Mike just pointed out that you don't call all the functions
    you posted. The fact remains that your code is broken.

    Those are stub functions intercepted
    by x86utm the operating system.

    They are nevertheless evidence of your poor grasp of the language.

    <snip>

    --
    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 Fri May 9 05:50:29 2025
    On 09/05/2025 01:14, olcott wrote:
    Do you know what a C language interpreter is?

    Of course he does.

    A C language interpreter is not absolved from the requirement to
    diagnose C syntax errors.

    If you think that your x86utm.cpp code qualifies as a C language
    interpreter, you are mistaken. You don't even grant it access to
    the C code.

    --
    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 Keith Thompson on Fri May 9 06:10:00 2025
    On 09/05/2025 03:14, Keith Thompson wrote:
    I propose that whenever olcott makes a repetitive post, everyone
    ignores it.

    Since pretty much everything he posts is repetitive, you are
    effectively suggesting a groupwide plonk.

    --
    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 Fri May 9 06:23:52 2025
    On 09/05/2025 06:01, olcott wrote:
    On 5/8/2025 11:50 PM, Richard Heathfield wrote:
    On 09/05/2025 01:14, olcott wrote:
    Do you know what a C language interpreter is?

    Of course he does.

    A C language interpreter is not absolved from the requirement
    to diagnose C syntax errors.

    If you think that your x86utm.cpp code qualifies as a C
    language interpreter, you are mistaken. You don't even grant it
    access to the C code.


    I am explaining is as a c language interpreter only
    because its actual x86 basis seems over everyone's head.

    It doesn't interpret C.

    For that matter, it doesn't interpret x86 assembly language
    either. It just single-steps through machine instructions, like a
    debugger. There isn't any interpretation whatsoever.

    I'm not entirely sure you understand what an interpreter actually is.

    --
    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 Keith Thompson on Fri May 9 06:41:56 2025
    On 09/05/2025 06:18, Keith Thompson wrote:
    Richard Heathfield <rjh@cpax.org.uk> writes:
    On 09/05/2025 00:53, olcott wrote:
    On 5/8/2025 6:45 PM, Keith Thompson wrote:
    [...]
    I have no particular problem with that, but your failure to correct
    a number of C errors in your code is odd.
    As I already proved Microsoft reported no such errors.

    That's tantamount to a claim of a bug in your compiler. Conforming C
    compilers are /required/ to report syntax errors.

    Meh. Most C compilers, certainly including gcc, clang, and
    Microsoft's C compiler, are not conforming by default. In fact,
    I don't know of any that are.

    Indeed, although it's normally quite easy to kick them into
    conforming mode if such a mode exists.

    But when Mr Olcott directs the discussion towards the C language
    (and even cross-posts to comp.lang.c from time to time), it is
    reasonable to assume that he is talking about the C language. The
    C language is defined by an international standard, not by a set
    of command line switches.

    I consider this unfortunate, but it means that if you want a
    conforming C compiler, you need to use apply additional options
    ("-std=cNN -pedantic" for gcc and clang, and something else for
    Microsoft's compiler).

    It's been a very long time since I used a Microsoft compiler, but
    -W4 is worth a shot.

    The problem, of course, is that different C compilers in their default
    modes are lax in different ways, so an error that compiler X ignores by default might become fatal when you use compiler Y.

    Yes, which is fine as long as the compiler X user restricts
    himself to compiler X, but which can embarrass him if he starts
    making general claims about the language itself.

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

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Fred. Zwarts@21:1/5 to All on Fri May 9 10:39:00 2025
    Op 09.mei.2025 om 01:53 schreef olcott:
    On 5/8/2025 6:45 PM, Keith Thompson wrote:
    olcott <polcott333@gmail.com> writes:
    On 5/8/2025 5:26 PM, Keith Thompson wrote:
    [...]
    I am more nearly an expert on C than on the Halting Problem.
    Watching olcott base his arguments on C *and getting C so badly
    wrong* leads me to think that he is largely ignorant of C (which is
    fine, most people are) and is unwilling to admit it.  Watching the
    reactions of actual experts to his mathematical arguments leads me
    to the same conclusion about his knowledge of the relevant fields
    of mathematics.


    If Halt7.c is not compiled with the Microsoft
    compiler then it will not produce the required
    object file type.

    The rest of the system has compiled under
    Linux. I haven't tried this in a few years.

    [...]

    So you normally compile your code using the 2017 version of Microsoft
    Visual Studio.

    I have no particular problem with that, but your failure to correct
    a number of C errors in your code is odd.

    As I already proved Microsoft reported no such errors.

     I've pointed out several
    syntax errors and constraint violations; at least the syntax errors
    would be trivial to fix (even if your compiler is lax enough to
    fail to diagnose them).  Richard Heathfield has pointed out code
    that dereferences a null pointer.


    Mike corrected Richard on this.
    Those are stub functions intercepted
    by x86utm the operating system.

    You are using C, a language in which you appear to have little
    apparent expertise or willingness to learn, to demonstrate claims
    that, if true, would overturn ideas that have been generally accepted
    for decades.  Can you understand why I might decide that analyzing
    your claims is not worth my time?


    I learned C back when K & R was the standard.

    void DDD()
    {
      HHH(DDD);
      return;
    }

    We don't need to look at any of my code for me
    to totally prove my point. For example when
    the above DDD is correctly simulated by HHH
    this simulated DDD cannot possibly reach its own
    "return" instruction.



    A vacuous statement, because HHH cannot correctly simulate DDD, which
    includes HHH itself.
    A vacuous statement does not prove anything.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Fred. Zwarts@21:1/5 to All on Fri May 9 10:47:51 2025
    Op 09.mei.2025 om 04:23 schreef Keith Thompson:
    Richard Damon <richard@damon-family.org> writes:
    On 5/8/25 7:53 PM, olcott wrote:
    [...]
    void DDD()
    {
      HHH(DDD);
      return;
    }
    We don't need to look at any of my code for me
    to totally prove my point. For example when
    the above DDD is correctly simulated by HHH
    this simulated DDD cannot possibly reach its own
    "return" instruction.

    And thus not correctly simulatd.

    Sorry, there is no "OS Exemption" to correct simulaiton;.

    Perhaps I've missed something. I don't see anything in the above that implies that HHH does not correctly simulate DDD. Richard, you've read
    far more of olcott's posts than I have, so perhaps you can clarify.

    If we assume that HHH correctly simulates DDD, then the above code is equivalent to:

    void DDD()
    {
    DDD();
    return;
    }

    which is a trivial case of infinite recursion. As far as I can tell, assuming that DDD() is actually called at some point, neither the
    outer execution of DDD nor the nested (simulated) execution of DDD
    can reach the return statement. Infinite recursion might either
    cause a stack overflow and a probable program crash, or an unending
    loop if the compiler implements tail call optimization.

    I see no contradiction, just an uninteresting case of infinite
    recursion, something that's well understood by anyone with a
    reasonable level of programming experience. (And it has nothing to
    do with the halting problem as far as I can tell, though of course
    olcott has discussed the halting problem elsewhere.)

    Richard, what am I missing?


    What you are missing is that the next step of olcott is to say that when
    he uses the 'exact same HHH, with only some extra code to abort the simulation', it is still an infinite recursion. He does not understand
    that adding the abort code makes the behaviour fundamentally different.
    It is difficult for him to understand, because he refuses to use
    different names for the different versions of HHH, because he dreams
    that they are al exactly the same (except for small changes).

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Fred. Zwarts@21:1/5 to All on Fri May 9 10:41:05 2025
    Op 09.mei.2025 om 02:14 schreef olcott:
    On 5/8/2025 7:00 PM, Keith Thompson wrote:
    olcott <polcott333@gmail.com> writes:
    On 5/8/2025 6:45 PM, Keith Thompson wrote:
    olcott <polcott333@gmail.com> writes:
    On 5/8/2025 5:26 PM, Keith Thompson wrote:
    [...]
    I am more nearly an expert on C than on the Halting Problem.
    Watching olcott base his arguments on C *and getting C so badly
    wrong* leads me to think that he is largely ignorant of C (which is >>>>>> fine, most people are) and is unwilling to admit it.  Watching the >>>>>> reactions of actual experts to his mathematical arguments leads me >>>>>> to the same conclusion about his knowledge of the relevant fields
    of mathematics.


    If Halt7.c is not compiled with the Microsoft
    compiler then it will not produce the required
    object file type.

    The rest of the system has compiled under
    Linux. I haven't tried this in a few years.
    [...]
    So you normally compile your code using the 2017 version of
    Microsoft
    Visual Studio.
    I have no particular problem with that, but your failure to correct
    a number of C errors in your code is odd.

    As I already proved Microsoft reported no such errors.

    Microsoft's compiler did not report certain errors that any conforming C
    compiler is required by the standard to report.

    Microsoft's compiler *can* be invoked in a way that causes it to
    diagnose such errors, though it may or may not become fully conforming.
    I haven't used it lately, but a web search should tell you how to do
    that.

      I've pointed out several
    syntax errors and constraint violations; at least the syntax errors
    would be trivial to fix (even if your compiler is lax enough to
    fail to diagnose them).  Richard Heathfield has pointed out code
    that dereferences a null pointer.


    Mike corrected Richard on this.
    Those are stub functions intercepted
    by x86utm the operating system.

    You are using C, a language in which you appear to have little
    apparent expertise or willingness to learn, to demonstrate claims
    that, if true, would overturn ideas that have been generally accepted
    for decades.  Can you understand why I might decide that analyzing
    your claims is not worth my time?


    I learned C back when K & R was the standard.

    So did I.  I've kept up with the language as it has changed.

    void DDD()
    {
       HHH(DDD);
       return;
    }

    We don't need to look at any of my code for me
    to totally prove my point.

    Great.  Then why do you keep posting code?  Or is the above DDD()
    function not included in "any of my code")?

                                For example when
    the above DDD is correctly simulated by HHH
    this simulated DDD cannot possibly reach its own
    "return" instruction.

    That's too vague for me to comment.


    Do you know what a C language interpreter is?
    I actually do this at the x86 machine code level
    yet most people don't have a clue about that.

    _DDD()
    [00002172] 55         push ebp      ; housekeeping
    [00002173] 8bec       mov ebp,esp   ; housekeeping
    [00002175] 6872210000 push 00002172 ; push DDD
    [0000217a] e853f4ffff call 000015d2 ; call HHH(DDD)
    [0000217f] 83c404     add esp,+04
    [00002182] 5d         pop ebp
    [00002183] c3         ret
    Size in bytes:(0018) [00002183]

    The above hypothetical HHH emulates the first four
    instructions of DDD. This sequence repeats until a
    OOM error.



    Only in your dream, because HHH has code to abort and after that abort
    the program halts without OOM error.
    Every competent C programmer will understand that.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Fred. Zwarts@21:1/5 to All on Fri May 9 10:33:38 2025
    Op 08.mei.2025 om 21:42 schreef olcott:
    On 5/8/2025 2:04 PM, Fred. Zwarts wrote:
    Op 08.mei.2025 om 19:00 schreef olcott:
    On 5/8/2025 11:14 AM, Mike Terry wrote:
    On 08/05/2025 06:33, Richard Heathfield wrote:
    On 08/05/2025 06:22, olcott wrote:
    On 5/7/2025 11:09 PM, Richard Heathfield wrote:
    On 08/05/2025 02:20, olcott wrote:

    <snip>

    Does there exist an HHH such that DDD emulated by
    HHH according to the rules of the C programming language

    Let's take a look.

    The file is 1373 lines long, but don't worry, because I plan to
    stop at HHH's first departure from the rules of the C programming >>>>>>> language (or at least the first departure I spot).

    Turn in your songbook if you will to:

    void CopyMachineCode(u8* source, u8** destination)
    {
       u32 size;
       for (size = 0; source[size] != 0xcc; size++)
         ;
       *destination = (u8*) Allocate(size);
       for (u32 N = 0; N < size; N++)
       {
         Output("source[N]: ", source[N]);
         *destination[N] = source[N];
       }
       ((u32*)*destination)[-1] = size;
       Output("CopyMachineCode destination[-1]: ",
    ((u32*)*destination) [-1]);
       Output("CopyMachineCode destination[-2]: ",
    ((u32*)*destination) [-2]);
    };


    deprecated.

    It's not just deprecated. It's hopelessly broken.

    Everybody makes mistakes, and one slip would be all very well, but
    you make essentially the same mistake --- writing to memory that
    your program doesn't own --- no fewer than four times in a single
    function.

    I'll ignore the syntax error (a null statement at file scope is a >>>>>>> rookie error).

    Instead, let's jump straight to this line:

       *destination = (u8*) Allocate(size);

    On line 79 of my copy of the code, we find:

    u32* Allocate(u32 size) { return 0; }

    In C, 0 is a null pointer constant, so Allocate returns a null
    pointer constant... which is fine as long as you don't try to
    deref it. So now *destination is NULL.

    We go on:

       for (u32 N = 0; N < size; N++)
       {
         Output("source[N]: ", source[N]);
         *destination[N] = source[N];
       }

    *destination[N] is our first big problem (we're ignoring syntax
    errors, remember). destination is a null pointer, so
    destination[N] derefs a null pointer.

    That's a fail. 0/10, D-, go away and write it again. And you /
    dare/ to impugn other people's C knowledge! Crack a book, for
    pity's sake.


    If you can't even understand what is essentially
    an infinite recursive relationship between two functions
    except that one function can terminate the other then
    you don't have a clue about the essence of my system.

    If you can't even understand why it's a stupendously bad idea to
    dereference a null pointer, you have no business trying to teach
    anyone anything about C.

    Your code is the work of a programmer so hideously incompetent that
    'programmer' is scarcely a fair word to use.

    When you publish code like that, to even *think* about denigrating
    other people's C knowledge is the height of arrogant hypocrisy.

    One problem here is that you don't understand how PO's code works.
    That's to be expected, and PO's response ought to be to explain it
    so that you understand.  Instead he goes off on one of his rants, so
    blamewise it's really down to PO.

    PO's halt7.c is compiled (it is not linked), then the obj file is
    fed as input to his x87utm.exe which is a kind of x86 obj code
    execution environment.  x87utm provides a number of primative calls
    that halt7.c code can make, such as Allocate(), used to allocate a
    block of memory for use in halt7.c.  Within halt7.c code calls an
    Allocate() function, and x86utm intercepts that and performs the
    function internally, then jumps the calling code in halt7.c over the
    Allocate call where it continues as normal.  The call never goes to
    the implementation of Allocate in halt7.c, so the null pointer
    dereferencing does not actually occur.  There are a whole bunch of
    similar x86utm primitive operations that work in the same way.

    PO should have said all that, not me, but it seems he's not
    interested in genuine communication.

    Mike.



    Thanks for those details, they are correct.
    I try to stay focused on the key essence gist
    of the issue and never delve down into the weeds.

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

    The key gist of the issue (no weeds involved)
    is that HHH emulated DD according to the rules
    of the x86 language

    <MIT Professor Sipser agreed to ONLY these verbatim words 10/13/2022>
         *until H correctly determines that*
         *its simulated D would never stop running unless aborted*
    </MIT Professor Sipser agreed to ONLY these verbatim words 10/13/2022>

    And since H does not correctly determine that its simulated D would
    never stop running unless aborted, it is a vacuous statement and
    Sipser's agreement does not tell anything.


    That is counter factual as any fully qualified
    C programmer will tell you.

    All fully qualified C programmers told me that it is not
    counter-factual. But I suppose in your language counter-factual means
    'not in my dreams'.


    void DDD()
    {
      HHH(DDD);
      return;
    }

    DDD correctly simulated by any HHH cannot
    possibly reach its own simulated "return"
    instruction.


    Another vacuous statement, as HHH cannot correctly simulate DDD which
    includes HHH itself.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Fred. Zwarts@21:1/5 to All on Fri May 9 11:00:22 2025
    Op 09.mei.2025 om 02:05 schreef olcott:
    On 5/8/2025 6:54 PM, Keith Thompson wrote:
    olcott <polcott333@gmail.com> writes:
    On 5/8/2025 6:30 PM, Richard Heathfield wrote:
    On 08/05/2025 23:50, olcott wrote:
    [...]
    If you are a competent C programmer
    Keith Thompson is a highly-respected and very competent C
    programmer.

    *Then he is just who I need*

    No, what you need is someone who is an expert in mathematical logic
    (I am not) who can explain to you, in terms you can understand and
    accept, where you've gone wrong.  Some expertise in C could also
    be helpful.


    The key gap in my proof is that none of the comp.sci
    people seems to have a slight clue about simple C
    programming.

    void DDD()
    {
      HHH(DDD);
      return;
    }

    *THIS IS THE C PART THAT NO ONE HERE UNDERSTANDS*
    DDD correctly simulated by HHH cannot possibly
    reach its own "return" instruction.

    The HHH that you propose and is included in DDD does halt. But it is
    known that this HHH prematurely aborts which makes it impossible for the simulation to reach the reachable 'return'. HHH simply ignores the
    conditional abort in the simulation.

    The hypothetical HHH, that does not abort would reach the 'return' when
    given the same input.

    We could also construct another hypothetical DDD based on this
    hypothetical HHH, but then the simulation would get stuck in infinite recursion.

    But since those hypothetical functions only exist in your dreams, they
    are irrelevant for the discussion about the HHH that your propose, which aborts.


    DDD correctly simulated by HHH is the same thing
    as infinite recursion between HHH and DDD yet is
    implemented as recursive simulation.

    That is true in your dreams of the non-aborting HHH. In reality there is
    a HHH that aborts, so there is only a finite recursion.
    I am sorry for you that the truth disturbs your dreams.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Fred. Zwarts@21:1/5 to All on Fri May 9 11:03:58 2025
    Op 09.mei.2025 om 03:35 schreef olcott:
    On 5/8/2025 8:13 PM, Richard Damon wrote:
    On 5/8/25 8:05 PM, olcott wrote:
    On 5/8/2025 6:54 PM, Keith Thompson wrote:
    olcott <polcott333@gmail.com> writes:
    On 5/8/2025 6:30 PM, Richard Heathfield wrote:
    On 08/05/2025 23:50, olcott wrote:
    [...]
    If you are a competent C programmer
    Keith Thompson is a highly-respected and very competent C
    programmer.

    *Then he is just who I need*

    No, what you need is someone who is an expert in mathematical logic
    (I am not) who can explain to you, in terms you can understand and
    accept, where you've gone wrong.  Some expertise in C could also
    be helpful.


    The key gap in my proof is that none of the comp.sci
    people seems to have a slight clue about simple C
    programming.

    No, the problem is you don't.


    void DDD()
    {
       HHH(DDD);
       return;
    }

    *THIS IS THE C PART THAT NO ONE HERE UNDERSTANDS*
    DDD correctly simulated by HHH cannot possibly
    reach its own "return" instruction.

    And claiming the behavior of a program that isn;t the behavior of that
    program is just a lie.


    DDD correctly simulated by HHH cannot possibly
    reach its own "return" instruction.

    DDD correctly simulated by HHH cannot possibly
    reach its own "return" instruction.

    DDD correctly simulated by HHH cannot possibly
    reach its own "return" instruction.



    No need to repeat vacuous statements. It does not matter how many times
    you multiply 0, it will remains 0.
    DDD contains an HHH that aborts, so a correct simulation will take that
    into account and reach the 'return'. HHH does not do such a correct
    simulation, which makes your statements vacuous.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Fred. Zwarts@21:1/5 to All on Fri May 9 11:14:12 2025
    Op 09.mei.2025 om 04:13 schreef olcott:
    On 5/8/2025 8:30 PM, Keith Thompson wrote:
    olcott <polcott333@gmail.com> writes:
    On 5/8/2025 6:49 PM, Keith Thompson wrote:
    olcott <polcott333@gmail.com> writes:
    [...]
    void DDD()
    {
        HHH(DDD);
        return;
    }

    If you are a competent C programmer then you
    know that DDD correctly simulated by HHH cannot
    possibly each its own "return" instruction.
    "cannot possibly each"?
    I am a competent C programmer (and I don't believe you can make
    the same claim).  I don't know what HHH is.  The name "HHH" tells
    me nothing about what it's supposed to do.  Without knowing what
    HHH is, I can't say much about your code (or is it pseudo-code?).


    For the purpose of this discussion HHH is exactly
    what I said it is. It correctly simulates DDD.

    Does HHH correctly simulate DDD *and do nothing else*?

    Does HHH correctly simulate *every* function whose address is passed
    to it?  Must the passed function be one that takes no arguments
    and does not return a value?

    Can HHH just *call* the function whose address is passed to it?
    If it's a correct simulation, there should be no difference between
    calling the function and "correctly simulating" it.

    My knowledge of C tells me nothing about *how* HHH might simulate
    DDD.


    HHH can only simulate a function that take no arguments
    and has no return value. HHH also simulates the entire
    chain of functions that this function calls. These can
    take arguments or not and have return values or not.

    Thus HHH ends up simulating itself (and everything
    that HHH calls) simulating DDD in an infinite
    sequence of recursive emulation until OOM error.

    We need not know anything else about HHH to
    know that DDD correctly simulated by HHH cannot
    possibly REACH its own "return" instruction.

    Assuming that HHH(DDD) "correctly simulates" DDD, and assuming it
    does nothing else, your code would be equivalent to this:

         void DDD(void) {
             DDD();
             return;
         }


    Exactly. None of these people on comp.theory could
    get that even after three years.

    Only if you forget that your proposed HHH aborts and returns.
    The whole discussion is about that proposed HHH, not the hypothetical
    HHH that does not abort.
    You try to get people to agree with you by using the same name for very different things.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From joes@21:1/5 to All on Fri May 9 09:48:49 2025
    Am Thu, 08 May 2025 22:34:35 -0500 schrieb olcott:
    On 5/8/2025 10:14 PM, Mike Terry wrote:
    On 09/05/2025 03:13, olcott wrote:
    On 5/8/2025 8:30 PM, Keith Thompson wrote:
    olcott <polcott333@gmail.com> writes:
    On 5/8/2025 6:49 PM, Keith Thompson wrote:
    olcott <polcott333@gmail.com> writes:

    His simulation is in fact a single-stepped x86 instruction simulation,
    where the stepping of each x86 instruction is under the HHH's control.
    HHH can continue stepping the simulation until its target returns, in
    which case the situation is logically just like direct call, as you
    have described.  Or HHH could step just 3 x86 instructions (say) and
    then decide to return (aka "abort" its simulation).  Let's call that /
    partial/ simulation in contrast with /full/ simulation which you've
    been supposing.
    A full simulation of infinite recursion?
    I am only doing one tiny idea at a time here.
    Yeah, so not a full simulation.

    In practice, the program will likely crash due to a stack overflow,
    unless the compiler implements tail-call optimization, in which case
    the program might just run forever -- which also means the
    unnecessary return statement will never be reached.
    Yes you totally have this correctly.
    None of the dozens of comp.theory people could ever achieve that level
    of understanding even after three years. That is why I needed to post
    on comp.lang.c.
    Everybody on comp.theory understands this much.
    No one here ever agreed that when 1 or more instructions of DDD are
    correctly simulated by HHH that DDD cannot possibly reach its own
    "return" instruction.
    That's wrong as written. HHH cannot simulate DDD returning in a
    finite number of instructions, it takes infinitely many.

    This conclusion relies on my understanding of what you've said about
    your code, which I consider to be unreliable.

    Hmm, did PO make it clear that when he says
       "..DDD correctly simulated by HHH cannot
        possibly REACH its own "return" instruction."
    he is not talking about whether "DDD halts"?  [I.e. halts when run
    directly from main() outside of a simulator.]  No, what he is talking
    about is whether the /step-by-step partial simuation/ of DDD performed
    by HHH proceeds as far as DDD returning.

    When 1 or more steps of DDD are correctly simulated by HHH the simulated
    DDD cannot possibly reach its "return" instruction (final halt state).
    No one here has agreed to that. Not in several years of coaxing and elaboration.
    It's true for a finite number. Aborting is not correct simulation, even
    if HHH did return that DDD halts.

    --
    Am Sat, 20 Jul 2024 12:35:31 +0000 schrieb WM in sci.math:
    It is not guaranteed that n+1 exists for every n.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Fred. Zwarts@21:1/5 to All on Fri May 9 11:25:30 2025
    Op 09.mei.2025 om 01:48 schreef olcott:
    On 5/8/2025 6:35 PM, Richard Damon wrote:
    On 5/8/25 1:00 PM, olcott wrote:
    On 5/8/2025 11:14 AM, Mike Terry wrote:
    On 08/05/2025 06:33, Richard Heathfield wrote:
    On 08/05/2025 06:22, olcott wrote:
    On 5/7/2025 11:09 PM, Richard Heathfield wrote:
    On 08/05/2025 02:20, olcott wrote:

    <snip>

    Does there exist an HHH such that DDD emulated by
    HHH according to the rules of the C programming language

    Let's take a look.

    The file is 1373 lines long, but don't worry, because I plan to
    stop at HHH's first departure from the rules of the C programming >>>>>>> language (or at least the first departure I spot).

    Turn in your songbook if you will to:

    void CopyMachineCode(u8* source, u8** destination)
    {
       u32 size;
       for (size = 0; source[size] != 0xcc; size++)
         ;
       *destination = (u8*) Allocate(size);
       for (u32 N = 0; N < size; N++)
       {
         Output("source[N]: ", source[N]);
         *destination[N] = source[N];
       }
       ((u32*)*destination)[-1] = size;
       Output("CopyMachineCode destination[-1]: ",
    ((u32*)*destination) [-1]);
       Output("CopyMachineCode destination[-2]: ",
    ((u32*)*destination) [-2]);
    };


    deprecated.

    It's not just deprecated. It's hopelessly broken.

    Everybody makes mistakes, and one slip would be all very well, but
    you make essentially the same mistake --- writing to memory that
    your program doesn't own --- no fewer than four times in a single
    function.

    I'll ignore the syntax error (a null statement at file scope is a >>>>>>> rookie error).

    Instead, let's jump straight to this line:

       *destination = (u8*) Allocate(size);

    On line 79 of my copy of the code, we find:

    u32* Allocate(u32 size) { return 0; }

    In C, 0 is a null pointer constant, so Allocate returns a null
    pointer constant... which is fine as long as you don't try to
    deref it. So now *destination is NULL.

    We go on:

       for (u32 N = 0; N < size; N++)
       {
         Output("source[N]: ", source[N]);
         *destination[N] = source[N];
       }

    *destination[N] is our first big problem (we're ignoring syntax
    errors, remember). destination is a null pointer, so
    destination[N] derefs a null pointer.

    That's a fail. 0/10, D-, go away and write it again. And you /
    dare/ to impugn other people's C knowledge! Crack a book, for
    pity's sake.


    If you can't even understand what is essentially
    an infinite recursive relationship between two functions
    except that one function can terminate the other then
    you don't have a clue about the essence of my system.

    If you can't even understand why it's a stupendously bad idea to
    dereference a null pointer, you have no business trying to teach
    anyone anything about C.

    Your code is the work of a programmer so hideously incompetent that
    'programmer' is scarcely a fair word to use.

    When you publish code like that, to even *think* about denigrating
    other people's C knowledge is the height of arrogant hypocrisy.

    One problem here is that you don't understand how PO's code works.
    That's to be expected, and PO's response ought to be to explain it
    so that you understand.  Instead he goes off on one of his rants, so
    blamewise it's really down to PO.

    PO's halt7.c is compiled (it is not linked), then the obj file is
    fed as input to his x87utm.exe which is a kind of x86 obj code
    execution environment.  x87utm provides a number of primative calls
    that halt7.c code can make, such as Allocate(), used to allocate a
    block of memory for use in halt7.c.  Within halt7.c code calls an
    Allocate() function, and x86utm intercepts that and performs the
    function internally, then jumps the calling code in halt7.c over the
    Allocate call where it continues as normal.  The call never goes to
    the implementation of Allocate in halt7.c, so the null pointer
    dereferencing does not actually occur.  There are a whole bunch of
    similar x86utm primitive operations that work in the same way.

    PO should have said all that, not me, but it seems he's not
    interested in genuine communication.

    Mike.



    Thanks for those details, they are correct.
    I try to stay focused on the key essence gist
    of the issue and never delve down into the weeds.

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

    The key gist of the issue (no weeds involved)
    is that HHH emulated DD according to the rules
    of the x86 language

    Excpet, as you have admitted, your DD isn't a program (just a C
    funciton), and thus not a proper input for a halt decider, which by
    definiton must be a program.

    Your C function can't be a program, as you have specifically said that
    the function, and only the funciton is the input, and programs must
    include in them all their code, so since the code of HHH isn't
    included in DD or the input representing it, it isn't a program, and
    thus not a proper input


    <MIT Professor Sipser agreed to ONLY these verbatim words 10/13/2022>
         *until H correctly determines that*
         *its simulated D would never stop running unless aborted*
    </MIT Professor Sipser agreed to ONLY these verbatim words 10/13/2022>


    But that statement implies, as required that H be a halt decider and D
    to be a proper input to one, neither of which are satisfied, as you
    have admitte

    When HHH(DD) computes the actual mapping from
    its actual input to the actual behavior this
    it specifies it must be according to the rules
    of the x86 language.

    But it doesn't, as it doesn't correctly follow the behavior of the x86
    language, as that requires HHH to follow the call instruction, which
    it can not do as the required (and accepted by your) condition that
    the decider is a pure function, which means it can only look at its
    input, which does not include the code which the call points to.


    int sum(int x, int y) { return x + y; }
    sum is required to compute the mapping
    from its input into its return value
    according to the rules of arithmetic.

    Right, and a halt decider is required to (try to) compute the mapping
    from the input (which needs to be the representation of a program) to
    the results of running that program (since that is the DEFINITION of
    Halt Deciding).


    This means that requiring sum(3,2) to return
    the sum of 5 + 7 is an incorrect requirement.

    Right, just as HHH trying to claim that its answer is based on the
    fact that it can't reach the end of its simulation of the input isn't
    the correct requirement for HHH.


    Like sum(3,2) HHH(DD) is only allowed to report
    on the behavior that its input actually specifies.


    Right, which is Halting, since that behavior is DEFINED to be the
    behavior of running the program the input represents.


    Just like requiring sum(3,2) to report on the sum of 5 + 7
    a value other than its input specifies HHH IS NOT ALLOWED
    to report on anything other than the behavior that its input
    specifies.

    Indeed, therefore HHH should process the actual input: including the HHH
    that aborts, not the hypothetical HHH that does not abort.
    Sum(3,2) should process the actual input, not the hypothetical input 5
    and 7.
    HHH should process all relevant input, including the part with the
    conditional abort, not only the first part of the input.
    Sum(3,2) should process all relevant input, not only the 2 and ignore the 3. So, go and fix HHH.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Fred. Zwarts@21:1/5 to All on Fri May 9 11:28:26 2025
    Op 09.mei.2025 om 03:55 schreef olcott:
    On 5/8/2025 8:18 PM, Richard Damon wrote:
    On 5/8/25 7:48 PM, olcott wrote:
    On 5/8/2025 6:35 PM, Richard Damon wrote:
    On 5/8/25 1:00 PM, olcott wrote:
    On 5/8/2025 11:14 AM, Mike Terry wrote:
    On 08/05/2025 06:33, Richard Heathfield wrote:
    On 08/05/2025 06:22, olcott wrote:
    On 5/7/2025 11:09 PM, Richard Heathfield wrote:
    On 08/05/2025 02:20, olcott wrote:

    <snip>

    Does there exist an HHH such that DDD emulated by
    HHH according to the rules of the C programming language

    Let's take a look.

    The file is 1373 lines long, but don't worry, because I plan to >>>>>>>>> stop at HHH's first departure from the rules of the C
    programming language (or at least the first departure I spot). >>>>>>>>>
    Turn in your songbook if you will to:

    void CopyMachineCode(u8* source, u8** destination)
    {
       u32 size;
       for (size = 0; source[size] != 0xcc; size++)
         ;
       *destination = (u8*) Allocate(size);
       for (u32 N = 0; N < size; N++)
       {
         Output("source[N]: ", source[N]);
         *destination[N] = source[N];
       }
       ((u32*)*destination)[-1] = size;
       Output("CopyMachineCode destination[-1]: ",
    ((u32*)*destination) [-1]);
       Output("CopyMachineCode destination[-2]: ",
    ((u32*)*destination) [-2]);
    };


    deprecated.

    It's not just deprecated. It's hopelessly broken.

    Everybody makes mistakes, and one slip would be all very well,
    but you make essentially the same mistake --- writing to memory
    that your program doesn't own --- no fewer than four times in a
    single function.

    I'll ignore the syntax error (a null statement at file scope is >>>>>>>>> a rookie error).

    Instead, let's jump straight to this line:

       *destination = (u8*) Allocate(size);

    On line 79 of my copy of the code, we find:

    u32* Allocate(u32 size) { return 0; }

    In C, 0 is a null pointer constant, so Allocate returns a null >>>>>>>>> pointer constant... which is fine as long as you don't try to >>>>>>>>> deref it. So now *destination is NULL.

    We go on:

       for (u32 N = 0; N < size; N++)
       {
         Output("source[N]: ", source[N]);
         *destination[N] = source[N];
       }

    *destination[N] is our first big problem (we're ignoring syntax >>>>>>>>> errors, remember). destination is a null pointer, so
    destination[N] derefs a null pointer.

    That's a fail. 0/10, D-, go away and write it again. And you / >>>>>>>>> dare/ to impugn other people's C knowledge! Crack a book, for >>>>>>>>> pity's sake.


    If you can't even understand what is essentially
    an infinite recursive relationship between two functions
    except that one function can terminate the other then
    you don't have a clue about the essence of my system.

    If you can't even understand why it's a stupendously bad idea to >>>>>>> dereference a null pointer, you have no business trying to teach >>>>>>> anyone anything about C.

    Your code is the work of a programmer so hideously incompetent
    that 'programmer' is scarcely a fair word to use.

    When you publish code like that, to even *think* about
    denigrating other people's C knowledge is the height of arrogant >>>>>>> hypocrisy.

    One problem here is that you don't understand how PO's code works. >>>>>> That's to be expected, and PO's response ought to be to explain it >>>>>> so that you understand.  Instead he goes off on one of his rants, >>>>>> so blamewise it's really down to PO.

    PO's halt7.c is compiled (it is not linked), then the obj file is
    fed as input to his x87utm.exe which is a kind of x86 obj code
    execution environment.  x87utm provides a number of primative
    calls that halt7.c code can make, such as Allocate(), used to
    allocate a block of memory for use in halt7.c.  Within halt7.c
    code calls an Allocate() function, and x86utm intercepts that and
    performs the function internally, then jumps the calling code in
    halt7.c over the Allocate call where it continues as normal.  The >>>>>> call never goes to the implementation of Allocate in halt7.c, so
    the null pointer dereferencing does not actually occur.  There are >>>>>> a whole bunch of similar x86utm primitive operations that work in
    the same way.

    PO should have said all that, not me, but it seems he's not
    interested in genuine communication.

    Mike.



    Thanks for those details, they are correct.
    I try to stay focused on the key essence gist
    of the issue and never delve down into the weeds.

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

    The key gist of the issue (no weeds involved)
    is that HHH emulated DD according to the rules
    of the x86 language

    Excpet, as you have admitted, your DD isn't a program (just a C
    funciton), and thus not a proper input for a halt decider, which by
    definiton must be a program.

    Your C function can't be a program, as you have specifically said
    that the function, and only the funciton is the input, and programs
    must include in them all their code, so since the code of HHH isn't
    included in DD or the input representing it, it isn't a program, and
    thus not a proper input


    <MIT Professor Sipser agreed to ONLY these verbatim words 10/13/2022> >>>>>      *until H correctly determines that*
         *its simulated D would never stop running unless aborted*
    </MIT Professor Sipser agreed to ONLY these verbatim words 10/13/2022> >>>>>

    But that statement implies, as required that H be a halt decider and
    D to be a proper input to one, neither of which are satisfied, as
    you have admitte

    When HHH(DD) computes the actual mapping from
    its actual input to the actual behavior this
    it specifies it must be according to the rules
    of the x86 language.

    But it doesn't, as it doesn't correctly follow the behavior of the
    x86 language, as that requires HHH to follow the call instruction,
    which it can not do as the required (and accepted by your) condition
    that the decider is a pure function, which means it can only look at
    its input, which does not include the code which the call points to.


    int sum(int x, int y) { return x + y; }
    sum is required to compute the mapping
    from its input into its return value
    according to the rules of arithmetic.

    Right, and a halt decider is required to (try to) compute the
    mapping from the input (which needs to be the representation of a
    program) to the results of running that program (since that is the
    DEFINITION of Halt Deciding).


    This means that requiring sum(3,2) to return
    the sum of 5 + 7 is an incorrect requirement.

    Right, just as HHH trying to claim that its answer is based on the
    fact that it can't reach the end of its simulation of the input
    isn't the correct requirement for HHH.


    Like sum(3,2) HHH(DD) is only allowed to report
    on the behavior that its input actually specifies.


    Right, which is Halting, since that behavior is DEFINED to be the
    behavior of running the program the input represents.


    Just like requiring sum(3,2) to report on the sum of 5 + 7
    a value other than its input specifies HHH IS NOT ALLOWED
    to report on anything other than the behavior that its input
    specifies.

    Its input specifies that it calls HHH(DD) in recursive
    emulation. THIS CANNOT BE IGNORED.


    No it doesn't, it calls HHH, which does what it does. Since your
    decider HHH is defined to abort and return 0, so is the HHH that DD
    calls, since it was built from that machine.

    What we can not ignore is that HHH has a definition, and HHH needs to
    interprete the call in DD by that definition, not you LIE that HHH is
    just a correct simulator, since it isn't.

    Sorry, you are the one that is choosing to ignore the input and
    replace it with somethng it isn't, becaue you don't understand that
    you did define it when you created your HHH to abort and return 0.

    void DDD()
    {
      HHH(DDD);
      return;
    }

    _DDD()
    [00002172] 55         push ebp      ; housekeeping
    [00002173] 8bec       mov ebp,esp   ; housekeeping
    [00002175] 6872210000 push 00002172 ; push DDD
    [0000217a] e853f4ffff call 000015d2 ; call HHH(DDD)
    [0000217f] 83c404     add esp,+04
    [00002182] 5d         pop ebp
    [00002183] c3         ret
    Size in bytes:(0018) [00002183]

    For every HHH that can possibly exist at machine address
    000015d2 that correctly emulates 1 or more x86 instructions
    of DDD (the exact machine code bytes specified above) no
    correctly emulated DDD ever reaches their own "return"
    instruction.

    This may simply be too difficult for most everyone here.
    Instead of simply saying they they don't understand the
    x86 language they try to deflect away from this subject
    to try to hide their own ignorance.
    Nobody disagreed with it, we all see that HHH fails to reach the
    'return', because it prematurely aborts and is made blind for
    conditional abort in the input.
    This has been pointed out many times, but seems to disturb your dreams
    so much that you unconsciously decide to ignore it.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to Keith Thompson on Fri May 9 06:59:48 2025
    On 5/9/25 12:22 AM, Keith Thompson wrote:
    Richard Damon <news.x.richarddamon@xoxy.net> writes:
    On 5/8/25 10:23 PM, Keith Thompson wrote:
    Richard Damon <richard@damon-family.org> writes:
    On 5/8/25 7:53 PM, olcott wrote:
    [...]
    void DDD()
    {
      HHH(DDD);
      return;
    }
    We don't need to look at any of my code for me
    to totally prove my point. For example when
    the above DDD is correctly simulated by HHH
    this simulated DDD cannot possibly reach its own
    "return" instruction.

    And thus not correctly simulatd.

    Sorry, there is no "OS Exemption" to correct simulaiton;.
    Perhaps I've missed something. I don't see anything in the above
    that
    implies that HHH does not correctly simulate DDD. Richard, you've read
    far more of olcott's posts than I have, so perhaps you can clarify.
    If we assume that HHH correctly simulates DDD, then the above code
    is
    equivalent to:
    void DDD()
    {
    DDD();
    return;
    }
    which is a trivial case of infinite recursion. As far as I can
    tell,
    assuming that DDD() is actually called at some point, neither the
    outer execution of DDD nor the nested (simulated) execution of DDD
    can reach the return statement. Infinite recursion might either
    cause a stack overflow and a probable program crash, or an unending
    loop if the compiler implements tail call optimization.
    I see no contradiction, just an uninteresting case of infinite
    recursion, something that's well understood by anyone with a
    reasonable level of programming experience. (And it has nothing to
    do with the halting problem as far as I can tell, though of course
    olcott has discussed the halting problem elsewhere.)
    Richard, what am I missing?


    You are missing the equivocation he is using on what is "DDD()"

    First, he tries to define it as just the code of the function, and not
    including any of the code that it calls. He does this so all the
    various HHH that he talks about are given the "same" input.

    Then he tries to also say that when those functions look at DDD, they
    can follow the memory chain to the functions that it calls, that
    weren't actually part of the input.

    This means the "behavior" of his input isn't actually defined by the input.

    I haven't seen any of that in the posts to which I've recently replied
    (and I absolutely do not have the patience to read everything he's
    posted here).

    What I've seen in the articles to which I've recently replied has been
    just a strangely little C function and some claims about simulation.
    Viewed in isolation, I don't think any of that (again, ignoring the vast majority of what he's posted in this newsgroup) seems contradictory so far.

    The problem is the subtile one that he needs all "versions" of the input
    "DDD" to be the "same input" no matter what decider he uses, which means
    he can't include the code for the decider called as part of the input.

    But also, as I explained, he needs to define the decider to be a pure
    function to outlaw the trivial solution of the decider short-cutting
    itself when it is called by the input with a static variable, which
    means it can't do the job without it being part of the input.


    He has also, to get around other objections about what he is doing,
    stipulated that his functions must be pure functions, and thus only
    dependent on their direct input, other wise we can add the following
    code to the beginning of HHH to make his statement false:

    I've seen no mention of pure functions in the posts to which I've
    recently replied.

    Again, that is because that side of the equivocation hasn't been argued recently. Perhaps when he starts to argue that the decider is allowed to
    look at the "non-input" code, we will get back to that.


    [...]


    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to olcott on Fri May 9 06:52:55 2025
    On 5/9/25 1:01 AM, olcott wrote:
    On 5/8/2025 11:50 PM, Richard Heathfield wrote:
    On 09/05/2025 01:14, olcott wrote:
    Do you know what a C language interpreter is?

    Of course he does.

    A C language interpreter is not absolved from the requirement to
    diagnose C syntax errors.

    If you think that your x86utm.cpp code qualifies as a C language
    interpreter, you are mistaken. You don't even grant it access to the C
    code.


    I am explaining is as a c language interpreter only
    because its actual x86 basis seems over everyone's head.


    In other words, this is just your normal lying to try to cover up you
    don't know what you are talking about, and digging your hole deeper.

    Sorry, but all you are doing is showing you don't care about the truth
    of your statements, you just want to "trick" someone into agreeing with
    your lies.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to olcott on Fri May 9 07:00:59 2025
    On 5/9/25 12:56 AM, olcott wrote:
    On 5/8/2025 11:22 PM, Keith Thompson wrote:
    Richard Damon <news.x.richarddamon@xoxy.net> writes:
    On 5/8/25 10:23 PM, Keith Thompson wrote:
    Richard Damon <richard@damon-family.org> writes:
    On 5/8/25 7:53 PM, olcott wrote:
    [...]
    void DDD()
    {
         HHH(DDD);
         return;
    }
    We don't need to look at any of my code for me
    to totally prove my point. For example when
    the above DDD is correctly simulated by HHH
    this simulated DDD cannot possibly reach its own
    "return" instruction.

    And thus not correctly simulatd.

    Sorry, there is no "OS Exemption" to correct simulaiton;.
    Perhaps I've missed something.  I don't see anything in the above
    that
    implies that HHH does not correctly simulate DDD.  Richard, you've read >>>> far more of olcott's posts than I have, so perhaps you can clarify.
    If we assume that HHH correctly simulates DDD, then the above code
    is
    equivalent to:
          void DDD()
          {
            DDD();
            return;
          }
    which is a trivial case of infinite recursion.  As far as I can
    tell,
    assuming that DDD() is actually called at some point, neither the
    outer execution of DDD nor the nested (simulated) execution of DDD
    can reach the return statement.  Infinite recursion might either
    cause a stack overflow and a probable program crash, or an unending
    loop if the compiler implements tail call optimization.
    I see no contradiction, just an uninteresting case of infinite
    recursion, something that's well understood by anyone with a
    reasonable level of programming experience.  (And it has nothing to
    do with the halting problem as far as I can tell, though of course
    olcott has discussed the halting problem elsewhere.)
    Richard, what am I missing?


    You are missing the equivocation he is using on what is "DDD()"

    First, he tries to define it as just the code of the function, and not
    including any of the code that it calls. He does this so all the
    various HHH that he talks about are given the "same" input.

    Then he tries to also say that when those functions look at DDD, they
    can follow the memory chain to the functions that it calls, that
    weren't actually part of the input.

    This means the "behavior" of his input isn't actually defined by the
    input.

    I haven't seen any of that in the posts to which I've recently replied
    (and I absolutely do not have the patience to read everything he's
    posted here).

    What I've seen in the articles to which I've recently replied has been
    just a strangely little C function and some claims about simulation.
    Viewed in isolation, I don't think any of that (again, ignoring the vast
    majority of what he's posted in this newsgroup) seems contradictory so
    far.

    He has also, to get around other objections about what he is doing,
    stipulated that his functions must be pure functions, and thus only
    dependent on their direct input, other wise we can add the following
    code to the beginning of HHH to make his statement false:

    I've seen no mention of pure functions in the posts to which I've
    recently replied.

    [...]

    You are seeing some of the same misdirection that I have been seeing.
    Most people here change the subject when they come across difficult
    and crucial material.


    So, are you no removing that pure function requirement?

    In that case, why is my version of H not a correct refutation of your
    claim that no H can reach that return?

    Sorry, your logic is just based on lies and equivocations.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to olcott on Fri May 9 07:15:31 2025
    On 5/9/25 12:49 AM, olcott wrote:
    On 5/8/2025 11:11 PM, Keith Thompson wrote:
    olcott <polcott333@gmail.com> writes:
    On 5/8/2025 8:30 PM, Keith Thompson wrote:
    olcott <polcott333@gmail.com> writes:
    On 5/8/2025 6:49 PM, Keith Thompson wrote:
    olcott <polcott333@gmail.com> writes:
    [...]
    void DDD()
    {
         HHH(DDD);
         return;
    }

    If you are a competent C programmer then you
    know that DDD correctly simulated by HHH cannot
    possibly each its own "return" instruction.
    "cannot possibly each"?
    I am a competent C programmer (and I don't believe you can make
    the same claim).  I don't know what HHH is.  The name "HHH" tells >>>>>> me nothing about what it's supposed to do.  Without knowing what
    HHH is, I can't say much about your code (or is it pseudo-code?).


    For the purpose of this discussion HHH is exactly
    what I said it is. It correctly simulates DDD.
    Does HHH correctly simulate DDD *and do nothing else*?
    Does HHH correctly simulate *every* function whose address is passed
    to it?  Must the passed function be one that takes no arguments
    and does not return a value?
    Can HHH just *call* the function whose address is passed to it?
    If it's a correct simulation, there should be no difference between
    calling the function and "correctly simulating" it.
    My knowledge of C tells me nothing about *how* HHH might simulate
    DDD.

    HHH can only simulate a function that take no arguments
    and has no return value. HHH also simulates the entire
    chain of functions that this function calls. These can
    take arguments or not and have return values or not.

    Thus HHH ends up simulating itself (and everything
    that HHH calls) simulating DDD in an infinite
    sequence of recursive emulation until OOM error.

    We need not know anything else about HHH to
    know that DDD correctly simulated by HHH cannot
    possibly REACH its own "return" instruction.
    Assuming that HHH(DDD) "correctly simulates" DDD, and assuming it
    does nothing else, your code would be equivalent to this:
          void DDD(void) {
              DDD();
              return;
          }

    Exactly. None of these people on comp.theory could
    get that even after three years.

    I find that difficult to believe.

    Then the return statement (which is unnecessary anyway) will never be
    reached.

    It is only there to mark a final halt state.

    The closing "}" does that equally well.

    In practice, the program will likely crash due to a stack
    overflow, unless the compiler implements tail-call optimization, in
    which case the program might just run forever -- which also means the
    unnecessary return statement will never be reached.


    Yes you totally have this correctly.
    None of the dozens of comp.theory people could
    ever achieve that level of understanding even
    after three years. That is why I needed to post
    on comp.lang.c.

    I'll note that I've posted in comp.theory, not in comp.lang.c.
    I never see anything you post in comp.lang.c.

    This conclusion relies on my understanding of what you've said about
    your code, which I consider to be unreliable.

    I am not even talking about my code. I am
    talking about the purely hypothetical code
    that you just agreed to.

    Do not overestimate what I've agreed to.  I must still consider the
    possibility that I've been led into a logical trap of some sort,
    and that I've missed some subtle flaw.

    No doubt you believe that there is some significance to the
    apparent fact that the return statement will never be reached,
    assuming that's a correct and relevant conclusion.  I don't know
    what that significance might be.

    I will tell you that later after you understand
    some prerequisite ideas first.

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

    So now HHH returns an int result, and you store that result
    in a variable named "Halt_Status".  You haven't said here what
    the meaning of that result might be, and I decline to make any
    assumptions based on what you've called it.  You could rename
    "Halt_Status" to "Foo" and have effectively identical code.

    Previously DDD would "correctly simulate" the function whose address is
    passed to it.  Now it does that and returns an int result.

    If you want to say anything about the meaning of the result returned
    by HHH, feel free to say it.

    The same thing that applied to DDD equally
    applies to the more complicated DD.

    When 1 or more instructions of DD are correctly
    simulated by HHH the correctly simulated DD
    cannot possibly get past its call to HHH(DD).
    Thus DD also never reaches its "return" instruction.

    Now you're talking about simulating "1 or more instructions"
    of DD.  I thought that HHH was supposed to "accurately simulate"
    the function whose argument is passed to it.  Emulating just "1 or
    more instructions" is not accurate simulation.

    If HHH *fully* simulates the execution of DD, then your code above
    exhibits endless recursion,

    In computer science "halting" is not merely stopping running.
    "Halting" is reaching a final halt state such as the "return"
    instruction.

    And "Non-Halting" isn't the program being aborted before reaching the
    final state, but never reaching a final state even after an unbounded
    number of instructions have been run.


    which is not particularly interesting,
    and it never reaches the "if (Halt_Status)".  (DD calls HHH, which
    simulates DD; HHH, in simulating DD, must do the equivalent of
    calling HHH, and so on.)


    It turns out to be very interesting you merely need
    to grok a few details first.

    No, it isn't interesting, because it is based on errors. You need to fix
    those errors, at which point you prove a statement you then can't use
    for your next step, as it clearly applies to a different input then your
    actual decider is given.


    You've introduced the idea of simulating only some finite number
    of instructions of the simulated functions, but you haven't really
    said how that happens (except perhaps in some x86 code that I
    don't understand).  You've implied that a sufficient knowledge of C
    would let someone understand your arguments, but part of what you're
    saying seems to depend on x86 assembly and/or machine code (which I'm
    not going to learn for the sake of this discussion).

    If I would need to understand x86 code to understand your claims, then
    let's just stop here.

    [SNIP]




    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to olcott on Fri May 9 07:12:27 2025
    On 5/8/25 11:34 PM, olcott wrote:
    On 5/8/2025 10:14 PM, Mike Terry wrote:
    On 09/05/2025 03:13, olcott wrote:
    On 5/8/2025 8:30 PM, Keith Thompson wrote:
    olcott <polcott333@gmail.com> writes:
    On 5/8/2025 6:49 PM, Keith Thompson wrote:
    olcott <polcott333@gmail.com> writes:
    [...]
    void DDD()
    {
        HHH(DDD);
        return;
    }

    If you are a competent C programmer then you
    know that DDD correctly simulated by HHH cannot
    possibly each its own "return" instruction.
    "cannot possibly each"?
    I am a competent C programmer (and I don't believe you can make
    the same claim).  I don't know what HHH is.  The name "HHH" tells >>>>>> me nothing about what it's supposed to do.  Without knowing what
    HHH is, I can't say much about your code (or is it pseudo-code?).


    For the purpose of this discussion HHH is exactly
    what I said it is. It correctly simulates DDD.

    Does HHH correctly simulate DDD *and do nothing else*?

    Does HHH correctly simulate *every* function whose address is passed
    to it?  Must the passed function be one that takes no arguments
    and does not return a value?

    Can HHH just *call* the function whose address is passed to it?
    If it's a correct simulation, there should be no difference between
    calling the function and "correctly simulating" it.

    My knowledge of C tells me nothing about *how* HHH might simulate
    DDD.


    HHH can only simulate a function that take no arguments
    and has no return value. HHH also simulates the entire
    chain of functions that this function calls. These can
    take arguments or not and have return values or not.

    Thus HHH ends up simulating itself (and everything
    that HHH calls) simulating DDD in an infinite
    sequence of recursive emulation until OOM error.

    We need not know anything else about HHH to
    know that DDD correctly simulated by HHH cannot
    possibly REACH its own "return" instruction.

    Assuming that HHH(DDD) "correctly simulates" DDD, and assuming it
    does nothing else, your code would be equivalent to this:

         void DDD(void) {
             DDD();
             return;
         }


    Exactly. None of these people on comp.theory could
    get that even after three years.


    PO is being quite deceptive here.


    I am only referring to the above hypothetical HHH/DDD pair.
    Everyone here has consistently denied that when DDD is
    correctly simulated by HHH that this DDD cannot possibly
    reach its "return" instruction (final halt state).

    But that HHH isn't the required pure function that correctly emulate the
    input, as the input has been clearly defined to be JUST the code of the function DDD, and thus the call instruction can't be emulated as the instruction it references isn't in the input.

    When you include the input, then DDD become a DDD/HHH pair, and thus the
    input for this hypotherical HHH is processing a different input than the
    input you are going to give to your actual HHH, and thus says nothing
    about it.

    If you fix your statements so that it is clear that "the input" includes
    all of that memroy, we might be able to deal with THIS statement, but
    then you can't get to your next one.

    And, if you remove the pure requirement, my version of HHH that uses the
    static flag proves your claim is just incorrect in the relaxed case.


    His simulation is in fact a single-stepped x86 instruction simulation,
    where the stepping of each x86 instruction is under the HHH's control.
    HHH can continue stepping the simulation until its target returns, in
    which case the situation is logically just like direct call, as you
    have described.  Or HHH could step just 3 x86 instructions (say) and
    then decide to return (aka "abort" its simulation).  Let's call that /
    partial/ simulation in contrast with /full/ simulation which you've
    been supposing.


    A full simulation of infinite recursion?
    I am only doing one tiny idea at a time here.

    Sure, if that is what is there.

    The fact that you HHH can't get by the call instruction and still meet
    the defintions, since you have been excluding that code as "part of the
    input" and just "in the system".


    Oh, did he forget to mention that?  Anyhow, in the general case with /
    partial/ simulation there is more to think about as it is obvioudly /
    not/ logically equivalent to direct execution.


    That is changing the subject away from
    DDD correctly simulated by HHH.

    Which doesn't happen within your definitions.



    Oh, and obviously everybody in comp.theory gets all this.  The problem
    is with PO and his inability to communicate his ideas properly and his
    inability to understand what other people understand or disagree with.
    He goes on for months/years claiming people don't understand things
    they agree with, but it's down to his duffer wording...

    Then the return statement (which is unnecessary anyway) will never be
    reached.

    It is only there to mark a final halt state.

    In practice, the program will likely crash due to a stack
    overflow, unless the compiler implements tail-call optimization, in
    which case the program might just run forever -- which also means the
    unnecessary return statement will never be reached.


    Yes you totally have this correctly.
    None of the dozens of comp.theory people could
    ever achieve that level of understanding even
    after three years. That is why I needed to post
    on comp.lang.c.

    Everybody on comp.theory understands this much.

    No one here ever agreed that when 1 or more
    instructions of DDD are correctly simulated
    by HHH that DDD cannot possibly reach its
    own "return" instruction.

    Because that is just a false phrase. Your HHH can not correctly emulate
    past the call HHH instruction (and still be the requried pure function)
    as the code there isn't part of what you have defined as the input.


    Everyone has found one excuse or another to
    deny this.

    Only by pointing out your errors.


    PO's plan is that when he goes elsewhere he can start with noobies and
    trick them into agreeing with certain "wordings" by not explaining
    relevent context for his questions.  Then he goes back to comp.theory
    and triumphantly claims support from elsewhere, proving to himself
    that comp.theory posters are all idiots.  :)

    So beware!


    This conclusion relies on my understanding of what you've said about
    your code, which I consider to be unreliable.

    Hmm, did PO make it clear that when he says

        "..DDD correctly simulated by HHH cannot
         possibly REACH its own "return" instruction."


    Unless we go one tiny step at a time everyone
    permanently leaps to a false conclusion and stays
    there.

    The problem is you are trying to hide your errors in the ambiquity of equivocation,


    he is not talking about whether "DDD halts"?  [I.e. halts when run
    directly from main() outside of a simulator.]  No, what he is talking
    about is whether the /step-by-step partial simuation/ of DDD performed
    by HHH proceeds as far as DDD returning.

    When 1 or more steps of DDD are correctly simulated
    by HHH the simulated DDD cannot possibly reach its
    "return" instruction (final halt state).

    And HHH can't correctly emulate its input past the call instruction, as
    the code past there isn't part of the input.

    Are you really that dense?


    No one here has agreed to that. Not in several
    years of coaxing and elaboration.

    Because it isn't true under your stipulations.


     Don't forget - HHH is allowed to simply stop simulating and return
    whenever it likes!  Maybe it only wants to simulate 48 x86
    instructions, or just 1, or maybe it's in for the long haul and
    simulates until DDD returns [if it ever does].


    When 1 or more steps of DDD are correctly simulated
    by HHH the simulated DDD cannot possibly reach its
    "return" instruction (final halt state).
    remains a verified fact.

    No, it remains a verified LIE by category error.


    So you need to re-analyse everything you've said with this new
    information that PO forgot to make clear.


    Regards,
    Mike.




    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to olcott on Fri May 9 07:25:10 2025
    On 5/8/25 6:20 PM, olcott wrote:
    On 5/8/2025 5:13 PM, Richard Heathfield wrote:
    On 08/05/2025 22:41, olcott wrote:
    What my code actually does is totally irrelevant.

    On that, at least, we can agree.


    That an HHH can be created that does correctly
    determine the halt status of this input is the
    whole point.

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


    Except that it doesn't, as your "input", being just that function,
    doesn't HAVE a halting status. It only gets that once it is paired with
    a specific version of HHH.

    If that HHH aborts its simulation and returns 0, then it halts, and that
    HHH wasn't a correct halt decider.

    Since you claim that is what you HHH does, and that would be the DD that
    it is given, it is thus clear that when we fix your input to be what you intend, your claim is false.

    That you keep making your "clearly false due to the category error in
    it" claim just shows your stupidity.

    You just don't understand the basic meaning of the terms you use,
    because you decided it would be better to be ignorant, then to know you
    are wrong.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to Keith Thompson on Fri May 9 07:18:03 2025
    On 5/9/25 1:31 AM, Keith Thompson wrote:
    olcott <polcott333@gmail.com> writes:

    On 5/8/2025 11:11 PM, Keith Thompson wrote:
    olcott <polcott333@gmail.com> writes:
    On 5/8/2025 8:30 PM, Keith Thompson wrote:
    olcott <polcott333@gmail.com> writes:
    On 5/8/2025 6:49 PM, Keith Thompson wrote:
    olcott <polcott333@gmail.com> writes:
    [...]
    void DDD()
    {
    HHH(DDD);
    return;
    }

    If you are a competent C programmer then you
    know that DDD correctly simulated by HHH cannot
    possibly each its own "return" instruction.
    "cannot possibly each"?
    I am a competent C programmer (and I don't believe you can make
    the same claim). I don't know what HHH is. The name "HHH" tells >>>>>>> me nothing about what it's supposed to do. Without knowing what >>>>>>> HHH is, I can't say much about your code (or is it pseudo-code?). >>>>>>>

    For the purpose of this discussion HHH is exactly
    what I said it is. It correctly simulates DDD.
    Does HHH correctly simulate DDD *and do nothing else*?
    Does HHH correctly simulate *every* function whose address is passed >>>>> to it? Must the passed function be one that takes no arguments
    and does not return a value?
    Can HHH just *call* the function whose address is passed to it?
    If it's a correct simulation, there should be no difference between
    calling the function and "correctly simulating" it.
    My knowledge of C tells me nothing about *how* HHH might simulate
    DDD.

    HHH can only simulate a function that take no arguments
    and has no return value. HHH also simulates the entire
    chain of functions that this function calls. These can
    take arguments or not and have return values or not.

    Thus HHH ends up simulating itself (and everything
    that HHH calls) simulating DDD in an infinite
    sequence of recursive emulation until OOM error.

    We need not know anything else about HHH to
    know that DDD correctly simulated by HHH cannot
    possibly REACH its own "return" instruction.
    Assuming that HHH(DDD) "correctly simulates" DDD, and assuming it
    does nothing else, your code would be equivalent to this:
    void DDD(void) {
    DDD();
    return;
    }

    Exactly. None of these people on comp.theory could
    get that even after three years.
    I find that difficult to believe.

    Then the return statement (which is unnecessary anyway) will never be >>>>> reached.

    It is only there to mark a final halt state.
    The closing "}" does that equally well.

    In practice, the program will likely crash due to a stack
    overflow, unless the compiler implements tail-call optimization, in
    which case the program might just run forever -- which also means the >>>>> unnecessary return statement will never be reached.


    Yes you totally have this correctly.
    None of the dozens of comp.theory people could
    ever achieve that level of understanding even
    after three years. That is why I needed to post
    on comp.lang.c.
    I'll note that I've posted in comp.theory, not in comp.lang.c.
    I never see anything you post in comp.lang.c.

    This conclusion relies on my understanding of what you've said about >>>>> your code, which I consider to be unreliable.

    I am not even talking about my code. I am
    talking about the purely hypothetical code
    that you just agreed to.
    Do not overestimate what I've agreed to. I must still consider the
    possibility that I've been led into a logical trap of some sort,
    and that I've missed some subtle flaw.

    No doubt you believe that there is some significance to the
    apparent fact that the return statement will never be reached,
    assuming that's a correct and relevant conclusion. I don't know
    what that significance might be.

    I will tell you that later after you understand
    some prerequisite ideas first.

    int DD()
    {
    int Halt_Status = HHH(DD);
    if (Halt_Status)
    HERE: goto HERE;
    return Halt_Status;
    }
    So now HHH returns an int result, and you store that result
    in a variable named "Halt_Status". You haven't said here what
    the meaning of that result might be, and I decline to make any
    assumptions based on what you've called it. You could rename
    "Halt_Status" to "Foo" and have effectively identical code.
    Previously DDD would "correctly simulate" the function whose address
    is
    passed to it. Now it does that and returns an int result.
    If you want to say anything about the meaning of the result returned
    by HHH, feel free to say it.

    The same thing that applied to DDD equally
    applies to the more complicated DD.

    When 1 or more instructions of DD are correctly
    simulated by HHH the correctly simulated DD
    cannot possibly get past its call to HHH(DD).
    Thus DD also never reaches its "return" instruction.
    Now you're talking about simulating "1 or more instructions"
    of DD. I thought that HHH was supposed to "accurately simulate"
    the function whose argument is passed to it. Emulating just "1 or
    more instructions" is not accurate simulation.
    If HHH *fully* simulates the execution of DD, then your code above
    exhibits endless recursion,

    In computer science "halting" is not merely stopping running.
    "Halting" is reaching a final halt state such as the "return"
    instruction.

    I fail to see either the truth or the relevance of that statement.

    We weren't even talking about halting. You did use the C identifier "Halt_Status", but I already told you that the spelling of an
    identifier implies nothing about its meaning. I said that you
    hadn't said anything about the meaning of Halt_Status. You declined
    to explain.

    You continue to use the term "return instruction". There is no such
    thing in C. There is a return *statement*. Do you have some reason to insist on using incorrect terminology?

    It is a common issue with him, because he refuses to learn the correct terminology, as that then becomes too limiting for his equivocations.

    Ultimately, he needs to relate his functios to the Turing machines of
    the proof, but he requires them to do things that make this impossible.


    which is not particularly interesting,
    and it never reaches the "if (Halt_Status)". (DD calls HHH, which
    simulates DD; HHH, in simulating DD, must do the equivalent of
    calling HHH, and so on.)

    It turns out to be very interesting you merely need
    to grok a few details first.

    It's unlikely I'll continue paying attention long enough for it to get interesting.

    You've introduced the idea of simulating only some finite number
    of instructions of the simulated functions, but you haven't really
    said how that happens (except perhaps in some x86 code that I
    don't understand). You've implied that a sufficient knowledge of C
    would let someone understand your arguments, but part of what you're
    saying seems to depend on x86 assembly and/or machine code (which I'm
    not going to learn for the sake of this discussion).
    If I would need to understand x86 code to understand your claims,
    then
    let's just stop here.
    [SNIP]

    You didn't respond to the above. I'll ask directly.

    Would I need to understand x86 code to understand your claims? Yes or no.


    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to olcott on Fri May 9 07:21:09 2025
    On 5/9/25 1:49 AM, olcott wrote:
    On 5/9/2025 12:31 AM, Keith Thompson wrote:
    olcott <polcott333@gmail.com> writes:

    On 5/8/2025 11:11 PM, Keith Thompson wrote:
    olcott <polcott333@gmail.com> writes:
    On 5/8/2025 8:30 PM, Keith Thompson wrote:
    olcott <polcott333@gmail.com> writes:
    On 5/8/2025 6:49 PM, Keith Thompson wrote:
    olcott <polcott333@gmail.com> writes:
    [...]
    void DDD()
    {
          HHH(DDD);
          return;
    }

    If you are a competent C programmer then you
    know that DDD correctly simulated by HHH cannot
    possibly each its own "return" instruction.
    "cannot possibly each"?
    I am a competent C programmer (and I don't believe you can make >>>>>>>> the same claim).  I don't know what HHH is.  The name "HHH" tells >>>>>>>> me nothing about what it's supposed to do.  Without knowing what >>>>>>>> HHH is, I can't say much about your code (or is it pseudo-code?). >>>>>>>>

    For the purpose of this discussion HHH is exactly
    what I said it is. It correctly simulates DDD.
    Does HHH correctly simulate DDD *and do nothing else*?
    Does HHH correctly simulate *every* function whose address is passed >>>>>> to it?  Must the passed function be one that takes no arguments
    and does not return a value?
    Can HHH just *call* the function whose address is passed to it?
    If it's a correct simulation, there should be no difference between >>>>>> calling the function and "correctly simulating" it.
    My knowledge of C tells me nothing about *how* HHH might simulate
    DDD.

    HHH can only simulate a function that take no arguments
    and has no return value. HHH also simulates the entire
    chain of functions that this function calls. These can
    take arguments or not and have return values or not.

    Thus HHH ends up simulating itself (and everything
    that HHH calls) simulating DDD in an infinite
    sequence of recursive emulation until OOM error.

    We need not know anything else about HHH to
    know that DDD correctly simulated by HHH cannot
    possibly REACH its own "return" instruction.
    Assuming that HHH(DDD) "correctly simulates" DDD, and assuming it
    does nothing else, your code would be equivalent to this:
           void DDD(void) {
               DDD();
               return;
           }

    Exactly. None of these people on comp.theory could
    get that even after three years.
    I find that difficult to believe.

    Then the return statement (which is unnecessary anyway) will never be >>>>>> reached.

    It is only there to mark a final halt state.
    The closing "}" does that equally well.

    In practice, the program will likely crash due to a stack
    overflow, unless the compiler implements tail-call optimization, in >>>>>> which case the program might just run forever -- which also means the >>>>>> unnecessary return statement will never be reached.


    Yes you totally have this correctly.
    None of the dozens of comp.theory people could
    ever achieve that level of understanding even
    after three years. That is why I needed to post
    on comp.lang.c.
    I'll note that I've posted in comp.theory, not in comp.lang.c.
    I never see anything you post in comp.lang.c.

    This conclusion relies on my understanding of what you've said about >>>>>> your code, which I consider to be unreliable.

    I am not even talking about my code. I am
    talking about the purely hypothetical code
    that you just agreed to.
    Do not overestimate what I've agreed to.  I must still consider the
    possibility that I've been led into a logical trap of some sort,
    and that I've missed some subtle flaw.

    No doubt you believe that there is some significance to the
    apparent fact that the return statement will never be reached,
    assuming that's a correct and relevant conclusion.  I don't know
    what that significance might be.

    I will tell you that later after you understand
    some prerequisite ideas first.

    int DD()
    {
        int Halt_Status = HHH(DD);
        if (Halt_Status)
          HERE: goto HERE;
        return Halt_Status;
    }
    So now HHH returns an int result, and you store that result
    in a variable named "Halt_Status".  You haven't said here what
    the meaning of that result might be, and I decline to make any
    assumptions based on what you've called it.  You could rename
    "Halt_Status" to "Foo" and have effectively identical code.
    Previously DDD would "correctly simulate" the function whose address
    is
    passed to it.  Now it does that and returns an int result.
    If you want to say anything about the meaning of the result returned
    by HHH, feel free to say it.

    The same thing that applied to DDD equally
    applies to the more complicated DD.

    When 1 or more instructions of DD are correctly
    simulated by HHH the correctly simulated DD
    cannot possibly get past its call to HHH(DD).
    Thus DD also never reaches its "return" instruction.
    Now you're talking about simulating "1 or more instructions"
    of DD.  I thought that HHH was supposed to "accurately simulate"
    the function whose argument is passed to it.  Emulating just "1 or
    more instructions" is not accurate simulation.
    If HHH *fully* simulates the execution of DD, then your code above
    exhibits endless recursion,

    In computer science "halting" is not merely stopping running.
    "Halting" is reaching a final halt state such as the "return"
    instruction.

    I fail to see either the truth or the relevance of that statement.

    The "return" instruction marks the final halt state.

    Which just shows that you are not reading what he is saying.

    The actual basis for halting: Reaching a Final Halt State
    The halting problem proofs have very specific specific parameters.

    Which points out that you are not talking about the C language, but are
    just trying to abuse that connection.



    We weren't even talking about halting.  You did use the C identifier
    "Halt_Status", but I already told you that the spelling of an
    identifier implies nothing about its meaning.  I said that you
    hadn't said anything about the meaning of Halt_Status.  You declined
    to explain.



    You continue to use the term "return instruction".  There is no such
    thing in C.  There is a return *statement*.  Do you have some reason to
    insist on using incorrect terminology?

    which is not particularly interesting,
    and it never reaches the "if (Halt_Status)".  (DD calls HHH, which
    simulates DD; HHH, in simulating DD, must do the equivalent of
    calling HHH, and so on.)

    It turns out to be very interesting you merely need
    to grok a few details first.

    It's unlikely I'll continue paying attention long enough for it to get
    interesting.

    You've introduced the idea of simulating only some finite number
    of instructions of the simulated functions, but you haven't really
    said how that happens (except perhaps in some x86 code that I
    don't understand).  You've implied that a sufficient knowledge of C
    would let someone understand your arguments, but part of what you're
    saying seems to depend on x86 assembly and/or machine code (which I'm
    not going to learn for the sake of this discussion).
    If I would need to understand x86 code to understand your claims,
    then
    let's just stop here.
    [SNIP]

    You didn't respond to the above.  I'll ask directly.

    Would I need to understand x86 code to understand your claims?  Yes or
    no.


    It makes it much easier because the state transition graph
    of the control flow at the x86 level is unequivocal.


    The same is true of C code that uses no undefined behavior.

    Part of your problem is that you keep on violating the requirements you stipulate to try to support your equivocation.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From joes@21:1/5 to All on Fri May 9 15:42:33 2025
    Am Fri, 09 May 2025 10:33:27 -0500 schrieb olcott:
    On 5/9/2025 3:39 AM, Fred. Zwarts wrote:
    Op 09.mei.2025 om 01:53 schreef olcott:
    On 5/8/2025 6:45 PM, Keith Thompson wrote:

    You are using C, a language in which you appear to have little
    apparent expertise or willingness to learn, to demonstrate claims
    that, if true, would overturn ideas that have been generally accepted
    for decades.  Can you understand why I might decide that analyzing
    your claims is not worth my time?

    I learned C back when K & R was the standard.
    We don't need to look at any of my code for me to totally prove my
    point. For example when the above DDD is correctly simulated by HHH
    this simulated DDD cannot possibly reach its own "return" instruction.

    A vacuous statement, because HHH cannot correctly simulate DDD, which
    includes HHH itself.
    A vacuous statement does not prove anything.

    You are saying that the smartest genius (not me)
    in the universe cannot possibly create an HHH that simulates itself simulating DDD?
    What is the evidence for this wild-eyed claim?
    Because it runs forever, and a decider needs to return.

    --
    Am Sat, 20 Jul 2024 12:35:31 +0000 schrieb WM in sci.math:
    It is not guaranteed that n+1 exists for every n.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From joes@21:1/5 to All on Fri May 9 15:47:21 2025
    Am Fri, 09 May 2025 10:08:40 -0500 schrieb olcott:
    On 5/9/2025 4:48 AM, joes wrote:
    Am Thu, 08 May 2025 22:34:35 -0500 schrieb olcott:
    On 5/8/2025 10:14 PM, Mike Terry wrote:
    On 09/05/2025 03:13, olcott wrote:
    On 5/8/2025 8:30 PM, Keith Thompson wrote:
    olcott <polcott333@gmail.com> writes:
    On 5/8/2025 6:49 PM, Keith Thompson wrote:
    olcott <polcott333@gmail.com> writes:

    His simulation is in fact a single-stepped x86 instruction
    simulation, where the stepping of each x86 instruction is under the
    HHH's control. HHH can continue stepping the simulation until its
    target returns, in which case the situation is logically just like
    direct call, as you have described.  Or HHH could step just 3 x86
    instructions (say) and then decide to return (aka "abort" its
    simulation).  Let's call that /
    partial/ simulation in contrast with /full/ simulation which you've
    been supposing.
    A full simulation of infinite recursion?
    I am only doing one tiny idea at a time here.
    Yeah, so not a full simulation.
    Didn't you know this?
    It is incorrect for a simulating termination analyzer to do a full
    simulation of a non-halting input.

    In practice, the program will likely crash due to a stack overflow, >>>>>> unless the compiler implements tail-call optimization, in which
    case the program might just run forever -- which also means the
    unnecessary return statement will never be reached.
    Yes you totally have this correctly.
    None of the dozens of comp.theory people could ever achieve that
    level of understanding even after three years. That is why I needed
    to post on comp.lang.c.
    Everybody on comp.theory understands this much.
    No one here ever agreed that when 1 or more instructions of DDD are
    correctly simulated by HHH that DDD cannot possibly reach its own
    "return" instruction.
    That's wrong as written. HHH cannot simulate DDD returning in a finite
    number of instructions, it takes infinitely many.
    HHH can simulate 1 or more instructions of DDD,
    this is not actually logically impossible.
    When HHH does correctly simulate 1 or more instructions of DDD then DDD
    never reaches its "return statement" final halt state.
    HHH simulates DDD returning only in an infinite number of steps.

    This conclusion relies on my understanding of what you've said
    about your code, which I consider to be unreliable.

    Hmm, did PO make it clear that when he says
       "..DDD correctly simulated by HHH cannot
        possibly REACH its own "return" instruction."
    he is not talking about whether "DDD halts"?  [I.e. halts when run
    directly from main() outside of a simulator.]  No, what he is talking >>>> about is whether the /step-by-step partial simuation/ of DDD
    performed by HHH proceeds as far as DDD returning.

    When 1 or more steps of DDD are correctly simulated by HHH the
    simulated DDD cannot possibly reach its "return" instruction (final
    halt state). No one here has agreed to that. Not in several years of
    coaxing and elaboration.

    It's true for a finite number. Aborting is not correct simulation, even
    if HHH did return that DDD halts.
    It is incorrect for a simulating termination analyzer to do a full
    simulation of a non-halting input.
    Yes, that is why HHH cannot both be a decider and simulate correctly.
    And then it goes further and guesses wrongly.

    --
    Am Sat, 20 Jul 2024 12:35:31 +0000 schrieb WM in sci.math:
    It is not guaranteed that n+1 exists for every n.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to olcott on Fri May 9 12:50:39 2025
    On 5/9/25 11:39 AM, olcott wrote:
    On 5/9/2025 3:41 AM, Fred. Zwarts wrote:
    Op 09.mei.2025 om 02:14 schreef olcott:
    On 5/8/2025 7:00 PM, Keith Thompson wrote:
    olcott <polcott333@gmail.com> writes:
    On 5/8/2025 6:45 PM, Keith Thompson wrote:
    olcott <polcott333@gmail.com> writes:
    On 5/8/2025 5:26 PM, Keith Thompson wrote:
    [...]
    I am more nearly an expert on C than on the Halting Problem.
    Watching olcott base his arguments on C *and getting C so badly >>>>>>>> wrong* leads me to think that he is largely ignorant of C (which is >>>>>>>> fine, most people are) and is unwilling to admit it.  Watching the >>>>>>>> reactions of actual experts to his mathematical arguments leads me >>>>>>>> to the same conclusion about his knowledge of the relevant fields >>>>>>>> of mathematics.


    If Halt7.c is not compiled with the Microsoft
    compiler then it will not produce the required
    object file type.

    The rest of the system has compiled under
    Linux. I haven't tried this in a few years.
    [...]
    So you normally compile your code using the 2017 version of
    Microsoft
    Visual Studio.
    I have no particular problem with that, but your failure to correct >>>>>> a number of C errors in your code is odd.

    As I already proved Microsoft reported no such errors.

    Microsoft's compiler did not report certain errors that any
    conforming C
    compiler is required by the standard to report.

    Microsoft's compiler *can* be invoked in a way that causes it to
    diagnose such errors, though it may or may not become fully conforming. >>>> I haven't used it lately, but a web search should tell you how to do
    that.

      I've pointed out several
    syntax errors and constraint violations; at least the syntax errors >>>>>> would be trivial to fix (even if your compiler is lax enough to
    fail to diagnose them).  Richard Heathfield has pointed out code
    that dereferences a null pointer.


    Mike corrected Richard on this.
    Those are stub functions intercepted
    by x86utm the operating system.

    You are using C, a language in which you appear to have little
    apparent expertise or willingness to learn, to demonstrate claims
    that, if true, would overturn ideas that have been generally accepted >>>>>> for decades.  Can you understand why I might decide that analyzing >>>>>> your claims is not worth my time?


    I learned C back when K & R was the standard.

    So did I.  I've kept up with the language as it has changed.

    void DDD()
    {
       HHH(DDD);
       return;
    }

    We don't need to look at any of my code for me
    to totally prove my point.

    Great.  Then why do you keep posting code?  Or is the above DDD()
    function not included in "any of my code")?

                                For example when >>>>> the above DDD is correctly simulated by HHH
    this simulated DDD cannot possibly reach its own
    "return" instruction.

    That's too vague for me to comment.


    Do you know what a C language interpreter is?
    I actually do this at the x86 machine code level
    yet most people don't have a clue about that.

    _DDD()
    [00002172] 55         push ebp      ; housekeeping
    [00002173] 8bec       mov ebp,esp   ; housekeeping
    [00002175] 6872210000 push 00002172 ; push DDD
    [0000217a] e853f4ffff call 000015d2 ; call HHH(DDD)
    [0000217f] 83c404     add esp,+04
    [00002182] 5d         pop ebp
    [00002183] c3         ret
    Size in bytes:(0018) [00002183]

    The above hypothetical HHH emulates the first four
    instructions of DDD. This sequence repeats until a
    OOM error.



    Only in your dream, because HHH has code to abort and after that abort
    the program halts without OOM error.
    Every competent C programmer will understand that.

    The above set of hypothetical HHH instances correctly
    simulates 1 or more instructions of DDD including
    its call to HHH(DDD). This does include HHH emulating
    itself emulating DDD.

    If you think it is impossible for HHH to emulate itself
    emulating DDD then you don't have a clue about cooperative
    multi-tasking and differing process contexts.


    No they don't, not past the call instruction, as that is IMPOSSIBLE for
    the required pure function emulator to do when it hasn't been given them.

    You are just showing that you think it is ok to just make up lies and
    keep repeating them.

    Your failure to show the error in this statement show you KNOW you are
    just a liar, but don't care, as you know you have no answer for it, so
    you will just keep repeating the error in hopes that someone will
    believe you.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to olcott on Fri May 9 12:52:58 2025
    On 5/9/25 11:16 AM, olcott wrote:
    On 5/9/2025 5:59 AM, Richard Damon wrote:
    On 5/9/25 12:22 AM, Keith Thompson wrote:
    Richard Damon <news.x.richarddamon@xoxy.net> writes:
    On 5/8/25 10:23 PM, Keith Thompson wrote:
    Richard Damon <richard@damon-family.org> writes:
    On 5/8/25 7:53 PM, olcott wrote:
    [...]
    void DDD()
    {
         HHH(DDD);
         return;
    }
    We don't need to look at any of my code for me
    to totally prove my point. For example when
    the above DDD is correctly simulated by HHH
    this simulated DDD cannot possibly reach its own
    "return" instruction.

    And thus not correctly simulatd.

    Sorry, there is no "OS Exemption" to correct simulaiton;.
    Perhaps I've missed something.  I don't see anything in the above
    that
    implies that HHH does not correctly simulate DDD.  Richard, you've
    read
    far more of olcott's posts than I have, so perhaps you can clarify.
    If we assume that HHH correctly simulates DDD, then the above code
    is
    equivalent to:
          void DDD()
          {
            DDD();
            return;
          }
    which is a trivial case of infinite recursion.  As far as I can
    tell,
    assuming that DDD() is actually called at some point, neither the
    outer execution of DDD nor the nested (simulated) execution of DDD
    can reach the return statement.  Infinite recursion might either
    cause a stack overflow and a probable program crash, or an unending
    loop if the compiler implements tail call optimization.
    I see no contradiction, just an uninteresting case of infinite
    recursion, something that's well understood by anyone with a
    reasonable level of programming experience.  (And it has nothing to >>>>> do with the halting problem as far as I can tell, though of course
    olcott has discussed the halting problem elsewhere.)
    Richard, what am I missing?


    You are missing the equivocation he is using on what is "DDD()"

    First, he tries to define it as just the code of the function, and not >>>> including any of the code that it calls. He does this so all the
    various HHH that he talks about are given the "same" input.

    Then he tries to also say that when those functions look at DDD, they
    can follow the memory chain to the functions that it calls, that
    weren't actually part of the input.

    This means the "behavior" of his input isn't actually defined by the
    input.

    I haven't seen any of that in the posts to which I've recently replied
    (and I absolutely do not have the patience to read everything he's
    posted here).

    What I've seen in the articles to which I've recently replied has been
    just a strangely little C function and some claims about simulation.
    Viewed in isolation, I don't think any of that (again, ignoring the vast >>> majority of what he's posted in this newsgroup) seems contradictory
    so far.

    The problem is the subtile one that he needs all "versions" of the
    input "DDD" to be the "same input" no matter what decider he uses,
    which means he can't include the code for the decider called as part
    of the input.

    But also, as I explained, he needs to define the decider to be a pure
    function to outlaw the trivial solution of the decider short-cutting
    itself when it is called by the input with a static variable, which
    means it can't do the job without it being part of the input.


    He has also, to get around other objections about what he is doing,
    stipulated that his functions must be pure functions, and thus only
    dependent on their direct input, other wise we can add the following
    code to the beginning of HHH to make his statement false:

    I've seen no mention of pure functions in the posts to which I've
    recently replied.

    Again, that is because that side of the equivocation hasn't been
    argued recently. Perhaps when he starts to argue that the decider is
    allowed to look at the "non-input" code, we will get back to that.


    void DDD()
    {
      HHH(DDD);
      return;
    }

    *Subtle strawman deception change away from this exact subject*
    DDD correctly simulated by HHH cannot possibly
    reach its own "return" instruction.



    HHH can not correct emulate that input, so your statment is just
    nonsense, and you prove that your concept of "logic" is likewise just
    full of error.

    The input doesn't contain the code for HHH, and thus HHH can not be the required pure function required, as it hasn't been given the code to
    emulate.

    Sorry, You are just proving how must of a pathological liar you are.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to olcott on Fri May 9 12:57:14 2025
    On 5/9/25 10:52 AM, olcott wrote:
    On 5/8/2025 11:22 PM, Keith Thompson wrote:
    Richard Damon <news.x.richarddamon@xoxy.net> writes:
    On 5/8/25 10:23 PM, Keith Thompson wrote:
    Richard Damon <richard@damon-family.org> writes:
    On 5/8/25 7:53 PM, olcott wrote:
    [...]
    void DDD()
    {
         HHH(DDD);
         return;
    }
    We don't need to look at any of my code for me
    to totally prove my point. For example when
    the above DDD is correctly simulated by HHH
    this simulated DDD cannot possibly reach its own
    "return" instruction.

    And thus not correctly simulatd.

    Sorry, there is no "OS Exemption" to correct simulaiton;.
    Perhaps I've missed something.  I don't see anything in the above
    that
    implies that HHH does not correctly simulate DDD.  Richard, you've read >>>> far more of olcott's posts than I have, so perhaps you can clarify.
    If we assume that HHH correctly simulates DDD, then the above code
    is
    equivalent to:
          void DDD()
          {
            DDD();
            return;
          }
    which is a trivial case of infinite recursion.  As far as I can
    tell,
    assuming that DDD() is actually called at some point, neither the
    outer execution of DDD nor the nested (simulated) execution of DDD
    can reach the return statement.  Infinite recursion might either
    cause a stack overflow and a probable program crash, or an unending
    loop if the compiler implements tail call optimization.
    I see no contradiction, just an uninteresting case of infinite
    recursion, something that's well understood by anyone with a
    reasonable level of programming experience.  (And it has nothing to
    do with the halting problem as far as I can tell, though of course
    olcott has discussed the halting problem elsewhere.)
    Richard, what am I missing?


    You are missing the equivocation he is using on what is "DDD()"

    First, he tries to define it as just the code of the function, and not
    including any of the code that it calls. He does this so all the
    various HHH that he talks about are given the "same" input.

    Then he tries to also say that when those functions look at DDD, they
    can follow the memory chain to the functions that it calls, that
    weren't actually part of the input.

    This means the "behavior" of his input isn't actually defined by the
    input.

    I haven't seen any of that in the posts to which I've recently replied
    (and I absolutely do not have the patience to read everything he's
    posted here).

    What I've seen in the articles to which I've recently replied has been
    just a strangely little C function and some claims about simulation.
    Viewed in isolation, I don't think any of that (again, ignoring the vast
    majority of what he's posted in this newsgroup) seems contradictory so
    far.


    When viewed in isolation (as intended) there is no basis
    for rebuttal. Richard refers to extraneous irrelevant
    points in an attempt to deflect the conversation away
    from the simple truth:

    void DDD()
    {
      HHH(DDD);
      return;
    }

     "..DDD correctly simulated by HHH cannot
      possibly REACH its own "return" instruction."

    So, which of my points are you refuting?

    The input show does NOT contain the code for HHH, so if HHH is a pure
    function, it can not emulate the input correctly.

    If HHH doesn't need to be a pure function, then the HHH that begins:

    int HHH(ptr D) {
    static bool flag = 0;
    if (flag) return 0;
    flag = 1;

    /* continue on with a correct emulation of the input, following the call instruction it meets */


    Will in fact, emulate its input DDD to the final return instruction.


    He has also, to get around other objections about what he is doing,
    stipulated that his functions must be pure functions, and thus only
    dependent on their direct input, other wise we can add the following
    code to the beginning of HHH to make his statement false:

    I've seen no mention of pure functions in the posts to which I've
    recently replied.

    [...]


    Dodging and weaving is Richard's style.


    Nope, that is just you projecting. I have hit you so many times with
    FACTUAL rebuttals that you are just staggering to avoid trying to
    counter things you can not counter.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to olcott on Fri May 9 13:00:18 2025
    On 5/9/25 11:48 AM, olcott wrote:
    On 5/9/2025 3:47 AM, Fred. Zwarts wrote:
    Op 09.mei.2025 om 04:23 schreef Keith Thompson:
    Richard Damon <richard@damon-family.org> writes:
    On 5/8/25 7:53 PM, olcott wrote:
    [...]
    void DDD()
    {
        HHH(DDD);
        return;
    }
    We don't need to look at any of my code for me
    to totally prove my point. For example when
    the above DDD is correctly simulated by HHH
    this simulated DDD cannot possibly reach its own
    "return" instruction.

    And thus not correctly simulatd.

    Sorry, there is no "OS Exemption" to correct simulaiton;.

    Perhaps I've missed something.  I don't see anything in the above that
    implies that HHH does not correctly simulate DDD.  Richard, you've read >>> far more of olcott's posts than I have, so perhaps you can clarify.

    If we assume that HHH correctly simulates DDD, then the above code is
    equivalent to:

         void DDD()
         {
           DDD();
           return;
         }

    which is a trivial case of infinite recursion.  As far as I can tell,
    assuming that DDD() is actually called at some point, neither the
    outer execution of DDD nor the nested (simulated) execution of DDD
    can reach the return statement.  Infinite recursion might either
    cause a stack overflow and a probable program crash, or an unending
    loop if the compiler implements tail call optimization.

    I see no contradiction, just an uninteresting case of infinite
    recursion, something that's well understood by anyone with a
    reasonable level of programming experience.  (And it has nothing to
    do with the halting problem as far as I can tell, though of course
    olcott has discussed the halting problem elsewhere.)

    Richard, what am I missing?


    What you are missing is that the next step of olcott is to say that
    when he uses the 'exact same HHH, with only some extra code to abort
    the simulation', it is still an infinite recursion. He does not
    understand that adding the abort code makes the behaviour
    fundamentally different.

    When 1 or more statements of DDD are correctly simulated
    by HHH this correctly simulated DDD cannot possibly reach
    its own "return statement" final halt state.


    But HHH can not correctly emulate this input (the code of just DDD) past
    the call instruction and remain a pure function, as it hasn't been given
    that code.

    If HHH doesn't need to be a pure function, then I have shown an HHH that
    does what you say can't be done.


    Reaching the final halt state is the only correct
    measure of halting. Thus the finite string input
    to HHH(DDD) specifies a non-halting sequence of
    configurations.

    Right, but that needs a full program as the input so it HAS behavior,
    and non-halting is only implied if an actual correct emulation (that
    doesn't abort) will never reach such a statement even after processing
    an unbounded number of steps.

    Stopping before then just shows "Not Yet Halted".


    It is difficult for him to understand, because he refuses to use
    different names for the different versions of HHH, because he dreams
    that they are al exactly the same (except for small changes).



    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to olcott on Fri May 9 13:58:56 2025
    On 5/9/25 11:33 AM, olcott wrote:
    On 5/9/2025 3:39 AM, Fred. Zwarts wrote:
    Op 09.mei.2025 om 01:53 schreef olcott:
    On 5/8/2025 6:45 PM, Keith Thompson wrote:
    olcott <polcott333@gmail.com> writes:
    On 5/8/2025 5:26 PM, Keith Thompson wrote:
    [...]
    I am more nearly an expert on C than on the Halting Problem.
    Watching olcott base his arguments on C *and getting C so badly
    wrong* leads me to think that he is largely ignorant of C (which is >>>>>> fine, most people are) and is unwilling to admit it.  Watching the >>>>>> reactions of actual experts to his mathematical arguments leads me >>>>>> to the same conclusion about his knowledge of the relevant fields
    of mathematics.


    If Halt7.c is not compiled with the Microsoft
    compiler then it will not produce the required
    object file type.

    The rest of the system has compiled under
    Linux. I haven't tried this in a few years.

    [...]

    So you normally compile your code using the 2017 version of Microsoft
    Visual Studio.

    I have no particular problem with that, but your failure to correct
    a number of C errors in your code is odd.

    As I already proved Microsoft reported no such errors.

     I've pointed out several
    syntax errors and constraint violations; at least the syntax errors
    would be trivial to fix (even if your compiler is lax enough to
    fail to diagnose them).  Richard Heathfield has pointed out code
    that dereferences a null pointer.


    Mike corrected Richard on this.
    Those are stub functions intercepted
    by x86utm the operating system.

    You are using C, a language in which you appear to have little
    apparent expertise or willingness to learn, to demonstrate claims
    that, if true, would overturn ideas that have been generally accepted
    for decades.  Can you understand why I might decide that analyzing
    your claims is not worth my time?


    I learned C back when K & R was the standard.

    void DDD()
    {
       HHH(DDD);
       return;
    }

    We don't need to look at any of my code for me
    to totally prove my point. For example when
    the above DDD is correctly simulated by HHH
    this simulated DDD cannot possibly reach its own
    "return" instruction.



    A vacuous statement, because HHH cannot correctly simulate DDD, which
    includes HHH itself.
    A vacuous statement does not prove anything.

    You are saying that the smartest genius (not me)
    in the universe cannot possibly create an HHH
    that simulates itself simulating DDD?

    What is the evidence for this wild-eyed claim?


    Not that can be a pure function and emulate the input that you are
    giving it, as your setup commits a category error.

    Make the input include all the code of the function is calls, and them
    yes you can do it.

    Of course such an HHH(DDD) will be non-halting, and thus not a decider.

    And its DDD/HHH pairing of input will be different then the DDD/HHH
    pairing given to your decider, so you logic to claim your decider
    correct will just fail and be shown to be a lia.

    There can not be a HHH decider smart enough to predict on the DDD built
    on it, dues to that "pathological relationship", but each of those
    DDD/HHH have a correct answer, just not the one that the deterministic
    HHH returns,

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to Keith Thompson on Fri May 9 13:59:05 2025
    On 5/8/25 10:23 PM, Keith Thompson wrote:
    Richard Damon <richard@damon-family.org> writes:
    On 5/8/25 7:53 PM, olcott wrote:
    [...]
    void DDD()
    {
      HHH(DDD);
      return;
    }
    We don't need to look at any of my code for me
    to totally prove my point. For example when
    the above DDD is correctly simulated by HHH
    this simulated DDD cannot possibly reach its own
    "return" instruction.

    And thus not correctly simulatd.

    Sorry, there is no "OS Exemption" to correct simulaiton;.

    Perhaps I've missed something. I don't see anything in the above that implies that HHH does not correctly simulate DDD. Richard, you've read
    far more of olcott's posts than I have, so perhaps you can clarify.

    If we assume that HHH correctly simulates DDD, then the above code is equivalent to:

    void DDD()
    {
    DDD();
    return;
    }

    which is a trivial case of infinite recursion. As far as I can tell, assuming that DDD() is actually called at some point, neither the
    outer execution of DDD nor the nested (simulated) execution of DDD
    can reach the return statement. Infinite recursion might either
    cause a stack overflow and a probable program crash, or an unending
    loop if the compiler implements tail call optimization.

    I see no contradiction, just an uninteresting case of infinite
    recursion, something that's well understood by anyone with a
    reasonable level of programming experience. (And it has nothing to
    do with the halting problem as far as I can tell, though of course
    olcott has discussed the halting problem elsewhere.)

    Richard, what am I missing?


    You are missing the equivocation he is using on what is "DDD()"

    First, he tries to define it as just the code of the function, and not including any of the code that it calls. He does this so all the various
    HHH that he talks about are given the "same" input.

    Then he tries to also say that when those functions look at DDD, they
    can follow the memory chain to the functions that it calls, that weren't actually part of the input.

    This means the "behavior" of his input isn't actually defined by the input.

    He has also, to get around other objections about what he is doing,
    stipulated that his functions must be pure functions, and thus only
    dependent on their direct input, other wise we can add the following
    code to the beginning of HHH to make his statement false:


    int HHH(void (*p)()) {
    static int flag = 0;
    if (flag) return 0;
    flag = 1;
    /* then the rest of the code that he uses to simulate the input */

    Such an HHH obviously can "correctly simulate" a call to itself in the
    same memory space to the return of DDD.

    But, since HHH has been stipulated to be a pure function, it can't
    access memory that wasn't part of its input, and thus his first
    definition can't be used, and when we use the second definiton, it is
    clear that each of his HHH's get different input, so is ploy to show
    that the HHH that does correctly emulate the input which show that "the"
    DDD is non-halting also shows that the HHH that does abort, and was
    given the "same" input can also conclude that.

    Of course, different inputs can behavie differently and thus he is just
    using his projection that HHH(DDD) is just like the sum(2,3) that
    returned 7 as the sum of 2 + 5 since it "changed" the input to something
    it wasn't.

    His goal is to ge this "fact" agreed to in the abstract case, so he can
    claim it must also be true

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to olcott on Fri May 9 14:06:46 2025
    On 5/9/25 11:53 AM, olcott wrote:
    On 5/9/2025 10:42 AM, joes wrote:
    Am Fri, 09 May 2025 10:33:27 -0500 schrieb olcott:
    On 5/9/2025 3:39 AM, Fred. Zwarts wrote:
    Op 09.mei.2025 om 01:53 schreef olcott:
    On 5/8/2025 6:45 PM, Keith Thompson wrote:

    You are using C, a language in which you appear to have little
    apparent expertise or willingness to learn, to demonstrate claims
    that, if true, would overturn ideas that have been generally accepted >>>>>> for decades.  Can you understand why I might decide that analyzing >>>>>> your claims is not worth my time?

    I learned C back when K & R was the standard.
    We don't need to look at any of my code for me to totally prove my
    point. For example when the above DDD is correctly simulated by HHH
    this simulated DDD cannot possibly reach its own "return" instruction. >>>>>
    A vacuous statement, because HHH cannot correctly simulate DDD, which
    includes HHH itself.
    A vacuous statement does not prove anything.

    You are saying that the smartest genius (not me)
    in the universe cannot possibly create an HHH that simulates itself
    simulating DDD?
    What is the evidence for this wild-eyed claim?
    Because it runs forever, and a decider needs to return.


    In other words you are trying to change the subject
    from this:

    void DDD()
    {
      HHH(DDD);
      return;
    }

    When 1 or more statements of DDD are correctly
    simulated by HHH then this correctly simulated
    DDD cannot possibly reach its own “return statement”.


    No, because your statements are just nonsense lies.

    The input you describe is just NOT A PROGRAM, and thus doesn't HAVE a
    Halting Property.

    Your Emulator just fails to be a correct emulator because it isn't a
    pure function of its input, and it stops before it gets to the end.

    Note doing only 1 or more steps is NOT a "Correct Simulation" if it
    stops before reaching the final state.

    Just like a polygon of n sides is not a circle.

    Sorry, you are just proving that you are nothing but an ignorant
    pathological liar that doesn't care about what is true.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to olcott on Fri May 9 14:08:10 2025
    On 5/9/25 11:41 AM, olcott wrote:
    On 5/9/2025 3:39 AM, Fred. Zwarts wrote:
    Op 09.mei.2025 om 01:53 schreef olcott:
    On 5/8/2025 6:45 PM, Keith Thompson wrote:
    olcott <polcott333@gmail.com> writes:
    On 5/8/2025 5:26 PM, Keith Thompson wrote:
    [...]
    I am more nearly an expert on C than on the Halting Problem.
    Watching olcott base his arguments on C *and getting C so badly
    wrong* leads me to think that he is largely ignorant of C (which is >>>>>> fine, most people are) and is unwilling to admit it.  Watching the >>>>>> reactions of actual experts to his mathematical arguments leads me >>>>>> to the same conclusion about his knowledge of the relevant fields
    of mathematics.


    If Halt7.c is not compiled with the Microsoft
    compiler then it will not produce the required
    object file type.

    The rest of the system has compiled under
    Linux. I haven't tried this in a few years.

    [...]

    So you normally compile your code using the 2017 version of Microsoft
    Visual Studio.

    I have no particular problem with that, but your failure to correct
    a number of C errors in your code is odd.

    As I already proved Microsoft reported no such errors.

     I've pointed out several
    syntax errors and constraint violations; at least the syntax errors
    would be trivial to fix (even if your compiler is lax enough to
    fail to diagnose them).  Richard Heathfield has pointed out code
    that dereferences a null pointer.


    Mike corrected Richard on this.
    Those are stub functions intercepted
    by x86utm the operating system.

    You are using C, a language in which you appear to have little
    apparent expertise or willingness to learn, to demonstrate claims
    that, if true, would overturn ideas that have been generally accepted
    for decades.  Can you understand why I might decide that analyzing
    your claims is not worth my time?


    I learned C back when K & R was the standard.

    void DDD()
    {
       HHH(DDD);
       return;
    }

    We don't need to look at any of my code for me
    to totally prove my point. For example when
    the above DDD is correctly simulated by HHH
    this simulated DDD cannot possibly reach its own
    "return" instruction.



    A vacuous statement, because HHH cannot correctly simulate DDD, which
    includes HHH itself.
    A vacuous statement does not prove anything.

    If you think it is impossible for HHH to emulate itself
    emulating DDD then you don't have a clue about cooperative
    multi-tasking with differing process contexts.


    But your DDD isn't a program that can be emulated.

    Are you changing your defintions again?

    HHH shouldn't emulate itself if it isn't given a copy of itself to emulate.

    It seems you just are too stupid to understand what you are saying.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to olcott on Fri May 9 14:09:11 2025
    On 5/9/25 12:02 PM, olcott wrote:
    On 5/9/2025 4:03 AM, Fred. Zwarts wrote:
    Op 09.mei.2025 om 03:35 schreef olcott:
    On 5/8/2025 8:13 PM, Richard Damon wrote:
    On 5/8/25 8:05 PM, olcott wrote:
    On 5/8/2025 6:54 PM, Keith Thompson wrote:
    olcott <polcott333@gmail.com> writes:
    On 5/8/2025 6:30 PM, Richard Heathfield wrote:
    On 08/05/2025 23:50, olcott wrote:
    [...]
    If you are a competent C programmer
    Keith Thompson is a highly-respected and very competent C
    programmer.

    *Then he is just who I need*

    No, what you need is someone who is an expert in mathematical logic >>>>>> (I am not) who can explain to you, in terms you can understand and >>>>>> accept, where you've gone wrong.  Some expertise in C could also
    be helpful.


    The key gap in my proof is that none of the comp.sci
    people seems to have a slight clue about simple C
    programming.

    No, the problem is you don't.


    void DDD()
    {
       HHH(DDD);
       return;
    }

    *THIS IS THE C PART THAT NO ONE HERE UNDERSTANDS*
    DDD correctly simulated by HHH cannot possibly
    reach its own "return" instruction.

    And claiming the behavior of a program that isn;t the behavior of
    that program is just a lie.


    DDD correctly simulated by HHH cannot possibly
    reach its own "return" instruction.

    DDD correctly simulated by HHH cannot possibly
    reach its own "return" instruction.

    DDD correctly simulated by HHH cannot possibly
    reach its own "return" instruction.



    No need to repeat vacuous statements. It does not matter how many
    times you multiply 0, it will remains 0.
    DDD contains an HHH that aborts,

    void DDD()
    {
      HHH(DDD);
      return;
    }

    When 1 or more statements of DDD are correctly
    simulated by HHH then this correctly simulated
    DDD cannot possibly reach its own “return statement”.

    so a correct simulation will take that into account and reach the
    'return'. HHH does not do such a correct simulation, which makes your
    statements vacuous.



    WHich is not a correct simulation

    And can't actually be done past the call HHH instruction as you have
    insisted that the input is just the code of the function DDD.

    Or, are you admitting to your equivocation?

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to olcott on Fri May 9 14:15:35 2025
    On 5/9/25 11:59 AM, olcott wrote:
    On 5/9/2025 4:00 AM, Fred. Zwarts wrote:
    Op 09.mei.2025 om 02:05 schreef olcott:
    On 5/8/2025 6:54 PM, Keith Thompson wrote:
    olcott <polcott333@gmail.com> writes:
    On 5/8/2025 6:30 PM, Richard Heathfield wrote:
    On 08/05/2025 23:50, olcott wrote:
    [...]
    If you are a competent C programmer
    Keith Thompson is a highly-respected and very competent C
    programmer.

    *Then he is just who I need*

    No, what you need is someone who is an expert in mathematical logic
    (I am not) who can explain to you, in terms you can understand and
    accept, where you've gone wrong.  Some expertise in C could also
    be helpful.


    The key gap in my proof is that none of the comp.sci
    people seems to have a slight clue about simple C
    programming.

    void DDD()
    {
       HHH(DDD);
       return;
    }

    *THIS IS THE C PART THAT NO ONE HERE UNDERSTANDS*
    DDD correctly simulated by HHH cannot possibly
    reach its own "return" instruction.

    The HHH that you propose and is included in DDD does halt. But it is
    known that this HHH prematurely aborts which makes it impossible for
    the simulation to reach the reachable 'return'. HHH simply ignores the
    conditional abort in the simulation.


    void DDD()
    {
      HHH(DDD);
      return;
    }

    When 1 or more statements of DDD are correctly
    simulated by HHH then this correctly simulated
    DDD cannot possibly reach its own “return statement”.




    But HHH can't do that, as it can't emulate past the CALL HHH instruciton
    as it hasn't been give the code there as part of its input.

    You have stipulated that much.

    Are you admitting to your equivocation and changing your stipulations?

    Remember, once the input includes the copy of HHH, then HHH the correct emulator and HHH the decider are diffferent programs and thus the DDD
    paired with one is a different input than DDD paired with the other.

    So, all you are doing is proving you logic is based on lies of equivocation.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to olcott on Fri May 9 14:13:18 2025
    On 5/9/25 10:45 AM, olcott wrote:
    On 5/8/2025 9:02 PM, Keith Thompson wrote:
    olcott <polcott333@gmail.com> writes:
    On 5/8/2025 6:54 PM, Keith Thompson wrote:
    olcott <polcott333@gmail.com> writes:
    On 5/8/2025 6:30 PM, Richard Heathfield wrote:
    On 08/05/2025 23:50, olcott wrote:
    [...]
    If you are a competent C programmer
    Keith Thompson is a highly-respected and very competent C
    programmer.

    *Then he is just who I need*
    No, what you need is someone who is an expert in mathematical logic
    (I am not) who can explain to you, in terms you can understand and
    accept, where you've gone wrong.  Some expertise in C could also
    be helpful.

    The key gap in my proof is that none of the comp.sci
    people seems to have a slight clue about simple C
    programming.

    You see, this is something you've gotten wrong, and you need somebody
    who can explain that to you in terms you can understand and accept.

    void DDD()
    {
       HHH(DDD);
       return;
    }

    *THIS IS THE C PART THAT NO ONE HERE UNDERSTANDS*
    DDD correctly simulated by HHH cannot possibly
    reach its own "return" instruction.

    Is there any reason you couldn't have written that as follows?

    void DDD(void)
    {
       HHH(DDD);
    }

    You could then talk about it not reaching its closing brace rather
    than not reaching its "return" instruction.  BTW, it's correctly
    called a "return statement" in C; dropping it would make it easier
    to avoid your incorrect use of terminology.  (Assembly or machine
    code has "instructions"; C has "statements" and "declarations".)


    I need the "return statement" to explicitly
    mark the computer science: "final halt state".

    No you don't.

    Reaching the "end of the function" is a well defined term in the C standard.

    But, I guess looking at the actual Standards and the words they define
    is something foreign to youu.


    DDD correctly simulated by HHH is the same thing
    as infinite recursion between HHH and DDD yet is
    implemented as recursive simulation.

    Sure, infinite recursion is infinite, regardless of how it's
    implemented, assuming it's implemented correctly.  That's so trivally
    obvious that I simply don't believe that "the comp.sci" people are
    failing to understand it -- though I can believe that you believe it.


    Richard provided the same kind of fake "rebuttal"
    that I always get.

    It isn't fake.

    If it was, you could show the error.


    void DDD()
    {
      HHH(DDD);
      return;
    }

    "..DDD correctly simulated by HHH cannot
    possibly REACH its own "return statement".

    But HHH can not correct emulate that input.


    Everyone here has been denying that simple
    statement for three years. They do this by
    changing the subject away from the question
    being asked to irrelevant details.

    Because it isn't true by your stipulation of what you mean.


    I am only referring to the above hypothetical
    HHH/DDD pair of C functions.

    And DDD as a function isn't emulatable until you actually add the HHH it
    calls as the input.

    Then you final logic is broken.



    When 1 or more statements of DDD are correctly
    simulated by HHH then the simulated DDD cannot
    possibly reach its own "return statement" final
    halt state.


    Which must stop once DDD calls HHH, as HHH has not been given that code
    as its input, and thus it isn't ALLOWED to look there to access it.

    You have stipulated as much.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to olcott on Fri May 9 14:22:51 2025
    On 5/9/25 11:08 AM, olcott wrote:
    On 5/9/2025 4:48 AM, joes wrote:
    Am Thu, 08 May 2025 22:34:35 -0500 schrieb olcott:
    On 5/8/2025 10:14 PM, Mike Terry wrote:
    On 09/05/2025 03:13, olcott wrote:
    On 5/8/2025 8:30 PM, Keith Thompson wrote:
    olcott <polcott333@gmail.com> writes:
    On 5/8/2025 6:49 PM, Keith Thompson wrote:
    olcott <polcott333@gmail.com> writes:

    His simulation is in fact a single-stepped x86 instruction simulation, >>>> where the stepping of each x86 instruction is under the HHH's control. >>>> HHH can continue stepping the simulation until its target returns, in
    which case the situation is logically just like direct call, as you
    have described.  Or HHH could step just 3 x86 instructions (say) and
    then decide to return (aka "abort" its simulation).  Let's call that / >>>> partial/ simulation in contrast with /full/ simulation which you've
    been supposing.
    A full simulation of infinite recursion?
    I am only doing one tiny idea at a time here.
    Yeah, so not a full simulation.


    Didn't you know this?
    It is incorrect for a simulating termination analyzer
    to do a full simulation of a non-halting input.

    In practice, the program will likely crash due to a stack overflow, >>>>>> unless the compiler implements tail-call optimization, in which case >>>>>> the program might just run forever -- which also means the
    unnecessary return statement will never be reached.
    Yes you totally have this correctly.
    None of the dozens of comp.theory people could ever achieve that level >>>>> of understanding even after three years. That is why I needed to post >>>>> on comp.lang.c.
    Everybody on comp.theory understands this much.
    No one here ever agreed that when 1 or more instructions of DDD are
    correctly simulated by HHH that DDD cannot possibly reach its own
    "return" instruction.
    That's wrong as written. HHH cannot simulate DDD returning in a
    finite number of instructions, it takes infinitely many.


    HHH can simulate 1 or more instructions of DDD,
    this is not actually logically impossible.

    But it can't emulate past the call HHH instruction and remain a pure
    function as you have defined that code to not be in the input.


    When HHH does correctly simulate 1 or more
    instructions of DDD then DDD never reaches its
    "return statement" final halt state.

    WHich it can't do as your input definition makes it impossible to do.

    You have been told this many times, and haven't fixed it or clairified
    you change of definition and showing what you are actually meaning by
    your "input"

    All you are doing is insisting that you rule-breaking funciton is
    following the rules, thus making you just a pathetic liar.


    This conclusion relies on my understanding of what you've said about >>>>>> your code, which I consider to be unreliable.

    Hmm, did PO make it clear that when he says
         "..DDD correctly simulated by HHH cannot
          possibly REACH its own "return" instruction."
    he is not talking about whether "DDD halts"?  [I.e. halts when run
    directly from main() outside of a simulator.]  No, what he is talking >>>> about is whether the /step-by-step partial simuation/ of DDD performed >>>> by HHH proceeds as far as DDD returning.

    When 1 or more steps of DDD are correctly simulated by HHH the simulated >>> DDD cannot possibly reach its "return" instruction (final halt state).
    No one here has agreed to that. Not in several years of coaxing and
    elaboration.

    It's true for a finite number. Aborting is not correct simulation, even
    if HHH did return that DDD halts.


    Didn't you know this?
    It is incorrect for a simulating termination analyzer
    to do a full simulation of a non-halting input.


    So? it is also incorrect for a correct simulator to stop before it gets
    to the end.

    This is what makes it LOGICALLY IMPOSSIBLE to have a program that is both.

    Sorry, you are just showing that you "logic" is based on the assumption
    of the Truth Fairy that allows you to assume the impossible happens, and
    thus that you are nothing but a pathological liar.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to olcott on Fri May 9 14:24:41 2025
    On 5/9/25 11:03 AM, olcott wrote:
    On 5/9/2025 1:17 AM, Keith Thompson wrote:
    olcott <polcott333@gmail.com> writes:
    On 5/9/2025 12:31 AM, Keith Thompson wrote:
    [...]
    You didn't respond to the above.  I'll ask directly.
    Would I need to understand x86 code to understand your claims?  Yes
    or no.

    It makes it much easier because the state transition graph
    of the control flow at the x86 level is unequivocal.

    What a pity you couldn't have made that clear much sooner.


    Your help on the C part was very useful.
    The x86 part is only needed to understand
    the internals of the simulating termination
    analyzer.

    _DDD()
    [00002172] 55         push ebp      ; housekeeping
    [00002173] 8bec       mov ebp,esp   ; housekeeping
    [00002175] 6872210000 push 00002172 ; push DDD
    [0000217a] e853f4ffff call 000015d2 ; call HHH(DDD)
    [0000217f] 83c404     add esp,+04
    [00002182] 5d         pop ebp
    [00002183] c3         ret
    Size in bytes:(0018) [00002183]

    You don't need to understand the first two instructions.
    The next two instructions simply call HHH(DDD) in
    recursive emulation.

    At the x86 machine code level HHH can see that the
    first four instructions of DDD repeats. It sees this
    after it emulates DDD and then emulates itself
    emulating DDD once.

    As I said, I'm not very familiar with x86 code, and it's
    absolutely not worth my time and effort to learn it for the sake
    of understanding your claims.

    Bye.




    And, since you say that is *ALL* of the input, it is CATEGORICALLY
    IMPOSSIBLE for a correct emulator to emulate the instruction, as it is
    missing the details.

    Sorry, but you are just showing that youy are so dense that you are
    unable to learn basic definitions in programing.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to olcott on Fri May 9 14:25:49 2025
    On 5/9/25 12:04 PM, olcott wrote:
    On 5/9/2025 4:14 AM, Fred. Zwarts wrote:
    Op 09.mei.2025 om 04:13 schreef olcott:
    On 5/8/2025 8:30 PM, Keith Thompson wrote:
    olcott <polcott333@gmail.com> writes:
    On 5/8/2025 6:49 PM, Keith Thompson wrote:
    olcott <polcott333@gmail.com> writes:
    [...]
    void DDD()
    {
        HHH(DDD);
        return;
    }

    If you are a competent C programmer then you
    know that DDD correctly simulated by HHH cannot
    possibly each its own "return" instruction.
    "cannot possibly each"?
    I am a competent C programmer (and I don't believe you can make
    the same claim).  I don't know what HHH is.  The name "HHH" tells >>>>>> me nothing about what it's supposed to do.  Without knowing what
    HHH is, I can't say much about your code (or is it pseudo-code?).


    For the purpose of this discussion HHH is exactly
    what I said it is. It correctly simulates DDD.

    Does HHH correctly simulate DDD *and do nothing else*?

    Does HHH correctly simulate *every* function whose address is passed
    to it?  Must the passed function be one that takes no arguments
    and does not return a value?

    Can HHH just *call* the function whose address is passed to it?
    If it's a correct simulation, there should be no difference between
    calling the function and "correctly simulating" it.

    My knowledge of C tells me nothing about *how* HHH might simulate
    DDD.


    HHH can only simulate a function that take no arguments
    and has no return value. HHH also simulates the entire
    chain of functions that this function calls. These can
    take arguments or not and have return values or not.

    Thus HHH ends up simulating itself (and everything
    that HHH calls) simulating DDD in an infinite
    sequence of recursive emulation until OOM error.

    We need not know anything else about HHH to
    know that DDD correctly simulated by HHH cannot
    possibly REACH its own "return" instruction.

    Assuming that HHH(DDD) "correctly simulates" DDD, and assuming it
    does nothing else, your code would be equivalent to this:

         void DDD(void) {
             DDD();
             return;
         }


    Exactly. None of these people on comp.theory could
    get that even after three years.

    Only if you forget that your proposed HHH aborts and returns.

    *This slight augmentation takes that into account*

    void DDD()
    {
      HHH(DDD);
      return;
    }

    When 1 or more statements of DDD are correctly
    simulated by HHH then this correctly simulated
    DDD cannot possibly reach its own “return statement”.




    But it can't simulate past the call to HHH, as it doesn't have the code
    for that as part of its input.

    And partial simulation not reaching a final state is not "Non-Halting".

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to olcott on Fri May 9 14:29:43 2025
    On 5/9/25 11:55 AM, olcott wrote:
    On 5/9/2025 6:25 AM, Richard Damon wrote:
    On 5/8/25 6:20 PM, olcott wrote:
    On 5/8/2025 5:13 PM, Richard Heathfield wrote:
    On 08/05/2025 22:41, olcott wrote:
    What my code actually does is totally irrelevant.

    On that, at least, we can agree.


    That an HHH can be created that does correctly
    determine the halt status of this input is the
    whole point.

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


    Except that it doesn't, as your "input", being just that function,
    doesn't HAVE a halting status. It only gets that once it is paired
    with a specific version of HHH.

    If that HHH aborts its simulation and returns 0, then it halts, and
    that HHH wasn't a correct halt decider.

    Since you claim that is what you HHH does, and that would be the DD
    that it is given, it is thus clear that when we fix your input to be
    what you intend, your claim is false.

    That you keep making your "clearly false due to the category error in
    it" claim just shows your stupidity.

    You just don't understand the basic meaning of the terms you use,
    because you decided it would be better to be ignorant, then to know
    you are wrong.

    You try to get away with changing the subject from this:

    void DDD()
    {
      HHH(DDD);
      return;
    }

    When 1 or more statements of DDD are correctly
    simulated by HHH then this correctly simulated
    DDD cannot possibly reach its own “return statement”.


    No, I am giving you the opertunity to correct the errors in your statements.

    I guess you are just so stuck in your lies that you have given up any
    hope of actually being able to prove anything, and are content with just leetting the whole world see you are an utter luntic and an ingornat pathological lying idiot that just doens't care what is actually true.

    Your world is just a world of make-believe where you just trust that the magical Truth Fairy can make you fantasies real.

    Maybe we should contact the athorities and see if you can be committed
    to a faciltiy as mentally unsound.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to olcott on Fri May 9 14:32:29 2025
    On 5/9/25 11:29 AM, olcott wrote:
    On 5/9/2025 3:33 AM, Fred. Zwarts wrote:
    Op 08.mei.2025 om 21:42 schreef olcott:
    On 5/8/2025 2:04 PM, Fred. Zwarts wrote:
    Op 08.mei.2025 om 19:00 schreef olcott:
    On 5/8/2025 11:14 AM, Mike Terry wrote:
    On 08/05/2025 06:33, Richard Heathfield wrote:
    On 08/05/2025 06:22, olcott wrote:
    On 5/7/2025 11:09 PM, Richard Heathfield wrote:
    On 08/05/2025 02:20, olcott wrote:

    <snip>

    Does there exist an HHH such that DDD emulated by
    HHH according to the rules of the C programming language

    Let's take a look.

    The file is 1373 lines long, but don't worry, because I plan to >>>>>>>>> stop at HHH's first departure from the rules of the C
    programming language (or at least the first departure I spot). >>>>>>>>>
    Turn in your songbook if you will to:

    void CopyMachineCode(u8* source, u8** destination)
    {
       u32 size;
       for (size = 0; source[size] != 0xcc; size++)
         ;
       *destination = (u8*) Allocate(size);
       for (u32 N = 0; N < size; N++)
       {
         Output("source[N]: ", source[N]);
         *destination[N] = source[N];
       }
       ((u32*)*destination)[-1] = size;
       Output("CopyMachineCode destination[-1]: ",
    ((u32*)*destination) [-1]);
       Output("CopyMachineCode destination[-2]: ",
    ((u32*)*destination) [-2]);
    };


    deprecated.

    It's not just deprecated. It's hopelessly broken.

    Everybody makes mistakes, and one slip would be all very well,
    but you make essentially the same mistake --- writing to memory
    that your program doesn't own --- no fewer than four times in a
    single function.

    I'll ignore the syntax error (a null statement at file scope is >>>>>>>>> a rookie error).

    Instead, let's jump straight to this line:

       *destination = (u8*) Allocate(size);

    On line 79 of my copy of the code, we find:

    u32* Allocate(u32 size) { return 0; }

    In C, 0 is a null pointer constant, so Allocate returns a null >>>>>>>>> pointer constant... which is fine as long as you don't try to >>>>>>>>> deref it. So now *destination is NULL.

    We go on:

       for (u32 N = 0; N < size; N++)
       {
         Output("source[N]: ", source[N]);
         *destination[N] = source[N];
       }

    *destination[N] is our first big problem (we're ignoring syntax >>>>>>>>> errors, remember). destination is a null pointer, so
    destination[N] derefs a null pointer.

    That's a fail. 0/10, D-, go away and write it again. And you / >>>>>>>>> dare/ to impugn other people's C knowledge! Crack a book, for >>>>>>>>> pity's sake.


    If you can't even understand what is essentially
    an infinite recursive relationship between two functions
    except that one function can terminate the other then
    you don't have a clue about the essence of my system.

    If you can't even understand why it's a stupendously bad idea to >>>>>>> dereference a null pointer, you have no business trying to teach >>>>>>> anyone anything about C.

    Your code is the work of a programmer so hideously incompetent
    that 'programmer' is scarcely a fair word to use.

    When you publish code like that, to even *think* about
    denigrating other people's C knowledge is the height of arrogant >>>>>>> hypocrisy.

    One problem here is that you don't understand how PO's code works. >>>>>> That's to be expected, and PO's response ought to be to explain it >>>>>> so that you understand.  Instead he goes off on one of his rants, >>>>>> so blamewise it's really down to PO.

    PO's halt7.c is compiled (it is not linked), then the obj file is
    fed as input to his x87utm.exe which is a kind of x86 obj code
    execution environment.  x87utm provides a number of primative
    calls that halt7.c code can make, such as Allocate(), used to
    allocate a block of memory for use in halt7.c.  Within halt7.c
    code calls an Allocate() function, and x86utm intercepts that and
    performs the function internally, then jumps the calling code in
    halt7.c over the Allocate call where it continues as normal.  The >>>>>> call never goes to the implementation of Allocate in halt7.c, so
    the null pointer dereferencing does not actually occur.  There are >>>>>> a whole bunch of similar x86utm primitive operations that work in
    the same way.

    PO should have said all that, not me, but it seems he's not
    interested in genuine communication.

    Mike.



    Thanks for those details, they are correct.
    I try to stay focused on the key essence gist
    of the issue and never delve down into the weeds.

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

    The key gist of the issue (no weeds involved)
    is that HHH emulated DD according to the rules
    of the x86 language

    <MIT Professor Sipser agreed to ONLY these verbatim words 10/13/2022> >>>>>      *until H correctly determines that*
         *its simulated D would never stop running unless aborted*
    </MIT Professor Sipser agreed to ONLY these verbatim words 10/13/2022> >>>>
    And since H does not correctly determine that its simulated D would
    never stop running unless aborted, it is a vacuous statement and
    Sipser's agreement does not tell anything.


    That is counter factual as any fully qualified
    C programmer will tell you.

    All fully qualified C programmers told me that it is not counter-
    factual. But I suppose in your language counter-factual means 'not in
    my dreams'.


    void DDD()
    {
       HHH(DDD);
       return;
    }

    DDD correctly simulated by any HHH cannot
    possibly reach its own simulated "return"
    instruction.


    Another vacuous statement, as HHH cannot correctly simulate DDD which
    includes HHH itself.


    It is stipulated that HHH does simulate itself
    simulating DDD. It is also conclusively proven in
    code that you cannot understand.


    But it can't, so your logic is just based on errors. HHH can not
    correctly simulate code that it has been forbidden to look at by the
    requirment to be a pure function.

    (If you remove that requirment, I have shown an HHH that can do what you
    say is impossible)

    You need to change your stipulation that the "input" is just the
    function "DDD"

    All you are doing is proving that your mind is in a fantasy world that
    doesn't match reality, and you believe your own lies.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to olcott on Fri May 9 14:34:15 2025
    On 5/9/25 12:11 PM, olcott wrote:
    On 5/9/2025 4:25 AM, Fred. Zwarts wrote:
    Op 09.mei.2025 om 01:48 schreef olcott:
    On 5/8/2025 6:35 PM, Richard Damon wrote:
    On 5/8/25 1:00 PM, olcott wrote:
    On 5/8/2025 11:14 AM, Mike Terry wrote:
    On 08/05/2025 06:33, Richard Heathfield wrote:
    On 08/05/2025 06:22, olcott wrote:
    On 5/7/2025 11:09 PM, Richard Heathfield wrote:
    On 08/05/2025 02:20, olcott wrote:

    <snip>

    Does there exist an HHH such that DDD emulated by
    HHH according to the rules of the C programming language

    Let's take a look.

    The file is 1373 lines long, but don't worry, because I plan to >>>>>>>>> stop at HHH's first departure from the rules of the C
    programming language (or at least the first departure I spot). >>>>>>>>>
    Turn in your songbook if you will to:

    void CopyMachineCode(u8* source, u8** destination)
    {
       u32 size;
       for (size = 0; source[size] != 0xcc; size++)
         ;
       *destination = (u8*) Allocate(size);
       for (u32 N = 0; N < size; N++)
       {
         Output("source[N]: ", source[N]);
         *destination[N] = source[N];
       }
       ((u32*)*destination)[-1] = size;
       Output("CopyMachineCode destination[-1]: ",
    ((u32*)*destination) [-1]);
       Output("CopyMachineCode destination[-2]: ",
    ((u32*)*destination) [-2]);
    };


    deprecated.

    It's not just deprecated. It's hopelessly broken.

    Everybody makes mistakes, and one slip would be all very well,
    but you make essentially the same mistake --- writing to memory
    that your program doesn't own --- no fewer than four times in a
    single function.

    I'll ignore the syntax error (a null statement at file scope is >>>>>>>>> a rookie error).

    Instead, let's jump straight to this line:

       *destination = (u8*) Allocate(size);

    On line 79 of my copy of the code, we find:

    u32* Allocate(u32 size) { return 0; }

    In C, 0 is a null pointer constant, so Allocate returns a null >>>>>>>>> pointer constant... which is fine as long as you don't try to >>>>>>>>> deref it. So now *destination is NULL.

    We go on:

       for (u32 N = 0; N < size; N++)
       {
         Output("source[N]: ", source[N]);
         *destination[N] = source[N];
       }

    *destination[N] is our first big problem (we're ignoring syntax >>>>>>>>> errors, remember). destination is a null pointer, so
    destination[N] derefs a null pointer.

    That's a fail. 0/10, D-, go away and write it again. And you / >>>>>>>>> dare/ to impugn other people's C knowledge! Crack a book, for >>>>>>>>> pity's sake.


    If you can't even understand what is essentially
    an infinite recursive relationship between two functions
    except that one function can terminate the other then
    you don't have a clue about the essence of my system.

    If you can't even understand why it's a stupendously bad idea to >>>>>>> dereference a null pointer, you have no business trying to teach >>>>>>> anyone anything about C.

    Your code is the work of a programmer so hideously incompetent
    that 'programmer' is scarcely a fair word to use.

    When you publish code like that, to even *think* about
    denigrating other people's C knowledge is the height of arrogant >>>>>>> hypocrisy.

    One problem here is that you don't understand how PO's code works. >>>>>> That's to be expected, and PO's response ought to be to explain it >>>>>> so that you understand.  Instead he goes off on one of his rants, >>>>>> so blamewise it's really down to PO.

    PO's halt7.c is compiled (it is not linked), then the obj file is
    fed as input to his x87utm.exe which is a kind of x86 obj code
    execution environment.  x87utm provides a number of primative
    calls that halt7.c code can make, such as Allocate(), used to
    allocate a block of memory for use in halt7.c.  Within halt7.c
    code calls an Allocate() function, and x86utm intercepts that and
    performs the function internally, then jumps the calling code in
    halt7.c over the Allocate call where it continues as normal.  The >>>>>> call never goes to the implementation of Allocate in halt7.c, so
    the null pointer dereferencing does not actually occur.  There are >>>>>> a whole bunch of similar x86utm primitive operations that work in
    the same way.

    PO should have said all that, not me, but it seems he's not
    interested in genuine communication.

    Mike.



    Thanks for those details, they are correct.
    I try to stay focused on the key essence gist
    of the issue and never delve down into the weeds.

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

    The key gist of the issue (no weeds involved)
    is that HHH emulated DD according to the rules
    of the x86 language

    Excpet, as you have admitted, your DD isn't a program (just a C
    funciton), and thus not a proper input for a halt decider, which by
    definiton must be a program.

    Your C function can't be a program, as you have specifically said
    that the function, and only the funciton is the input, and programs
    must include in them all their code, so since the code of HHH isn't
    included in DD or the input representing it, it isn't a program, and
    thus not a proper input


    <MIT Professor Sipser agreed to ONLY these verbatim words 10/13/2022> >>>>>      *until H correctly determines that*
         *its simulated D would never stop running unless aborted*
    </MIT Professor Sipser agreed to ONLY these verbatim words 10/13/2022> >>>>>

    But that statement implies, as required that H be a halt decider and
    D to be a proper input to one, neither of which are satisfied, as
    you have admitte

    When HHH(DD) computes the actual mapping from
    its actual input to the actual behavior this
    it specifies it must be according to the rules
    of the x86 language.

    But it doesn't, as it doesn't correctly follow the behavior of the
    x86 language, as that requires HHH to follow the call instruction,
    which it can not do as the required (and accepted by your) condition
    that the decider is a pure function, which means it can only look at
    its input, which does not include the code which the call points to.


    int sum(int x, int y) { return x + y; }
    sum is required to compute the mapping
    from its input into its return value
    according to the rules of arithmetic.

    Right, and a halt decider is required to (try to) compute the
    mapping from the input (which needs to be the representation of a
    program) to the results of running that program (since that is the
    DEFINITION of Halt Deciding).


    This means that requiring sum(3,2) to return
    the sum of 5 + 7 is an incorrect requirement.

    Right, just as HHH trying to claim that its answer is based on the
    fact that it can't reach the end of its simulation of the input
    isn't the correct requirement for HHH.


    Like sum(3,2) HHH(DD) is only allowed to report
    on the behavior that its input actually specifies.


    Right, which is Halting, since that behavior is DEFINED to be the
    behavior of running the program the input represents.


    Just like requiring sum(3,2) to report on the sum of 5 + 7
    a value other than its input specifies HHH IS NOT ALLOWED
    to report on anything other than the behavior that its input
    specifies.

    Indeed, therefore HHH should process the actual input: including the
    HHH that aborts, not the hypothetical HHH that does not abort.

    HHH cannot say to itself I have no need to abort
    because I will abort later on. It either aborts
    as soon as it recognizes the non terminating
    pattern specified by itself input or no HHH ever aborts.

    Sum(3,2) should process the actual input, not the hypothetical input 5
    and 7.
    HHH should process all relevant input, including the part with the
    conditional abort, not only the first part of the input.
    Sum(3,2) should process all relevant input, not only the 2 and ignore
    the 3.
    So, go and fix HHH.

    void DDD()
    {
      HHH(DDD);
      return;
    }

    When 1 or more statements of DDD are correctly
    simulated by HHH then this correctly simulated
    DDD cannot possibly reach its own “return statement”.
    (final halt state).

    Reaching a final halt state means halting.
    Unable to reach a final halt state means non-terminating.

    But only after an unboudned number of steps attempted.


    Thus HHH(DDD) is correct to reject its finite input string
    DDD as specifying a non-terminating sequence of configurations.


    No, it isn't, but then you have shown that you think lies are a proper
    form of logic.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to olcott on Fri May 9 14:33:13 2025
    On 5/9/25 12:13 PM, olcott wrote:
    On 5/9/2025 4:28 AM, Fred. Zwarts wrote:
    Op 09.mei.2025 om 03:55 schreef olcott:
    On 5/8/2025 8:18 PM, Richard Damon wrote:
    On 5/8/25 7:48 PM, olcott wrote:
    On 5/8/2025 6:35 PM, Richard Damon wrote:
    On 5/8/25 1:00 PM, olcott wrote:
    On 5/8/2025 11:14 AM, Mike Terry wrote:
    On 08/05/2025 06:33, Richard Heathfield wrote:
    On 08/05/2025 06:22, olcott wrote:
    On 5/7/2025 11:09 PM, Richard Heathfield wrote:
    On 08/05/2025 02:20, olcott wrote:

    <snip>

    Does there exist an HHH such that DDD emulated by
    HHH according to the rules of the C programming language >>>>>>>>>>>
    Let's take a look.

    The file is 1373 lines long, but don't worry, because I plan >>>>>>>>>>> to stop at HHH's first departure from the rules of the C >>>>>>>>>>> programming language (or at least the first departure I spot). >>>>>>>>>>>
    Turn in your songbook if you will to:

    void CopyMachineCode(u8* source, u8** destination)
    {
       u32 size;
       for (size = 0; source[size] != 0xcc; size++)
         ;
       *destination = (u8*) Allocate(size);
       for (u32 N = 0; N < size; N++)
       {
         Output("source[N]: ", source[N]);
         *destination[N] = source[N];
       }
       ((u32*)*destination)[-1] = size;
       Output("CopyMachineCode destination[-1]: ",
    ((u32*)*destination) [-1]);
       Output("CopyMachineCode destination[-2]: ",
    ((u32*)*destination) [-2]);
    };


    deprecated.

    It's not just deprecated. It's hopelessly broken.

    Everybody makes mistakes, and one slip would be all very well, >>>>>>>>> but you make essentially the same mistake --- writing to memory >>>>>>>>> that your program doesn't own --- no fewer than four times in a >>>>>>>>> single function.

    I'll ignore the syntax error (a null statement at file scope >>>>>>>>>>> is a rookie error).

    Instead, let's jump straight to this line:

       *destination = (u8*) Allocate(size);

    On line 79 of my copy of the code, we find:

    u32* Allocate(u32 size) { return 0; }

    In C, 0 is a null pointer constant, so Allocate returns a >>>>>>>>>>> null pointer constant... which is fine as long as you don't >>>>>>>>>>> try to deref it. So now *destination is NULL.

    We go on:

       for (u32 N = 0; N < size; N++)
       {
         Output("source[N]: ", source[N]);
         *destination[N] = source[N];
       }

    *destination[N] is our first big problem (we're ignoring >>>>>>>>>>> syntax errors, remember). destination is a null pointer, so >>>>>>>>>>> destination[N] derefs a null pointer.

    That's a fail. 0/10, D-, go away and write it again. And >>>>>>>>>>> you / dare/ to impugn other people's C knowledge! Crack a >>>>>>>>>>> book, for pity's sake.


    If you can't even understand what is essentially
    an infinite recursive relationship between two functions
    except that one function can terminate the other then
    you don't have a clue about the essence of my system.

    If you can't even understand why it's a stupendously bad idea >>>>>>>>> to dereference a null pointer, you have no business trying to >>>>>>>>> teach anyone anything about C.

    Your code is the work of a programmer so hideously incompetent >>>>>>>>> that 'programmer' is scarcely a fair word to use.

    When you publish code like that, to even *think* about
    denigrating other people's C knowledge is the height of
    arrogant hypocrisy.

    One problem here is that you don't understand how PO's code
    works. That's to be expected, and PO's response ought to be to >>>>>>>> explain it so that you understand.  Instead he goes off on one >>>>>>>> of his rants, so blamewise it's really down to PO.

    PO's halt7.c is compiled (it is not linked), then the obj file >>>>>>>> is fed as input to his x87utm.exe which is a kind of x86 obj
    code execution environment.  x87utm provides a number of
    primative calls that halt7.c code can make, such as Allocate(), >>>>>>>> used to allocate a block of memory for use in halt7.c.  Within >>>>>>>> halt7.c code calls an Allocate() function, and x86utm intercepts >>>>>>>> that and performs the function internally, then jumps the
    calling code in halt7.c over the Allocate call where it
    continues as normal.  The call never goes to the implementation >>>>>>>> of Allocate in halt7.c, so the null pointer dereferencing does >>>>>>>> not actually occur.  There are a whole bunch of similar x86utm >>>>>>>> primitive operations that work in the same way.

    PO should have said all that, not me, but it seems he's not
    interested in genuine communication.

    Mike.



    Thanks for those details, they are correct.
    I try to stay focused on the key essence gist
    of the issue and never delve down into the weeds.

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

    The key gist of the issue (no weeds involved)
    is that HHH emulated DD according to the rules
    of the x86 language

    Excpet, as you have admitted, your DD isn't a program (just a C
    funciton), and thus not a proper input for a halt decider, which
    by definiton must be a program.

    Your C function can't be a program, as you have specifically said
    that the function, and only the funciton is the input, and
    programs must include in them all their code, so since the code of >>>>>> HHH isn't included in DD or the input representing it, it isn't a
    program, and thus not a proper input


    <MIT Professor Sipser agreed to ONLY these verbatim words
    10/13/2022>
         *until H correctly determines that*
         *its simulated D would never stop running unless aborted* >>>>>>> </MIT Professor Sipser agreed to ONLY these verbatim words
    10/13/2022>


    But that statement implies, as required that H be a halt decider
    and D to be a proper input to one, neither of which are satisfied, >>>>>> as you have admitte

    When HHH(DD) computes the actual mapping from
    its actual input to the actual behavior this
    it specifies it must be according to the rules
    of the x86 language.

    But it doesn't, as it doesn't correctly follow the behavior of the >>>>>> x86 language, as that requires HHH to follow the call instruction, >>>>>> which it can not do as the required (and accepted by your)
    condition that the decider is a pure function, which means it can
    only look at its input, which does not include the code which the
    call points to.


    int sum(int x, int y) { return x + y; }
    sum is required to compute the mapping
    from its input into its return value
    according to the rules of arithmetic.

    Right, and a halt decider is required to (try to) compute the
    mapping from the input (which needs to be the representation of a
    program) to the results of running that program (since that is the >>>>>> DEFINITION of Halt Deciding).


    This means that requiring sum(3,2) to return
    the sum of 5 + 7 is an incorrect requirement.

    Right, just as HHH trying to claim that its answer is based on the >>>>>> fact that it can't reach the end of its simulation of the input
    isn't the correct requirement for HHH.


    Like sum(3,2) HHH(DD) is only allowed to report
    on the behavior that its input actually specifies.


    Right, which is Halting, since that behavior is DEFINED to be the
    behavior of running the program the input represents.


    Just like requiring sum(3,2) to report on the sum of 5 + 7
    a value other than its input specifies HHH IS NOT ALLOWED
    to report on anything other than the behavior that its input
    specifies.

    Its input specifies that it calls HHH(DD) in recursive
    emulation. THIS CANNOT BE IGNORED.


    No it doesn't, it calls HHH, which does what it does. Since your
    decider HHH is defined to abort and return 0, so is the HHH that DD
    calls, since it was built from that machine.

    What we can not ignore is that HHH has a definition, and HHH needs
    to interprete the call in DD by that definition, not you LIE that
    HHH is just a correct simulator, since it isn't.

    Sorry, you are the one that is choosing to ignore the input and
    replace it with somethng it isn't, becaue you don't understand that
    you did define it when you created your HHH to abort and return 0.

    void DDD()
    {
       HHH(DDD);
       return;
    }

    _DDD()
    [00002172] 55         push ebp      ; housekeeping
    [00002173] 8bec       mov ebp,esp   ; housekeeping
    [00002175] 6872210000 push 00002172 ; push DDD
    [0000217a] e853f4ffff call 000015d2 ; call HHH(DDD)
    [0000217f] 83c404     add esp,+04
    [00002182] 5d         pop ebp
    [00002183] c3         ret
    Size in bytes:(0018) [00002183]

    For every HHH that can possibly exist at machine address
    000015d2 that correctly emulates 1 or more x86 instructions
    of DDD (the exact machine code bytes specified above) no
    correctly emulated DDD ever reaches their own "return"
    instruction.

    This may simply be too difficult for most everyone here.
    Instead of simply saying they they don't understand the
    x86 language they try to deflect away from this subject
    to try to hide their own ignorance.

    Nobody disagreed with it, we all see that HHH fails to reach the
    'return', because it prematurely aborts

    *That remains counter-factual because this is true*

    No, proven false elsewhere, no need to repeat as you just ignore the
    truth and belive your own disproven lies.


    void DDD()
    {
      HHH(DDD);
      return;
    }

    When 1 or more statements of DDD are correctly
    simulated by HHH then this correctly simulated
    DDD cannot possibly reach its own “return statement”.


    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Heathfield@21:1/5 to olcott on Fri May 9 21:07:41 2025
    On 09/05/2025 20:46, olcott wrote:
    We have not begun to get into any of those points.
    We are only asking can DDD correctly simulated
    by any HHH that can exist ever reach its own
    "return" instruction.

    DDD can't be correctly simulated by itself (which is effectively
    what you're trying to do when you fire up the simulation from
    inside DDD).

    So the question is flawed. What you delight in calling a
    'category error'.

    Any competent C programmer will see my point. (You won't.)

    --
    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 Damon@21:1/5 to olcott on Fri May 9 17:35:52 2025
    On 5/9/25 4:15 PM, olcott wrote:
    On 5/9/2025 3:07 PM, Richard Heathfield wrote:
    On 09/05/2025 20:46, olcott wrote:
    We have not begun to get into any of those points.
    We are only asking can DDD correctly simulated
    by any HHH that can exist ever reach its own
    "return" instruction.

    DDD can't be correctly simulated by itself (which is effectively what
    you're trying to do when you fire up the simulation from inside DDD).


    How the Hell did you twist my words to say that?

    void DDD()
    {
      HHH(DDD);
      return;
    }

    When 1 or more statements of DDD are correctly
    simulated by HHH then this correctly simulated
    DDD cannot possibly reach its own “return statement”.



    Which is can't do since it hasn't been given enough of the code.

    HHH *MUST& fail when it gets to the call HHH instruction, as the code
    for that hasn't been given to it.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Heathfield@21:1/5 to olcott on Fri May 9 22:40:53 2025
    On 09/05/2025 21:15, olcott wrote:
    On 5/9/2025 3:07 PM, Richard Heathfield wrote:
    On 09/05/2025 20:46, olcott wrote:
    We have not begun to get into any of those points.
    We are only asking can DDD correctly simulated
    by any HHH that can exist ever reach its own
    "return" instruction.

    DDD can't be correctly simulated by itself (which is
    effectively what you're trying to do when you fire up the
    simulation from inside DDD).


    How the Hell did you twist my words to say that?

    I haven't touched your words. What I have done is to observe that
    DDD's /only/ action is to call a simulator. Since DDD isn't
    itself a simulator, there is nothing to simulate except a call to
    a simulator.

    It's recursion without a base case - a rookie error.

    HHH cannot successfully complete its task, because it never
    regains control after the first recursion. To return, it must
    abort the simulation, which means the simulation fails.


    void DDD()
    {
      HHH(DDD);
      return;
    }

    When 1 or more statements of DDD are correctly
    simulated by HHH then this correctly simulated
    DDD cannot possibly reach its own “return statement”.

    On what grounds can you persuade an extraordinarily sceptical
    readership that HHH 'correctly simulated' DDD?

    There are only two possibilities:

    (a) HHH aborts the simulation prematurely, or
    (b) it doesn't.

    If (a), the simulation fails to 'play' DDD correctly.

    If (b), the simulation fails to arrive at a decision.

    --
    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 Damon@21:1/5 to olcott on Fri May 9 17:34:44 2025
    On 5/9/25 3:46 PM, olcott wrote:
    On 5/9/2025 12:00 PM, Richard Damon wrote:
    On 5/9/25 11:48 AM, olcott wrote:
    On 5/9/2025 3:47 AM, Fred. Zwarts wrote:
    Op 09.mei.2025 om 04:23 schreef Keith Thompson:
    Richard Damon <richard@damon-family.org> writes:
    On 5/8/25 7:53 PM, olcott wrote:
    [...]
    void DDD()
    {
        HHH(DDD);
        return;
    }
    We don't need to look at any of my code for me
    to totally prove my point. For example when
    the above DDD is correctly simulated by HHH
    this simulated DDD cannot possibly reach its own
    "return" instruction.

    And thus not correctly simulatd.

    Sorry, there is no "OS Exemption" to correct simulaiton;.

    Perhaps I've missed something.  I don't see anything in the above that >>>>> implies that HHH does not correctly simulate DDD.  Richard, you've
    read
    far more of olcott's posts than I have, so perhaps you can clarify.

    If we assume that HHH correctly simulates DDD, then the above code is >>>>> equivalent to:

         void DDD()
         {
           DDD();
           return;
         }

    which is a trivial case of infinite recursion.  As far as I can tell, >>>>> assuming that DDD() is actually called at some point, neither the
    outer execution of DDD nor the nested (simulated) execution of DDD
    can reach the return statement.  Infinite recursion might either
    cause a stack overflow and a probable program crash, or an unending
    loop if the compiler implements tail call optimization.

    I see no contradiction, just an uninteresting case of infinite
    recursion, something that's well understood by anyone with a
    reasonable level of programming experience.  (And it has nothing to >>>>> do with the halting problem as far as I can tell, though of course
    olcott has discussed the halting problem elsewhere.)

    Richard, what am I missing?


    What you are missing is that the next step of olcott is to say that
    when he uses the 'exact same HHH, with only some extra code to abort
    the simulation', it is still an infinite recursion. He does not
    understand that adding the abort code makes the behaviour
    fundamentally different.

    When 1 or more statements of DDD are correctly simulated
    by HHH this correctly simulated DDD cannot possibly reach
    its own "return statement" final halt state.


    But HHH can not correctly emulate this input (the code of just DDD)
    past the call instruction and remain a pure function, as it hasn't
    been given that code.


    We have not begun to get into any of those points.
    We are only asking can DDD correctly simulated
    by any HHH that can exist ever reach its own
    "return" instruction.



    But the rules still apply.

    AN emulator can not emulate what it isn't given.

    So, until you include the code for HHH is the actual input, you can't correctdly siulate the call HHH instruction.

    Thus, your argument fails on a category error, as your input is just no correctly simulatable.

    And you are proving you are just ignorant of what you are talking about,
    as you don't know how to do what you are talking about.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to olcott on Fri May 9 19:34:22 2025
    On 5/9/25 6:18 PM, olcott wrote:
    On 5/9/2025 4:40 PM, Richard Heathfield wrote:
    On 09/05/2025 21:15, olcott wrote:
    On 5/9/2025 3:07 PM, Richard Heathfield wrote:
    On 09/05/2025 20:46, olcott wrote:
    We have not begun to get into any of those points.
    We are only asking can DDD correctly simulated
    by any HHH that can exist ever reach its own
    "return" instruction.

    DDD can't be correctly simulated by itself (which is effectively
    what you're trying to do when you fire up the simulation from inside
    DDD).


    How the Hell did you twist my words to say that?

    I haven't touched your words. What I have done is to observe that
    DDD's /only/ action is to call a simulator. Since DDD isn't itself a
    simulator, there is nothing to simulate except a call to a simulator.

    It's recursion without a base case - a rookie error.

    HHH cannot successfully complete its task, because it never regains
    control after the first recursion. To return, it must abort the
    simulation, which means the simulation fails.


    void DDD()
    {
       HHH(DDD);
       return;
    }

    When 1 or more statements of DDD are correctly
    simulated by HHH then this correctly simulated
    DDD cannot possibly reach its own “return statement”.

    On what grounds can you persuade an extraordinarily sceptical
    readership that HHH 'correctly simulated' DDD?


    Any competent C programmer can see that
    the call from DDD to HHH(DDD) (its own simulator)
    is equivalent to infinite recursion.

    No, it isn't, not if the input to the simulator is incorrect, and thus
    not actually the call you are talking about.

    Your problem is that you HHH *CAN'T* be doing what you say, as it is
    LOGICALLY IMPOSSIBLE for it to be doing so, as the input just doesn't
    have the information to allow it to do so.

    Your problem is you have just LIED to yourself about what things need to be.

    The input to a simulator MUST BE a full representation of the PROGRAM
    that it is to simulate, and thus must represent *ALL* the code that it
    is going to use.

    SInce you have defined your input as ONLY the code generated for the C
    function DDD, as soon as HHH tryies to access ANY code outside that,
    even its own as data, then it have VIOLATED its requirements.

    THus, all you have done is proven that you are just a stupid liar that
    doesn't know what he is talking about and doesn't care that he is just
    ignorant of what he is talking about.


    On 5/8/2025 8:30 PM, Keith Thompson wrote:
    Assuming that HHH(DDD) "correctly simulates" DDD, and assuming it
    does nothing else, your code would be equivalent to this:

          void DDD(void) {
              DDD();
              return;
          }

    Then the return statement (which is unnecessary anyway) will never be reached.  In practice, the program will likely crash due to a stack overflow, unless the compiler implements tail-call optimization, in
    which case the program might just run forever -- which also means the unnecessary return statement will never be reached.



    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to olcott on Fri May 9 19:36:41 2025
    On 5/9/25 7:02 PM, olcott wrote:
    On 5/8/2025 11:11 PM, Keith Thompson wrote:
    olcott <polcott333@gmail.com> writes:
    On 5/8/2025 8:30 PM, Keith Thompson wrote:
    olcott <polcott333@gmail.com> writes:
    On 5/8/2025 6:49 PM, Keith Thompson wrote:
    olcott <polcott333@gmail.com> writes:
    [...]
    void DDD()
    {
         HHH(DDD);
         return;
    }

    If you are a competent C programmer then you
    know that DDD correctly simulated by HHH cannot
    possibly each its own "return" instruction.
    "cannot possibly each"?
    I am a competent C programmer (and I don't believe you can make
    the same claim).  I don't know what HHH is.  The name "HHH" tells >>>>>> me nothing about what it's supposed to do.  Without knowing what
    HHH is, I can't say much about your code (or is it pseudo-code?).


    For the purpose of this discussion HHH is exactly
    what I said it is. It correctly simulates DDD.
    Does HHH correctly simulate DDD *and do nothing else*?
    Does HHH correctly simulate *every* function whose address is passed
    to it?  Must the passed function be one that takes no arguments
    and does not return a value?
    Can HHH just *call* the function whose address is passed to it?
    If it's a correct simulation, there should be no difference between
    calling the function and "correctly simulating" it.
    My knowledge of C tells me nothing about *how* HHH might simulate
    DDD.

    HHH can only simulate a function that take no arguments
    and has no return value. HHH also simulates the entire
    chain of functions that this function calls. These can
    take arguments or not and have return values or not.

    Thus HHH ends up simulating itself (and everything
    that HHH calls) simulating DDD in an infinite
    sequence of recursive emulation until OOM error.

    We need not know anything else about HHH to
    know that DDD correctly simulated by HHH cannot
    possibly REACH its own "return" instruction.
    Assuming that HHH(DDD) "correctly simulates" DDD, and assuming it
    does nothing else, your code would be equivalent to this:
          void DDD(void) {
              DDD();
              return;
          }

    Exactly. None of these people on comp.theory could
    get that even after three years.

    I find that difficult to believe.

    Then the return statement (which is unnecessary anyway) will never be
    reached.

    It is only there to mark a final halt state.

    The closing "}" does that equally well.

    In practice, the program will likely crash due to a stack
    overflow, unless the compiler implements tail-call optimization, in
    which case the program might just run forever -- which also means the
    unnecessary return statement will never be reached.


    Yes you totally have this correctly.
    None of the dozens of comp.theory people could
    ever achieve that level of understanding even
    after three years. That is why I needed to post
    on comp.lang.c.

    I'll note that I've posted in comp.theory, not in comp.lang.c.
    I never see anything you post in comp.lang.c.

    This conclusion relies on my understanding of what you've said about
    your code, which I consider to be unreliable.

    I am not even talking about my code. I am
    talking about the purely hypothetical code
    that you just agreed to.

    Do not overestimate what I've agreed to.  I must still consider the
    possibility that I've been led into a logical trap of some sort,
    and that I've missed some subtle flaw.

    No doubt you believe that there is some significance to the
    apparent fact that the return statement will never be reached,
    assuming that's a correct and relevant conclusion.  I don't know
    what that significance might be.

    I will tell you that later after you understand
    some prerequisite ideas first.

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

    So now HHH returns an int result, and you store that result
    in a variable named "Halt_Status".  You haven't said here what
    the meaning of that result might be, and I decline to make any
    assumptions based on what you've called it.  You could rename
    "Halt_Status" to "Foo" and have effectively identical code.

    Previously DDD would "correctly simulate" the function whose address is
    passed to it.  Now it does that and returns an int result.

    If you want to say anything about the meaning of the result returned
    by HHH, feel free to say it.

    The same thing that applied to DDD equally
    applies to the more complicated DD.

    When 1 or more instructions of DD are correctly
    simulated by HHH the correctly simulated DD
    cannot possibly get past its call to HHH(DD).
    Thus DD also never reaches its "return" instruction.

    Now you're talking about simulating "1 or more instructions"
    of DD.  I thought that HHH was supposed to "accurately simulate"
    the function whose argument is passed to it.  Emulating just "1 or
    more instructions" is not accurate simulation.


    Correctly emulating one or more instructions <is>
    the correct emulation of 1 or more instructions
    of DD. This is a truism.

    No, Correctly Emulating *ALL* of the instructions is the definition of
    correct emulation.

    or is "e" the correct spelling of the word emulation?

    By your definition, a simulating halt decider can just declare ALL
    non-trivial programs as non-halting by emulting 1 instruction, and if it
    wasn't the terminal instruction, just say non-halting.

    Sorry, you are just proving how stupid you are.


    When 1 or more instructions of DD are correctly
    emulated by HHH the correctly emulated DD cannot
    possibly get past its call to HHH(DD).


    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Heathfield@21:1/5 to olcott on Sat May 10 01:26:46 2025
    On 09/05/2025 23:18, olcott wrote:
    On 5/9/2025 4:40 PM, Richard Heathfield wrote:
    On 09/05/2025 21:15, olcott wrote:
    On 5/9/2025 3:07 PM, Richard Heathfield wrote:
    On 09/05/2025 20:46, olcott wrote:
    We have not begun to get into any of those points.
    We are only asking can DDD correctly simulated
    by any HHH that can exist ever reach its own
    "return" instruction.

    DDD can't be correctly simulated by itself (which is
    effectively what you're trying to do when you fire up the
    simulation from inside DDD).


    How the Hell did you twist my words to say that?

    I haven't touched your words. What I have done is to observe
    that DDD's /only/ action is to call a simulator. Since DDD
    isn't itself a simulator, there is nothing to simulate except a
    call to a simulator.

    It's recursion without a base case - a rookie error.

    HHH cannot successfully complete its task, because it never
    regains control after the first recursion. To return, it must
    abort the simulation, which means the simulation fails.


    void DDD()
    {
       HHH(DDD);
       return;
    }

    When 1 or more statements of DDD are correctly
    simulated by HHH then this correctly simulated
    DDD cannot possibly reach its own “return statement”.

    On what grounds can you persuade an extraordinarily sceptical
    readership that HHH 'correctly simulated' DDD?


    Any competent C programmer can see that
    the call from DDD to HHH(DDD) (its own simulator)
    is equivalent to infinite recursion.

    Sheer bluster.

    On 5/8/2025 8:30 PM, Keith Thompson wrote:
    Assuming that HHH(DDD) "correctly simulates" DDD, and assuming it
    does nothing else, your code would be equivalent to this:

          void DDD(void) {
              DDD();
              return;
          }

    Then the return statement (which is unnecessary anyway) will
    never be
    reached.

    I just wrote:

    HHH cannot successfully complete its task, because it never
    regains control after the first recursion.

    Keith wrote:

    In practice, the program will likely crash due to a
    stack
    overflow, unless the compiler implements tail-call
    optimization, in
    which case the program might just run forever -- which also
    means the
    unnecessary return statement will never be reached.

    Keith and I are in complete agreement.

    You, on the other describe abject failure as 'correctly
    simulated'. There's nothing correct about it.

    --
    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 Damon@21:1/5 to olcott on Fri May 9 20:37:36 2025
    On 5/9/25 7:43 PM, olcott wrote:
    On 5/9/2025 6:36 PM, Richard Damon wrote:
    On 5/9/25 7:02 PM, olcott wrote:
    On 5/8/2025 11:11 PM, Keith Thompson wrote:
    olcott <polcott333@gmail.com> writes:
    On 5/8/2025 8:30 PM, Keith Thompson wrote:
    olcott <polcott333@gmail.com> writes:
    On 5/8/2025 6:49 PM, Keith Thompson wrote:
    olcott <polcott333@gmail.com> writes:
    [...]
    void DDD()
    {
         HHH(DDD);
         return;
    }

    If you are a competent C programmer then you
    know that DDD correctly simulated by HHH cannot
    possibly each its own "return" instruction.
    "cannot possibly each"?
    I am a competent C programmer (and I don't believe you can make >>>>>>>> the same claim).  I don't know what HHH is.  The name "HHH" tells >>>>>>>> me nothing about what it's supposed to do.  Without knowing what >>>>>>>> HHH is, I can't say much about your code (or is it pseudo-code?). >>>>>>>>

    For the purpose of this discussion HHH is exactly
    what I said it is. It correctly simulates DDD.
    Does HHH correctly simulate DDD *and do nothing else*?
    Does HHH correctly simulate *every* function whose address is passed >>>>>> to it?  Must the passed function be one that takes no arguments
    and does not return a value?
    Can HHH just *call* the function whose address is passed to it?
    If it's a correct simulation, there should be no difference between >>>>>> calling the function and "correctly simulating" it.
    My knowledge of C tells me nothing about *how* HHH might simulate
    DDD.

    HHH can only simulate a function that take no arguments
    and has no return value. HHH also simulates the entire
    chain of functions that this function calls. These can
    take arguments or not and have return values or not.

    Thus HHH ends up simulating itself (and everything
    that HHH calls) simulating DDD in an infinite
    sequence of recursive emulation until OOM error.

    We need not know anything else about HHH to
    know that DDD correctly simulated by HHH cannot
    possibly REACH its own "return" instruction.
    Assuming that HHH(DDD) "correctly simulates" DDD, and assuming it
    does nothing else, your code would be equivalent to this:
          void DDD(void) {
              DDD();
              return;
          }

    Exactly. None of these people on comp.theory could
    get that even after three years.

    I find that difficult to believe.

    Then the return statement (which is unnecessary anyway) will never be >>>>>> reached.

    It is only there to mark a final halt state.

    The closing "}" does that equally well.

    In practice, the program will likely crash due to a stack
    overflow, unless the compiler implements tail-call optimization, in >>>>>> which case the program might just run forever -- which also means the >>>>>> unnecessary return statement will never be reached.


    Yes you totally have this correctly.
    None of the dozens of comp.theory people could
    ever achieve that level of understanding even
    after three years. That is why I needed to post
    on comp.lang.c.

    I'll note that I've posted in comp.theory, not in comp.lang.c.
    I never see anything you post in comp.lang.c.

    This conclusion relies on my understanding of what you've said about >>>>>> your code, which I consider to be unreliable.

    I am not even talking about my code. I am
    talking about the purely hypothetical code
    that you just agreed to.

    Do not overestimate what I've agreed to.  I must still consider the
    possibility that I've been led into a logical trap of some sort,
    and that I've missed some subtle flaw.

    No doubt you believe that there is some significance to the
    apparent fact that the return statement will never be reached,
    assuming that's a correct and relevant conclusion.  I don't know
    what that significance might be.

    I will tell you that later after you understand
    some prerequisite ideas first.

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

    So now HHH returns an int result, and you store that result
    in a variable named "Halt_Status".  You haven't said here what
    the meaning of that result might be, and I decline to make any
    assumptions based on what you've called it.  You could rename
    "Halt_Status" to "Foo" and have effectively identical code.

    Previously DDD would "correctly simulate" the function whose address is >>>> passed to it.  Now it does that and returns an int result.

    If you want to say anything about the meaning of the result returned
    by HHH, feel free to say it.

    The same thing that applied to DDD equally
    applies to the more complicated DD.

    When 1 or more instructions of DD are correctly
    simulated by HHH the correctly simulated DD
    cannot possibly get past its call to HHH(DD).
    Thus DD also never reaches its "return" instruction.

    Now you're talking about simulating "1 or more instructions"
    of DD.  I thought that HHH was supposed to "accurately simulate"
    the function whose argument is passed to it.  Emulating just "1 or
    more instructions" is not accurate simulation.


    Correctly emulating one or more instructions <is>
    the correct emulation of 1 or more instructions
    of DD. This is a truism.

    No, Correctly Emulating *ALL* of the instructions is the definition of
    correct emulation.


    In other words it is waaayyy over your head that
    when correctly emulating an infinite number of
    instructions of DD is not enough for DD correctly
    emulated by HHH to reach its own final halt
    state that fewer than infinity might be enough?



    No, it seems over your head that you are talking about violating your
    own stipulations.

    How can HHH correctly emulate code that it isn't allowed to see without breaking its rules?

    It seems "rules" and "requirements" are just foreign concepts to you,
    because you think you can just imagine anyting you want as possible.

    This shows in all your "logica;" arguments, where you just don't
    understand the rules of the sytsem you are talking in, and thus end up
    just making stupid errors and lying out of reckless stupidity.


    Your failure to answer the questions put to you are just the proof that everyone looking at this will see and understand how you have absolutely
    no basis for your claims, because you are just a pathological liar that
    doesn't understand that there needs to be actual facts behind claims.

    It seems you are just cementing your position in that lake of fire
    unless you can somehow break the brainwashing you have done to yourself
    and find a way to repent from your lying ways.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Heathfield@21:1/5 to olcott on Sat May 10 01:29:18 2025
    On 10/05/2025 00:02, olcott wrote:
    Correctly emulating one or more instructions <is>
    the correct emulation of 1 or more instructions
    of DD. This is a truism.

    No, it's not. Correct emulation would entail accurately
    simulating the whole of DDD's behaviour.

    --
    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 Mike Terry@21:1/5 to Keith Thompson on Sat May 10 01:23:26 2025
    On 09/05/2025 03:23, Keith Thompson wrote:
    Richard Damon <richard@damon-family.org> writes:
    On 5/8/25 7:53 PM, olcott wrote:
    [...]
    void DDD()
    {
    HHH(DDD);
    return;
    }
    We don't need to look at any of my code for me
    to totally prove my point. For example when
    the above DDD is correctly simulated by HHH
    this simulated DDD cannot possibly reach its own
    "return" instruction.

    And thus not correctly simulatd.

    Sorry, there is no "OS Exemption" to correct simulaiton;.

    Perhaps I've missed something. I don't see anything in the above that implies that HHH does not correctly simulate DDD. Richard, you've read
    far more of olcott's posts than I have, so perhaps you can clarify.

    If we assume that HHH correctly simulates DDD, then the above code is equivalent to:

    void DDD()
    {
    DDD();
    return;
    }

    which is a trivial case of infinite recursion. As far as I can tell, assuming that DDD() is actually called at some point, neither the
    outer execution of DDD nor the nested (simulated) execution of DDD
    can reach the return statement. Infinite recursion might either
    cause a stack overflow and a probable program crash, or an unending
    loop if the compiler implements tail call optimization.

    I see no contradiction, just an uninteresting case of infinite
    recursion, something that's well understood by anyone with a
    reasonable level of programming experience. (And it has nothing to
    do with the halting problem as far as I can tell, though of course
    olcott has discussed the halting problem elsewhere.)

    Richard, what am I missing?


    Depends on what you've picked up on.

    Do you get that HHH's simulation is a /partial/ simulation? HHH is free to simulate a few x86
    instructions of DDD, and then simply abandon the simulation and return. Since such a simulation is
    obviously NOT equivalent to a direct call to DDD, and above you argue that it is, I'd say you've
    missed that.

    The other thing to be aware of is that use of terminology "simulation" varies considerably between
    posters! This in turn affects what different posters consider a "correct" simulation.

    Full vs Partial:
    (Posters differ on which type is intended if not explicitly qualified full/partial)
    a) Full: the simulation continues until the target computation halts (returns).
    This is logically like a direct call, because control cannot break out of
    the simulation until the target halts. (Same as a direct call)
    b) Partial: the simulator can choose to abandon the simulation at any point.
    This is logically distinct from a direct call, because control to exit
    remains firmly with the simulator.

    Scope includes a halt decision? :
    c) No: A "correct" simulation means the correct x86 instruction simulations, in
    the correct sequence, correctly updating the x86 VM state (memory/regs)
    as each instruction is simulated. [Also for someone in camp (a), a
    simulation abandoned simulation is not correct]
    d) Yes: As (c), but the simulation is required to decide halts/nothalts as part of
    the simulation. For a (c) poster, the simulator simulates instructions,
    and the Halt Decider logic decides halt/nothalt.

    PO is a (b)(c) guy. Since his HHH (more or less) simulates individual instructions correctly, PO
    claims HHH "correctly" simulates DDD. Others who are in (a) or (d) camps would say that HHH does
    not correctly simulate DDD, because either HHH performs a /partial/ simulation [for them an error in
    its own right] or because HHH decides nothalt when in fact PO's DDD halts.

    Terminology usage is not a right/wrong issue, but the different possibilities maximise
    misunderstandings if not resolved. E.g. as I said PO's simulations are nearly always taken to be
    partial. Richard D. knows that, but as he is in (b) camp he points out that PO is lying every time
    he says "HHH correctly simulates DDD". PO then says RD is playing head games and challenges RD to
    point out an error, and so it goes on for hundreds of posts. To be fair, PO should be well aware
    that RD is in camp (a), but does nothing to resolve the terminology issue, so both posters get what
    they deserve!

    FTR I am in the (b)(c) camp... I could explain why I think that's more logical, but that's going OT
    I think.

    Other posters have suggested that what you're missing is some variation of "once you answer PO's
    current question (about whether the simulation by HHH progresses as far as DDD's return) PO will go
    on to do something else wrong". Well, of course he will, but that's hardly something you're missing
    if he's not done it yet! :) I'd also say it's no reason not to answer PO's question honestly,
    acknowledging that he is talking about /partial/ simulations... The time to challenge future
    mistakes he will go on to make, is when he makes them.


    Mike.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to Richard Heathfield on Fri May 9 20:38:57 2025
    On 5/9/25 8:29 PM, Richard Heathfield wrote:
    On 10/05/2025 00:02, olcott wrote:
    Correctly emulating one or more instructions <is>
    the correct emulation of 1 or more instructions
    of DD. This is a truism.

    No, it's not. Correct emulation would entail accurately simulating the
    whole of DDD's behaviour.

    This is just typical Olcottian behavior, Actual definitons don't
    matter to him, which is what makes so much of what he says just turn out
    to be lies when they are interpreted (as they must be) with the actual definitions.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Heathfield@21:1/5 to Richard Damon on Sat May 10 01:48:11 2025
    On 10/05/2025 01:38, Richard Damon wrote:
    On 5/9/25 8:29 PM, Richard Heathfield wrote:
    On 10/05/2025 00:02, olcott wrote:
    Correctly emulating one or more instructions <is>
    the correct emulation of 1 or more instructions
    of DD. This is a truism.

    No, it's not. Correct emulation would entail accurately
    simulating the whole of DDD's behaviour.

     This is just typical Olcottian behavior, Actual definitons
    don't matter to him, which is what makes so much of what he says
    just turn out to be lies when they are interpreted (as they must
    be) with the actual definitions.

    I have a thought experiment to propose, but... I think a new
    thread, don't you?

    --
    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 Sat May 10 02:15:42 2025
    On 10/05/2025 01:51, olcott wrote:
    On 5/9/2025 7:29 PM, Richard Heathfield wrote:
    On 10/05/2025 00:02, olcott wrote:
    Correctly emulating one or more instructions <is>
    the correct emulation of 1 or more instructions
    of DD. This is a truism.

    No, it's not. Correct emulation would entail accurately
    simulating the whole of DDD's behaviour.

    It is stupidly wrong to require the complete
    emulation of a non-terminating input.

    It is touchingly naive to think you can persuade people to accept
    incomplete emulation as 'correct'.

    --
    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 Sat May 10 02:32:40 2025
    On 10/05/2025 02:29, olcott wrote:
    On 5/9/2025 8:15 PM, Richard Heathfield wrote:
    On 10/05/2025 01:51, olcott wrote:
    On 5/9/2025 7:29 PM, Richard Heathfield wrote:
    On 10/05/2025 00:02, olcott wrote:
    Correctly emulating one or more instructions <is>
    the correct emulation of 1 or more instructions
    of DD. This is a truism.

    No, it's not. Correct emulation would entail accurately
    simulating the whole of DDD's behaviour.

    It is stupidly wrong to require the complete
    emulation of a non-terminating input.

    It is touchingly naive to think you can persuade people to
    accept incomplete emulation as 'correct'.


    If one instruction is emulated correctly
    then is is dishonest to say that zero
    instructions were emulated correctly.

    Which instruction do you think is emulated correctly?

    --
    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 Sat May 10 03:15:47 2025
    On 10/05/2025 02:48, olcott wrote:
    On 5/9/2025 8:32 PM, Richard Heathfield wrote:
    On 10/05/2025 02:29, olcott wrote:
    On 5/9/2025 8:15 PM, Richard Heathfield wrote:
    On 10/05/2025 01:51, olcott wrote:
    On 5/9/2025 7:29 PM, Richard Heathfield wrote:
    On 10/05/2025 00:02, olcott wrote:
    Correctly emulating one or more instructions <is>
    the correct emulation of 1 or more instructions
    of DD. This is a truism.

    No, it's not. Correct emulation would entail accurately
    simulating the whole of DDD's behaviour.

    It is stupidly wrong to require the complete
    emulation of a non-terminating input.

    It is touchingly naive to think you can persuade people to
    accept incomplete emulation as 'correct'.


    If one instruction is emulated correctly
    then is is dishonest to say that zero
    instructions were emulated correctly.

    Which instruction do you think is emulated correctly?

    _DDD()
    [00002172] 55         push ebp      ; housekeeping
    [00002173] 8bec       mov ebp,esp   ; housekeeping
    [00002175] 6872210000 push 00002172 ; push DDD
    [0000217a] e853f4ffff call 000015d2 ; call HHH(DDD)


    Assumes facts not in evidence. Your HHH function is in a
    translation unit that contains a syntax error.

    You have made an extraordinary claim. Carl Sagan rightly said
    that extraordinary claims require extraordinary evidence. It is
    not sufficient to handwave your way past syntax errors and
    attempt to browbeat your critics. If you want to convince anyone
    that you're right, you have to be convincing. Calling people
    dishonest for challenging you is not the mark of a convincing
    argument.

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

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Heathfield@21:1/5 to olcott on Sat May 10 03:19:05 2025
    On 10/05/2025 02:50, olcott wrote:
    On 5/9/2025 8:32 PM, Richard Heathfield wrote:
    On 10/05/2025 02:29, olcott wrote:
    On 5/9/2025 8:15 PM, Richard Heathfield wrote:
    On 10/05/2025 01:51, olcott wrote:
    On 5/9/2025 7:29 PM, Richard Heathfield wrote:
    On 10/05/2025 00:02, olcott wrote:
    Correctly emulating one or more instructions <is>
    the correct emulation of 1 or more instructions
    of DD. This is a truism.

    No, it's not. Correct emulation would entail accurately
    simulating the whole of DDD's behaviour.

    It is stupidly wrong to require the complete
    emulation of a non-terminating input.

    It is touchingly naive to think you can persuade people to
    accept incomplete emulation as 'correct'.


    If one instruction is emulated correctly
    then is is dishonest to say that zero
    instructions were emulated correctly.

    Which instruction do you think is emulated correctly?

    <snip>

    The entire sequence of the first four instructions
    of DDD is emulated correctly.

    Nope. Syntax errors don't count as correct.

    --
    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 Damon@21:1/5 to olcott on Fri May 9 22:20:28 2025
    On 5/9/25 8:48 PM, olcott wrote:
    On 5/9/2025 7:23 PM, Mike Terry wrote:
    On 09/05/2025 03:23, Keith Thompson wrote:
    Richard Damon <richard@damon-family.org> writes:
    On 5/8/25 7:53 PM, olcott wrote:
    [...]
    void DDD()
    {
        HHH(DDD);
        return;
    }
    We don't need to look at any of my code for me
    to totally prove my point. For example when
    the above DDD is correctly simulated by HHH
    this simulated DDD cannot possibly reach its own
    "return" instruction.

    And thus not correctly simulatd.

    Sorry, there is no "OS Exemption" to correct simulaiton;.

    Perhaps I've missed something.  I don't see anything in the above that
    implies that HHH does not correctly simulate DDD.  Richard, you've read >>> far more of olcott's posts than I have, so perhaps you can clarify.

    If we assume that HHH correctly simulates DDD, then the above code is
    equivalent to:

         void DDD()
         {
           DDD();
           return;
         }

    which is a trivial case of infinite recursion.  As far as I can tell,
    assuming that DDD() is actually called at some point, neither the
    outer execution of DDD nor the nested (simulated) execution of DDD
    can reach the return statement.  Infinite recursion might either
    cause a stack overflow and a probable program crash, or an unending
    loop if the compiler implements tail call optimization.

    I see no contradiction, just an uninteresting case of infinite
    recursion, something that's well understood by anyone with a
    reasonable level of programming experience.  (And it has nothing to
    do with the halting problem as far as I can tell, though of course
    olcott has discussed the halting problem elsewhere.)

    Richard, what am I missing?


    Depends on what you've picked up on.

    Do you get that HHH's simulation is a /partial/ simulation?  HHH is free

    That was not in the specification that he responded to.
    Thus within this specification DDD correctly simulated
    by HHH cannot possibly reach its final halt state in an
    infinite number of steps.

    Excpet that no HHH CAN correct emulate the DDD that you give it, as the
    input for DDD just isn't a complete program, and thus the attempt to
    simulate hits a category error of using undefined (to the input) memory.


    If an infinite number steps steps is insufficient
    then how can less an infinite steps possibly help?

    But you HHH can't do an infinite number of steps, as by your definition
    of the input, it can't go beyond the call to HHH, as the code to emulate
    wasn't given.


    to simulate a few x86 instructions of DDD, and then simply abandon the
    simulation and return.  Since such a simulation is obviously NOT
    equivalent to a direct call to DDD, and above you argue that it is,
    I'd say you've missed that.

    The other thing to be aware of is that use of terminology "simulation"
    varies considerably between posters!  This in turn affects what
    different posters consider a "correct" simulation.


    <snip>


    PO is a (b)(c) guy.  Since his HHH (more or less) simulates individual
    instructions correctly, PO claims HHH "correctly" simulates DDD.
    Others who are in (a) or (d) camps would say that HHH does not
    correctly simulate DDD, because either HHH performs a /partial/
    simulation [for them an error in its own right] or because HHH decides
    nothalt when in fact PO's DDD halts.


    _DDD()
    [00002172] 55         push ebp      ; housekeeping
    [00002173] 8bec       mov ebp,esp   ; housekeeping
    [00002175] 6872210000 push 00002172 ; push DDD
    [0000217a] e853f4ffff call 000015d2 ; call HHH(DDD)
    [0000217f] 83c404     add esp,+04
    [00002182] 5d         pop ebp
    [00002183] c3         ret
    Size in bytes:(0018) [00002183]

    Try to show how DDD simulated by HHH according to the
    rules of the x86 language reaches its own "ret"
    instruction final state and you already know that
    you will fail. You dodge this question so that
    you can remain disagreeable.

    Terminology usage is not a right/wrong issue, but the different
    possibilities maximise misunderstandings if not resolved.  E.g. as I
    said PO's simulations are nearly always taken to be partial.  Richard
    D. knows that, but as he is in (b) camp he points out that PO is lying
    every time he says "HHH correctly simulates DDD".  PO then says RD is
    playing head games and challenges RD to point out an error, and so it
    goes on for hundreds of posts.  To be fair, PO should be well aware
    that RD is in camp (a), but does nothing to resolve the terminology
    issue, so both posters get what they deserve!


    I resolved the terminology issue long ago and
    you and everyone else ignores this so that you
    can remain disagreeable.

    When one or more instructions of DDD are emulated
    by HHH according to the rules of the x86 language
    this emulated DDD cannot possibly reach its own
    final halt state because it calls HHH(DDD) in
    recursive emulation.

    FTR I am in the (b)(c) camp...  I could explain why I think that's
    more logical, but that's going OT I think.

    Other posters have suggested that what you're missing is some
    variation of "once you answer PO's current question (about whether the
    simulation by HHH progresses as far as DDD's return) PO will go on to
    do something else wrong". Well, of course he will, but that's hardly
    something you're missing if he's not done it yet!  :)  I'd also say
    it's no reason not to answer PO's question honestly, acknowledging
    that he is talking about /partial/ simulations...  The time to
    challenge future mistakes he will go on to make, is when he makes them.


    Mike.




    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to olcott on Fri May 9 22:30:10 2025
    On 5/9/25 8:51 PM, olcott wrote:
    On 5/9/2025 7:29 PM, Richard Heathfield wrote:
    On 10/05/2025 00:02, olcott wrote:
    Correctly emulating one or more instructions <is>
    the correct emulation of 1 or more instructions
    of DD. This is a truism.

    No, it's not. Correct emulation would entail accurately simulating the
    whole of DDD's behaviour.


    It is stupidly wrong to require the complete
    emulation of a non-terminating input.


    Nope, as that *IS* the definition of a correct emulation of a
    non-halting input, as the definition of "correcdt emulation" is to
    exactly reproduce the behavior of that program, so if the program won't
    halt, neither can the emulation.

    The key point is that the decider isn't required to do such a correct simulation (except in your brokne theory) but just answer about what
    such a emulation would do if done.

    basicaly, one fundamental that you should have seen from your work that
    it is impossible for one program to be both a correct decider and a
    correct emulator, and thus the definition of the correct answer can not
    be based on the correct emulation by itself. That is just invoking a
    logical contradiction, and your system is basically built on the
    acceptance of the liar's paradox as a valid statement.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to olcott on Fri May 9 22:25:40 2025
    On 5/9/25 8:54 PM, olcott wrote:
    On 5/9/2025 7:38 PM, Richard Damon wrote:
    On 5/9/25 8:29 PM, Richard Heathfield wrote:
    On 10/05/2025 00:02, olcott wrote:
    Correctly emulating one or more instructions <is>
    the correct emulation of 1 or more instructions
    of DD. This is a truism.

    No, it's not. Correct emulation would entail accurately simulating
    the whole of DDD's behaviour.

      This is just typical Olcottian behavior, Actual definitons don't
    matter to him, which is what makes so much of what he says just turn
    out to be lies when they are interpreted (as they must be) with the
    actual definitions.

    _DDD()
    [00002172] 55         push ebp      ; housekeeping
    [00002173] 8bec       mov ebp,esp   ; housekeeping
    [00002175] 6872210000 push 00002172 ; push DDD
    [0000217a] e853f4ffff call 000015d2 ; call HHH(DDD)
    [0000217f] 83c404     add esp,+04
    [00002182] 5d         pop ebp
    [00002183] c3         ret
    Size in bytes:(0018) [00002183]

    Try to show how DDD simulated by HHH according to the
    rules of the x86 language reaches its own "ret"
    instruction final state and you already know that
    you will fail. You dodge this question so that
    you can remain disagreeable.

    The problem is that HHH can not emulate this input past the call
    000015d2 instruction, as that isn't part of the input, and you need to
    restrict HHH to be a pure function (and thus can't use memory not
    derived from the input) or my static variable hack lets us create an HHH
    that can emulate that input to the return instruciton as I have shown.

    Sorry, you are just caught in your lies and shown that you can't
    actually prove what you claim, and you seem to know it at some level as
    you just refuse to respond to the errors, thus accpeting them as valid.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to olcott on Fri May 9 22:32:17 2025
    On 5/9/25 9:29 PM, olcott wrote:
    On 5/9/2025 8:15 PM, Richard Heathfield wrote:
    On 10/05/2025 01:51, olcott wrote:
    On 5/9/2025 7:29 PM, Richard Heathfield wrote:
    On 10/05/2025 00:02, olcott wrote:
    Correctly emulating one or more instructions <is>
    the correct emulation of 1 or more instructions
    of DD. This is a truism.

    No, it's not. Correct emulation would entail accurately simulating
    the whole of DDD's behaviour.

    It is stupidly wrong to require the complete
    emulation of a non-terminating input.

    It is touchingly naive to think you can persuade people to accept
    incomplete emulation as 'correct'.


    If one instruction is emulated correctly
    then is is dishonest to say that zero
    instructions were emulated correctly.


    But no one is saying that zero instruction were emulated correctly, the
    claim is that not-all instrucitons were emulated correctly.

    You are just showing you ignorance of how the logic of qualifiers work.

    "Correct Emulation" is the correct emulation of *ALL* the instructions.

    What you are trying to talk about is a correct PARTIAL emulation, which
    is something different, and doesn't prove your point.

    Sorry, you are just proving your ignorance.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to olcott on Fri May 9 22:39:13 2025
    On 5/9/25 10:20 PM, olcott wrote:
    On 5/9/2025 9:15 PM, Richard Heathfield wrote:
    On 10/05/2025 02:48, olcott wrote:
    On 5/9/2025 8:32 PM, Richard Heathfield wrote:
    On 10/05/2025 02:29, olcott wrote:
    On 5/9/2025 8:15 PM, Richard Heathfield wrote:
    On 10/05/2025 01:51, olcott wrote:
    On 5/9/2025 7:29 PM, Richard Heathfield wrote:
    On 10/05/2025 00:02, olcott wrote:
    Correctly emulating one or more instructions <is>
    the correct emulation of 1 or more instructions
    of DD. This is a truism.

    No, it's not. Correct emulation would entail accurately
    simulating the whole of DDD's behaviour.

    It is stupidly wrong to require the complete
    emulation of a non-terminating input.

    It is touchingly naive to think you can persuade people to accept
    incomplete emulation as 'correct'.


    If one instruction is emulated correctly
    then is is dishonest to say that zero
    instructions were emulated correctly.

    Which instruction do you think is emulated correctly?

    _DDD()
    [00002172] 55         push ebp      ; housekeeping
    [00002173] 8bec       mov ebp,esp   ; housekeeping
    [00002175] 6872210000 push 00002172 ; push DDD
    [0000217a] e853f4ffff call 000015d2 ; call HHH(DDD)


    Assumes facts not in evidence. Your HHH function is in a translation
    unit that contains a syntax error.


    It is a truism that when DDD is emulated by HHH
    according to the rules of the x86 language that
    the first four instructions of DDD would be emulated
    and then HHH would also be required to emulate
    itself emulating DDD.


    Nope, because by your definitions HHH can not correctly emulate that
    DDD, as it doesn't include the code for the HHH that it calls, and thus
    HHH can't emulate that and be a pure function.

    If you relax the requirement of being pure function, then I have shown a version of HHH that CAN do the operation, and thus your "truim" is just
    proven false.

    Sorry, you have been caught in your lie, and until you explain where the refutation of your claim is incorrect, you have accepted that refutation
    and admited you are just a liar.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to olcott on Fri May 9 22:34:51 2025
    On 5/9/25 9:48 PM, olcott wrote:
    On 5/9/2025 8:32 PM, Richard Heathfield wrote:
    On 10/05/2025 02:29, olcott wrote:
    On 5/9/2025 8:15 PM, Richard Heathfield wrote:
    On 10/05/2025 01:51, olcott wrote:
    On 5/9/2025 7:29 PM, Richard Heathfield wrote:
    On 10/05/2025 00:02, olcott wrote:
    Correctly emulating one or more instructions <is>
    the correct emulation of 1 or more instructions
    of DD. This is a truism.

    No, it's not. Correct emulation would entail accurately simulating >>>>>> the whole of DDD's behaviour.

    It is stupidly wrong to require the complete
    emulation of a non-terminating input.

    It is touchingly naive to think you can persuade people to accept
    incomplete emulation as 'correct'.


    If one instruction is emulated correctly
    then is is dishonest to say that zero
    instructions were emulated correctly.

    Which instruction do you think is emulated correctly?


    _DDD()
    [00002172] 55         push ebp      ; housekeeping
    [00002173] 8bec       mov ebp,esp   ; housekeeping
    [00002175] 6872210000 push 00002172 ; push DDD
    [0000217a] e853f4ffff call 000015d2 ; call HHH(DDD)
    [0000217f] 83c404     add esp,+04
    [00002182] 5d         pop ebp
    [00002183] c3         ret
    Size in bytes:(0018) [00002183]

    The entire sequence of the first four instructions
    of DDD is emulated correctly. This sequence also
    includes HHH emulating itself emulating DDD. This
    results in a whole other sequence of first three
    instructions of DDD being correctly emulated.


    No it doesn't. The correct emulation of the call HHH instruction
    requires that the next instruction emualated (and that it will be
    emulated) is the first instruciton of HHH.

    You just are showing your ignorance of the x86 language, or how ANY
    computer works.

    Now, for HHH to emulate that first instuction of HHH, it needs to have
    been given it, which it hasn't, so HHH just can't do what it needs to.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Heathfield@21:1/5 to olcott on Sat May 10 03:59:13 2025
    On 10/05/2025 03:41, olcott wrote:
    On 5/9/2025 9:20 PM, Richard Damon wrote:

    <snip>

    Excpet that no HHH CAN correct emulate the DDD that you give
    it, as the input for DDD just isn't a complete program,

    Do I have to repeat this 1000 times before you ever notice
    that I said it once?

    That's an unexpectedly revealing question.

    So now we know.

    And the answer is 'no'. You can save yourself a lot of time by
    just saying it once.

    If it's right, repetition won't make it any righter, and if it's
    wrong, repetition just makes you look foolish.

    --
    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 Damon@21:1/5 to olcott on Fri May 9 23:08:08 2025
    On 5/9/25 10:43 PM, olcott wrote:
    On 5/9/2025 9:25 PM, Richard Damon wrote:
    On 5/9/25 8:54 PM, olcott wrote:
    On 5/9/2025 7:38 PM, Richard Damon wrote:
    On 5/9/25 8:29 PM, Richard Heathfield wrote:
    On 10/05/2025 00:02, olcott wrote:
    Correctly emulating one or more instructions <is>
    the correct emulation of 1 or more instructions
    of DD. This is a truism.

    No, it's not. Correct emulation would entail accurately simulating
    the whole of DDD's behaviour.

      This is just typical Olcottian behavior, Actual definitons don't
    matter to him, which is what makes so much of what he says just turn
    out to be lies when they are interpreted (as they must be) with the
    actual definitions.

    _DDD()
    [00002172] 55         push ebp      ; housekeeping
    [00002173] 8bec       mov ebp,esp   ; housekeeping
    [00002175] 6872210000 push 00002172 ; push DDD
    [0000217a] e853f4ffff call 000015d2 ; call HHH(DDD)
    [0000217f] 83c404     add esp,+04
    [00002182] 5d         pop ebp
    [00002183] c3         ret
    Size in bytes:(0018) [00002183]

    Try to show how DDD simulated by HHH according to the
    rules of the x86 language reaches its own "ret"
    instruction final state and you already know that
    you will fail. You dodge this question so that
    you can remain disagreeable.

    The problem is that HHH can not emulate this input past the call
    000015d2 instruction,

    Do I have to repeat this 1000 times !!!
    HHH is in the same memory space as DDD
    HHH is in the same memory space as DDD
    HHH is in the same memory space as DDD
    HHH is in the same memory space as DDD
    HHH is in the same memory space as DDD

    so when DDD calls HHH(DDD) then HHH must
    emulate itself emulating DDD OR IT IS WRONG



    Which is irrelevent since it wasn't part of the input.

    I guess you are admitting you lied when you said that HHH must be a pure function, and thus my HHH that uses the static local variable is valid,
    and it CAN correctly emulate EVERY instruciton of the program DDD to the
    emd.

    Sorry, you are just checkmating your self and proving that you are just
    a stupid liar.

    Your whole logic system seems to be build on lies, equivocations, and
    the assumption of contradictions.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to olcott on Fri May 9 23:06:05 2025
    On 5/9/25 10:41 PM, olcott wrote:
    On 5/9/2025 9:20 PM, Richard Damon wrote:
    On 5/9/25 8:48 PM, olcott wrote:
    On 5/9/2025 7:23 PM, Mike Terry wrote:
    On 09/05/2025 03:23, Keith Thompson wrote:
    Richard Damon <richard@damon-family.org> writes:
    On 5/8/25 7:53 PM, olcott wrote:
    [...]
    void DDD()
    {
        HHH(DDD);
        return;
    }
    We don't need to look at any of my code for me
    to totally prove my point. For example when
    the above DDD is correctly simulated by HHH
    this simulated DDD cannot possibly reach its own
    "return" instruction.

    And thus not correctly simulatd.

    Sorry, there is no "OS Exemption" to correct simulaiton;.

    Perhaps I've missed something.  I don't see anything in the above that >>>>> implies that HHH does not correctly simulate DDD.  Richard, you've
    read
    far more of olcott's posts than I have, so perhaps you can clarify.

    If we assume that HHH correctly simulates DDD, then the above code is >>>>> equivalent to:

         void DDD()
         {
           DDD();
           return;
         }

    which is a trivial case of infinite recursion.  As far as I can tell, >>>>> assuming that DDD() is actually called at some point, neither the
    outer execution of DDD nor the nested (simulated) execution of DDD
    can reach the return statement.  Infinite recursion might either
    cause a stack overflow and a probable program crash, or an unending
    loop if the compiler implements tail call optimization.

    I see no contradiction, just an uninteresting case of infinite
    recursion, something that's well understood by anyone with a
    reasonable level of programming experience.  (And it has nothing to >>>>> do with the halting problem as far as I can tell, though of course
    olcott has discussed the halting problem elsewhere.)

    Richard, what am I missing?


    Depends on what you've picked up on.

    Do you get that HHH's simulation is a /partial/ simulation?  HHH is
    free

    That was not in the specification that he responded to.
    Thus within this specification DDD correctly simulated
    by HHH cannot possibly reach its final halt state in an
    infinite number of steps.

    Excpet that no HHH CAN correct emulate the DDD that you give it, as
    the input for DDD just isn't a complete program,

    Do I have to repeat this 1000 times before you ever notice
    that I said it once?

    HHH is in the same freaking memory space as DDD.



    So?

    Does that mean you are removing the requirement that HHH be a pure function?

    In that case my version of HHH that uses a static variable to let it
    succeed is valid.

    Your problem is you are just totally ignorant of the langauge you are
    using, and too stupid to realize you need to learn more, or maybe too
    stupid to actually learn it.

    Your words are effectively just an admittion that you proof is nothing
    by a big lie based on equivocation and just out and out lies.

    That you are too stupid to see this doesn't make it not true, just shows
    your stupidity.

    If you want to try to argue these points, show how your HHH can emulate
    the input correctly, and meet the requirement that YOU have stipulate,
    in particular that the input is JUST the code of the C function DDD, and
    that HHH is a pure function and thus can only look at the contents of
    what is the input.

    These together means that HHH is not allowed to look at its own code for processsing the meaning of the input.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to olcott on Fri May 9 23:10:28 2025
    On 5/9/25 10:20 PM, olcott wrote:
    On 5/9/2025 9:15 PM, Richard Heathfield wrote:
    On 10/05/2025 02:48, olcott wrote:
    On 5/9/2025 8:32 PM, Richard Heathfield wrote:
    On 10/05/2025 02:29, olcott wrote:
    On 5/9/2025 8:15 PM, Richard Heathfield wrote:
    On 10/05/2025 01:51, olcott wrote:
    On 5/9/2025 7:29 PM, Richard Heathfield wrote:
    On 10/05/2025 00:02, olcott wrote:
    Correctly emulating one or more instructions <is>
    the correct emulation of 1 or more instructions
    of DD. This is a truism.

    No, it's not. Correct emulation would entail accurately
    simulating the whole of DDD's behaviour.

    It is stupidly wrong to require the complete
    emulation of a non-terminating input.

    It is touchingly naive to think you can persuade people to accept
    incomplete emulation as 'correct'.


    If one instruction is emulated correctly
    then is is dishonest to say that zero
    instructions were emulated correctly.

    Which instruction do you think is emulated correctly?

    _DDD()
    [00002172] 55         push ebp      ; housekeeping
    [00002173] 8bec       mov ebp,esp   ; housekeeping
    [00002175] 6872210000 push 00002172 ; push DDD
    [0000217a] e853f4ffff call 000015d2 ; call HHH(DDD)


    Assumes facts not in evidence. Your HHH function is in a translation
    unit that contains a syntax error.


    It is a truism that when DDD is emulated by HHH
    according to the rules of the x86 language that
    the first four instructions of DDD would be emulated
    and then HHH would also be required to emulate
    itself emulating DDD.


    Yes, but since that wasn't given as part of the input, it can't do that.

    You have stipulated things that force this requirement, and thus your
    HHH just can't exist in compliance to your own rules.

    Sorry, you have sunk you logic system by your own lies, equivocation and contradictions into the lake of fire that you will be joining it in.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to olcott on Fri May 9 23:12:42 2025
    On 5/9/25 10:47 PM, olcott wrote:
    On 5/9/2025 9:39 PM, Richard Damon wrote:
    On 5/9/25 10:20 PM, olcott wrote:
    On 5/9/2025 9:15 PM, Richard Heathfield wrote:
    On 10/05/2025 02:48, olcott wrote:
    On 5/9/2025 8:32 PM, Richard Heathfield wrote:
    On 10/05/2025 02:29, olcott wrote:
    On 5/9/2025 8:15 PM, Richard Heathfield wrote:
    On 10/05/2025 01:51, olcott wrote:
    On 5/9/2025 7:29 PM, Richard Heathfield wrote:
    On 10/05/2025 00:02, olcott wrote:
    Correctly emulating one or more instructions <is>
    the correct emulation of 1 or more instructions
    of DD. This is a truism.

    No, it's not. Correct emulation would entail accurately
    simulating the whole of DDD's behaviour.

    It is stupidly wrong to require the complete
    emulation of a non-terminating input.

    It is touchingly naive to think you can persuade people to
    accept incomplete emulation as 'correct'.


    If one instruction is emulated correctly
    then is is dishonest to say that zero
    instructions were emulated correctly.

    Which instruction do you think is emulated correctly?

    _DDD()
    [00002172] 55         push ebp      ; housekeeping
    [00002173] 8bec       mov ebp,esp   ; housekeeping
    [00002175] 6872210000 push 00002172 ; push DDD
    [0000217a] e853f4ffff call 000015d2 ; call HHH(DDD)


    Assumes facts not in evidence. Your HHH function is in a translation
    unit that contains a syntax error.


    It is a truism that when DDD is emulated by HHH
    according to the rules of the x86 language that
    the first four instructions of DDD would be emulated
    and then HHH would also be required to emulate
    itself emulating DDD.


    Nope, because by your definitions HHH can not correctly emulate that
    DDD, as it doesn't include the code for the HHH that it calls,

    DDD are HHH are on the same memory space I told you this 50 times
    DDD are HHH are on the same memory space I told you this 50 times
    DDD are HHH are on the same memory space I told you this 50 times
    DDD are HHH are on the same memory space I told you this 50 times
    DDD are HHH are on the same memory space I told you this 50 times


    But that doesn't mean that HHH is allowed to access it.

    I guess you are just admitting that you are just a stupid liar that
    doesn't know the meaning of the words he uses.

    If HHH needs to be a pure function, it can't access what isn't in the
    input, and thus you are lying that it can.

    If HHH doesn't need to be a pure function, I have given you a version of
    it that does what you says it can't, showing you are wrong.

    Either way, you have admitted that you are just a stupid liar.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to olcott on Fri May 9 23:17:56 2025
    On 5/9/25 10:27 PM, olcott wrote:
    On 5/9/2025 9:19 PM, Richard Heathfield wrote:
    On 10/05/2025 02:50, olcott wrote:
    On 5/9/2025 8:32 PM, Richard Heathfield wrote:
    On 10/05/2025 02:29, olcott wrote:
    On 5/9/2025 8:15 PM, Richard Heathfield wrote:
    On 10/05/2025 01:51, olcott wrote:
    On 5/9/2025 7:29 PM, Richard Heathfield wrote:
    On 10/05/2025 00:02, olcott wrote:
    Correctly emulating one or more instructions <is>
    the correct emulation of 1 or more instructions
    of DD. This is a truism.

    No, it's not. Correct emulation would entail accurately
    simulating the whole of DDD's behaviour.

    It is stupidly wrong to require the complete
    emulation of a non-terminating input.

    It is touchingly naive to think you can persuade people to accept
    incomplete emulation as 'correct'.


    If one instruction is emulated correctly
    then is is dishonest to say that zero
    instructions were emulated correctly.

    Which instruction do you think is emulated correctly?

    <snip>

    The entire sequence of the first four instructions
    of DDD is emulated correctly.

    Nope. Syntax errors don't count as correct.


    Any HHH that emulates DDD according to the rules
    of the x86 language must emulate the first four
    instructions of DDD followed by HHH emulating
    itself emulated DDD and then the first three
    instructions of DDD when seven of the instructions
    of DDD are correctly emulated.

    This is axiomatic according to the rules of
    the x86 language applied to the input to HHH(DDD).


    Nope.

    I have shown an HHH that just by the rules of the x86 language can
    correctly emulate the code of DDD that references itself.

    Thus, you are proven to not understand what you say, and since you just
    refuse to point out the errors in the errors I have pointed out in yourl
    lpgic, you have accepted that you are just a liar.

    If you try to exclude that program by the requriement of HHH needing to
    be a pure program, then HHH can't emulate the code of HHH withouyt it
    being included.

    And if you do that, then you next step is broken as DDD isn't a single
    input, but is a DDD/HHH pairing, each being different, so the DDD paired
    with the HHH that is a pure emulator is a different input than the DDD
    paired with the HHH that is the decider, which is the input given to
    that decider, and thus you can't use the behavior of one version to
    apply to the second.

    Your logic is just sunk by your errors.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to olcott on Fri May 9 23:22:10 2025
    On 5/9/25 10:45 PM, olcott wrote:
    On 5/9/2025 9:30 PM, Richard Damon wrote:
    On 5/9/25 8:51 PM, olcott wrote:
    On 5/9/2025 7:29 PM, Richard Heathfield wrote:
    On 10/05/2025 00:02, olcott wrote:
    Correctly emulating one or more instructions <is>
    the correct emulation of 1 or more instructions
    of DD. This is a truism.

    No, it's not. Correct emulation would entail accurately simulating
    the whole of DDD's behaviour.


    It is stupidly wrong to require the complete
    emulation of a non-terminating input.


    Nope, as that *IS* the definition of a correct emulation of a non-
    halting input, as the definition of "correcdt emulation" is to exactly
    reproduce the behavior of that program, so if the program won't halt,
    neither can the emulation.


    That a psychotic way to define a simulating termination analyzer.


    What, psychotic to define a termination analyZer by the actual
    definition of a termination analyzer?

    Where do you get your version of the definition?

    It seems you just like to invent your own fantasy world which doesn't
    actually correlate to reality, and then lie about your fantasy being
    what is real.

    Sorry, you don't get to redefine the terms, and any attempt just becomes
    a blantant lie.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to olcott on Fri May 9 23:29:31 2025
    On 5/9/25 11:17 PM, olcott wrote:
    On 5/9/2025 10:12 PM, Keith Thompson wrote:
    Mike Terry <news.dead.person.stones@darjeeling.plus.com> writes:
    On 09/05/2025 03:23, Keith Thompson wrote:
    Richard Damon <richard@damon-family.org> writes:
    On 5/8/25 7:53 PM, olcott wrote:
    [...]
    void DDD()
    {
         HHH(DDD);
         return;
    }
    We don't need to look at any of my code for me
    to totally prove my point. For example when
    the above DDD is correctly simulated by HHH
    this simulated DDD cannot possibly reach its own
    "return" instruction.

    And thus not correctly simulatd.

    Sorry, there is no "OS Exemption" to correct simulaiton;.
    Perhaps I've missed something.  I don't see anything in the above
    that
    implies that HHH does not correctly simulate DDD.  Richard, you've read >>>> far more of olcott's posts than I have, so perhaps you can clarify.
    If we assume that HHH correctly simulates DDD, then the above code
    is
    equivalent to:
          void DDD()
          {
            DDD();
            return;
          }
    which is a trivial case of infinite recursion.  As far as I can
    tell,
    assuming that DDD() is actually called at some point, neither the
    outer execution of DDD nor the nested (simulated) execution of DDD
    can reach the return statement.  Infinite recursion might either
    cause a stack overflow and a probable program crash, or an unending
    loop if the compiler implements tail call optimization.
    I see no contradiction, just an uninteresting case of infinite
    recursion, something that's well understood by anyone with a
    reasonable level of programming experience.  (And it has nothing to
    do with the halting problem as far as I can tell, though of course
    olcott has discussed the halting problem elsewhere.)
    Richard, what am I missing?

    Depends on what you've picked up on.

    Do you get that HHH's simulation is a /partial/ simulation?  HHH is
    free to simulate a few x86 instructions of DDD, and then simply
    abandon the simulation and return.  Since such a simulation is
    obviously NOT equivalent to a direct call to DDD, and above you argue
    that it is, I'd say you've missed that.

    I have not read the vast majority of olcott's post here.  For most
    of the recent discussion I had with him, there was no mention of
    partial simulation.  olcott finally said something about simulating
    just a few instructions, but at the same time he finally indicated
    that understanding his arguments would require an understanding of
    x86 machine and/or assembly language.  That's when I bailed out.

    A "correct simulation", as I understand the term, would require fully
    simulate the execution of DDD.  If DDD never halts, its simulation never
    halts.  olcott seems to think that he's found a way around this that's
    relevant to the Halting Problem, but I withdrew before getting to that
    point.


    It only need be a correct simulation until HHH sees the
    repeating pattern that would cause itself to never terminate.

    Right, but that pattern needs to be based on the fact that HHH is a
    program that can abort its simulation, and in fact WILL.


    The best selling author of theory of computation textbooks
    agreed that I could quote his agreement with my words.

    <MIT Professor Sipser agreed to ONLY these verbatim words 10/13/2022>
        If simulating halt decider H correctly simulates its
        input D until H correctly determines that its simulated D
        would never stop running unless aborted then

        H can abort its simulation of D and correctly report that D
        specifies a non-halting sequence of configurations.
    </MIT Professor Sipser agreed to ONLY these verbatim words 10/13/2022>



    Which means that if H(D) can show that UTM(D), where that D is the exact
    same input as given to H(D), and thus for the "pathoological program"
    still calls the original H(D) since that is what the program at the
    input dies, would never halt, it can abort.

    Since it H(D) returns 0, then D() will halt, it is impossible for H(D)
    to have made that proof since it is not true.

    Your problem is your setup just violates the rules of computation theory
    as used in the Halting Problem, and you have admitted that you H and D
    are actually caterogry errors as they are C functions, which are not
    program equivalents, and thus not even the right sort of thing to be
    talked about in that context.

    Thus, your interpretation is just a lie of gross misinterpretation, and
    you whole theory a lie based on equivocation and false and contradictory premises.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to wij on Fri May 9 23:31:09 2025
    On 5/9/25 11:13 PM, wij wrote:
    On Fri, 2025-05-09 at 19:40 -0700, Keith Thompson wrote:
    olcott <polcott333@gmail.com> writes:
    On 5/9/2025 4:40 PM, Richard Heathfield wrote:
    On 09/05/2025 21:15, olcott wrote:
    On 5/9/2025 3:07 PM, Richard Heathfield wrote:
    On 09/05/2025 20:46, olcott wrote:
    We have not begun to get into any of those points.
    We are only asking can DDD correctly simulated
    by any HHH that can exist ever reach its own
    "return" instruction.

    DDD can't be correctly simulated by itself (which is effectively
    what you're trying to do when you fire up the simulation from
    inside DDD).

    How the Hell did you twist my words to say that?
    I haven't touched your words. What I have done is to observe that
    DDD's /only/ action is to call a simulator. Since DDD isn't itself a
    simulator, there is nothing to simulate except a call to a
    simulator.
    It's recursion without a base case - a rookie error.
    HHH cannot successfully complete its task, because it never regains
    control after the first recursion. To return, it must abort the
    simulation, which means the simulation fails.

    void DDD()
    {
       HHH(DDD);
       return;
    }

    When 1 or more statements of DDD are correctly
    simulated by HHH then this correctly simulated
    DDD cannot possibly reach its own “return statement”.
    On what grounds can you persuade an extraordinarily sceptical
    readership that HHH 'correctly simulated' DDD?

    Any competent C programmer can see that
    the call from DDD to HHH(DDD) (its own simulator)
    is equivalent to infinite recursion.

    On 5/8/2025 8:30 PM, Keith Thompson wrote:
    Assuming that HHH(DDD) "correctly simulates" DDD, and assuming it
    does nothing else, your code would be equivalent to this:

         void DDD(void) {
             DDD();
             return;
         }

    Then the return statement (which is unnecessary anyway) will never be
    reached.  In practice, the program will likely crash due to a stack
    overflow, unless the compiler implements tail-call optimization, in
    which case the program might just run forever -- which also means the
    unnecessary return statement will never be reached.

    I had not intended to post again, but I feel the need to make
    a clarification.

    I acknowledged that the return statement would never be reached
    *given the assumption* that HHH correctly simulates DDD.  Given
    that assumption, a call to DDD() should be equivalent to a call
    to HHH(DDD).

    I did not address whether the assumption is valid.  I merely
    temporarily accepted it for the sake of discussion, just as I would
    accept that if I were ten feet tall I would bump my head against
    the ceiling in my house.

    The discussion I had with olcott did not reach the point of
    discussing *how* HHH could correctly simulate DDD, or whether it
    would even be logically possible for it to do so.  I also did not
    address any issues of partial simulation, where olcott claims that
    HHH can "accurately simulate" only a few x86 instructions rather
    than simulating its entire execution.  I did not participate in
    any discussion that would require knowledge of x86 machine or
    assembly code.  (I have no doubt that I could learn x86 machine
    and assembly code reasonably well if motivated to do so, but I am
    not so motivated.)

    What I acknowledged was barely more than "if HHH correctly simulates
    DDD, then HHH correctly simulates DDD".  (My understanding from
    posts by others, whom I presume to be sufficiently knowledgeable,
    is that HHH logically cannot accurately simulate DDD.)  I would
    prefer that olcott refrain from using my words to support any of
    his arguments beyond the scope of what he and I directly discussed.

    Don't know why you people stick on the 'simulation' stuff so long.
    The HP simply asks for such an H (in function form. POOH does not
    resemble TM):
    H(D)=1 if D() halt.
    H(D)=0 if D() not halt.



    The issue is Peter thinks that by making H a "simulating Halt Decider"
    or a "Simulating Termination Analyzer" it can change the definition, by
    trying to put out a lying definition of Halting by lying about the
    definition of correct simulation and what is the input.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to olcott on Fri May 9 23:50:28 2025
    On 5/9/25 11:29 PM, olcott wrote:
    On 5/9/2025 10:17 PM, Richard Damon wrote:
    On 5/9/25 10:27 PM, olcott wrote:
    On 5/9/2025 9:19 PM, Richard Heathfield wrote:
    On 10/05/2025 02:50, olcott wrote:
    On 5/9/2025 8:32 PM, Richard Heathfield wrote:
    On 10/05/2025 02:29, olcott wrote:
    On 5/9/2025 8:15 PM, Richard Heathfield wrote:
    On 10/05/2025 01:51, olcott wrote:
    On 5/9/2025 7:29 PM, Richard Heathfield wrote:
    On 10/05/2025 00:02, olcott wrote:
    Correctly emulating one or more instructions <is>
    the correct emulation of 1 or more instructions
    of DD. This is a truism.

    No, it's not. Correct emulation would entail accurately
    simulating the whole of DDD's behaviour.

    It is stupidly wrong to require the complete
    emulation of a non-terminating input.

    It is touchingly naive to think you can persuade people to
    accept incomplete emulation as 'correct'.


    If one instruction is emulated correctly
    then is is dishonest to say that zero
    instructions were emulated correctly.

    Which instruction do you think is emulated correctly?

    <snip>

    The entire sequence of the first four instructions
    of DDD is emulated correctly.

    Nope. Syntax errors don't count as correct.


    Any HHH that emulates DDD according to the rules
    of the x86 language must emulate the first four
    instructions of DDD followed by HHH emulating
    itself emulated DDD and then the first three
    instructions of DDD when seven of the instructions
    of DDD are correctly emulated.

    This is axiomatic according to the rules of
    the x86 language applied to the input to HHH(DDD).


    Nope.

    I have shown an HHH that just by the rules of the x86 language can
    correctly emulate the code of DDD that references itself.


    _DDD()
    [00002172] 55         push ebp      ; housekeeping
    [00002173] 8bec       mov ebp,esp   ; housekeeping
    [00002175] 6872210000 push 00002172 ; push DDD
    [0000217a] e853f4ffff call 000015d2 ; call HHH(DDD)
    [0000217f] 83c404     add esp,+04
    [00002182] 5d         pop ebp
    [00002183] c3         ret
    Size in bytes:(0018) [00002183]

    You cannot possibly show any HHH that emulates this
    DDD according to the rules of the x86 language such
    that this DDD ever reaches its "ret" instruction
    final halt state.



    Sure I have. I guess you are just admitting you are a blantant liar.

    int HHH(ptr P) {
    static int flag = 0;
    if (flag) return 0;
    flag = 1;

    /* Now put your existing code for a correct simulator that never
    aborts */


    Tell me why this simulator can't reach the final state of DDD when we
    call HHH(DDD)

    it will simulate the introduction to DDD, then go into HHH and see that
    flag has been set to 1 by the initial call to HHH, and then immediately
    return 0 to DDD which will then halt.

    THis has been explained several time TODAY, and thus your denial is just
    proof that you are just a stupid liar.

    I guess you want to get the express ticket to that lake of fire.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to olcott on Fri May 9 23:53:06 2025
    On 5/9/25 11:24 PM, olcott wrote:
    On 5/9/2025 10:13 PM, wij wrote:
    On Fri, 2025-05-09 at 19:40 -0700, Keith Thompson wrote:
    olcott <polcott333@gmail.com> writes:
    On 5/9/2025 4:40 PM, Richard Heathfield wrote:
    On 09/05/2025 21:15, olcott wrote:
    On 5/9/2025 3:07 PM, Richard Heathfield wrote:
    On 09/05/2025 20:46, olcott wrote:
    We have not begun to get into any of those points.
    We are only asking can DDD correctly simulated
    by any HHH that can exist ever reach its own
    "return" instruction.

    DDD can't be correctly simulated by itself (which is effectively >>>>>>> what you're trying to do when you fire up the simulation from
    inside DDD).

    How the Hell did you twist my words to say that?
    I haven't touched your words. What I have done is to observe that
    DDD's /only/ action is to call a simulator. Since DDD isn't itself a >>>>> simulator, there is nothing to simulate except a call to a
    simulator.
    It's recursion without a base case - a rookie error.
    HHH cannot successfully complete its task, because it never regains
    control after the first recursion. To return, it must abort the
    simulation, which means the simulation fails.

    void DDD()
    {
        HHH(DDD);
        return;
    }

    When 1 or more statements of DDD are correctly
    simulated by HHH then this correctly simulated
    DDD cannot possibly reach its own “return statement”.
    On what grounds can you persuade an extraordinarily sceptical
    readership that HHH 'correctly simulated' DDD?

    Any competent C programmer can see that
    the call from DDD to HHH(DDD) (its own simulator)
    is equivalent to infinite recursion.

    On 5/8/2025 8:30 PM, Keith Thompson wrote:
    Assuming that HHH(DDD) "correctly simulates" DDD, and assuming it
    does nothing else, your code would be equivalent to this:

          void DDD(void) {
              DDD();
              return;
          }

    Then the return statement (which is unnecessary anyway) will never be >>>>> reached.  In practice, the program will likely crash due to a stack >>>>> overflow, unless the compiler implements tail-call optimization, in
    which case the program might just run forever -- which also means the >>>>> unnecessary return statement will never be reached.

    I had not intended to post again, but I feel the need to make
    a clarification.

    I acknowledged that the return statement would never be reached
    *given the assumption* that HHH correctly simulates DDD.  Given
    that assumption, a call to DDD() should be equivalent to a call
    to HHH(DDD).

    I did not address whether the assumption is valid.  I merely
    temporarily accepted it for the sake of discussion, just as I would
    accept that if I were ten feet tall I would bump my head against
    the ceiling in my house.

    The discussion I had with olcott did not reach the point of
    discussing *how* HHH could correctly simulate DDD, or whether it
    would even be logically possible for it to do so.  I also did not
    address any issues of partial simulation, where olcott claims that
    HHH can "accurately simulate" only a few x86 instructions rather
    than simulating its entire execution.  I did not participate in
    any discussion that would require knowledge of x86 machine or
    assembly code.  (I have no doubt that I could learn x86 machine
    and assembly code reasonably well if motivated to do so, but I am
    not so motivated.)

    What I acknowledged was barely more than "if HHH correctly simulates
    DDD, then HHH correctly simulates DDD".  (My understanding from
    posts by others, whom I presume to be sufficiently knowledgeable,
    is that HHH logically cannot accurately simulate DDD.)  I would
    prefer that olcott refrain from using my words to support any of
    his arguments beyond the scope of what he and I directly discussed.

    Don't know why you people stick on the 'simulation' stuff so long.
    The HP simply asks for such an H (in function form. POOH does not
    resemble TM):
      H(D)=1 if D() halt.
      H(D)=0 if D() not halt.

    My invention of a simulating termination
    analyzer shows exactly how to compute the
    mapping that the input that HHH(DD) specifies
    into a correct answer for the halting problem's
    otherwise impossible input.

    All rebuttals are based on failing to compute
    this mapping correctly.


    The problem is you don't compute the correct mapping, as you LIE by
    changing the defined mapping with your strawman,

    Termination Analyzer, BY THEIR DEFINITION, determine if the program
    represented by their input will halt when run. PERIOD.

    Until you can docuemnt a reliable source that gives your strawman, you
    ar just proven to be a stupid liar that has proved his ignorance.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to olcott on Fri May 9 23:45:21 2025
    On 5/9/25 11:13 PM, olcott wrote:
    On 5/9/2025 9:40 PM, Keith Thompson wrote:
    olcott <polcott333@gmail.com> writes:
    On 5/9/2025 4:40 PM, Richard Heathfield wrote:
    On 09/05/2025 21:15, olcott wrote:
    On 5/9/2025 3:07 PM, Richard Heathfield wrote:
    On 09/05/2025 20:46, olcott wrote:
    We have not begun to get into any of those points.
    We are only asking can DDD correctly simulated
    by any HHH that can exist ever reach its own
    "return" instruction.

    DDD can't be correctly simulated by itself (which is effectively
    what you're trying to do when you fire up the simulation from
    inside DDD).

    How the Hell did you twist my words to say that?
    I haven't touched your words. What I have done is to observe that
    DDD's /only/ action is to call a simulator. Since DDD isn't itself a
    simulator, there is nothing to simulate except a call to a
    simulator.
    It's recursion without a base case - a rookie error.
    HHH cannot successfully complete its task, because it never regains
    control after the first recursion. To return, it must abort the
    simulation, which means the simulation fails.

    void DDD()
    {
        HHH(DDD);
        return;
    }

    When 1 or more statements of DDD are correctly
    simulated by HHH then this correctly simulated
    DDD cannot possibly reach its own “return statement”.
    On what grounds can you persuade an extraordinarily sceptical
    readership that HHH 'correctly simulated' DDD?

    Any competent C programmer can see that
    the call from DDD to HHH(DDD) (its own simulator)
    is equivalent to infinite recursion.

    On 5/8/2025 8:30 PM, Keith Thompson wrote:
    Assuming that HHH(DDD) "correctly simulates" DDD, and assuming it
    does nothing else, your code would be equivalent to this:

          void DDD(void) {
              DDD();
              return;
          }

    Then the return statement (which is unnecessary anyway) will never be
    reached.  In practice, the program will likely crash due to a stack
    overflow, unless the compiler implements tail-call optimization, in
    which case the program might just run forever -- which also means the
    unnecessary return statement will never be reached.

    I had not intended to post again, but I feel the need to make
    a clarification.

    I acknowledged that the return statement would never be reached
    *given the assumption* that HHH correctly simulates DDD.  Given
    that assumption, a call to DDD() should be equivalent to a call
    to HHH(DDD).


    Yes and then I moved on the next tiny incremental
    step of my proof. Correctly simulated less than
    an infinite number of instructions does not help
    the simulated DDD to reach its "return statement"
    final halt state.

    Sure it does, as "the simulated DDD" has its behavior defined by
    UTM(DDD) not the partial simulation done withing HHH(DDD).

    Your attempt to redefine the behavior is just your lying by strawman,


    I did not address whether the assumption is valid.  I merely
    temporarily accepted it for the sake of discussion, just as I would
    accept that if I were ten feet tall I would bump my head against
    the ceiling in my house.

    The discussion I had with olcott did not reach the point of
    discussing *how* HHH could correctly simulate DDD, or whether it
    would even be logically possible for it to do so.

    Right this takes a glimmering of understanding of
    the x86 language. The x86 language it needed to
    get an exactly precise understanding of the control
    flow of DDD as directed graph state transition
    diagram.

    Right, and that says that DDD() will halt when correct simulated, as the
    x86 langugage doesn't allow stopping that analysis until it reaches a
    final state.

    That HHH stops its emulation doesn't affect the behavior as defined by
    the x86 language.


    I also did not
    address any issues of partial simulation, where olcott claims that
    HHH can "accurately simulate" only a few x86 instructions rather
    than simulating its entire execution.

    I did not participate in
    any discussion that would require knowledge of x86 machine or
    assembly code.  (I have no doubt that I could learn x86 machine
    and assembly code reasonably well if motivated to do so, but I am
    not so motivated.)

    What I acknowledged was barely more than "if HHH correctly simulates
    DDD, then HHH correctly simulates DDD".

    No much more than this you acknowledged that
    when DDD is correctly simulated by HHH that
    the simulated DDD cannot possibly reach its
    own "return statement" (final halt state)

    But it isn't.

    No partial simulation is a "correct simulation" as that term is define
    to mean the simulation of *ALL* the insturcitons of the program.

    Stopping before getting to the end is not going to the end.


    This is very important to computer science because
    non-termination is entirely measured by the impossibility
    of reaching a final halt state.

    Right, but only under the condition of unbounded running/simulating. Not reaching the end after only a given finite number of steps is NOT the definition of non-halting.


    From all of the we know that when HHH(DDD) reports
    on the behavior of its correct simulation of its input
    that it can correctly reject this input as not
    specifying a sequence of configurations that halts.


    No, as has been shown, it doesn't do a "correct simulation" and thus
    your premise is incorrect.

    The fact that you have also admitted that neither your HHH or DDD are
    actually programs as defined by the field but just "C functions" means
    you have admttted that you whole arguement is one giant Caterogry error.


    (My understanding from
    posts by others, whom I presume to be sufficiently knowledgeable,
    is that HHH logically cannot accurately simulate DDD.)  I would
    prefer that olcott refrain from using my words to support any of
    his arguments beyond the scope of what he and I directly discussed.


    Can we proceed to the next tiny increment of scope?

    When one or more statements of DDD are correctly
    simulated by HHH the correctly simulated DDD still
    cannot possibly reach its own "return" statement.

    Which is irrelevent, and each DDD of that set is a different input, as
    you can't actually emulate DDD past the call HHH until you have paired
    it with the exact HHH it calls, and since each of your HHHs are
    different partial emulators, and each of them is given the DDD that has
    been complete by being paired with them, every one of your cases is
    looking at a different input.


    This is trivial. When an infinite number of steps
    of correct simulation are not enough we can conclude
    that less than an infinite number of steps is also
    insufficient.

    WHich agian is a different input, so say nothing about the behavior of
    the input of the ones that did a finite simulation.


    That was the tiny increment of scope. Now I
    show why that was important.


    Because it is built on a lie and unsound logic.


    It is a fact that when HHH rejects its input
    DDD as specifying a non-halting sequence of
    configurations on the basis of the behavior
    of DDD correctly simulated by HHH, that HHH
    is necessary correct.


    Nope, it just shows you are a liar that ignores the errors pointed out
    in your logic, apparently because either you know you are lying and
    don't care, or ate just too stupid to understand the error or to be able
    to learn how to do it better.


    If you pay 100% complete attention and make
    sure to totally ignore mere rhetoric as any
    possible correct rebuttal you will find that

    every "rebuttal" either commits the strawman
    error changing my words and then rebutting the
    changed words or simply dodges by attempting
    to change the subject.

    No, if you would look, you would see that all you claims have been shown
    to be in error, and you have no actual basis to make your claims.


    There has been no actual rebuttal of these
    exact words:

    Sure there have been, you are just showing that you are just a
    pathological liar that is incapable of understanding the truth.


    It is a fact that when HHH rejects its input
    DDD as specifying a non-halting sequence of
    configurations on the basis of the behavior
    of DDD correctly simulated by HHH, that HHH
    is necessary correct.

    They always either change the words or change
    the subject.


    No, the problem is your words are just illogical gobbldy-gook based on equivocation, contradictions and lies.

    Until you actually handle the errors pointed out, it can be assumed that
    you have no actual logical basis to make you claims, and just don't care
    aobut that fact, as truth doesn't mean anything to you.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Fred. Zwarts@21:1/5 to All on Sat May 10 09:39:33 2025
    Op 09.mei.2025 om 17:39 schreef olcott:
    On 5/9/2025 3:41 AM, Fred. Zwarts wrote:
    Op 09.mei.2025 om 02:14 schreef olcott:
    On 5/8/2025 7:00 PM, Keith Thompson wrote:
    olcott <polcott333@gmail.com> writes:
    On 5/8/2025 6:45 PM, Keith Thompson wrote:
    olcott <polcott333@gmail.com> writes:
    On 5/8/2025 5:26 PM, Keith Thompson wrote:
    [...]
    I am more nearly an expert on C than on the Halting Problem.
    Watching olcott base his arguments on C *and getting C so badly >>>>>>>> wrong* leads me to think that he is largely ignorant of C (which is >>>>>>>> fine, most people are) and is unwilling to admit it.  Watching the >>>>>>>> reactions of actual experts to his mathematical arguments leads me >>>>>>>> to the same conclusion about his knowledge of the relevant fields >>>>>>>> of mathematics.


    If Halt7.c is not compiled with the Microsoft
    compiler then it will not produce the required
    object file type.

    The rest of the system has compiled under
    Linux. I haven't tried this in a few years.
    [...]
    So you normally compile your code using the 2017 version of
    Microsoft
    Visual Studio.
    I have no particular problem with that, but your failure to correct >>>>>> a number of C errors in your code is odd.

    As I already proved Microsoft reported no such errors.

    Microsoft's compiler did not report certain errors that any
    conforming C
    compiler is required by the standard to report.

    Microsoft's compiler *can* be invoked in a way that causes it to
    diagnose such errors, though it may or may not become fully conforming. >>>> I haven't used it lately, but a web search should tell you how to do
    that.

      I've pointed out several
    syntax errors and constraint violations; at least the syntax errors >>>>>> would be trivial to fix (even if your compiler is lax enough to
    fail to diagnose them).  Richard Heathfield has pointed out code
    that dereferences a null pointer.


    Mike corrected Richard on this.
    Those are stub functions intercepted
    by x86utm the operating system.

    You are using C, a language in which you appear to have little
    apparent expertise or willingness to learn, to demonstrate claims
    that, if true, would overturn ideas that have been generally accepted >>>>>> for decades.  Can you understand why I might decide that analyzing >>>>>> your claims is not worth my time?


    I learned C back when K & R was the standard.

    So did I.  I've kept up with the language as it has changed.

    void DDD()
    {
       HHH(DDD);
       return;
    }

    We don't need to look at any of my code for me
    to totally prove my point.

    Great.  Then why do you keep posting code?  Or is the above DDD()
    function not included in "any of my code")?

                                For example when >>>>> the above DDD is correctly simulated by HHH
    this simulated DDD cannot possibly reach its own
    "return" instruction.

    That's too vague for me to comment.


    Do you know what a C language interpreter is?
    I actually do this at the x86 machine code level
    yet most people don't have a clue about that.

    _DDD()
    [00002172] 55         push ebp      ; housekeeping
    [00002173] 8bec       mov ebp,esp   ; housekeeping
    [00002175] 6872210000 push 00002172 ; push DDD
    [0000217a] e853f4ffff call 000015d2 ; call HHH(DDD)
    [0000217f] 83c404     add esp,+04
    [00002182] 5d         pop ebp
    [00002183] c3         ret
    Size in bytes:(0018) [00002183]

    The above hypothetical HHH emulates the first four
    instructions of DDD. This sequence repeats until a
    OOM error.



    Only in your dream, because HHH has code to abort and after that abort
    the program halts without OOM error.
    Every competent C programmer will understand that.

    The above set of hypothetical HHH instances correctly
    simulates 1 or more instructions of DDD including
    its call to HHH(DDD). This does include HHH emulating
    itself emulating DDD.

    If you think it is impossible for HHH to emulate itself
    emulating DDD then you don't have a clue about cooperative
    multi-tasking and differing process contexts.


    Even a beginner can see that HHH cannot possibly simulate itself
    correctly. So, your ad hominem attack misses the target.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Fred. Zwarts@21:1/5 to All on Sat May 10 09:37:57 2025
    Op 09.mei.2025 om 17:29 schreef olcott:
    On 5/9/2025 3:33 AM, Fred. Zwarts wrote:
    Op 08.mei.2025 om 21:42 schreef olcott:
    On 5/8/2025 2:04 PM, Fred. Zwarts wrote:
    Op 08.mei.2025 om 19:00 schreef olcott:
    On 5/8/2025 11:14 AM, Mike Terry wrote:
    On 08/05/2025 06:33, Richard Heathfield wrote:
    On 08/05/2025 06:22, olcott wrote:
    On 5/7/2025 11:09 PM, Richard Heathfield wrote:
    On 08/05/2025 02:20, olcott wrote:

    <snip>

    Does there exist an HHH such that DDD emulated by
    HHH according to the rules of the C programming language

    Let's take a look.

    The file is 1373 lines long, but don't worry, because I plan to >>>>>>>>> stop at HHH's first departure from the rules of the C
    programming language (or at least the first departure I spot). >>>>>>>>>
    Turn in your songbook if you will to:

    void CopyMachineCode(u8* source, u8** destination)
    {
       u32 size;
       for (size = 0; source[size] != 0xcc; size++)
         ;
       *destination = (u8*) Allocate(size);
       for (u32 N = 0; N < size; N++)
       {
         Output("source[N]: ", source[N]);
         *destination[N] = source[N];
       }
       ((u32*)*destination)[-1] = size;
       Output("CopyMachineCode destination[-1]: ",
    ((u32*)*destination) [-1]);
       Output("CopyMachineCode destination[-2]: ",
    ((u32*)*destination) [-2]);
    };


    deprecated.

    It's not just deprecated. It's hopelessly broken.

    Everybody makes mistakes, and one slip would be all very well,
    but you make essentially the same mistake --- writing to memory
    that your program doesn't own --- no fewer than four times in a
    single function.

    I'll ignore the syntax error (a null statement at file scope is >>>>>>>>> a rookie error).

    Instead, let's jump straight to this line:

       *destination = (u8*) Allocate(size);

    On line 79 of my copy of the code, we find:

    u32* Allocate(u32 size) { return 0; }

    In C, 0 is a null pointer constant, so Allocate returns a null >>>>>>>>> pointer constant... which is fine as long as you don't try to >>>>>>>>> deref it. So now *destination is NULL.

    We go on:

       for (u32 N = 0; N < size; N++)
       {
         Output("source[N]: ", source[N]);
         *destination[N] = source[N];
       }

    *destination[N] is our first big problem (we're ignoring syntax >>>>>>>>> errors, remember). destination is a null pointer, so
    destination[N] derefs a null pointer.

    That's a fail. 0/10, D-, go away and write it again. And you / >>>>>>>>> dare/ to impugn other people's C knowledge! Crack a book, for >>>>>>>>> pity's sake.


    If you can't even understand what is essentially
    an infinite recursive relationship between two functions
    except that one function can terminate the other then
    you don't have a clue about the essence of my system.

    If you can't even understand why it's a stupendously bad idea to >>>>>>> dereference a null pointer, you have no business trying to teach >>>>>>> anyone anything about C.

    Your code is the work of a programmer so hideously incompetent
    that 'programmer' is scarcely a fair word to use.

    When you publish code like that, to even *think* about
    denigrating other people's C knowledge is the height of arrogant >>>>>>> hypocrisy.

    One problem here is that you don't understand how PO's code works. >>>>>> That's to be expected, and PO's response ought to be to explain it >>>>>> so that you understand.  Instead he goes off on one of his rants, >>>>>> so blamewise it's really down to PO.

    PO's halt7.c is compiled (it is not linked), then the obj file is
    fed as input to his x87utm.exe which is a kind of x86 obj code
    execution environment.  x87utm provides a number of primative
    calls that halt7.c code can make, such as Allocate(), used to
    allocate a block of memory for use in halt7.c.  Within halt7.c
    code calls an Allocate() function, and x86utm intercepts that and
    performs the function internally, then jumps the calling code in
    halt7.c over the Allocate call where it continues as normal.  The >>>>>> call never goes to the implementation of Allocate in halt7.c, so
    the null pointer dereferencing does not actually occur.  There are >>>>>> a whole bunch of similar x86utm primitive operations that work in
    the same way.

    PO should have said all that, not me, but it seems he's not
    interested in genuine communication.

    Mike.



    Thanks for those details, they are correct.
    I try to stay focused on the key essence gist
    of the issue and never delve down into the weeds.

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

    The key gist of the issue (no weeds involved)
    is that HHH emulated DD according to the rules
    of the x86 language

    <MIT Professor Sipser agreed to ONLY these verbatim words 10/13/2022> >>>>>      *until H correctly determines that*
         *its simulated D would never stop running unless aborted*
    </MIT Professor Sipser agreed to ONLY these verbatim words 10/13/2022> >>>>
    And since H does not correctly determine that its simulated D would
    never stop running unless aborted, it is a vacuous statement and
    Sipser's agreement does not tell anything.


    That is counter factual as any fully qualified
    C programmer will tell you.

    All fully qualified C programmers told me that it is not counter-
    factual. But I suppose in your language counter-factual means 'not in
    my dreams'.


    void DDD()
    {
       HHH(DDD);
       return;
    }

    DDD correctly simulated by any HHH cannot
    possibly reach its own simulated "return"
    instruction.


    Another vacuous statement, as HHH cannot correctly simulate DDD which
    includes HHH itself.


    It is stipulated that HHH does simulate itself
    simulating DDD. It is also conclusively proven in
    code that you cannot understand.


    Ad hminem attack. No rebuttal. It still stands: vacuous statement. No
    correct simulation is possible.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Fred. Zwarts@21:1/5 to All on Sat May 10 10:05:32 2025
    Op 09.mei.2025 om 17:48 schreef olcott:
    On 5/9/2025 3:47 AM, Fred. Zwarts wrote:
    Op 09.mei.2025 om 04:23 schreef Keith Thompson:
    Richard Damon <richard@damon-family.org> writes:
    On 5/8/25 7:53 PM, olcott wrote:
    [...]
    void DDD()
    {
        HHH(DDD);
        return;
    }
    We don't need to look at any of my code for me
    to totally prove my point. For example when
    the above DDD is correctly simulated by HHH
    this simulated DDD cannot possibly reach its own
    "return" instruction.

    And thus not correctly simulatd.

    Sorry, there is no "OS Exemption" to correct simulaiton;.

    Perhaps I've missed something.  I don't see anything in the above that
    implies that HHH does not correctly simulate DDD.  Richard, you've read >>> far more of olcott's posts than I have, so perhaps you can clarify.

    If we assume that HHH correctly simulates DDD, then the above code is
    equivalent to:

         void DDD()
         {
           DDD();
           return;
         }

    which is a trivial case of infinite recursion.  As far as I can tell,
    assuming that DDD() is actually called at some point, neither the
    outer execution of DDD nor the nested (simulated) execution of DDD
    can reach the return statement.  Infinite recursion might either
    cause a stack overflow and a probable program crash, or an unending
    loop if the compiler implements tail call optimization.

    I see no contradiction, just an uninteresting case of infinite
    recursion, something that's well understood by anyone with a
    reasonable level of programming experience.  (And it has nothing to
    do with the halting problem as far as I can tell, though of course
    olcott has discussed the halting problem elsewhere.)

    Richard, what am I missing?


    What you are missing is that the next step of olcott is to say that
    when he uses the 'exact same HHH, with only some extra code to abort
    the simulation', it is still an infinite recursion. He does not
    understand that adding the abort code makes the behaviour
    fundamentally different.

    When 1 or more statements of DDD are correctly simulated
    by HHH this correctly simulated DDD cannot possibly reach
    its own "return statement" final halt state.

    You see? Exactly what I predicted. Now he uses another HHH that does not correctly simulate the whole input, but only makes a start. He will
    still hold his claim that there is an infinite recursion and may quote a
    C expert, Keith Thompson, to support his claim. The only way out is that
    Keith Thompson explicitly explains that his example only holds for the simulator that does not stop after 1 or more statements.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Fred. Zwarts@21:1/5 to All on Sat May 10 09:59:34 2025
    Op 09.mei.2025 om 16:52 schreef olcott:
    On 5/8/2025 11:22 PM, Keith Thompson wrote:
    Richard Damon <news.x.richarddamon@xoxy.net> writes:
    On 5/8/25 10:23 PM, Keith Thompson wrote:
    Richard Damon <richard@damon-family.org> writes:
    On 5/8/25 7:53 PM, olcott wrote:
    [...]
    void DDD()
    {
         HHH(DDD);
         return;
    }
    We don't need to look at any of my code for me
    to totally prove my point. For example when
    the above DDD is correctly simulated by HHH
    this simulated DDD cannot possibly reach its own
    "return" instruction.

    And thus not correctly simulatd.

    Sorry, there is no "OS Exemption" to correct simulaiton;.
    Perhaps I've missed something.  I don't see anything in the above
    that
    implies that HHH does not correctly simulate DDD.  Richard, you've read >>>> far more of olcott's posts than I have, so perhaps you can clarify.
    If we assume that HHH correctly simulates DDD, then the above code
    is
    equivalent to:
          void DDD()
          {
            DDD();
            return;
          }
    which is a trivial case of infinite recursion.  As far as I can
    tell,
    assuming that DDD() is actually called at some point, neither the
    outer execution of DDD nor the nested (simulated) execution of DDD
    can reach the return statement.  Infinite recursion might either
    cause a stack overflow and a probable program crash, or an unending
    loop if the compiler implements tail call optimization.
    I see no contradiction, just an uninteresting case of infinite
    recursion, something that's well understood by anyone with a
    reasonable level of programming experience.  (And it has nothing to
    do with the halting problem as far as I can tell, though of course
    olcott has discussed the halting problem elsewhere.)
    Richard, what am I missing?


    You are missing the equivocation he is using on what is "DDD()"

    First, he tries to define it as just the code of the function, and not
    including any of the code that it calls. He does this so all the
    various HHH that he talks about are given the "same" input.

    Then he tries to also say that when those functions look at DDD, they
    can follow the memory chain to the functions that it calls, that
    weren't actually part of the input.

    This means the "behavior" of his input isn't actually defined by the
    input.

    I haven't seen any of that in the posts to which I've recently replied
    (and I absolutely do not have the patience to read everything he's
    posted here).

    What I've seen in the articles to which I've recently replied has been
    just a strangely little C function and some claims about simulation.
    Viewed in isolation, I don't think any of that (again, ignoring the vast
    majority of what he's posted in this newsgroup) seems contradictory so
    far.


    When viewed in isolation (as intended) there is no basis
    for rebuttal. Richard refers to extraneous irrelevant
    points in an attempt to deflect the conversation away
    from the simple truth:

    void DDD()
    {
      HHH(DDD);
      return;
    }

     "..DDD correctly simulated by HHH cannot
      possibly REACH its own "return" instruction."

    Self contradicting sentence. A correct simulation will return to DDD
    after which DDD reaches its 'return'. Only if HHH is incorrect and does
    not reach its own 'return', the return of DDD will not be reached.
    So, a correct simulation does not exist and this becomes a vacuous
    statement.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Fred. Zwarts@21:1/5 to All on Sat May 10 09:53:35 2025
    Op 09.mei.2025 om 18:11 schreef olcott:
    On 5/9/2025 4:25 AM, Fred. Zwarts wrote:
    Op 09.mei.2025 om 01:48 schreef olcott:
    On 5/8/2025 6:35 PM, Richard Damon wrote:
    On 5/8/25 1:00 PM, olcott wrote:
    On 5/8/2025 11:14 AM, Mike Terry wrote:
    On 08/05/2025 06:33, Richard Heathfield wrote:
    On 08/05/2025 06:22, olcott wrote:
    On 5/7/2025 11:09 PM, Richard Heathfield wrote:
    On 08/05/2025 02:20, olcott wrote:

    <snip>

    Does there exist an HHH such that DDD emulated by
    HHH according to the rules of the C programming language

    Let's take a look.

    The file is 1373 lines long, but don't worry, because I plan to >>>>>>>>> stop at HHH's first departure from the rules of the C
    programming language (or at least the first departure I spot). >>>>>>>>>
    Turn in your songbook if you will to:

    void CopyMachineCode(u8* source, u8** destination)
    {
       u32 size;
       for (size = 0; source[size] != 0xcc; size++)
         ;
       *destination = (u8*) Allocate(size);
       for (u32 N = 0; N < size; N++)
       {
         Output("source[N]: ", source[N]);
         *destination[N] = source[N];
       }
       ((u32*)*destination)[-1] = size;
       Output("CopyMachineCode destination[-1]: ",
    ((u32*)*destination) [-1]);
       Output("CopyMachineCode destination[-2]: ",
    ((u32*)*destination) [-2]);
    };


    deprecated.

    It's not just deprecated. It's hopelessly broken.

    Everybody makes mistakes, and one slip would be all very well,
    but you make essentially the same mistake --- writing to memory
    that your program doesn't own --- no fewer than four times in a
    single function.

    I'll ignore the syntax error (a null statement at file scope is >>>>>>>>> a rookie error).

    Instead, let's jump straight to this line:

       *destination = (u8*) Allocate(size);

    On line 79 of my copy of the code, we find:

    u32* Allocate(u32 size) { return 0; }

    In C, 0 is a null pointer constant, so Allocate returns a null >>>>>>>>> pointer constant... which is fine as long as you don't try to >>>>>>>>> deref it. So now *destination is NULL.

    We go on:

       for (u32 N = 0; N < size; N++)
       {
         Output("source[N]: ", source[N]);
         *destination[N] = source[N];
       }

    *destination[N] is our first big problem (we're ignoring syntax >>>>>>>>> errors, remember). destination is a null pointer, so
    destination[N] derefs a null pointer.

    That's a fail. 0/10, D-, go away and write it again. And you / >>>>>>>>> dare/ to impugn other people's C knowledge! Crack a book, for >>>>>>>>> pity's sake.


    If you can't even understand what is essentially
    an infinite recursive relationship between two functions
    except that one function can terminate the other then
    you don't have a clue about the essence of my system.

    If you can't even understand why it's a stupendously bad idea to >>>>>>> dereference a null pointer, you have no business trying to teach >>>>>>> anyone anything about C.

    Your code is the work of a programmer so hideously incompetent
    that 'programmer' is scarcely a fair word to use.

    When you publish code like that, to even *think* about
    denigrating other people's C knowledge is the height of arrogant >>>>>>> hypocrisy.

    One problem here is that you don't understand how PO's code works. >>>>>> That's to be expected, and PO's response ought to be to explain it >>>>>> so that you understand.  Instead he goes off on one of his rants, >>>>>> so blamewise it's really down to PO.

    PO's halt7.c is compiled (it is not linked), then the obj file is
    fed as input to his x87utm.exe which is a kind of x86 obj code
    execution environment.  x87utm provides a number of primative
    calls that halt7.c code can make, such as Allocate(), used to
    allocate a block of memory for use in halt7.c.  Within halt7.c
    code calls an Allocate() function, and x86utm intercepts that and
    performs the function internally, then jumps the calling code in
    halt7.c over the Allocate call where it continues as normal.  The >>>>>> call never goes to the implementation of Allocate in halt7.c, so
    the null pointer dereferencing does not actually occur.  There are >>>>>> a whole bunch of similar x86utm primitive operations that work in
    the same way.

    PO should have said all that, not me, but it seems he's not
    interested in genuine communication.

    Mike.



    Thanks for those details, they are correct.
    I try to stay focused on the key essence gist
    of the issue and never delve down into the weeds.

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

    The key gist of the issue (no weeds involved)
    is that HHH emulated DD according to the rules
    of the x86 language

    Excpet, as you have admitted, your DD isn't a program (just a C
    funciton), and thus not a proper input for a halt decider, which by
    definiton must be a program.

    Your C function can't be a program, as you have specifically said
    that the function, and only the funciton is the input, and programs
    must include in them all their code, so since the code of HHH isn't
    included in DD or the input representing it, it isn't a program, and
    thus not a proper input


    <MIT Professor Sipser agreed to ONLY these verbatim words 10/13/2022> >>>>>      *until H correctly determines that*
         *its simulated D would never stop running unless aborted*
    </MIT Professor Sipser agreed to ONLY these verbatim words 10/13/2022> >>>>>

    But that statement implies, as required that H be a halt decider and
    D to be a proper input to one, neither of which are satisfied, as
    you have admitte

    When HHH(DD) computes the actual mapping from
    its actual input to the actual behavior this
    it specifies it must be according to the rules
    of the x86 language.

    But it doesn't, as it doesn't correctly follow the behavior of the
    x86 language, as that requires HHH to follow the call instruction,
    which it can not do as the required (and accepted by your) condition
    that the decider is a pure function, which means it can only look at
    its input, which does not include the code which the call points to.


    int sum(int x, int y) { return x + y; }
    sum is required to compute the mapping
    from its input into its return value
    according to the rules of arithmetic.

    Right, and a halt decider is required to (try to) compute the
    mapping from the input (which needs to be the representation of a
    program) to the results of running that program (since that is the
    DEFINITION of Halt Deciding).


    This means that requiring sum(3,2) to return
    the sum of 5 + 7 is an incorrect requirement.

    Right, just as HHH trying to claim that its answer is based on the
    fact that it can't reach the end of its simulation of the input
    isn't the correct requirement for HHH.


    Like sum(3,2) HHH(DD) is only allowed to report
    on the behavior that its input actually specifies.


    Right, which is Halting, since that behavior is DEFINED to be the
    behavior of running the program the input represents.


    Just like requiring sum(3,2) to report on the sum of 5 + 7
    a value other than its input specifies HHH IS NOT ALLOWED
    to report on anything other than the behavior that its input
    specifies.

    Indeed, therefore HHH should process the actual input: including the
    HHH that aborts, not the hypothetical HHH that does not abort.

    HHH cannot say to itself I have no need to abort
    because I will abort later on. It either aborts
    as soon as it recognizes the non terminating
    pattern specified by itself input or no HHH ever aborts.

    HHH cannot recognise a non terminating pattern if it is not in the
    input. The input specifies a program that contains code for a condition
    abort. HHH must take that into account to be correct.
    HHH cannot be correct. It cannot say 'I do a wild guess that it does not
    halt, so I abort'.


    Sum(3,2) should process the actual input, not the hypothetical input 5
    and 7.
    HHH should process all relevant input, including the part with the
    conditional abort, not only the first part of the input.
    Sum(3,2) should process all relevant input, not only the 2 and ignore
    the 3.
    So, go and fix HHH.

    void DDD()
    {
      HHH(DDD);
      return;
    }

    When 1 or more statements of DDD are correctly
    simulated by HHH then this correctly simulated
    DDD cannot possibly reach its own “return statement”.
    (final halt state).

    Yes, we know that HHH fails to reach the reachable end. It makes no
    sense to repeat this failure of HHH.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Fred. Zwarts@21:1/5 to All on Sat May 10 10:30:38 2025
    Op 10.mei.2025 om 07:41 schreef olcott:
    On 5/10/2025 12:27 AM, wij wrote:
    On Sat, 2025-05-10 at 00:19 -0500, olcott wrote:
    On 5/10/2025 12:13 AM, wij wrote:
    On Sat, 2025-05-10 at 00:06 -0500, olcott wrote:>>
    When mathematical mapping is properly understood
    it will be known that functions computed by models
    of computation must transform their input into
    outputs according to the specific steps of an
    algorithm.

    _DDD()
    [00002172] 55         push ebp      ; housekeeping
    [00002173] 8bec       mov ebp,esp   ; housekeeping
    [00002175] 6872210000 push 00002172 ; push DDD
    [0000217a] e853f4ffff call 000015d2 ; call HHH(DDD)
    [0000217f] 83c404     add esp,+04
    [00002182] 5d         pop ebp
    [00002183] c3         ret
    Size in bytes:(0018) [00002183]

    For example HHH(DDD) only correctly map to the
    behavior that its input actually specifies by correctly
    emulating DDD according to the rules of the x86 language.

    This causes the first four instructions of DDD
    to be emulated followed by HHH emulating itself
    emulating the first three instructions of DDD.

    It is right at this recursive simulation just
    before HHH(DDD) is called again that HHH recognizes
    the repeating pattern and rejects DDD.

    Yes, but you still did not answer the question: Is POOH exactly
    about HP?


      >>>>> H(D)=1 if D() halt.
      >>>>> H(D)=0 if D() not halt.

    Right now it is mostly about proving the
    above requirements are is mistaken.


    Why is the requirement invalid?

    H(D)=1 if D() halt.
    H(D)=0 if D() not halt.


    The notion that the behavior specified by the finite
    string input to a simulating termination analyzer
    does sometimes differ from the behavior of its direct
    execution. It is a provably different sequence of steps.



    Only when the simulation ignores the most relevant part of the input and
    halts before it can see it. Even then the only difference is that all
    steps that are simulated are exactly the same as the direct execution
    and there is no reason to think that the behaviour specified in the
    input would be different in the following steps.
    It seems difficult for you to accept verifiable facts when they disturb
    your dreams.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Fred. Zwarts@21:1/5 to All on Sat May 10 10:22:45 2025
    Op 10.mei.2025 om 05:24 schreef olcott:
    On 5/9/2025 10:13 PM, wij wrote:
    On Fri, 2025-05-09 at 19:40 -0700, Keith Thompson wrote:
    olcott <polcott333@gmail.com> writes:
    On 5/9/2025 4:40 PM, Richard Heathfield wrote:
    On 09/05/2025 21:15, olcott wrote:
    On 5/9/2025 3:07 PM, Richard Heathfield wrote:
    On 09/05/2025 20:46, olcott wrote:
    We have not begun to get into any of those points.
    We are only asking can DDD correctly simulated
    by any HHH that can exist ever reach its own
    "return" instruction.

    DDD can't be correctly simulated by itself (which is effectively >>>>>>> what you're trying to do when you fire up the simulation from
    inside DDD).

    How the Hell did you twist my words to say that?
    I haven't touched your words. What I have done is to observe that
    DDD's /only/ action is to call a simulator. Since DDD isn't itself a >>>>> simulator, there is nothing to simulate except a call to a
    simulator.
    It's recursion without a base case - a rookie error.
    HHH cannot successfully complete its task, because it never regains
    control after the first recursion. To return, it must abort the
    simulation, which means the simulation fails.

    void DDD()
    {
        HHH(DDD);
        return;
    }

    When 1 or more statements of DDD are correctly
    simulated by HHH then this correctly simulated
    DDD cannot possibly reach its own “return statement”.
    On what grounds can you persuade an extraordinarily sceptical
    readership that HHH 'correctly simulated' DDD?

    Any competent C programmer can see that
    the call from DDD to HHH(DDD) (its own simulator)
    is equivalent to infinite recursion.

    On 5/8/2025 8:30 PM, Keith Thompson wrote:
    Assuming that HHH(DDD) "correctly simulates" DDD, and assuming it
    does nothing else, your code would be equivalent to this:

          void DDD(void) {
              DDD();
              return;
          }

    Then the return statement (which is unnecessary anyway) will never be >>>>> reached.  In practice, the program will likely crash due to a stack >>>>> overflow, unless the compiler implements tail-call optimization, in
    which case the program might just run forever -- which also means the >>>>> unnecessary return statement will never be reached.

    I had not intended to post again, but I feel the need to make
    a clarification.

    I acknowledged that the return statement would never be reached
    *given the assumption* that HHH correctly simulates DDD.  Given
    that assumption, a call to DDD() should be equivalent to a call
    to HHH(DDD).

    I did not address whether the assumption is valid.  I merely
    temporarily accepted it for the sake of discussion, just as I would
    accept that if I were ten feet tall I would bump my head against
    the ceiling in my house.

    The discussion I had with olcott did not reach the point of
    discussing *how* HHH could correctly simulate DDD, or whether it
    would even be logically possible for it to do so.  I also did not
    address any issues of partial simulation, where olcott claims that
    HHH can "accurately simulate" only a few x86 instructions rather
    than simulating its entire execution.  I did not participate in
    any discussion that would require knowledge of x86 machine or
    assembly code.  (I have no doubt that I could learn x86 machine
    and assembly code reasonably well if motivated to do so, but I am
    not so motivated.)

    What I acknowledged was barely more than "if HHH correctly simulates
    DDD, then HHH correctly simulates DDD".  (My understanding from
    posts by others, whom I presume to be sufficiently knowledgeable,
    is that HHH logically cannot accurately simulate DDD.)  I would
    prefer that olcott refrain from using my words to support any of
    his arguments beyond the scope of what he and I directly discussed.

    Don't know why you people stick on the 'simulation' stuff so long.
    The HP simply asks for such an H (in function form. POOH does not
    resemble TM):
      H(D)=1 if D() halt.
      H(D)=0 if D() not halt.

    My invention of a simulating termination
    analyzer shows exactly how to compute the
    mapping that the input that HHH(DD) specifies
    into a correct answer for the halting problem's
    otherwise impossible input.
    And the input specifies a program that aborts and halts, but HHH ignores
    that, so its mapping is incorrect.
    It seems to difficult for you to accept verifiable facts hen they
    disturb your dreams.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Fred. Zwarts@21:1/5 to All on Sat May 10 10:18:57 2025
    Op 10.mei.2025 om 05:13 schreef olcott:
    On 5/9/2025 9:40 PM, Keith Thompson wrote:
    olcott <polcott333@gmail.com> writes:
    On 5/9/2025 4:40 PM, Richard Heathfield wrote:
    On 09/05/2025 21:15, olcott wrote:
    On 5/9/2025 3:07 PM, Richard Heathfield wrote:
    On 09/05/2025 20:46, olcott wrote:
    We have not begun to get into any of those points.
    We are only asking can DDD correctly simulated
    by any HHH that can exist ever reach its own
    "return" instruction.

    DDD can't be correctly simulated by itself (which is effectively
    what you're trying to do when you fire up the simulation from
    inside DDD).

    How the Hell did you twist my words to say that?
    I haven't touched your words. What I have done is to observe that
    DDD's /only/ action is to call a simulator. Since DDD isn't itself a
    simulator, there is nothing to simulate except a call to a
    simulator.
    It's recursion without a base case - a rookie error.
    HHH cannot successfully complete its task, because it never regains
    control after the first recursion. To return, it must abort the
    simulation, which means the simulation fails.

    void DDD()
    {
        HHH(DDD);
        return;
    }

    When 1 or more statements of DDD are correctly
    simulated by HHH then this correctly simulated
    DDD cannot possibly reach its own “return statement”.
    On what grounds can you persuade an extraordinarily sceptical
    readership that HHH 'correctly simulated' DDD?

    Any competent C programmer can see that
    the call from DDD to HHH(DDD) (its own simulator)
    is equivalent to infinite recursion.

    On 5/8/2025 8:30 PM, Keith Thompson wrote:
    Assuming that HHH(DDD) "correctly simulates" DDD, and assuming it
    does nothing else, your code would be equivalent to this:

          void DDD(void) {
              DDD();
              return;
          }

    Then the return statement (which is unnecessary anyway) will never be
    reached.  In practice, the program will likely crash due to a stack
    overflow, unless the compiler implements tail-call optimization, in
    which case the program might just run forever -- which also means the
    unnecessary return statement will never be reached.

    I had not intended to post again, but I feel the need to make
    a clarification.

    I acknowledged that the return statement would never be reached
    *given the assumption* that HHH correctly simulates DDD.  Given
    that assumption, a call to DDD() should be equivalent to a call
    to HHH(DDD).


    Yes and then I moved on the next tiny incremental> step of my proof. Correctly simulated less than
    an infinite number of instructions does not help
    the simulated DDD to reach its "return statement"
    final halt state.


    The word 'tiny' is misleading. It is a fundamental change. Now HHH does
    no longer do a correct simulation, because it ignores the input part of
    the input that specifies that HHH simulates only a *finite* number of steps.


    I did not address whether the assumption is valid.  I merely
    temporarily accepted it for the sake of discussion, just as I would
    accept that if I were ten feet tall I would bump my head against
    the ceiling in my house.

    The discussion I had with olcott did not reach the point of
    discussing *how* HHH could correctly simulate DDD, or whether it
    would even be logically possible for it to do so.

    Right this takes a glimmering of understanding of
    the x86 language. The x86 language it needed to
    get an exactly precise understanding of the control
    flow of DDD as directed graph state transition
    diagram.

    Yes and it takes into account that the input contains x86 instruction to
    abort and halt.


    I also did not
    address any issues of partial simulation, where olcott claims that
    HHH can "accurately simulate" only a few x86 instructions rather
    than simulating its entire execution.

    I did not participate in
    any discussion that would require knowledge of x86 machine or
    assembly code.  (I have no doubt that I could learn x86 machine
    and assembly code reasonably well if motivated to do so, but I am
    not so motivated.)

    What I acknowledged was barely more than "if HHH correctly simulates
    DDD, then HHH correctly simulates DDD".

    No much more than this you acknowledged that
    when DDD is correctly simulated by HHH that
    the simulated DDD cannot possibly reach its
    own "return statement" (final halt state)

    But when that HHH ignores an important part of its input, it is no
    longer correct.


    This is very important to computer science because
    non-termination is entirely measured by the impossibility
    of reaching a final halt state.

    From all of the we know that when HHH(DDD) reports
    on the behavior of its correct simulation of its input
    that it can correctly reject this input as not
    specifying a sequence of configurations that halts.

    It can only report that it aborted the simulation prematurely, without analysing the full input.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Fred. Zwarts@21:1/5 to All on Sat May 10 10:25:28 2025
    Op 10.mei.2025 om 06:13 schreef olcott:
    On 5/9/2025 10:53 PM, Richard Damon wrote:
    On 5/9/25 11:24 PM, olcott wrote:
    On 5/9/2025 10:13 PM, wij wrote:
    On Fri, 2025-05-09 at 19:40 -0700, Keith Thompson wrote:
    olcott <polcott333@gmail.com> writes:
    On 5/9/2025 4:40 PM, Richard Heathfield wrote:
    On 09/05/2025 21:15, olcott wrote:
    On 5/9/2025 3:07 PM, Richard Heathfield wrote:
    On 09/05/2025 20:46, olcott wrote:
    We have not begun to get into any of those points.
    We are only asking can DDD correctly simulated
    by any HHH that can exist ever reach its own
    "return" instruction.

    DDD can't be correctly simulated by itself (which is effectively >>>>>>>>> what you're trying to do when you fire up the simulation from >>>>>>>>> inside DDD).

    How the Hell did you twist my words to say that?
    I haven't touched your words. What I have done is to observe that >>>>>>> DDD's /only/ action is to call a simulator. Since DDD isn't itself a >>>>>>> simulator, there is nothing to simulate except a call to a
    simulator.
    It's recursion without a base case - a rookie error.
    HHH cannot successfully complete its task, because it never regains >>>>>>> control after the first recursion. To return, it must abort the
    simulation, which means the simulation fails.

    void DDD()
    {
        HHH(DDD);
        return;
    }

    When 1 or more statements of DDD are correctly
    simulated by HHH then this correctly simulated
    DDD cannot possibly reach its own “return statement”.
    On what grounds can you persuade an extraordinarily sceptical
    readership that HHH 'correctly simulated' DDD?

    Any competent C programmer can see that
    the call from DDD to HHH(DDD) (its own simulator)
    is equivalent to infinite recursion.

    On 5/8/2025 8:30 PM, Keith Thompson wrote:
    Assuming that HHH(DDD) "correctly simulates" DDD, and assuming it >>>>>>> does nothing else, your code would be equivalent to this:

          void DDD(void) {
              DDD();
              return;
          }

    Then the return statement (which is unnecessary anyway) will
    never be
    reached.  In practice, the program will likely crash due to a stack >>>>>>> overflow, unless the compiler implements tail-call optimization, in >>>>>>> which case the program might just run forever -- which also means >>>>>>> the
    unnecessary return statement will never be reached.

    I had not intended to post again, but I feel the need to make
    a clarification.

    I acknowledged that the return statement would never be reached
    *given the assumption* that HHH correctly simulates DDD.  Given
    that assumption, a call to DDD() should be equivalent to a call
    to HHH(DDD).

    I did not address whether the assumption is valid.  I merely
    temporarily accepted it for the sake of discussion, just as I would
    accept that if I were ten feet tall I would bump my head against
    the ceiling in my house.

    The discussion I had with olcott did not reach the point of
    discussing *how* HHH could correctly simulate DDD, or whether it
    would even be logically possible for it to do so.  I also did not
    address any issues of partial simulation, where olcott claims that
    HHH can "accurately simulate" only a few x86 instructions rather
    than simulating its entire execution.  I did not participate in
    any discussion that would require knowledge of x86 machine or
    assembly code.  (I have no doubt that I could learn x86 machine
    and assembly code reasonably well if motivated to do so, but I am
    not so motivated.)

    What I acknowledged was barely more than "if HHH correctly simulates >>>>> DDD, then HHH correctly simulates DDD".  (My understanding from
    posts by others, whom I presume to be sufficiently knowledgeable,
    is that HHH logically cannot accurately simulate DDD.)  I would
    prefer that olcott refrain from using my words to support any of
    his arguments beyond the scope of what he and I directly discussed.

    Don't know why you people stick on the 'simulation' stuff so long.
    The HP simply asks for such an H (in function form. POOH does not
    resemble TM):
      H(D)=1 if D() halt.
      H(D)=0 if D() not halt.

    My invention of a simulating termination
    analyzer shows exactly how to compute the
    mapping that the input that HHH(DD) specifies
    into a correct answer for the halting problem's
    otherwise impossible input.

    All rebuttals are based on failing to compute
    this mapping correctly.


    The problem is you don't compute the correct mapping, as you LIE by
    changing the defined mapping with your strawman,

    Termination Analyzer, BY THEIR DEFINITION, determine if the program
    represented by their input will halt when run. PERIOD.


    When definitions contradict each other at
    least one of them is wrong.

    HHH(DDD) computes the mapping from its input finite
    string according to the rules of the x86 language
    thus obtains the actual behavior THAT THIS INPUT STRING SPECIFIES.

    But ignores the most important part of the input that specifies that the program aborts and halt. So, the mapping is incorrect. A correct mapping
    uses the full input, not only an irrelevant part of the finite string.
    It seems that you are unable to accept verifiable facts when they
    disturb your dreams.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Fred. Zwarts@21:1/5 to All on Sat May 10 10:34:30 2025
    Op 10.mei.2025 om 06:21 schreef olcott:
    On 5/9/2025 10:31 PM, Richard Damon wrote:
    On 5/9/25 11:13 PM, wij wrote:
    On Fri, 2025-05-09 at 19:40 -0700, Keith Thompson wrote:
    olcott <polcott333@gmail.com> writes:
    On 5/9/2025 4:40 PM, Richard Heathfield wrote:
    On 09/05/2025 21:15, olcott wrote:
    On 5/9/2025 3:07 PM, Richard Heathfield wrote:
    On 09/05/2025 20:46, olcott wrote:
    We have not begun to get into any of those points.
    We are only asking can DDD correctly simulated
    by any HHH that can exist ever reach its own
    "return" instruction.

    DDD can't be correctly simulated by itself (which is effectively >>>>>>>> what you're trying to do when you fire up the simulation from
    inside DDD).

    How the Hell did you twist my words to say that?
    I haven't touched your words. What I have done is to observe that
    DDD's /only/ action is to call a simulator. Since DDD isn't itself a >>>>>> simulator, there is nothing to simulate except a call to a
    simulator.
    It's recursion without a base case - a rookie error.
    HHH cannot successfully complete its task, because it never regains >>>>>> control after the first recursion. To return, it must abort the
    simulation, which means the simulation fails.

    void DDD()
    {
        HHH(DDD);
        return;
    }

    When 1 or more statements of DDD are correctly
    simulated by HHH then this correctly simulated
    DDD cannot possibly reach its own “return statement”.
    On what grounds can you persuade an extraordinarily sceptical
    readership that HHH 'correctly simulated' DDD?

    Any competent C programmer can see that
    the call from DDD to HHH(DDD) (its own simulator)
    is equivalent to infinite recursion.

    On 5/8/2025 8:30 PM, Keith Thompson wrote:
    Assuming that HHH(DDD) "correctly simulates" DDD, and assuming it
    does nothing else, your code would be equivalent to this:

          void DDD(void) {
              DDD();
              return;
          }

    Then the return statement (which is unnecessary anyway) will never be >>>>>> reached.  In practice, the program will likely crash due to a stack >>>>>> overflow, unless the compiler implements tail-call optimization, in >>>>>> which case the program might just run forever -- which also means the >>>>>> unnecessary return statement will never be reached.

    I had not intended to post again, but I feel the need to make
    a clarification.

    I acknowledged that the return statement would never be reached
    *given the assumption* that HHH correctly simulates DDD.  Given
    that assumption, a call to DDD() should be equivalent to a call
    to HHH(DDD).

    I did not address whether the assumption is valid.  I merely
    temporarily accepted it for the sake of discussion, just as I would
    accept that if I were ten feet tall I would bump my head against
    the ceiling in my house.

    The discussion I had with olcott did not reach the point of
    discussing *how* HHH could correctly simulate DDD, or whether it
    would even be logically possible for it to do so.  I also did not
    address any issues of partial simulation, where olcott claims that
    HHH can "accurately simulate" only a few x86 instructions rather
    than simulating its entire execution.  I did not participate in
    any discussion that would require knowledge of x86 machine or
    assembly code.  (I have no doubt that I could learn x86 machine
    and assembly code reasonably well if motivated to do so, but I am
    not so motivated.)

    What I acknowledged was barely more than "if HHH correctly simulates
    DDD, then HHH correctly simulates DDD".  (My understanding from
    posts by others, whom I presume to be sufficiently knowledgeable,
    is that HHH logically cannot accurately simulate DDD.)  I would
    prefer that olcott refrain from using my words to support any of
    his arguments beyond the scope of what he and I directly discussed.

    Don't know why you people stick on the 'simulation' stuff so long.
    The HP simply asks for such an H (in function form. POOH does not
    resemble TM):
      H(D)=1 if D() halt.
      H(D)=0 if D() not halt.



    The issue is Peter thinks that by making H a "simulating Halt Decider"
    or a "Simulating Termination Analyzer" it can change the definition,
    by trying to put out a lying definition of Halting by lying about the
    definition of correct simulation and what is the input.

    It is a stupid idea that halt deciders must be either
    infallible or wrong so I switched to termination analyzers.

    A termination analyzer is correct if it can process a
    single input that itself has no inputs.

    Not only that, but it must also return the correct answer. If makes a
    wild guess, by ignoring the most important part of its input, it will
    very probably be incorrect.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Heathfield@21:1/5 to olcott on Sat May 10 09:42:53 2025
    On 10/05/2025 05:21, olcott wrote:

    <snip>

    A termination analyzer is correct if it can process a
    single input that itself has no inputs.

    Provided you get to choose the input, you mean? If so, the claim
    is meaningless, because:

    void input()
    {
    }

    bool analyze(program *p)
    {
    return true;
    }

    int main()
    {
    analyze(input);
    puts("Halts.";
    }

    processes a single input that can correct a single input that
    itself has no inputs. Big deal.

    You need a better definition.


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

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Fred. Zwarts@21:1/5 to All on Sat May 10 10:42:46 2025
    Op 10.mei.2025 om 05:17 schreef olcott:
    On 5/9/2025 10:12 PM, Keith Thompson wrote:
    Mike Terry <news.dead.person.stones@darjeeling.plus.com> writes:
    On 09/05/2025 03:23, Keith Thompson wrote:
    Richard Damon <richard@damon-family.org> writes:
    On 5/8/25 7:53 PM, olcott wrote:
    [...]
    void DDD()
    {
         HHH(DDD);
         return;
    }
    We don't need to look at any of my code for me
    to totally prove my point. For example when
    the above DDD is correctly simulated by HHH
    this simulated DDD cannot possibly reach its own
    "return" instruction.

    And thus not correctly simulatd.

    Sorry, there is no "OS Exemption" to correct simulaiton;.
    Perhaps I've missed something.  I don't see anything in the above
    that
    implies that HHH does not correctly simulate DDD.  Richard, you've read >>>> far more of olcott's posts than I have, so perhaps you can clarify.
    If we assume that HHH correctly simulates DDD, then the above code
    is
    equivalent to:
          void DDD()
          {
            DDD();
            return;
          }
    which is a trivial case of infinite recursion.  As far as I can
    tell,
    assuming that DDD() is actually called at some point, neither the
    outer execution of DDD nor the nested (simulated) execution of DDD
    can reach the return statement.  Infinite recursion might either
    cause a stack overflow and a probable program crash, or an unending
    loop if the compiler implements tail call optimization.
    I see no contradiction, just an uninteresting case of infinite
    recursion, something that's well understood by anyone with a
    reasonable level of programming experience.  (And it has nothing to
    do with the halting problem as far as I can tell, though of course
    olcott has discussed the halting problem elsewhere.)
    Richard, what am I missing?

    Depends on what you've picked up on.

    Do you get that HHH's simulation is a /partial/ simulation?  HHH is
    free to simulate a few x86 instructions of DDD, and then simply
    abandon the simulation and return.  Since such a simulation is
    obviously NOT equivalent to a direct call to DDD, and above you argue
    that it is, I'd say you've missed that.

    I have not read the vast majority of olcott's post here.  For most
    of the recent discussion I had with him, there was no mention of
    partial simulation.  olcott finally said something about simulating
    just a few instructions, but at the same time he finally indicated
    that understanding his arguments would require an understanding of
    x86 machine and/or assembly language.  That's when I bailed out.

    A "correct simulation", as I understand the term, would require fully
    simulate the execution of DDD.  If DDD never halts, its simulation never
    halts.  olcott seems to think that he's found a way around this that's
    relevant to the Halting Problem, but I withdrew before getting to that
    point.


    It only need be a correct simulation until HHH sees the
    repeating pattern that would cause itself to never terminate.


    Which it cannot see, because it is not there. It misses the part in the
    input that aborts and halts.
    It seems very difficult for you to accept verifiable facts when they
    disturb your dreams.


    The best selling author of theory of computation textbooks
    agreed that I could quote his agreement with my words.

    <MIT Professor Sipser agreed to ONLY these verbatim words 10/13/2022>
        If simulating halt decider H correctly simulates its
        input D until H correctly determines that its simulated D
        would never stop running unless aborted then

        H can abort its simulation of D and correctly report that D
        specifies a non-halting sequence of configurations.
    </MIT Professor Sipser agreed to ONLY these verbatim words 10/13/2022>



    Why repaying this when it was explained that Sipser agreed to a vacuous statement, as there is no correct simulation.
    It seems very difficult for you to accept verifiable facts when they
    disturb your dreams.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Fred. Zwarts@21:1/5 to All on Sat May 10 10:38:51 2025
    Op 10.mei.2025 om 02:48 schreef olcott:
    On 5/9/2025 7:23 PM, Mike Terry wrote:
    On 09/05/2025 03:23, Keith Thompson wrote:
    Richard Damon <richard@damon-family.org> writes:
    On 5/8/25 7:53 PM, olcott wrote:
    [...]
    void DDD()
    {
        HHH(DDD);
        return;
    }
    We don't need to look at any of my code for me
    to totally prove my point. For example when
    the above DDD is correctly simulated by HHH
    this simulated DDD cannot possibly reach its own
    "return" instruction.

    And thus not correctly simulatd.

    Sorry, there is no "OS Exemption" to correct simulaiton;.

    Perhaps I've missed something.  I don't see anything in the above that
    implies that HHH does not correctly simulate DDD.  Richard, you've read >>> far more of olcott's posts than I have, so perhaps you can clarify.

    If we assume that HHH correctly simulates DDD, then the above code is
    equivalent to:

         void DDD()
         {
           DDD();
           return;
         }

    which is a trivial case of infinite recursion.  As far as I can tell,
    assuming that DDD() is actually called at some point, neither the
    outer execution of DDD nor the nested (simulated) execution of DDD
    can reach the return statement.  Infinite recursion might either
    cause a stack overflow and a probable program crash, or an unending
    loop if the compiler implements tail call optimization.

    I see no contradiction, just an uninteresting case of infinite
    recursion, something that's well understood by anyone with a
    reasonable level of programming experience.  (And it has nothing to
    do with the halting problem as far as I can tell, though of course
    olcott has discussed the halting problem elsewhere.)

    Richard, what am I missing?


    Depends on what you've picked up on.

    Do you get that HHH's simulation is a /partial/ simulation?  HHH is free

    That was not in the specification that he responded to.
    Thus within this specification DDD correctly simulated
    by HHH cannot possibly reach its final halt state in an
    infinite number of steps.

    If an infinite number steps steps is insufficient
    then how can less an infinite steps possibly help?
    It will certainly help. Not in making a better simulator, but by
    creating an input DDD that halts. (But your HHH misses that verifiable
    fact.)

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Fred. Zwarts@21:1/5 to All on Sat May 10 10:44:55 2025
    Op 10.mei.2025 om 06:27 schreef olcott:
    On 5/9/2025 10:29 PM, Richard Damon wrote:
    On 5/9/25 11:17 PM, olcott wrote:
    On 5/9/2025 10:12 PM, Keith Thompson wrote:
    Mike Terry <news.dead.person.stones@darjeeling.plus.com> writes:
    On 09/05/2025 03:23, Keith Thompson wrote:
    Richard Damon <richard@damon-family.org> writes:
    On 5/8/25 7:53 PM, olcott wrote:
    [...]
    void DDD()
    {
         HHH(DDD);
         return;
    }
    We don't need to look at any of my code for me
    to totally prove my point. For example when
    the above DDD is correctly simulated by HHH
    this simulated DDD cannot possibly reach its own
    "return" instruction.

    And thus not correctly simulatd.

    Sorry, there is no "OS Exemption" to correct simulaiton;.
    Perhaps I've missed something.  I don't see anything in the above >>>>>> that
    implies that HHH does not correctly simulate DDD.  Richard, you've >>>>>> read
    far more of olcott's posts than I have, so perhaps you can clarify. >>>>>> If we assume that HHH correctly simulates DDD, then the above code >>>>>> is
    equivalent to:
          void DDD()
          {
            DDD();
            return;
          }
    which is a trivial case of infinite recursion.  As far as I can
    tell,
    assuming that DDD() is actually called at some point, neither the
    outer execution of DDD nor the nested (simulated) execution of DDD >>>>>> can reach the return statement.  Infinite recursion might either
    cause a stack overflow and a probable program crash, or an unending >>>>>> loop if the compiler implements tail call optimization.
    I see no contradiction, just an uninteresting case of infinite
    recursion, something that's well understood by anyone with a
    reasonable level of programming experience.  (And it has nothing to >>>>>> do with the halting problem as far as I can tell, though of course >>>>>> olcott has discussed the halting problem elsewhere.)
    Richard, what am I missing?

    Depends on what you've picked up on.

    Do you get that HHH's simulation is a /partial/ simulation?  HHH is >>>>> free to simulate a few x86 instructions of DDD, and then simply
    abandon the simulation and return.  Since such a simulation is
    obviously NOT equivalent to a direct call to DDD, and above you argue >>>>> that it is, I'd say you've missed that.

    I have not read the vast majority of olcott's post here.  For most
    of the recent discussion I had with him, there was no mention of
    partial simulation.  olcott finally said something about simulating
    just a few instructions, but at the same time he finally indicated
    that understanding his arguments would require an understanding of
    x86 machine and/or assembly language.  That's when I bailed out.

    A "correct simulation", as I understand the term, would require fully
    simulate the execution of DDD.  If DDD never halts, its simulation
    never
    halts.  olcott seems to think that he's found a way around this that's >>>> relevant to the Halting Problem, but I withdrew before getting to that >>>> point.


    It only need be a correct simulation until HHH sees the
    repeating pattern that would cause itself to never terminate.

    Right, but that pattern needs to be based on the fact that HHH is a
    program that can abort its simulation, and in fact WILL.


    The best selling author of theory of computation textbooks
    agreed that I could quote his agreement with my words.

    <MIT Professor Sipser agreed to ONLY these verbatim words 10/13/2022>
         If simulating halt decider H correctly simulates its
         input D until H correctly determines that its simulated D
         would never stop running unless aborted then

         H can abort its simulation of D and correctly report that D
         specifies a non-halting sequence of configurations.
    </MIT Professor Sipser agreed to ONLY these verbatim words 10/13/2022>




    *simulated D would never stop running unless aborted*
    means determining what would happen if this H never aborted.
    But since D is aborted, this is a vacuous statement.
    That is what H should take into account.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Fred. Zwarts@21:1/5 to All on Sat May 10 10:52:51 2025
    Op 09.mei.2025 om 17:59 schreef olcott:
    On 5/9/2025 4:00 AM, Fred. Zwarts wrote:
    Op 09.mei.2025 om 02:05 schreef olcott:
    On 5/8/2025 6:54 PM, Keith Thompson wrote:
    olcott <polcott333@gmail.com> writes:
    On 5/8/2025 6:30 PM, Richard Heathfield wrote:
    On 08/05/2025 23:50, olcott wrote:
    [...]
    If you are a competent C programmer
    Keith Thompson is a highly-respected and very competent C
    programmer.

    *Then he is just who I need*

    No, what you need is someone who is an expert in mathematical logic
    (I am not) who can explain to you, in terms you can understand and
    accept, where you've gone wrong.  Some expertise in C could also
    be helpful.


    The key gap in my proof is that none of the comp.sci
    people seems to have a slight clue about simple C
    programming.

    void DDD()
    {
       HHH(DDD);
       return;
    }

    *THIS IS THE C PART THAT NO ONE HERE UNDERSTANDS*
    DDD correctly simulated by HHH cannot possibly
    reach its own "return" instruction.

    The HHH that you propose and is included in DDD does halt. But it is
    known that this HHH prematurely aborts which makes it impossible for
    the simulation to reach the reachable 'return'. HHH simply ignores the
    conditional abort in the simulation.


    void DDD()
    {
      HHH(DDD);
      return;
    }

    When 1 or more statements of DDD are correctly
    simulated by HHH then this correctly simulated
    DDD cannot possibly reach its own “return statement”.

    No need to repeat this failure of HHH to reach the end of a halting
    program again and again.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Fred. Zwarts@21:1/5 to All on Sat May 10 10:49:22 2025
    Op 09.mei.2025 om 18:02 schreef olcott:
    On 5/9/2025 4:03 AM, Fred. Zwarts wrote:
    Op 09.mei.2025 om 03:35 schreef olcott:
    On 5/8/2025 8:13 PM, Richard Damon wrote:
    On 5/8/25 8:05 PM, olcott wrote:
    On 5/8/2025 6:54 PM, Keith Thompson wrote:
    olcott <polcott333@gmail.com> writes:
    On 5/8/2025 6:30 PM, Richard Heathfield wrote:
    On 08/05/2025 23:50, olcott wrote:
    [...]
    If you are a competent C programmer
    Keith Thompson is a highly-respected and very competent C
    programmer.

    *Then he is just who I need*

    No, what you need is someone who is an expert in mathematical logic >>>>>> (I am not) who can explain to you, in terms you can understand and >>>>>> accept, where you've gone wrong.  Some expertise in C could also
    be helpful.


    The key gap in my proof is that none of the comp.sci
    people seems to have a slight clue about simple C
    programming.

    No, the problem is you don't.


    void DDD()
    {
       HHH(DDD);
       return;
    }

    *THIS IS THE C PART THAT NO ONE HERE UNDERSTANDS*
    DDD correctly simulated by HHH cannot possibly
    reach its own "return" instruction.

    And claiming the behavior of a program that isn;t the behavior of
    that program is just a lie.


    DDD correctly simulated by HHH cannot possibly
    reach its own "return" instruction.

    DDD correctly simulated by HHH cannot possibly
    reach its own "return" instruction.

    DDD correctly simulated by HHH cannot possibly
    reach its own "return" instruction.



    No need to repeat vacuous statements. It does not matter how many
    times you multiply 0, it will remains 0.
    DDD contains an HHH that aborts,

    void DDD()
    {
      HHH(DDD);
      return;
    }

    When 1 or more statements of DDD are correctly
    simulated by HHH then this correctly simulated
    DDD cannot possibly reach its own “return statement”.

    No need to repeat that HHH fails to reach the end of the halting
    program. We understand it.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Fred. Zwarts@21:1/5 to All on Sat May 10 10:46:26 2025
    Op 09.mei.2025 om 17:33 schreef olcott:
    On 5/9/2025 3:39 AM, Fred. Zwarts wrote:
    Op 09.mei.2025 om 01:53 schreef olcott:
    On 5/8/2025 6:45 PM, Keith Thompson wrote:
    olcott <polcott333@gmail.com> writes:
    On 5/8/2025 5:26 PM, Keith Thompson wrote:
    [...]
    I am more nearly an expert on C than on the Halting Problem.
    Watching olcott base his arguments on C *and getting C so badly
    wrong* leads me to think that he is largely ignorant of C (which is >>>>>> fine, most people are) and is unwilling to admit it.  Watching the >>>>>> reactions of actual experts to his mathematical arguments leads me >>>>>> to the same conclusion about his knowledge of the relevant fields
    of mathematics.


    If Halt7.c is not compiled with the Microsoft
    compiler then it will not produce the required
    object file type.

    The rest of the system has compiled under
    Linux. I haven't tried this in a few years.

    [...]

    So you normally compile your code using the 2017 version of Microsoft
    Visual Studio.

    I have no particular problem with that, but your failure to correct
    a number of C errors in your code is odd.

    As I already proved Microsoft reported no such errors.

     I've pointed out several
    syntax errors and constraint violations; at least the syntax errors
    would be trivial to fix (even if your compiler is lax enough to
    fail to diagnose them).  Richard Heathfield has pointed out code
    that dereferences a null pointer.


    Mike corrected Richard on this.
    Those are stub functions intercepted
    by x86utm the operating system.

    You are using C, a language in which you appear to have little
    apparent expertise or willingness to learn, to demonstrate claims
    that, if true, would overturn ideas that have been generally accepted
    for decades.  Can you understand why I might decide that analyzing
    your claims is not worth my time?


    I learned C back when K & R was the standard.

    void DDD()
    {
       HHH(DDD);
       return;
    }

    We don't need to look at any of my code for me
    to totally prove my point. For example when
    the above DDD is correctly simulated by HHH
    this simulated DDD cannot possibly reach its own
    "return" instruction.



    A vacuous statement, because HHH cannot correctly simulate DDD, which
    includes HHH itself.
    A vacuous statement does not prove anything.

    You are saying that the smartest genius (not me)
    in the universe cannot possibly create an HHH
    that simulates itself simulating DDD?

    What is the evidence for this wild-eyed claim?

    You don't need to be a genius to see that. Only fools deny it. Because
    it has been proven by the halting theorem.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Heathfield@21:1/5 to olcott on Sat May 10 11:03:50 2025
    On 10/05/2025 05:46, olcott wrote:
    On 5/9/2025 10:12 PM, Richard Damon wrote:
    On 5/9/25 10:47 PM, olcott wrote:
    On 5/9/2025 9:39 PM, Richard Damon wrote:
    On 5/9/25 10:20 PM, olcott wrote:
    On 5/9/2025 9:15 PM, Richard Heathfield wrote:
    On 10/05/2025 02:48, olcott wrote:
    On 5/9/2025 8:32 PM, Richard Heathfield wrote:
    On 10/05/2025 02:29, olcott wrote:
    On 5/9/2025 8:15 PM, Richard Heathfield wrote:
    On 10/05/2025 01:51, olcott wrote:
    On 5/9/2025 7:29 PM, Richard Heathfield wrote:
    On 10/05/2025 00:02, olcott wrote:
    Correctly emulating one or more instructions <is>
    the correct emulation of 1 or more instructions
    of DD. This is a truism.

    No, it's not. Correct emulation would entail
    accurately simulating the whole of DDD's behaviour.

    It is stupidly wrong to require the complete
    emulation of a non-terminating input.

    It is touchingly naive to think you can persuade people
    to accept incomplete emulation as 'correct'.


    If one instruction is emulated correctly
    then is is dishonest to say that zero
    instructions were emulated correctly.

    Which instruction do you think is emulated correctly?

    _DDD()
    [00002172] 55         push ebp      ; housekeeping
    [00002173] 8bec       mov ebp,esp   ; housekeeping
    [00002175] 6872210000 push 00002172 ; push DDD
    [0000217a] e853f4ffff call 000015d2 ; call HHH(DDD)


    Assumes facts not in evidence. Your HHH function is in a
    translation unit that contains a syntax error.


    It is a truism that when DDD is emulated by HHH
    according to the rules of the x86 language that
    the first four instructions of DDD would be emulated
    and then HHH would also be required to emulate
    itself emulating DDD.


    Nope, because by your definitions HHH can not correctly
    emulate that DDD, as it doesn't include the code for the HHH
    that it calls,

    DDD are HHH are on the same memory space I told you this 50 times
    DDD are HHH are on the same memory space I told you this 50 times
    DDD are HHH are on the same memory space I told you this 50 times
    DDD are HHH are on the same memory space I told you this 50 times
    DDD are HHH are on the same memory space I told you this 50 times


    But that doesn't mean that HHH is allowed to access it.


    Yes it does mean this.

    Any competent C programmer (that /is/ your phrase, I think?)
    knows different.

    When in order to gain access to DDD your code inspects the memory
    at the address pointed to by ptr P (after first casting to u32),
    it violates a 'shall' clause.

    6.6(9) reads:

    "An address constant is a null pointer, a pointer to an lvalue
    designating an object of static storage duration, or a pointer to
    a function designator; it shall be created explicitly using
    the unary & operator or an integer constant cast to pointer type,
    or implicitly by the use of an expression of array or function
    type. The array-subscript [] and member-access . and ->
    operators, the address & and indirection * unary operators, and
    pointer casts may be used in the creation of an address constant,
    but the value of an object shall not be accessed by use of these
    operators."

    In other words, you can't just not touch; you can't even look.

    6.6(9) is not a constraint, so your compiler is not obliged to
    diagnose the flaw, but flaw it remains.

    What does that mean?

    4(2) reads: "If a ‘‘shall’’ or ‘‘shall not’’ requirement that appears outside of a constraint is violated, the behavior is
    undefined."

    Putting it another way, the C language standard absolves your
    compiler of any responsibility for translating your code into the
    behaviour you intended.

    Putting it another nother way, you screwed up.

    In programming, details can get terribly tedious. Perhaps you
    should leave that kind of thing to people who like that kind of
    thing.

    --
    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 Fred. Zwarts on Sat May 10 11:18:49 2025
    On 10/05/2025 09:05, Fred. Zwarts wrote:
    Op 09.mei.2025 om 17:48 schreef olcott:

    <snip>

    When 1 or more statements of DDD are correctly simulated
    by HHH this correctly simulated DDD cannot possibly reach
    its own "return statement" final halt state.

    You see? Exactly what I predicted. Now he uses another HHH that
    does not correctly simulate the whole input, but only makes a
    start. He will still hold his claim that there is an infinite
    recursion and may quote a C expert, Keith Thompson, to support
    his claim. The only way out is that Keith Thompson explicitly
    explains that his example only holds for the simulator that does
    not stop after 1 or more statements.

    Keith has already clarified that his reply applies only on the
    assumption that HHH(DDD) simulates DDD correctly, and is
    tantamount to saying that if X is true then X is true.

    X, of course, is not true.

    --
    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 Fred. Zwarts on Sat May 10 11:24:30 2025
    On 10/05/2025 09:18, Fred. Zwarts wrote:
    Op 10.mei.2025 om 05:13 schreef olcott:
    On 5/9/2025 9:40 PM, Keith Thompson wrote:

    <snip>

    I had not intended to post again, but I feel the need to make
    a clarification.

    I acknowledged that the return statement would never be reached
    *given the assumption* that HHH correctly simulates DDD.  Given
    that assumption, a call to DDD() should be equivalent to a call
    to HHH(DDD).


    Yes and then I moved on the next tiny incremental> step of my
    proof. Correctly simulated less than
    an infinite number of instructions does not help
    the simulated DDD to reach its "return statement"
    final halt state.

    The word 'tiny' is misleading. It is a fundamental change. Now
    HHH does no longer do a correct simulation, because it ignores
    the input part of the input that specifies that HHH simulates
    only a *finite* number of steps.

    HHH is /required/ to ignore its input.

    It can /call/ DDD, but it mustn't inspect it. When it does so, it
    violates a 'shall' outside of a constraint.

    <snip>

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

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Fred. Zwarts@21:1/5 to All on Sat May 10 14:55:05 2025
    Op 10.mei.2025 om 03:50 schreef olcott:
    On 5/9/2025 8:32 PM, Richard Heathfield wrote:
    On 10/05/2025 02:29, olcott wrote:
    On 5/9/2025 8:15 PM, Richard Heathfield wrote:
    On 10/05/2025 01:51, olcott wrote:
    On 5/9/2025 7:29 PM, Richard Heathfield wrote:
    On 10/05/2025 00:02, olcott wrote:
    Correctly emulating one or more instructions <is>
    the correct emulation of 1 or more instructions
    of DD. This is a truism.

    No, it's not. Correct emulation would entail accurately simulating >>>>>> the whole of DDD's behaviour.

    It is stupidly wrong to require the complete
    emulation of a non-terminating input.

    It is touchingly naive to think you can persuade people to accept
    incomplete emulation as 'correct'.


    If one instruction is emulated correctly
    then is is dishonest to say that zero
    instructions were emulated correctly.

    Which instruction do you think is emulated correctly?


    _DDD()
    [00002172] 55         push ebp      ; housekeeping
    [00002173] 8bec       mov ebp,esp   ; housekeeping
    [00002175] 6872210000 push 00002172 ; push DDD
    [0000217a] e853f4ffff call 000015d2 ; call HHH(DDD)
    [0000217f] 83c404     add esp,+04
    [00002182] 5d         pop ebp
    [00002183] c3         ret
    Size in bytes:(0018) [00002183]

    The entire sequence of the first four instructions
    of DDD is emulated correctly. This sequence also
    includes HHH emulating itself emulating DDD. This
    results in a whole other sequence of first three
    instructions of DDD being correctly emulated.

    And, when correctly simulated, it will simulate the abort by the
    simulated HHH, which then returns to DDD, so that the simulation reaches
    the end of DDD.
    But HHH fails to simulate that last part correctly, because it aborts
    too soon. Therefore, it does not reach the reachable end of the
    simulation. This makes HHH's simulation incorrect.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Fred. Zwarts@21:1/5 to All on Sat May 10 14:59:54 2025
    Op 10.mei.2025 om 04:20 schreef olcott:
    On 5/9/2025 9:15 PM, Richard Heathfield wrote:
    On 10/05/2025 02:48, olcott wrote:
    On 5/9/2025 8:32 PM, Richard Heathfield wrote:
    On 10/05/2025 02:29, olcott wrote:
    On 5/9/2025 8:15 PM, Richard Heathfield wrote:
    On 10/05/2025 01:51, olcott wrote:
    On 5/9/2025 7:29 PM, Richard Heathfield wrote:
    On 10/05/2025 00:02, olcott wrote:
    Correctly emulating one or more instructions <is>
    the correct emulation of 1 or more instructions
    of DD. This is a truism.

    No, it's not. Correct emulation would entail accurately
    simulating the whole of DDD's behaviour.

    It is stupidly wrong to require the complete
    emulation of a non-terminating input.

    It is touchingly naive to think you can persuade people to accept
    incomplete emulation as 'correct'.


    If one instruction is emulated correctly
    then is is dishonest to say that zero
    instructions were emulated correctly.

    Which instruction do you think is emulated correctly?

    _DDD()
    [00002172] 55         push ebp      ; housekeeping
    [00002173] 8bec       mov ebp,esp   ; housekeeping
    [00002175] 6872210000 push 00002172 ; push DDD
    [0000217a] e853f4ffff call 000015d2 ; call HHH(DDD)


    Assumes facts not in evidence. Your HHH function is in a translation
    unit that contains a syntax error.


    It is a truism that when DDD is emulated by HHH
    according to the rules of the x86 language that
    the first four instructions of DDD would be emulated
    and then HHH would also be required to emulate
    itself emulating DDD.


    Yes, and it should also simulate the conditional abort in its input,
    because the semantics of the x86 language does not allow to ignore it.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Fred. Zwarts@21:1/5 to All on Sat May 10 14:57:35 2025
    Op 10.mei.2025 om 06:46 schreef olcott:
    On 5/9/2025 10:12 PM, Richard Damon wrote:
    On 5/9/25 10:47 PM, olcott wrote:
    On 5/9/2025 9:39 PM, Richard Damon wrote:
    On 5/9/25 10:20 PM, olcott wrote:
    On 5/9/2025 9:15 PM, Richard Heathfield wrote:
    On 10/05/2025 02:48, olcott wrote:
    On 5/9/2025 8:32 PM, Richard Heathfield wrote:
    On 10/05/2025 02:29, olcott wrote:
    On 5/9/2025 8:15 PM, Richard Heathfield wrote:
    On 10/05/2025 01:51, olcott wrote:
    On 5/9/2025 7:29 PM, Richard Heathfield wrote:
    On 10/05/2025 00:02, olcott wrote:
    Correctly emulating one or more instructions <is>
    the correct emulation of 1 or more instructions
    of DD. This is a truism.

    No, it's not. Correct emulation would entail accurately >>>>>>>>>>>> simulating the whole of DDD's behaviour.

    It is stupidly wrong to require the complete
    emulation of a non-terminating input.

    It is touchingly naive to think you can persuade people to >>>>>>>>>> accept incomplete emulation as 'correct'.


    If one instruction is emulated correctly
    then is is dishonest to say that zero
    instructions were emulated correctly.

    Which instruction do you think is emulated correctly?

    _DDD()
    [00002172] 55         push ebp      ; housekeeping
    [00002173] 8bec       mov ebp,esp   ; housekeeping
    [00002175] 6872210000 push 00002172 ; push DDD
    [0000217a] e853f4ffff call 000015d2 ; call HHH(DDD)


    Assumes facts not in evidence. Your HHH function is in a
    translation unit that contains a syntax error.


    It is a truism that when DDD is emulated by HHH
    according to the rules of the x86 language that
    the first four instructions of DDD would be emulated
    and then HHH would also be required to emulate
    itself emulating DDD.


    Nope, because by your definitions HHH can not correctly emulate that
    DDD, as it doesn't include the code for the HHH that it calls,

    DDD are HHH are on the same memory space I told you this 50 times
    DDD are HHH are on the same memory space I told you this 50 times
    DDD are HHH are on the same memory space I told you this 50 times
    DDD are HHH are on the same memory space I told you this 50 times
    DDD are HHH are on the same memory space I told you this 50 times


    But that doesn't mean that HHH is allowed to access it.


    Yes it does mean this.



    If so, the conditional abort done by HHH also belongs to the input and
    HHH should simulate that as well. But it does not. It ignores that very relevant part of the input, making the simulation incorrect.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to olcott on Sat May 10 08:53:12 2025
    On 5/10/25 12:18 AM, olcott wrote:
    On 5/9/2025 10:43 PM, wij wrote:
    On Fri, 2025-05-09 at 22:24 -0500, olcott wrote:
    On 5/9/2025 10:13 PM, wij wrote:
    On Fri, 2025-05-09 at 19:40 -0700, Keith Thompson wrote:
    olcott <polcott333@gmail.com> writes:
    On 5/9/2025 4:40 PM, Richard Heathfield wrote:
    On 09/05/2025 21:15, olcott wrote:
    On 5/9/2025 3:07 PM, Richard Heathfield wrote:
    On 09/05/2025 20:46, olcott wrote:
    We have not begun to get into any of those points.
    We are only asking can DDD correctly simulated
    by any HHH that can exist ever reach its own
    "return" instruction.

    DDD can't be correctly simulated by itself (which is effectively >>>>>>>>> what you're trying to do when you fire up the simulation from >>>>>>>>> inside DDD).

    How the Hell did you twist my words to say that?
    I haven't touched your words. What I have done is to observe that >>>>>>> DDD's /only/ action is to call a simulator. Since DDD isn't itself a >>>>>>> simulator, there is nothing to simulate except a call to a
    simulator.
    It's recursion without a base case - a rookie error.
    HHH cannot successfully complete its task, because it never regains >>>>>>> control after the first recursion. To return, it must abort the
    simulation, which means the simulation fails.

    void DDD()
    {
         HHH(DDD);
         return;
    }

    When 1 or more statements of DDD are correctly
    simulated by HHH then this correctly simulated
    DDD cannot possibly reach its own “return statement”.
    On what grounds can you persuade an extraordinarily sceptical
    readership that HHH 'correctly simulated' DDD?

    Any competent C programmer can see that
    the call from DDD to HHH(DDD) (its own simulator)
    is equivalent to infinite recursion.

    On 5/8/2025 8:30 PM, Keith Thompson wrote:
    Assuming that HHH(DDD) "correctly simulates" DDD, and assuming it >>>>>>> does nothing else, your code would be equivalent to this:

           void DDD(void) {
               DDD();
               return;
           }

    Then the return statement (which is unnecessary anyway) will
    never be
    reached.  In practice, the program will likely crash due to a stack >>>>>>> overflow, unless the compiler implements tail-call optimization, in >>>>>>> which case the program might just run forever -- which also means >>>>>>> the
    unnecessary return statement will never be reached.

    I had not intended to post again, but I feel the need to make
    a clarification.

    I acknowledged that the return statement would never be reached
    *given the assumption* that HHH correctly simulates DDD.  Given
    that assumption, a call to DDD() should be equivalent to a call
    to HHH(DDD).

    I did not address whether the assumption is valid.  I merely
    temporarily accepted it for the sake of discussion, just as I would
    accept that if I were ten feet tall I would bump my head against
    the ceiling in my house.

    The discussion I had with olcott did not reach the point of
    discussing *how* HHH could correctly simulate DDD, or whether it
    would even be logically possible for it to do so.  I also did not
    address any issues of partial simulation, where olcott claims that
    HHH can "accurately simulate" only a few x86 instructions rather
    than simulating its entire execution.  I did not participate in
    any discussion that would require knowledge of x86 machine or
    assembly code.  (I have no doubt that I could learn x86 machine
    and assembly code reasonably well if motivated to do so, but I am
    not so motivated.)

    What I acknowledged was barely more than "if HHH correctly simulates >>>>> DDD, then HHH correctly simulates DDD".  (My understanding from
    posts by others, whom I presume to be sufficiently knowledgeable,
    is that HHH logically cannot accurately simulate DDD.)  I would
    prefer that olcott refrain from using my words to support any of
    his arguments beyond the scope of what he and I directly discussed.

    Don't know why you people stick on the 'simulation' stuff so long.
    The HP simply asks for such an H (in function form. POOH does not
    resemble TM):
       H(D)=1 if D() halt.
       H(D)=0 if D() not halt.

    My invention of a simulating termination
    analyzer shows exactly how to compute the
    mapping that the input that HHH(DD) specifies
    into a correct answer for the halting problem's
    otherwise impossible input.

    All rebuttals are based on failing to compute
    this mapping correctly.


    What is the correct mapping?


    _DDD()
    [00002172] 55         push ebp      ; housekeeping
    [00002173] 8bec       mov ebp,esp   ; housekeeping
    [00002175] 6872210000 push 00002172 ; push DDD
    [0000217a] e853f4ffff call 000015d2 ; call HHH(DDD)
    [0000217f] 83c404     add esp,+04
    [00002182] 5d         pop ebp
    [00002183] c3         ret
    Size in bytes:(0018) [00002183]

    Computing the mapping of DDD emulated by HHH
    according the the rules of the x86 language
    to its behavior by HHH actually emulating DDD.

    But HHH doesn't correctly emulate DDD by the rules, so you don't have a mapping.

    First, it can't emulate what it doesn't have, so can't go paste the call
    to HHH, unless you are allowig unpure versions of HHH, at which point
    your claim is just false.

    The criteria of "DDD emulated by HHH" is just an bad criteria as it
    isn't one being subjective not objective)


    If POOH are not talking about the mapping:

       H(D)=1 if D() halt.
       H(D)=0 if D() not halt.


    The way that simulating termination analyzers process
    their input by showing all of the steps of how the mapping
    must be computed refutes the above simplistic view.

    POOH is likely nothing to do with HP




    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to olcott on Sat May 10 08:54:22 2025
    On 5/10/25 12:44 AM, olcott wrote:
    On 5/9/2025 11:32 PM, wij wrote:
    On Fri, 2025-05-09 at 23:18 -0500, olcott wrote:
    On 5/9/2025 10:43 PM, wij wrote:
    On Fri, 2025-05-09 at 22:24 -0500, olcott wrote:
    On 5/9/2025 10:13 PM, wij wrote:
    On Fri, 2025-05-09 at 19:40 -0700, Keith Thompson wrote:
    olcott <polcott333@gmail.com> writes:
    On 5/9/2025 4:40 PM, Richard Heathfield wrote:
    On 09/05/2025 21:15, olcott wrote:
    On 5/9/2025 3:07 PM, Richard Heathfield wrote:
    On 09/05/2025 20:46, olcott wrote:
    We have not begun to get into any of those points.
    We are only asking can DDD correctly simulated
    by any HHH that can exist ever reach its own
    "return" instruction.

    DDD can't be correctly simulated by itself (which is effectively >>>>>>>>>>> what you're trying to do when you fire up the simulation from >>>>>>>>>>> inside DDD).

    How the Hell did you twist my words to say that?
    I haven't touched your words. What I have done is to observe that >>>>>>>>> DDD's /only/ action is to call a simulator. Since DDD isn't
    itself a
    simulator, there is nothing to simulate except a call to a
    simulator.
    It's recursion without a base case - a rookie error.
    HHH cannot successfully complete its task, because it never
    regains
    control after the first recursion. To return, it must abort the >>>>>>>>> simulation, which means the simulation fails.

    void DDD()
    {
          HHH(DDD);
          return;
    }

    When 1 or more statements of DDD are correctly
    simulated by HHH then this correctly simulated
    DDD cannot possibly reach its own “return statement”.
    On what grounds can you persuade an extraordinarily sceptical >>>>>>>>> readership that HHH 'correctly simulated' DDD?

    Any competent C programmer can see that
    the call from DDD to HHH(DDD) (its own simulator)
    is equivalent to infinite recursion.

    On 5/8/2025 8:30 PM, Keith Thompson wrote:
    Assuming that HHH(DDD) "correctly simulates" DDD, and assuming it >>>>>>>>> does nothing else, your code would be equivalent to this:

            void DDD(void) {
                DDD();
                return;
            }

    Then the return statement (which is unnecessary anyway) will >>>>>>>>> never be
    reached.  In practice, the program will likely crash due to a >>>>>>>>> stack
    overflow, unless the compiler implements tail-call
    optimization, in
    which case the program might just run forever -- which also
    means the
    unnecessary return statement will never be reached.

    I had not intended to post again, but I feel the need to make
    a clarification.

    I acknowledged that the return statement would never be reached
    *given the assumption* that HHH correctly simulates DDD.  Given >>>>>>> that assumption, a call to DDD() should be equivalent to a call
    to HHH(DDD).

    I did not address whether the assumption is valid.  I merely
    temporarily accepted it for the sake of discussion, just as I would >>>>>>> accept that if I were ten feet tall I would bump my head against >>>>>>> the ceiling in my house.

    The discussion I had with olcott did not reach the point of
    discussing *how* HHH could correctly simulate DDD, or whether it >>>>>>> would even be logically possible for it to do so.  I also did not >>>>>>> address any issues of partial simulation, where olcott claims that >>>>>>> HHH can "accurately simulate" only a few x86 instructions rather >>>>>>> than simulating its entire execution.  I did not participate in >>>>>>> any discussion that would require knowledge of x86 machine or
    assembly code.  (I have no doubt that I could learn x86 machine >>>>>>> and assembly code reasonably well if motivated to do so, but I am >>>>>>> not so motivated.)

    What I acknowledged was barely more than "if HHH correctly simulates >>>>>>> DDD, then HHH correctly simulates DDD".  (My understanding from >>>>>>> posts by others, whom I presume to be sufficiently knowledgeable, >>>>>>> is that HHH logically cannot accurately simulate DDD.)  I would >>>>>>> prefer that olcott refrain from using my words to support any of >>>>>>> his arguments beyond the scope of what he and I directly discussed. >>>>>>
    Don't know why you people stick on the 'simulation' stuff so long. >>>>>> The HP simply asks for such an H (in function form. POOH does not
    resemble TM):
        H(D)=1 if D() halt.
        H(D)=0 if D() not halt.

    My invention of a simulating termination
    analyzer shows exactly how to compute the
    mapping that the input that HHH(DD) specifies
    into a correct answer for the halting problem's
    otherwise impossible input.

    All rebuttals are based on failing to compute
    this mapping correctly.


    What is the correct mapping?


    _DDD()
    [00002172] 55         push ebp      ; housekeeping
    [00002173] 8bec       mov ebp,esp   ; housekeeping
    [00002175] 6872210000 push 00002172 ; push DDD
    [0000217a] e853f4ffff call 000015d2 ; call HHH(DDD)
    [0000217f] 83c404     add esp,+04
    [00002182] 5d         pop ebp
    [00002183] c3         ret
    Size in bytes:(0018) [00002183]

    Computing the mapping of DDD emulated by HHH
    according the the rules of the x86 language
    to its behavior by HHH actually emulating DDD.

    The above says you have no idea what the mapping is.

    If POOH are not talking about the mapping:

        H(D)=1 if D() halt.
        H(D)=0 if D() not halt.


    The way that simulating termination analyzers process
    their input by showing all of the steps of how the mapping
    must be computed refutes the above simplistic view.

    No (real) problem with that. But the HP asks:

    H(D)=1 if D() halt.
    H(D)=0 if D() not halt.

    You still evade the question: Is POO H anything to do with the HP?


    I have recently proven that the above requirements are incorrect.
    That people consistently ignore this proof with pure bluster
    is not actually any rebuttal at all.

    No, you haven't, because that is not a thing that can be proven.

    Sorry, all you are doing is proving that you idea of logic is just a big
    lie full of contradictions and equivocations.


    POOH is likely nothing to do with HP








    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to olcott on Sat May 10 08:59:48 2025
    On 5/10/25 12:13 AM, olcott wrote:
    On 5/9/2025 10:53 PM, Richard Damon wrote:
    On 5/9/25 11:24 PM, olcott wrote:
    On 5/9/2025 10:13 PM, wij wrote:
    On Fri, 2025-05-09 at 19:40 -0700, Keith Thompson wrote:
    olcott <polcott333@gmail.com> writes:
    On 5/9/2025 4:40 PM, Richard Heathfield wrote:
    On 09/05/2025 21:15, olcott wrote:
    On 5/9/2025 3:07 PM, Richard Heathfield wrote:
    On 09/05/2025 20:46, olcott wrote:
    We have not begun to get into any of those points.
    We are only asking can DDD correctly simulated
    by any HHH that can exist ever reach its own
    "return" instruction.

    DDD can't be correctly simulated by itself (which is effectively >>>>>>>>> what you're trying to do when you fire up the simulation from >>>>>>>>> inside DDD).

    How the Hell did you twist my words to say that?
    I haven't touched your words. What I have done is to observe that >>>>>>> DDD's /only/ action is to call a simulator. Since DDD isn't itself a >>>>>>> simulator, there is nothing to simulate except a call to a
    simulator.
    It's recursion without a base case - a rookie error.
    HHH cannot successfully complete its task, because it never regains >>>>>>> control after the first recursion. To return, it must abort the
    simulation, which means the simulation fails.

    void DDD()
    {
        HHH(DDD);
        return;
    }

    When 1 or more statements of DDD are correctly
    simulated by HHH then this correctly simulated
    DDD cannot possibly reach its own “return statement”.
    On what grounds can you persuade an extraordinarily sceptical
    readership that HHH 'correctly simulated' DDD?

    Any competent C programmer can see that
    the call from DDD to HHH(DDD) (its own simulator)
    is equivalent to infinite recursion.

    On 5/8/2025 8:30 PM, Keith Thompson wrote:
    Assuming that HHH(DDD) "correctly simulates" DDD, and assuming it >>>>>>> does nothing else, your code would be equivalent to this:

          void DDD(void) {
              DDD();
              return;
          }

    Then the return statement (which is unnecessary anyway) will
    never be
    reached.  In practice, the program will likely crash due to a stack >>>>>>> overflow, unless the compiler implements tail-call optimization, in >>>>>>> which case the program might just run forever -- which also means >>>>>>> the
    unnecessary return statement will never be reached.

    I had not intended to post again, but I feel the need to make
    a clarification.

    I acknowledged that the return statement would never be reached
    *given the assumption* that HHH correctly simulates DDD.  Given
    that assumption, a call to DDD() should be equivalent to a call
    to HHH(DDD).

    I did not address whether the assumption is valid.  I merely
    temporarily accepted it for the sake of discussion, just as I would
    accept that if I were ten feet tall I would bump my head against
    the ceiling in my house.

    The discussion I had with olcott did not reach the point of
    discussing *how* HHH could correctly simulate DDD, or whether it
    would even be logically possible for it to do so.  I also did not
    address any issues of partial simulation, where olcott claims that
    HHH can "accurately simulate" only a few x86 instructions rather
    than simulating its entire execution.  I did not participate in
    any discussion that would require knowledge of x86 machine or
    assembly code.  (I have no doubt that I could learn x86 machine
    and assembly code reasonably well if motivated to do so, but I am
    not so motivated.)

    What I acknowledged was barely more than "if HHH correctly simulates >>>>> DDD, then HHH correctly simulates DDD".  (My understanding from
    posts by others, whom I presume to be sufficiently knowledgeable,
    is that HHH logically cannot accurately simulate DDD.)  I would
    prefer that olcott refrain from using my words to support any of
    his arguments beyond the scope of what he and I directly discussed.

    Don't know why you people stick on the 'simulation' stuff so long.
    The HP simply asks for such an H (in function form. POOH does not
    resemble TM):
      H(D)=1 if D() halt.
      H(D)=0 if D() not halt.

    My invention of a simulating termination
    analyzer shows exactly how to compute the
    mapping that the input that HHH(DD) specifies
    into a correct answer for the halting problem's
    otherwise impossible input.

    All rebuttals are based on failing to compute
    this mapping correctly.


    The problem is you don't compute the correct mapping, as you LIE by
    changing the defined mapping with your strawman,

    Termination Analyzer, BY THEIR DEFINITION, determine if the program
    represented by their input will halt when run. PERIOD.


    When definitions contradict each other at
    least one of them is wrong.

    And what is the contradiction? (as opposed to you just not understanding
    what was said?)


    HHH(DDD) computes the mapping from its input finite
    string according to the rules of the x86 language
    thus obtains the actual behavior THAT THIS INPUT STRING SPECIFIES.

    No, the behavior the input string specifies doesn't come from the
    subjective stanadard of what HHH does, it comes from the objective
    standard of the problem statement.

    The results of the mapping that HHH computes, is what its answer is, If
    that doesn't match the CORRECT answer from the DEFINED mapping from the
    DEFINED behavior, it is just wrong.

    It seems you logic just doens't understand the concept that you can be
    wrong, which you are very often.


    Until you can docuemnt a reliable source that gives your strawman, you
    ar just proven to be a stupid liar that has proved his ignorance.

    My reasoning itself is air tight. You usually only have weasel words.


    Like a screen door on a submarine, now sitting at the bottom of the lake
    of fire.

    You are just showing that you just fundamentally lack the understanding
    of the words you are using.

    What HHH computes does not define the right answer to the problem, it
    defines what HHH computes. The answer comes from the problem, that
    apparently is using words you don't understand, as they require looking
    at what something actualy does when looked at objectively, something
    that seems to be beyond your understanding.

    Sorry, you are just proving how stupid you are.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to olcott on Sat May 10 09:09:08 2025
    On 5/10/25 12:21 AM, olcott wrote:
    On 5/9/2025 10:31 PM, Richard Damon wrote:
    On 5/9/25 11:13 PM, wij wrote:
    On Fri, 2025-05-09 at 19:40 -0700, Keith Thompson wrote:
    olcott <polcott333@gmail.com> writes:
    On 5/9/2025 4:40 PM, Richard Heathfield wrote:
    On 09/05/2025 21:15, olcott wrote:
    On 5/9/2025 3:07 PM, Richard Heathfield wrote:
    On 09/05/2025 20:46, olcott wrote:
    We have not begun to get into any of those points.
    We are only asking can DDD correctly simulated
    by any HHH that can exist ever reach its own
    "return" instruction.

    DDD can't be correctly simulated by itself (which is effectively >>>>>>>> what you're trying to do when you fire up the simulation from
    inside DDD).

    How the Hell did you twist my words to say that?
    I haven't touched your words. What I have done is to observe that
    DDD's /only/ action is to call a simulator. Since DDD isn't itself a >>>>>> simulator, there is nothing to simulate except a call to a
    simulator.
    It's recursion without a base case - a rookie error.
    HHH cannot successfully complete its task, because it never regains >>>>>> control after the first recursion. To return, it must abort the
    simulation, which means the simulation fails.

    void DDD()
    {
        HHH(DDD);
        return;
    }

    When 1 or more statements of DDD are correctly
    simulated by HHH then this correctly simulated
    DDD cannot possibly reach its own “return statement”.
    On what grounds can you persuade an extraordinarily sceptical
    readership that HHH 'correctly simulated' DDD?

    Any competent C programmer can see that
    the call from DDD to HHH(DDD) (its own simulator)
    is equivalent to infinite recursion.

    On 5/8/2025 8:30 PM, Keith Thompson wrote:
    Assuming that HHH(DDD) "correctly simulates" DDD, and assuming it
    does nothing else, your code would be equivalent to this:

          void DDD(void) {
              DDD();
              return;
          }

    Then the return statement (which is unnecessary anyway) will never be >>>>>> reached.  In practice, the program will likely crash due to a stack >>>>>> overflow, unless the compiler implements tail-call optimization, in >>>>>> which case the program might just run forever -- which also means the >>>>>> unnecessary return statement will never be reached.

    I had not intended to post again, but I feel the need to make
    a clarification.

    I acknowledged that the return statement would never be reached
    *given the assumption* that HHH correctly simulates DDD.  Given
    that assumption, a call to DDD() should be equivalent to a call
    to HHH(DDD).

    I did not address whether the assumption is valid.  I merely
    temporarily accepted it for the sake of discussion, just as I would
    accept that if I were ten feet tall I would bump my head against
    the ceiling in my house.

    The discussion I had with olcott did not reach the point of
    discussing *how* HHH could correctly simulate DDD, or whether it
    would even be logically possible for it to do so.  I also did not
    address any issues of partial simulation, where olcott claims that
    HHH can "accurately simulate" only a few x86 instructions rather
    than simulating its entire execution.  I did not participate in
    any discussion that would require knowledge of x86 machine or
    assembly code.  (I have no doubt that I could learn x86 machine
    and assembly code reasonably well if motivated to do so, but I am
    not so motivated.)

    What I acknowledged was barely more than "if HHH correctly simulates
    DDD, then HHH correctly simulates DDD".  (My understanding from
    posts by others, whom I presume to be sufficiently knowledgeable,
    is that HHH logically cannot accurately simulate DDD.)  I would
    prefer that olcott refrain from using my words to support any of
    his arguments beyond the scope of what he and I directly discussed.

    Don't know why you people stick on the 'simulation' stuff so long.
    The HP simply asks for such an H (in function form. POOH does not
    resemble TM):
      H(D)=1 if D() halt.
      H(D)=0 if D() not halt.



    The issue is Peter thinks that by making H a "simulating Halt Decider"
    or a "Simulating Termination Analyzer" it can change the definition,
    by trying to put out a lying definition of Halting by lying about the
    definition of correct simulation and what is the input.

    It is a stupid idea that halt deciders must be either
    infallible or wrong so I switched to termination analyzers.

    Which also must be infallible or wrong as a total program. Just like
    halt deciders, PARTIAL deciders are possible, and effort goes into how
    good we can do. It is perhaps more useful to know termination analysis,
    as we rarely run a program on just a single input as the Halting Problem answers so better to spend the effort to attempt termination analysis
    where we hope to get a range of inputs that the program can be shown
    that it will give an answer.


    A termination analyzer is correct if it can process a
    single input that itself has no inputs.


    Nope. Show your definition.

    The one I am using is experessed at: https://en.wikipedia.org/wiki/Termination_analysis

    In computer science, termination analysis is program analysis which
    attempts to determine whether the evaluation of a given program halts
    for each input. This means to determine whether the input program
    computes a total function.

    It is closely related to the halting problem, which is to determine
    whether a given program halts for a given input and which is
    undecidable. The termination analysis is even more difficult than the
    halting problem: the termination analysis in the model of Turing
    machines as the model of programs implementing computable functions
    would have the goal of deciding whether a given Turing machine is a
    total Turing machine,

    Note, just like A Halt Decider, it needs to decide CORRECTLY (to be
    correct) for whatever program is given. Not just for "a" input.

    Perhaps you get confused because a lot of work goes on looking at
    partial termination analyzers, where the goal is to see for what inputs
    can the analyzer PROVE halting for all (or at least a defined set) of
    inputs. The field admits it isn't solving the total problem, but accepts partial answers so the common discussion doesn't talk about a analyzer
    being a "correct decider" but being correct for certain inputs, or not incorrect for others, as it allows the deciders to give an "i can't
    tell" answer.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to olcott on Sat May 10 09:15:11 2025
    On 5/10/25 12:27 AM, olcott wrote:
    On 5/9/2025 10:29 PM, Richard Damon wrote:
    On 5/9/25 11:17 PM, olcott wrote:
    On 5/9/2025 10:12 PM, Keith Thompson wrote:
    Mike Terry <news.dead.person.stones@darjeeling.plus.com> writes:
    On 09/05/2025 03:23, Keith Thompson wrote:
    Richard Damon <richard@damon-family.org> writes:
    On 5/8/25 7:53 PM, olcott wrote:
    [...]
    void DDD()
    {
         HHH(DDD);
         return;
    }
    We don't need to look at any of my code for me
    to totally prove my point. For example when
    the above DDD is correctly simulated by HHH
    this simulated DDD cannot possibly reach its own
    "return" instruction.

    And thus not correctly simulatd.

    Sorry, there is no "OS Exemption" to correct simulaiton;.
    Perhaps I've missed something.  I don't see anything in the above >>>>>> that
    implies that HHH does not correctly simulate DDD.  Richard, you've >>>>>> read
    far more of olcott's posts than I have, so perhaps you can clarify. >>>>>> If we assume that HHH correctly simulates DDD, then the above code >>>>>> is
    equivalent to:
          void DDD()
          {
            DDD();
            return;
          }
    which is a trivial case of infinite recursion.  As far as I can
    tell,
    assuming that DDD() is actually called at some point, neither the
    outer execution of DDD nor the nested (simulated) execution of DDD >>>>>> can reach the return statement.  Infinite recursion might either
    cause a stack overflow and a probable program crash, or an unending >>>>>> loop if the compiler implements tail call optimization.
    I see no contradiction, just an uninteresting case of infinite
    recursion, something that's well understood by anyone with a
    reasonable level of programming experience.  (And it has nothing to >>>>>> do with the halting problem as far as I can tell, though of course >>>>>> olcott has discussed the halting problem elsewhere.)
    Richard, what am I missing?

    Depends on what you've picked up on.

    Do you get that HHH's simulation is a /partial/ simulation?  HHH is >>>>> free to simulate a few x86 instructions of DDD, and then simply
    abandon the simulation and return.  Since such a simulation is
    obviously NOT equivalent to a direct call to DDD, and above you argue >>>>> that it is, I'd say you've missed that.

    I have not read the vast majority of olcott's post here.  For most
    of the recent discussion I had with him, there was no mention of
    partial simulation.  olcott finally said something about simulating
    just a few instructions, but at the same time he finally indicated
    that understanding his arguments would require an understanding of
    x86 machine and/or assembly language.  That's when I bailed out.

    A "correct simulation", as I understand the term, would require fully
    simulate the execution of DDD.  If DDD never halts, its simulation
    never
    halts.  olcott seems to think that he's found a way around this that's >>>> relevant to the Halting Problem, but I withdrew before getting to that >>>> point.


    It only need be a correct simulation until HHH sees the
    repeating pattern that would cause itself to never terminate.

    Right, but that pattern needs to be based on the fact that HHH is a
    program that can abort its simulation, and in fact WILL.


    The best selling author of theory of computation textbooks
    agreed that I could quote his agreement with my words.

    <MIT Professor Sipser agreed to ONLY these verbatim words 10/13/2022>
         If simulating halt decider H correctly simulates its
         input D until H correctly determines that its simulated D
         would never stop running unless aborted then

         H can abort its simulation of D and correctly report that D
         specifies a non-halting sequence of configurations.
    </MIT Professor Sipser agreed to ONLY these verbatim words 10/13/2022>




    *simulated D would never stop running unless aborted*
    means determining what would happen if this H never aborted.





    Right, and "simulated D" means the correct simulation of D, which of
    coures does not abort.

    It also means the actual program D that was given to the original H, and
    thus calls that original H, which by your logic does abort its emulation
    and returns 0, thus the simulation of this input, if not aborted (a
    reqirement this H fails to meet) will reach that point where H aborts
    and returns to D and D will halt, thus the condition isn't satisfied.

    So, if you change the OUTER H, but not the H in the input (since that
    would mean a different input) to not abort.

    The fact that you stupidly made your system so you can't do that
    operation, means you can't do it and thus can't use that logic.

    Fundamentally, the problem is your input is not a "program" as you are
    trying to exclude some of its code as part of the input, so your whole arguement fails on a big category error.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to olcott on Sat May 10 09:17:24 2025
    On 5/10/25 12:46 AM, olcott wrote:
    On 5/9/2025 10:12 PM, Richard Damon wrote:
    On 5/9/25 10:47 PM, olcott wrote:
    On 5/9/2025 9:39 PM, Richard Damon wrote:
    On 5/9/25 10:20 PM, olcott wrote:
    On 5/9/2025 9:15 PM, Richard Heathfield wrote:
    On 10/05/2025 02:48, olcott wrote:
    On 5/9/2025 8:32 PM, Richard Heathfield wrote:
    On 10/05/2025 02:29, olcott wrote:
    On 5/9/2025 8:15 PM, Richard Heathfield wrote:
    On 10/05/2025 01:51, olcott wrote:
    On 5/9/2025 7:29 PM, Richard Heathfield wrote:
    On 10/05/2025 00:02, olcott wrote:
    Correctly emulating one or more instructions <is>
    the correct emulation of 1 or more instructions
    of DD. This is a truism.

    No, it's not. Correct emulation would entail accurately >>>>>>>>>>>> simulating the whole of DDD's behaviour.

    It is stupidly wrong to require the complete
    emulation of a non-terminating input.

    It is touchingly naive to think you can persuade people to >>>>>>>>>> accept incomplete emulation as 'correct'.


    If one instruction is emulated correctly
    then is is dishonest to say that zero
    instructions were emulated correctly.

    Which instruction do you think is emulated correctly?

    _DDD()
    [00002172] 55         push ebp      ; housekeeping
    [00002173] 8bec       mov ebp,esp   ; housekeeping
    [00002175] 6872210000 push 00002172 ; push DDD
    [0000217a] e853f4ffff call 000015d2 ; call HHH(DDD)


    Assumes facts not in evidence. Your HHH function is in a
    translation unit that contains a syntax error.


    It is a truism that when DDD is emulated by HHH
    according to the rules of the x86 language that
    the first four instructions of DDD would be emulated
    and then HHH would also be required to emulate
    itself emulating DDD.


    Nope, because by your definitions HHH can not correctly emulate that
    DDD, as it doesn't include the code for the HHH that it calls,

    DDD are HHH are on the same memory space I told you this 50 times
    DDD are HHH are on the same memory space I told you this 50 times
    DDD are HHH are on the same memory space I told you this 50 times
    DDD are HHH are on the same memory space I told you this 50 times
    DDD are HHH are on the same memory space I told you this 50 times


    But that doesn't mean that HHH is allowed to access it.


    Yes it does mean this.


    really? WHere do you get that from? Are you removing your restriction
    that HHH is a pure function?

    Pure functions can only get there data from their input, so if the code
    isn't in the input, it can't be accessed.

    You are just running into the fact that you whole world is built on equivocations and contradictiory definitions, and thus you can't
    actually see what is true,

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to olcott on Sat May 10 09:20:46 2025
    On 5/10/25 12:05 AM, olcott wrote:
    On 5/9/2025 10:50 PM, Richard Damon wrote:
    On 5/9/25 11:29 PM, olcott wrote:
    On 5/9/2025 10:17 PM, Richard Damon wrote:
    On 5/9/25 10:27 PM, olcott wrote:
    On 5/9/2025 9:19 PM, Richard Heathfield wrote:
    On 10/05/2025 02:50, olcott wrote:
    On 5/9/2025 8:32 PM, Richard Heathfield wrote:
    On 10/05/2025 02:29, olcott wrote:
    On 5/9/2025 8:15 PM, Richard Heathfield wrote:
    On 10/05/2025 01:51, olcott wrote:
    On 5/9/2025 7:29 PM, Richard Heathfield wrote:
    On 10/05/2025 00:02, olcott wrote:
    Correctly emulating one or more instructions <is>
    the correct emulation of 1 or more instructions
    of DD. This is a truism.

    No, it's not. Correct emulation would entail accurately >>>>>>>>>>>> simulating the whole of DDD's behaviour.

    It is stupidly wrong to require the complete
    emulation of a non-terminating input.

    It is touchingly naive to think you can persuade people to >>>>>>>>>> accept incomplete emulation as 'correct'.


    If one instruction is emulated correctly
    then is is dishonest to say that zero
    instructions were emulated correctly.

    Which instruction do you think is emulated correctly?

    <snip>

    The entire sequence of the first four instructions
    of DDD is emulated correctly.

    Nope. Syntax errors don't count as correct.


    Any HHH that emulates DDD according to the rules
    of the x86 language must emulate the first four
    instructions of DDD followed by HHH emulating
    itself emulated DDD and then the first three
    instructions of DDD when seven of the instructions
    of DDD are correctly emulated.

    This is axiomatic according to the rules of
    the x86 language applied to the input to HHH(DDD).


    Nope.

    I have shown an HHH that just by the rules of the x86 language can
    correctly emulate the code of DDD that references itself.


    _DDD()
    [00002172] 55         push ebp      ; housekeeping
    [00002173] 8bec       mov ebp,esp   ; housekeeping
    [00002175] 6872210000 push 00002172 ; push DDD
    [0000217a] e853f4ffff call 000015d2 ; call HHH(DDD)
    [0000217f] 83c404     add esp,+04
    [00002182] 5d         pop ebp
    [00002183] c3         ret
    Size in bytes:(0018) [00002183]

    You cannot possibly show any HHH that emulates this
    DDD according to the rules of the x86 language such
    that this DDD ever reaches its "ret" instruction
    final halt state.



    Sure I have. I guess you are just admitting you are a blantant liar.

    int HHH(ptr P) {
       static int flag = 0;
       if (flag) return 0;
       flag = 1;

       /* Now put your existing code for a correct simulator that never
    aborts */


    Tell me why this simulator can't reach the final state of DDD when we
    call HHH(DDD)

    it will simulate the introduction to DDD, then go into HHH and see
    that flag has been set to 1 by the initial call to HHH, and then
    immediately return 0 to DDD which will then halt.

    THis has been explained several time TODAY, and thus your denial is
    just proof that you are just a stupid liar.

    I guess you want to get the express ticket to that lake of fire.

    That would work so I need to make my spec tighter.


    The problem is you really don't get to "define" the specifications, only
    your interpretations, and if they are compatible with the actual ones
    you are just wrong.

    You have a bit of flexability, as you only need to be Turing Compatible,
    but that is part of the problem, you don't understand what that means,
    and your system is fundamentally not that to the problem.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Fred. Zwarts@21:1/5 to All on Sat May 10 15:28:37 2025
    Op 10.mei.2025 om 01:43 schreef olcott:
    On 5/9/2025 6:36 PM, Richard Damon wrote:
    On 5/9/25 7:02 PM, olcott wrote:
    On 5/8/2025 11:11 PM, Keith Thompson wrote:
    olcott <polcott333@gmail.com> writes:
    On 5/8/2025 8:30 PM, Keith Thompson wrote:
    olcott <polcott333@gmail.com> writes:
    On 5/8/2025 6:49 PM, Keith Thompson wrote:
    olcott <polcott333@gmail.com> writes:
    [...]
    void DDD()
    {
         HHH(DDD);
         return;
    }

    If you are a competent C programmer then you
    know that DDD correctly simulated by HHH cannot
    possibly each its own "return" instruction.
    "cannot possibly each"?
    I am a competent C programmer (and I don't believe you can make >>>>>>>> the same claim).  I don't know what HHH is.  The name "HHH" tells >>>>>>>> me nothing about what it's supposed to do.  Without knowing what >>>>>>>> HHH is, I can't say much about your code (or is it pseudo-code?). >>>>>>>>

    For the purpose of this discussion HHH is exactly
    what I said it is. It correctly simulates DDD.
    Does HHH correctly simulate DDD *and do nothing else*?
    Does HHH correctly simulate *every* function whose address is passed >>>>>> to it?  Must the passed function be one that takes no arguments
    and does not return a value?
    Can HHH just *call* the function whose address is passed to it?
    If it's a correct simulation, there should be no difference between >>>>>> calling the function and "correctly simulating" it.
    My knowledge of C tells me nothing about *how* HHH might simulate
    DDD.

    HHH can only simulate a function that take no arguments
    and has no return value. HHH also simulates the entire
    chain of functions that this function calls. These can
    take arguments or not and have return values or not.

    Thus HHH ends up simulating itself (and everything
    that HHH calls) simulating DDD in an infinite
    sequence of recursive emulation until OOM error.

    We need not know anything else about HHH to
    know that DDD correctly simulated by HHH cannot
    possibly REACH its own "return" instruction.
    Assuming that HHH(DDD) "correctly simulates" DDD, and assuming it
    does nothing else, your code would be equivalent to this:
          void DDD(void) {
              DDD();
              return;
          }

    Exactly. None of these people on comp.theory could
    get that even after three years.

    I find that difficult to believe.

    Then the return statement (which is unnecessary anyway) will never be >>>>>> reached.

    It is only there to mark a final halt state.

    The closing "}" does that equally well.

    In practice, the program will likely crash due to a stack
    overflow, unless the compiler implements tail-call optimization, in >>>>>> which case the program might just run forever -- which also means the >>>>>> unnecessary return statement will never be reached.


    Yes you totally have this correctly.
    None of the dozens of comp.theory people could
    ever achieve that level of understanding even
    after three years. That is why I needed to post
    on comp.lang.c.

    I'll note that I've posted in comp.theory, not in comp.lang.c.
    I never see anything you post in comp.lang.c.

    This conclusion relies on my understanding of what you've said about >>>>>> your code, which I consider to be unreliable.

    I am not even talking about my code. I am
    talking about the purely hypothetical code
    that you just agreed to.

    Do not overestimate what I've agreed to.  I must still consider the
    possibility that I've been led into a logical trap of some sort,
    and that I've missed some subtle flaw.

    No doubt you believe that there is some significance to the
    apparent fact that the return statement will never be reached,
    assuming that's a correct and relevant conclusion.  I don't know
    what that significance might be.

    I will tell you that later after you understand
    some prerequisite ideas first.

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

    So now HHH returns an int result, and you store that result
    in a variable named "Halt_Status".  You haven't said here what
    the meaning of that result might be, and I decline to make any
    assumptions based on what you've called it.  You could rename
    "Halt_Status" to "Foo" and have effectively identical code.

    Previously DDD would "correctly simulate" the function whose address is >>>> passed to it.  Now it does that and returns an int result.

    If you want to say anything about the meaning of the result returned
    by HHH, feel free to say it.

    The same thing that applied to DDD equally
    applies to the more complicated DD.

    When 1 or more instructions of DD are correctly
    simulated by HHH the correctly simulated DD
    cannot possibly get past its call to HHH(DD).
    Thus DD also never reaches its "return" instruction.

    Now you're talking about simulating "1 or more instructions"
    of DD.  I thought that HHH was supposed to "accurately simulate"
    the function whose argument is passed to it.  Emulating just "1 or
    more instructions" is not accurate simulation.


    Correctly emulating one or more instructions <is>
    the correct emulation of 1 or more instructions
    of DD. This is a truism.

    No, Correctly Emulating *ALL* of the instructions is the definition of
    correct emulation.


    In other words it is waaayyy over your head that
    when correctly emulating an infinite number of
    instructions of DD is not enough for DD correctly
    emulated by HHH to reach its own final halt
    state that fewer than infinity might be enough?



    I am surprised that a experienced programmer as you claim to be, does
    not see that ending an incomplete simulation does not make it correct.

    If a calculation does not converge, we cannot just finish the
    calculation and claim that all previous steps were correct and therefore
    the result obtained so far must be correct as well. The only conclusion
    is that this way to do the calculation fails.

    So the conclusion must be: a simulation is not the correct way to solve
    this problem. Try another tool.
    But the proven halting theorem shows that no tool exists to solve all
    halting problems.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Fred. Zwarts@21:1/5 to All on Sat May 10 16:54:33 2025
    Op 10.mei.2025 om 16:33 schreef olcott:
    On 5/10/2025 7:37 AM, Bonita Montero wrote:
    Am 09.05.2025 um 04:22 schrieb olcott:

    Look at their replies to this post.
    Not a one of them will agree that

    void DDD()
    {
       HHH(DDD);
       return; // final halt state
    }

    When 1 or more instructions of DDD are correctly
    simulated by HHH then the correctly simulated DDD cannot
    possibly reach its "return" instruction (final halt state).

    They have consistently disagreed with this
    simple point for three years.

    I guess that not even a professor of theoretical computer
    science would spend years working on so few lines of code.


    I created a whole x86utm operating system.
    It correctly determines that the halting problem's
    otherwise "impossible" input is actually non halting.

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

    https://github.com/plolcott/x86utm


    Another bad dream? The fact is that the input is not 'impossible', but
    that this system ignores most of the input. In particular it ignores the important part of the input that has a conditional abort, which makes
    that the input specifies a halting program. That the system does not see
    that part of the specification does not mean that it is not specified.
    It only means that the system is buggy.
    It seems that after each bad dream you have forgotten the verifiable
    facts that have been presented to you earlier.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Fred. Zwarts@21:1/5 to All on Sat May 10 17:14:23 2025
    Op 10.mei.2025 om 16:51 schreef olcott:
    On 5/10/2025 1:19 AM, wij wrote:
    On Sat, 2025-05-10 at 01:06 -0500, olcott wrote:
    On 5/10/2025 1:00 AM, wij wrote:
    On Sat, 2025-05-10 at 00:41 -0500, olcott wrote:
    On 5/10/2025 12:27 AM, wij wrote:
    On Sat, 2025-05-10 at 00:19 -0500, olcott wrote:
    On 5/10/2025 12:13 AM, wij wrote:
    On Sat, 2025-05-10 at 00:06 -0500, olcott wrote:>>
    When mathematical mapping is properly understood
    it will be known that functions computed by models
    of computation must transform their input into
    outputs according to the specific steps of an
    algorithm.

    _DDD()
    [00002172] 55         push ebp      ; housekeeping >>>>>>>>> [00002173] 8bec       mov ebp,esp   ; housekeeping
    [00002175] 6872210000 push 00002172 ; push DDD
    [0000217a] e853f4ffff call 000015d2 ; call HHH(DDD)
    [0000217f] 83c404     add esp,+04
    [00002182] 5d         pop ebp
    [00002183] c3         ret
    Size in bytes:(0018) [00002183]

    For example HHH(DDD) only correctly map to the
    behavior that its input actually specifies by correctly
    emulating DDD according to the rules of the x86 language.

    This causes the first four instructions of DDD
    to be emulated followed by HHH emulating itself
    emulating the first three instructions of DDD.

    It is right at this recursive simulation just
    before HHH(DDD) is called again that HHH recognizes
    the repeating pattern and rejects DDD.

    Yes, but you still did not answer the question: Is POOH exactly >>>>>>>> about HP?


        >>>>> H(D)=1 if D() halt.
        >>>>> H(D)=0 if D() not halt.

    Right now it is mostly about proving the
    above requirements are is mistaken.


    Why is the requirement invalid?

    H(D)=1 if D() halt.
    H(D)=0 if D() not halt.



    The notion that the behavior specified by the finite
    string input to a simulating termination analyzer

    POOH reads(takes) its input as a function, not 'finite string'.
    Are you talking about POOH now? There is no POOH that takes
    'finite string'.


    It <is> a finite string of x86 bytes.

    Disagree.
    The D in Halt7.c (I just saw once) does not treat H as 'finite string',
    D calls H. H also does not treat D as 'finite string'.


    HHH and DDD and DD are the most recent functions.
    HHH does emulate its finite strings of x86 machine code
    according to the rules of the x86 language.

    But it violates the x86 semantics by halting the simulation before it
    reached the reachable halt of the program specified in the input.
    That it is reachable is proven by direct execution and world-class
    simulators, which do not do that violation of the x86 semantics.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Heathfield@21:1/5 to olcott on Sat May 10 17:07:36 2025
    On 10/05/2025 16:43, olcott wrote:
    On 5/10/2025 10:14 AM, wij wrote:
    On Sat, 2025-05-10 at 09:51 -0500, olcott wrote:
    On 5/10/2025 1:19 AM, wij wrote:
    On Sat, 2025-05-10 at 01:06 -0500, olcott wrote:
    On 5/10/2025 1:00 AM, wij wrote:
    On Sat, 2025-05-10 at 00:41 -0500, olcott wrote:
    On 5/10/2025 12:27 AM, wij wrote:
    On Sat, 2025-05-10 at 00:19 -0500, olcott wrote:
    On 5/10/2025 12:13 AM, wij wrote:
    On Sat, 2025-05-10 at 00:06 -0500, olcott wrote:>>
    When mathematical mapping is properly understood
    it will be known that functions computed by models
    of computation must transform their input into
    outputs according to the specific steps of an
    algorithm.

    _DDD()
    [00002172] 55         push ebp      ; housekeeping >>>>>>>>>>> [00002173] 8bec       mov ebp,esp   ; housekeeping >>>>>>>>>>> [00002175] 6872210000 push 00002172 ; push DDD
    [0000217a] e853f4ffff call 000015d2 ; call HHH(DDD)
    [0000217f] 83c404     add esp,+04
    [00002182] 5d         pop ebp
    [00002183] c3         ret
    Size in bytes:(0018) [00002183]

    For example HHH(DDD) only correctly map to the
    behavior that its input actually specifies by correctly
    emulating DDD according to the rules of the x86 language. >>>>>>>>>>>
    This causes the first four instructions of DDD
    to be emulated followed by HHH emulating itself
    emulating the first three instructions of DDD.

    It is right at this recursive simulation just
    before HHH(DDD) is called again that HHH recognizes
    the repeating pattern and rejects DDD.

    Yes, but you still did not answer the question: Is POOH
    exactly about HP?


         >>>>> H(D)=1 if D() halt.
         >>>>> H(D)=0 if D() not halt.

    Right now it is mostly about proving the
    above requirements are is mistaken.


    Why is the requirement invalid?

    H(D)=1 if D() halt.
    H(D)=0 if D() not halt.



    The notion that the behavior specified by the finite
    string input to a simulating termination analyzer

    POOH reads(takes) its input as a function, not 'finite
    string'.
    Are you talking about POOH now? There is no POOH that takes
    'finite string'.


    It <is> a finite string of x86 bytes.

    Disagree.
    The D in Halt7.c (I just saw once) does not treat H as
    'finite string',
    D calls H. H also does not treat D as 'finite string'.


    HHH and DDD and DD are the most recent functions.
    HHH does emulate its finite strings of x86 machine code
    according to the rules of the x86 language.

    This is from a copy of Halt7.c:

    void P(ptr x)
    {
       int Halt_Status = H(x, x);
       if (Halt_Status)
         HERE: goto HERE;
       return;
    }

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

    H reads a *pointer*.
    In P, P *calls* H.

    Both do not process 'finite string'.


    What it is it a pointer to a box of chocolates?

    No, it's a pointer to a function. On line 23 of your github
    posting you typedef the type as void (*ptr)().

    It is certainly finite, but it is not a string.

    7.1.1(1) reads "A string is a contiguous sequence of characters
    terminated by and including the first null character."

    Functions are not characters.

    3.7
    1
    character
    〈abstract〉 member of a set of elements used for the organization,
    control, or representation of data

    3.7.1
    1
    character
    single-byte character
    〈C〉 bit representation that fits in a byte

    finite strings are passed as pointers to finite
    string in C.

    In C, you pass a string to a function by passing a pointer to the
    string's first character, using char *, not void(*)().

    <snip>

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

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Fred. Zwarts@21:1/5 to All on Sat May 10 18:05:00 2025
    Op 10.mei.2025 om 17:43 schreef olcott:
    On 5/10/2025 10:14 AM, wij wrote:
    On Sat, 2025-05-10 at 09:51 -0500, olcott wrote:
    On 5/10/2025 1:19 AM, wij wrote:
    On Sat, 2025-05-10 at 01:06 -0500, olcott wrote:
    On 5/10/2025 1:00 AM, wij wrote:
    On Sat, 2025-05-10 at 00:41 -0500, olcott wrote:
    On 5/10/2025 12:27 AM, wij wrote:
    On Sat, 2025-05-10 at 00:19 -0500, olcott wrote:
    On 5/10/2025 12:13 AM, wij wrote:
    On Sat, 2025-05-10 at 00:06 -0500, olcott wrote:>>
    When mathematical mapping is properly understood
    it will be known that functions computed by models
    of computation must transform their input into
    outputs according to the specific steps of an
    algorithm.

    _DDD()
    [00002172] 55         push ebp      ; housekeeping >>>>>>>>>>> [00002173] 8bec       mov ebp,esp   ; housekeeping >>>>>>>>>>> [00002175] 6872210000 push 00002172 ; push DDD
    [0000217a] e853f4ffff call 000015d2 ; call HHH(DDD)
    [0000217f] 83c404     add esp,+04
    [00002182] 5d         pop ebp
    [00002183] c3         ret
    Size in bytes:(0018) [00002183]

    For example HHH(DDD) only correctly map to the
    behavior that its input actually specifies by correctly
    emulating DDD according to the rules of the x86 language. >>>>>>>>>>>
    This causes the first four instructions of DDD
    to be emulated followed by HHH emulating itself
    emulating the first three instructions of DDD.

    It is right at this recursive simulation just
    before HHH(DDD) is called again that HHH recognizes
    the repeating pattern and rejects DDD.

    Yes, but you still did not answer the question: Is POOH
    exactly about HP?


         >>>>> H(D)=1 if D() halt.
         >>>>> H(D)=0 if D() not halt.

    Right now it is mostly about proving the
    above requirements are is mistaken.


    Why is the requirement invalid?

    H(D)=1 if D() halt.
    H(D)=0 if D() not halt.



    The notion that the behavior specified by the finite
    string input to a simulating termination analyzer

    POOH reads(takes) its input as a function, not 'finite string'.
    Are you talking about POOH now? There is no POOH that takes
    'finite string'.


    It <is> a finite string of x86 bytes.

    Disagree.
    The D in Halt7.c (I just saw once) does not treat H as 'finite string', >>>> D calls H. H also does not treat D as 'finite string'.


    HHH and DDD and DD are the most recent functions.
    HHH does emulate its finite strings of x86 machine code
    according to the rules of the x86 language.

    This is from a copy of Halt7.c:

    void P(ptr x)
    {
       int Halt_Status = H(x, x);
       if (Halt_Status)
         HERE: goto HERE;
       return;
    }

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

    H reads a *pointer*.
    In P, P *calls* H.

    Both do not process 'finite string'.


    What it is it a pointer to a box of chocolates?
    finite strings are passed as pointers to finite
    string in C.

    does sometimes differ from the behavior of its direct
    execution. It is a provably different sequence of steps.


    This is a verified fact.
    The pathological relationship that inputs can have
    with their simulating termination analyzer changes
    the behavior of these inputs relative to their direct
    execution.

    So, you redefined the halting problem should be about the behavior of D >>>> decided by POOH, not the 'direct' behavior of D?


    Not at all. HHH(DDD) reports on the behavior that DDD
    actually specifies. All my critics require HHH to report
    on behavior that DDD does not actually specify.

    The actual behavior that DDD specifies is measured
    by HHH emulating DDD according to the rules of the
    x86 language. My critics insist on ignoring these
    rules because it does not derive the behavior that
    they expect.

     From this reply and others before. Can we conclude that POOH is
    about the pathological relationship inputs to the halting decider H.
    IOW, POOH computes the function: POOH(D)=1 iff D is pathological.

    POOH is not about the 'incorrect' problem HP: POOH(D)=1 iff D() halt?


    Once we have the extra detail about how models
    of computation computing functions must compute
    the mapping from their actual inputs to the
    behaviors that these inputs actually specify

    and when we see that the input specifies a program that includes the HHH
    that aborts prematurely, we see that HHH misses that specification in
    the input. That does not make the behaviour in the specification any
    different.


    then we can see that I corrected a mistake in
    the theory of computation.

    So, the mistake is in thinking that HHH is correct. But it fails to
    reach the reachable end of the program specified in its input.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Heathfield@21:1/5 to olcott on Sat May 10 17:34:07 2025
    On 10/05/2025 17:15, olcott wrote:
    On 5/10/2025 11:00 AM, wij wrote:
    On Sat, 2025-05-10 at 10:43 -0500, olcott wrote:
    On 5/10/2025 10:14 AM, wij wrote:

    <snip>

    H reads a *pointer*.
    In P, P *calls* H.

    Both do not process 'finite string'.


    What it is it a pointer to a box of chocolates?
    finite strings are passed as pointers to finite
    string in C.

    Nope. I don't believe it is a pointer to chocolates, even if
    you say so.
    It is about the code of D/H itself. They do not process string,
    the fact says
    the author of the program does not intend to process 'string'.


    The input to HHH(DDD) is a pointer to a finite string
    of machine code.

    No, it's not. It's a pointer to function.

    HHH applies an x86 emulator to this
    finite string.

    No, HHH casts P's value to uint32_t (which is legal) and then
    dereferences it (which is not). There is no string to apply
    anything to.

    --
    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 Alan Mackenzie@21:1/5 to olcott on Sat May 10 18:48:12 2025
    olcott <polcott333@gmail.com> wrote:
    On 5/10/2025 7:37 AM, Bonita Montero wrote:

    [ .... ]

    I guess that not even a professor of theoretical computer
    science would spend years working on so few lines of code.


    I created a whole x86utm operating system.
    It correctly determines that the halting problem's
    otherwise "impossible" input is actually non halting.

    You've spent over 20 years on this matter. Compare this with Alan
    Turing's solution of the Entscheidungsproblem. He published this in 1936
    when he was just 24 years old.

    [ .... ]

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

    --
    Alan Mackenzie (Nuremberg, Germany).

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Mr Flibble@21:1/5 to Alan Mackenzie on Sat May 10 18:58:55 2025
    On Sat, 10 May 2025 18:48:12 +0000, Alan Mackenzie wrote:

    olcott <polcott333@gmail.com> wrote:
    On 5/10/2025 7:37 AM, Bonita Montero wrote:

    [ .... ]

    I guess that not even a professor of theoretical computer science
    would spend years working on so few lines of code.


    I created a whole x86utm operating system.
    It correctly determines that the halting problem's otherwise
    "impossible" input is actually non halting.

    You've spent over 20 years on this matter. Compare this with Alan
    Turing's solution of the Entscheidungsproblem. He published this in
    1936 when he was just 24 years old.

    Turing didn't solve anything: what he published contained a mistake: the category (type) error that I have described previously in this forum.

    /Flibble

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to olcott on Sat May 10 15:16:15 2025
    On 5/10/25 1:06 AM, olcott wrote:
    On 5/9/2025 11:51 PM, wij wrote:
    On Fri, 2025-05-09 at 23:44 -0500, olcott wrote:
    On 5/9/2025 11:32 PM, wij wrote:
    On Fri, 2025-05-09 at 23:18 -0500, olcott wrote:
    On 5/9/2025 10:43 PM, wij wrote:
    On Fri, 2025-05-09 at 22:24 -0500, olcott wrote:
    On 5/9/2025 10:13 PM, wij wrote:
    On Fri, 2025-05-09 at 19:40 -0700, Keith Thompson wrote:
    olcott <polcott333@gmail.com> writes:
    On 5/9/2025 4:40 PM, Richard Heathfield wrote:
    On 09/05/2025 21:15, olcott wrote:
    On 5/9/2025 3:07 PM, Richard Heathfield wrote:
    On 09/05/2025 20:46, olcott wrote:
    We have not begun to get into any of those points. >>>>>>>>>>>>>> We are only asking can DDD correctly simulated
    by any HHH that can exist ever reach its own
    "return" instruction.

    DDD can't be correctly simulated by itself (which is >>>>>>>>>>>>> effectively
    what you're trying to do when you fire up the simulation from >>>>>>>>>>>>> inside DDD).

    How the Hell did you twist my words to say that?
    I haven't touched your words. What I have done is to observe >>>>>>>>>>> that
    DDD's /only/ action is to call a simulator. Since DDD isn't >>>>>>>>>>> itself a
    simulator, there is nothing to simulate except a call to a >>>>>>>>>>> simulator.
    It's recursion without a base case - a rookie error.
    HHH cannot successfully complete its task, because it never >>>>>>>>>>> regains
    control after the first recursion. To return, it must abort the >>>>>>>>>>> simulation, which means the simulation fails.

    void DDD()
    {
           HHH(DDD);
           return;
    }

    When 1 or more statements of DDD are correctly
    simulated by HHH then this correctly simulated
    DDD cannot possibly reach its own “return statement”. >>>>>>>>>>> On what grounds can you persuade an extraordinarily sceptical >>>>>>>>>>> readership that HHH 'correctly simulated' DDD?

    Any competent C programmer can see that
    the call from DDD to HHH(DDD) (its own simulator)
    is equivalent to infinite recursion.

    On 5/8/2025 8:30 PM, Keith Thompson wrote:
    Assuming that HHH(DDD) "correctly simulates" DDD, and
    assuming it
    does nothing else, your code would be equivalent to this: >>>>>>>>>>>
             void DDD(void) {
                 DDD();
                 return;
             }

    Then the return statement (which is unnecessary anyway) will >>>>>>>>>>> never be
    reached.  In practice, the program will likely crash due to a >>>>>>>>>>> stack
    overflow, unless the compiler implements tail-call
    optimization, in
    which case the program might just run forever -- which also >>>>>>>>>>> means the
    unnecessary return statement will never be reached.

    I had not intended to post again, but I feel the need to make >>>>>>>>> a clarification.

    I acknowledged that the return statement would never be reached >>>>>>>>> *given the assumption* that HHH correctly simulates DDD.  Given >>>>>>>>> that assumption, a call to DDD() should be equivalent to a call >>>>>>>>> to HHH(DDD).

    I did not address whether the assumption is valid.  I merely >>>>>>>>> temporarily accepted it for the sake of discussion, just as I >>>>>>>>> would
    accept that if I were ten feet tall I would bump my head against >>>>>>>>> the ceiling in my house.

    The discussion I had with olcott did not reach the point of
    discussing *how* HHH could correctly simulate DDD, or whether it >>>>>>>>> would even be logically possible for it to do so.  I also did not >>>>>>>>> address any issues of partial simulation, where olcott claims that >>>>>>>>> HHH can "accurately simulate" only a few x86 instructions rather >>>>>>>>> than simulating its entire execution.  I did not participate in >>>>>>>>> any discussion that would require knowledge of x86 machine or >>>>>>>>> assembly code.  (I have no doubt that I could learn x86 machine >>>>>>>>> and assembly code reasonably well if motivated to do so, but I am >>>>>>>>> not so motivated.)

    What I acknowledged was barely more than "if HHH correctly
    simulates
    DDD, then HHH correctly simulates DDD".  (My understanding from >>>>>>>>> posts by others, whom I presume to be sufficiently knowledgeable, >>>>>>>>> is that HHH logically cannot accurately simulate DDD.)  I would >>>>>>>>> prefer that olcott refrain from using my words to support any of >>>>>>>>> his arguments beyond the scope of what he and I directly
    discussed.

    Don't know why you people stick on the 'simulation' stuff so long. >>>>>>>> The HP simply asks for such an H (in function form. POOH does not >>>>>>>> resemble TM):
         H(D)=1 if D() halt.
         H(D)=0 if D() not halt.

    My invention of a simulating termination
    analyzer shows exactly how to compute the
    mapping that the input that HHH(DD) specifies
    into a correct answer for the halting problem's
    otherwise impossible input.

    All rebuttals are based on failing to compute
    this mapping correctly.


    What is the correct mapping?


    _DDD()
    [00002172] 55         push ebp      ; housekeeping
    [00002173] 8bec       mov ebp,esp   ; housekeeping
    [00002175] 6872210000 push 00002172 ; push DDD
    [0000217a] e853f4ffff call 000015d2 ; call HHH(DDD)
    [0000217f] 83c404     add esp,+04
    [00002182] 5d         pop ebp
    [00002183] c3         ret
    Size in bytes:(0018) [00002183]

    Computing the mapping of DDD emulated by HHH
    according the the rules of the x86 language
    to its behavior by HHH actually emulating DDD.

    The above says you have no idea what the mapping is.

    If POOH are not talking about the mapping:

         H(D)=1 if D() halt.
         H(D)=0 if D() not halt.


    The way that simulating termination analyzers process
    their input by showing all of the steps of how the mapping
    must be computed refutes the above simplistic view.

    No (real) problem with that. But the HP asks:

    H(D)=1 if D() halt.
    H(D)=0 if D() not halt.

    You still evade the question: Is POO H anything to do with the HP?


    I have recently proven that the above requirements are incorrect.
    it that correct?

    Be it (HP) correct or not. Your 'revision' says POOH is not about the HP,
    it that correct?


    When mathematical mapping is properly understood
    it will be known that functions computed by models
    of computation must transform their input into
    outputs according to the specific steps of an
    algorithm.


    Right, but not all functions must have that property. That only applie
    if the function is computable (since that is the definition of being computable).

    The Halting Function is defined by the possible non-finite algortihm of
    running the program that is represented by the input


    _DDD()
    [00002172] 55         push ebp      ; housekeeping
    [00002173] 8bec       mov ebp,esp   ; housekeeping
    [00002175] 6872210000 push 00002172 ; push DDD
    [0000217a] e853f4ffff call 000015d2 ; call HHH(DDD)
    [0000217f] 83c404     add esp,+04
    [00002182] 5d         pop ebp
    [00002183] c3         ret
    Size in bytes:(0018) [00002183]

    For example HHH(DDD) only correctly map to the
    behavior that its input actually specifies by correctly
    emulating DDD according to the rules of the x86 language.

    But that pre-supposses that HHH does correctly emulate its input, which requires that HHH can NEVER abort its emuation, and thus it fails to be
    a decider.


    This causes the first four instructions of DDD
    to be emulated followed by HHH emulating itself
    emulating the first three instructions of DDD.

    Which means we should see the instructions of HHH being emulated, not
    the result of the emulation they are doing.


    Note, this first requires that the code for HHH was added to the input.


    It is right at this recursive simulation just
    before HHH(DDD) is called again that HHH recognizes
    the repeating pattern and rejects DDD.

    WHich is incorrect.

    If HHH decides to abort its emulation at this point, to confirm that
    decision we need to actually correctly emulate this exact code, like
    what HHH1 does, and it sees that later in the emulation that the
    emulated HHH will also make that same decision (since it IS the same
    code as the HHH that aborted) and return to DDD which then halts.

    So, your "repeating pattern" is just a false premise, making your whole arguemnt unsound.

    Your whole argument is based on using equivocation to insert
    contradictory definitions and lies into your system, and just some
    stupid lies.


    That people consistently ignore this proof with pure bluster
    is not actually any rebuttal at all.

    Other people's rebuttal of POOH may not be valid, if POOH is not about
    the HP.


    POOH is likely nothing to do with HP












    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to olcott on Sat May 10 15:25:06 2025
    On 5/10/25 10:33 AM, olcott wrote:
    On 5/10/2025 7:37 AM, Bonita Montero wrote:
    Am 09.05.2025 um 04:22 schrieb olcott:

    Look at their replies to this post.
    Not a one of them will agree that

    void DDD()
    {
       HHH(DDD);
       return; // final halt state
    }

    When 1 or more instructions of DDD are correctly
    simulated by HHH then the correctly simulated DDD cannot
    possibly reach its "return" instruction (final halt state).

    They have consistently disagreed with this
    simple point for three years.

    I guess that not even a professor of theoretical computer
    science would spend years working on so few lines of code.


    I created a whole x86utm operating system.
    It correctly determines that the halting problem's
    otherwise "impossible" input is actually non halting.

    No it doen't


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

    https://github.com/plolcott/x86utm


    int main() {
    DD();
    }

    shows that DD will halt.

    I guess you think lies are valid logic, and that strawman requirements
    are valid changes.

    Sorry, you are just proving your ustter stupidity.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to olcott on Sat May 10 15:23:25 2025
    On 5/10/25 12:27 AM, olcott wrote:
    On 5/9/2025 10:29 PM, Richard Damon wrote:
    On 5/9/25 11:17 PM, olcott wrote:
    On 5/9/2025 10:12 PM, Keith Thompson wrote:
    Mike Terry <news.dead.person.stones@darjeeling.plus.com> writes:
    On 09/05/2025 03:23, Keith Thompson wrote:
    Richard Damon <richard@damon-family.org> writes:
    On 5/8/25 7:53 PM, olcott wrote:
    [...]
    void DDD()
    {
         HHH(DDD);
         return;
    }
    We don't need to look at any of my code for me
    to totally prove my point. For example when
    the above DDD is correctly simulated by HHH
    this simulated DDD cannot possibly reach its own
    "return" instruction.

    And thus not correctly simulatd.

    Sorry, there is no "OS Exemption" to correct simulaiton;.
    Perhaps I've missed something.  I don't see anything in the above >>>>>> that
    implies that HHH does not correctly simulate DDD.  Richard, you've >>>>>> read
    far more of olcott's posts than I have, so perhaps you can clarify. >>>>>> If we assume that HHH correctly simulates DDD, then the above code >>>>>> is
    equivalent to:
          void DDD()
          {
            DDD();
            return;
          }
    which is a trivial case of infinite recursion.  As far as I can
    tell,
    assuming that DDD() is actually called at some point, neither the
    outer execution of DDD nor the nested (simulated) execution of DDD >>>>>> can reach the return statement.  Infinite recursion might either
    cause a stack overflow and a probable program crash, or an unending >>>>>> loop if the compiler implements tail call optimization.
    I see no contradiction, just an uninteresting case of infinite
    recursion, something that's well understood by anyone with a
    reasonable level of programming experience.  (And it has nothing to >>>>>> do with the halting problem as far as I can tell, though of course >>>>>> olcott has discussed the halting problem elsewhere.)
    Richard, what am I missing?

    Depends on what you've picked up on.

    Do you get that HHH's simulation is a /partial/ simulation?  HHH is >>>>> free to simulate a few x86 instructions of DDD, and then simply
    abandon the simulation and return.  Since such a simulation is
    obviously NOT equivalent to a direct call to DDD, and above you argue >>>>> that it is, I'd say you've missed that.

    I have not read the vast majority of olcott's post here.  For most
    of the recent discussion I had with him, there was no mention of
    partial simulation.  olcott finally said something about simulating
    just a few instructions, but at the same time he finally indicated
    that understanding his arguments would require an understanding of
    x86 machine and/or assembly language.  That's when I bailed out.

    A "correct simulation", as I understand the term, would require fully
    simulate the execution of DDD.  If DDD never halts, its simulation
    never
    halts.  olcott seems to think that he's found a way around this that's >>>> relevant to the Halting Problem, but I withdrew before getting to that >>>> point.


    It only need be a correct simulation until HHH sees the
    repeating pattern that would cause itself to never terminate.

    Right, but that pattern needs to be based on the fact that HHH is a
    program that can abort its simulation, and in fact WILL.


    The best selling author of theory of computation textbooks
    agreed that I could quote his agreement with my words.

    <MIT Professor Sipser agreed to ONLY these verbatim words 10/13/2022>
         If simulating halt decider H correctly simulates its
         input D until H correctly determines that its simulated D
         would never stop running unless aborted then

         H can abort its simulation of D and correctly report that D
         specifies a non-halting sequence of configurations.
    </MIT Professor Sipser agreed to ONLY these verbatim words 10/13/2022>




    *simulated D would never stop running unless aborted*
    means determining what would happen if this H never aborted.


    But H is a fixed definition.

    It isn't talking about changing the defintion of H, but of correctly
    simulating the input to H.

    I guess you don't understand that fundamental nature of a program.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to olcott on Sat May 10 15:33:53 2025
    On 5/10/25 2:56 PM, olcott wrote:
    On 5/10/2025 1:48 PM, Alan Mackenzie wrote:
    olcott <polcott333@gmail.com> wrote:
    On 5/10/2025 7:37 AM, Bonita Montero wrote:

    [ .... ]

    I guess that not even a professor of theoretical computer
    science would spend years working on so few lines of code.


    I created a whole x86utm operating system.
    It correctly determines that the halting problem's
    otherwise "impossible" input is actually non halting.

    You've spent over 20 years on this matter.  Compare this with Alan
    Turing's solution of the Entscheidungsproblem.  He published this in 1936 >> when he was just 24 years old.


    Because I spent this much time I noticed key details
    that no one else has ever bothered to notice before.

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

    The Halting Problem's impossible input is correctly
    determined to be non-halting when the measure of halting
    is computing the mapping from the finite string input
    to HHH(DD) on the basis of the behavior specified by
    by DD emulated by HHH according to the rules of the x86
    language.


    No it isn't, but you think it is as your built an improper model that
    can't do the operations you do in it.

    Sorry, you are just proving that you don't understand what you are doing
    and are just trusting the "truth fairy" to make you impossible claims true.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Alan Mackenzie@21:1/5 to Mr Flibble on Sat May 10 20:07:50 2025
    Mr Flibble <flibble@red-dwarf.jmc.corp> wrote:
    On Sat, 10 May 2025 18:48:12 +0000, Alan Mackenzie wrote:

    olcott <polcott333@gmail.com> wrote:
    On 5/10/2025 7:37 AM, Bonita Montero wrote:

    [ .... ]

    I guess that not even a professor of theoretical computer science
    would spend years working on so few lines of code.


    I created a whole x86utm operating system.
    It correctly determines that the halting problem's otherwise
    "impossible" input is actually non halting.

    You've spent over 20 years on this matter. Compare this with Alan
    Turing's solution of the Entscheidungsproblem. He published this in
    1936 when he was just 24 years old.

    Turing didn't solve anything: what he published contained a mistake: the category (type) error that I have described previously in this forum.

    What arrogant self-important ignorance! Turing indeed solved the Entscheidungsproblem. His procedure has been verified by hundreds of
    thousands of mathematicians over the last century, and none of them have
    found flaws in it.

    It is overwhelmingly likely that your lack of mathematical training has
    led you to delude yourself about finding an error. The same applies to
    Peter Olcott.

    /Flibble

    --
    Alan Mackenzie (Nuremberg, Germany).

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to olcott on Sat May 10 15:32:30 2025
    On 5/10/25 2:47 PM, olcott wrote:
    On 5/10/2025 1:37 PM, wij wrote:
    On Sat, 2025-05-10 at 13:17 -0500, olcott wrote:
    On 5/10/2025 1:09 PM, wij wrote:
    On Sat, 2025-05-10 at 12:17 -0500, olcott wrote:
    On 5/10/2025 12:01 PM, wij wrote:
    On Sat, 2025-05-10 at 11:47 -0500, olcott wrote:
    On 5/10/2025 11:29 AM, wij wrote:
    On Sat, 2025-05-10 at 11:19 -0500, olcott wrote:
    On 5/10/2025 11:06 AM, wij wrote:
    On Sat, 2025-05-10 at 10:45 -0500, olcott wrote:
    On 5/10/2025 10:28 AM, wij wrote:
    On Sat, 2025-05-10 at 09:33 -0500, olcott wrote:
    On 5/10/2025 7:37 AM, Bonita Montero wrote:
    Am 09.05.2025 um 04:22 schrieb olcott:

    Look at their replies to this post.
    Not a one of them will agree that

    void DDD()
    {
             HHH(DDD);
             return; // final halt state
    }

    When 1 or more instructions of DDD are correctly >>>>>>>>>>>>>>> simulated by HHH then the correctly simulated DDD cannot >>>>>>>>>>>>>>> possibly reach its "return" instruction (final halt state). >>>>>>>>>>>>>>>
    They have consistently disagreed with this
    simple point for three years.

    I guess that not even a professor of theoretical computer >>>>>>>>>>>>>> science would spend years working on so few lines of code. >>>>>>>>>>>>>>

    I created a whole x86utm operating system.
    It correctly determines that the halting problem's
    otherwise "impossible" input is actually non halting. >>>>>>>>>>>>>
    int DD()
    {
             int Halt_Status = HHH(DD);
             if (Halt_Status)
               HERE: goto HERE;
             return Halt_Status;
    }

    https://github.com/plolcott/x86utm


    Nope.
          From I know HHH(DD) decides whether the input DD is >>>>>>>>>>>> "impossible" input or
    not.


    DD has the standard form of the "impossible" input.
    HHH merely rejects it as non-halting.


    You said 'merely' rejects it as non-halting.
    So, POOH do not answer the input of any other function?


    The input that has baffled computer scientists for 90
    years is merely correctly determined to be non-halting
    when the behavior of this input is measured by HHH
    emulating this input according to the rules of the x86
    language.

    The same thing applies to the Linz proof yet cannot
    be understood until after HHH(DDD) and HHH(DD) are
    fully understood.


    HHH(DDD) (whatever) at most says DDD is a pathological/midtaken >>>>>>>> input.
    Others of what you say are your imagine and wishes, so far so true. >>>>>>>>

    DDD emulated by HHH accor not the 'HHH' that makes the final
    decision
    (otherwise, it will be an infinite recursive call which you agreed)

    ding to the rules of
    the x86 language specifies recursive emulation
    that cannot possibly reach the final halt state
    of DDD.


    I have no problem with that. And, you said HHH merely rejects it
    as non-halting.
    You had denied HHH can decide the halting property of any input,
    except DDD/DD/D..


    As long as HHH correctly determines the halt status
    of a single input that has no inputs then HHH is
    a correct termination analyzer for that input.

    Go it, that is a stronger statement that HHH ONLY decides DD.
    I have no problem with that, but be noticed that the HHH inside DD
    is not the 'HHH' that makes the final decision (otherwise, the 'HHH'
    will be an infinite recursive which cannot make any decision, which
    you had agreed)


    HHH(DD) correctly determines that its input specifies
    recursive emulation when this input is emulated by HHH
    HHH according to the rules of the x86 language.

     From the about, so you are talking about 'the HHH' which does not
    compute the final decision.


    HHH does recognize the recursive emulation pattern
    of DDD emulated by HHH according to the rules of
    the x86 language.

    But it isn't an infinitely recursion, as shown by the correct emulation
    of DDD by the rules of the x86 langauge, which HHH doesn't do.

    Your problem is that you seem to ignore that you need to talk about just
    a single implementation at a time. If HHH gives an answer, because it "recoginzed" that pattern, the pattern isn't there because your pattern
    is only true *IF* HHH actually does a correct emuation by the rules of
    the x86 language.

    I guess you agree to the logic that

    If Peter Olcott is an idiot, then Peter Olcott is an idiot.

    Therefore

    Peter Olcott is an idiot.



    *Thus exactly meets the following specification*
    <MIT Professor Sipser agreed to ONLY these verbatim words 10/13/2022>
          If simulating halt decider H correctly simulates its
          input D until H correctly determines that its simulated D
          would never stop running unless aborted then

          H can abort its simulation of D and correctly report that D

    This H won't be the same HHH inside the DD, otherwise an infinite
    recursive call happens.


    It must always be the outermost HHH that does this
    because it has seen one entire recursive emulation
    more than the next inner HHH.

    But the CORRECT emulation of ALL the layer will be exactly the same, and
    show that DDD is halting, and NOT infinitely recursive.


          specifies a non-halting sequence of configurations.
    </MIT Professor Sipser agreed to ONLY these verbatim words 10/13/2022>

    Professor Sipser is the best selling author of theory of
    computation textbooks.
    It is a pity that he could never take the five more minutes
    required to understand the notion of recursive emulation and
    thus see the significance of my work.

    You can cite any one, I don't know who Sipsper is.
    But yes, it is also a pity that Socrites and Turing did not know POOH.


    https://www.amazon.com/Introduction-Theory-Computation-Michael-Sipser/ dp/113318779X


    Which it is clear you don't understand.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Alan Mackenzie@21:1/5 to Mr Flibble on Sat May 10 20:22:23 2025
    Mr Flibble <flibble@red-dwarf.jmc.corp> wrote:
    On Sat, 10 May 2025 18:48:12 +0000, Alan Mackenzie wrote:

    olcott <polcott333@gmail.com> wrote:
    On 5/10/2025 7:37 AM, Bonita Montero wrote:

    [ .... ]

    I guess that not even a professor of theoretical computer science
    would spend years working on so few lines of code.


    I created a whole x86utm operating system.
    It correctly determines that the halting problem's otherwise
    "impossible" input is actually non halting.

    You've spent over 20 years on this matter. Compare this with Alan
    Turing's solution of the Entscheidungsproblem. He published this in
    1936 when he was just 24 years old.

    Turing didn't solve anything: what he published contained a mistake: the category (type) error that I have described previously in this forum.

    OK, then, give the page and line numbers from Turing's 1936 paper where
    this alleged mistake was made. I would be surprised indeed if you'd even looked at Turing's paper, far less understood it. Yet you're ready to denigrate his work.

    Perhaps it is time for you to withdraw these uncalled for insinuations.

    /Flibble

    --
    Alan Mackenzie (Nuremberg, Germany).

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Mr Flibble@21:1/5 to Alan Mackenzie on Sat May 10 20:17:01 2025
    On Sat, 10 May 2025 20:07:50 +0000, Alan Mackenzie wrote:

    Mr Flibble <flibble@red-dwarf.jmc.corp> wrote:
    On Sat, 10 May 2025 18:48:12 +0000, Alan Mackenzie wrote:

    olcott <polcott333@gmail.com> wrote:
    On 5/10/2025 7:37 AM, Bonita Montero wrote:

    [ .... ]

    I guess that not even a professor of theoretical computer science
    would spend years working on so few lines of code.


    I created a whole x86utm operating system.
    It correctly determines that the halting problem's otherwise
    "impossible" input is actually non halting.

    You've spent over 20 years on this matter. Compare this with Alan
    Turing's solution of the Entscheidungsproblem. He published this in
    1936 when he was just 24 years old.

    Turing didn't solve anything: what he published contained a mistake:
    the category (type) error that I have described previously in this
    forum.

    What arrogant self-important ignorance! Turing indeed solved the Entscheidungsproblem. His procedure has been verified by hundreds of thousands of mathematicians over the last century, and none of them have found flaws in it.

    Not at all: I have simply found a flaw that has been overlooked all this
    time. Peter effectively found the same flaw but came at it from a
    different angle.


    It is overwhelmingly likely that your lack of mathematical training has
    led you to delude yourself about finding an error. The same applies to
    Peter Olcott.

    Nope, I have formally defined the error that doesn't contradict Peter's
    work.

    /Flibble

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Heathfield@21:1/5 to Alan Mackenzie on Sat May 10 21:27:28 2025
    On 10/05/2025 21:07, Alan Mackenzie wrote:
    Mr Flibble <flibble@red-dwarf.jmc.corp> wrote:
    On Sat, 10 May 2025 18:48:12 +0000, Alan Mackenzie wrote:

    <snip>

    You've spent over 20 years on this matter. Compare this with Alan
    Turing's solution of the Entscheidungsproblem. He published this in
    1936 when he was just 24 years old.

    Turing didn't solve anything: what he published contained a mistake: the
    category (type) error that I have described previously in this forum.

    What arrogant self-important ignorance!

    What did you expect?

    Turing indeed solved the
    Entscheidungsproblem. His procedure has been verified by hundreds of thousands of mathematicians over the last century, and none of them have found flaws in it.

    It is overwhelmingly likely that your lack of mathematical training has
    led you to delude yourself about finding an error. The same applies to
    Peter Olcott.

    And, like Peter Olcott, he may not realise just how ignorant he
    is. They both reek of Dunning-Kruger, and we're not likely to
    cure them of it by pointing out their mistakes a million times over.

    --
    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 Alan Mackenzie@21:1/5 to olcott on Sat May 10 20:45:04 2025
    olcott <polcott333@gmail.com> wrote:
    On 5/10/2025 3:07 PM, Alan Mackenzie wrote:
    Mr Flibble <flibble@red-dwarf.jmc.corp> wrote:
    On Sat, 10 May 2025 18:48:12 +0000, Alan Mackenzie wrote:

    olcott <polcott333@gmail.com> wrote:
    On 5/10/2025 7:37 AM, Bonita Montero wrote:

    [ .... ]

    I guess that not even a professor of theoretical computer science
    would spend years working on so few lines of code.


    I created a whole x86utm operating system.
    It correctly determines that the halting problem's otherwise
    "impossible" input is actually non halting.

    You've spent over 20 years on this matter. Compare this with Alan
    Turing's solution of the Entscheidungsproblem. He published this in
    1936 when he was just 24 years old.

    Turing didn't solve anything: what he published contained a mistake: the >>> category (type) error that I have described previously in this forum.

    What arrogant self-important ignorance! Turing indeed solved the
    Entscheidungsproblem. His procedure has been verified by hundreds of
    thousands of mathematicians over the last century, and none of them have
    found flaws in it.

    It is overwhelmingly likely that your lack of mathematical training has
    led you to delude yourself about finding an error. The same applies to
    Peter Olcott.

    /Flibble


    Once we understand ....

    [ Irrelevant stuff deleted ]

    That's the whole point. You _don't_ understand what you would need to understand in order to read Turing's 1936 paper. Or even what you would
    need to read Linz's book.

    Your mathematical competence is that of a young child. Your self
    delusion knows no bounds.

    Others in this groups can see you for what you are. What we see is not a diligent scholar seeking the truth, but a deluded narcissist.

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

    --
    Alan Mackenzie (Nuremberg, Germany).

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Mr Flibble@21:1/5 to dbush on Sat May 10 22:55:12 2025
    On Sat, 10 May 2025 18:39:18 -0400, dbush wrote:

    On 5/10/2025 6:03 PM, olcott wrote:
    On 5/10/2025 4:44 PM, wij wrote:
    On Sat, 2025-05-10 at 14:29 -0500, olcott wrote:
    On 5/10/2025 2:02 PM, wij wrote:
    On Sat, 2025-05-10 at 13:47 -0500, olcott wrote:
    On 5/10/2025 1:37 PM, wij wrote:
    On Sat, 2025-05-10 at 13:17 -0500, olcott wrote:
    On 5/10/2025 1:09 PM, wij wrote:
    On Sat, 2025-05-10 at 12:17 -0500, olcott wrote:
    On 5/10/2025 12:01 PM, wij wrote:
    On Sat, 2025-05-10 at 11:47 -0500, olcott wrote:
    On 5/10/2025 11:29 AM, wij wrote:
    On Sat, 2025-05-10 at 11:19 -0500, olcott wrote:
    On 5/10/2025 11:06 AM, wij wrote:
    On Sat, 2025-05-10 at 10:45 -0500, olcott wrote: >>>>>>>>>>>>>>>> On 5/10/2025 10:28 AM, wij wrote:
    On Sat, 2025-05-10 at 09:33 -0500, olcott wrote: >>>>>>>>>>>>>>>>>> On 5/10/2025 7:37 AM, Bonita Montero wrote: >>>>>>>>>>>>>>>>>>> Am 09.05.2025 um 04:22 schrieb olcott:

    Look at their replies to this post.
    Not a one of them will agree that

    void DDD()
    {
               HHH(DDD);
               return; // final halt state >>>>>>>>>>>>>>>>>>>> }

    When 1 or more instructions of DDD are correctly >>>>>>>>>>>>>>>>>>>> simulated by HHH then the correctly simulated DDD >>>>>>>>>>>>>>>>>>>> cannot possibly reach its "return" instruction (final >>>>>>>>>>>>>>>>>>>> halt state).

    They have consistently disagreed with this simple >>>>>>>>>>>>>>>>>>>> point for three years.

    I guess that not even a professor of theoretical >>>>>>>>>>>>>>>>>>> computer science would spend years working on so few >>>>>>>>>>>>>>>>>>> lines of code.


    I created a whole x86utm operating system. >>>>>>>>>>>>>>>>>> It correctly determines that the halting problem's >>>>>>>>>>>>>>>>>> otherwise "impossible" input is actually non halting. >>>>>>>>>>>>>>>>>>
    int DD()
    {
               int Halt_Status = HHH(DD); >>>>>>>>>>>>>>>>>>            if (Halt_Status)
                 HERE: goto HERE;
               return Halt_Status;
    }

    https://github.com/plolcott/x86utm


    Nope.
            From I know HHH(DD) decides whether the >>>>>>>>>>>>>>>>>         input DD
    is "impossible"
    input or not.


    DD has the standard form of the "impossible" input. >>>>>>>>>>>>>>>> HHH merely rejects it as non-halting.


    You said 'merely' rejects it as non-halting.
    So, POOH do not answer the input of any other function? >>>>>>>>>>>>>>>

    The input that has baffled computer scientists for 90 years >>>>>>>>>>>>>> is merely correctly determined to be non-halting when the >>>>>>>>>>>>>> behavior of this input is measured by HHH emulating this >>>>>>>>>>>>>> input according to the rules of the x86 language.

    The same thing applies to the Linz proof yet cannot be >>>>>>>>>>>>>> understood until after HHH(DDD) and HHH(DD) are fully >>>>>>>>>>>>>> understood.


    HHH(DDD) (whatever) at most says DDD is a pathological/ >>>>>>>>>>>>> midtaken input.
    Others of what you say are your imagine and wishes, so far >>>>>>>>>>>>> so true.


    DDD emulated by HHH accor not the 'HHH' that makes the final >>>>>>>>>>>> decision
    (otherwise, it will be an infinite recursive call which you
    agreed)

    ding to the rules of the x86 language specifies recursive >>>>>>>>>>>> emulation that cannot possibly reach the final halt state of >>>>>>>>>>>> DDD.


    I have no problem with that. And, you said HHH merely rejects >>>>>>>>>>> it as non-halting.
    You had denied HHH can decide the halting property of any >>>>>>>>>>> input, except DDD/DD/D..


    As long as HHH correctly determines the halt status of a single >>>>>>>>>> input that has no inputs then HHH is a correct termination >>>>>>>>>> analyzer for that input.

    Go it, that is a stronger statement that HHH ONLY decides DD. >>>>>>>>> I have no problem with that, but be noticed that the HHH inside >>>>>>>>> DD is not the 'HHH' that makes the final decision (otherwise, >>>>>>>>> the 'HHH'
    will be an infinite recursive which cannot make any decision, >>>>>>>>> which you had agreed)


    HHH(DD) correctly determines that its input specifies recursive >>>>>>>> emulation when this input is emulated by HHH HHH according to the >>>>>>>> rules of the x86 language.

       From the about, so you are talking about 'the HHH' which
       does
    not compute the final decision.


    HHH does recognize the recursive emulation pattern of DDD emulated >>>>>> by HHH according to the rules of the x86 language.

    *Thus exactly meets the following specification*
    <MIT Professor Sipser agreed to ONLY these verbatim words
    10/13/2022>
            If simulating halt decider H correctly simulates >>>>>>>>         its input D until H correctly determines that its >>>>>>>>         simulated D would never stop running unless
            aborted then

            H can abort its simulation of D and correctly
            report that D

    This H won't be the same HHH inside the DD, otherwise an infinite >>>>>>> recursive call happens.


    It must always be the outermost HHH that does this because it has
    seen one entire recursive emulation more than the next inner HHH.

    No problem. H is not HHH.


    The H is the template that Professor Sipser agreed to.
    HHH is a specific implementation of H.

    This is also a pitty no one here understand POOH can help AI
    industry and mankind, even so mini.


    It is the same halting problem after its mistake has been corrected.
    So just like how ZFC corrected the error in set theory so that
    Russell's Paradox could be correctly decided, HHH corrects the error
    in the halting problem proof so that the otherwise impossible input
    is correctly decided.

    I don't know what that part of set theory works.
    (My feeling is that they are garbage, for reasons,
    unless you are doing logic researches)

    The original set theory is now called naive set theory after its
    mistake has been corrected. Thus the original halting problem proofs
    can now be called the naive halting problem proofs.

    Traditional logic (or the part mostly used) that won't cause confusion
    is more reliable.

    The halting problem itself remains the same, yet loses its most
    important proof.

    HP is based on TM. Proof of any other kind other than TM have to be
    cautious.

    Unless this is done as an actual simulating termination analyzer

    That assumes one exists. Linz and others proved it doesn't, and you
    have *explicitly* agreed with that.

    Linz and others haven't proved jack shit: the contradiction at the heart
    of the halting problem is a category (type) error, i.e. ill-formed.

    /Flibble

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to Mr Flibble on Sat May 10 18:58:59 2025
    On 5/10/25 4:17 PM, Mr Flibble wrote:
    On Sat, 10 May 2025 20:07:50 +0000, Alan Mackenzie wrote:

    Mr Flibble <flibble@red-dwarf.jmc.corp> wrote:
    On Sat, 10 May 2025 18:48:12 +0000, Alan Mackenzie wrote:

    olcott <polcott333@gmail.com> wrote:
    On 5/10/2025 7:37 AM, Bonita Montero wrote:

    [ .... ]

    I guess that not even a professor of theoretical computer science
    would spend years working on so few lines of code.


    I created a whole x86utm operating system.
    It correctly determines that the halting problem's otherwise
    "impossible" input is actually non halting.

    You've spent over 20 years on this matter. Compare this with Alan
    Turing's solution of the Entscheidungsproblem. He published this in
    1936 when he was just 24 years old.

    Turing didn't solve anything: what he published contained a mistake:
    the category (type) error that I have described previously in this
    forum.

    What arrogant self-important ignorance! Turing indeed solved the
    Entscheidungsproblem. His procedure has been verified by hundreds of
    thousands of mathematicians over the last century, and none of them have
    found flaws in it.

    Not at all: I have simply found a flaw that has been overlooked all this time. Peter effectively found the same flaw but came at it from a
    different angle.


    Nope, you have a misunderstanding and refuse to listen to YOUR error.


    It is overwhelmingly likely that your lack of mathematical training has
    led you to delude yourself about finding an error. The same applies to
    Peter Olcott.

    Nope, I have formally defined the error that doesn't contradict Peter's
    work.

    By ignoring the rules the proble was defined under, and fought your own strawman.


    /Flibble

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to olcott on Sat May 10 18:57:41 2025
    On 5/10/25 6:03 PM, olcott wrote:
    On 5/10/2025 4:44 PM, wij wrote:
    On Sat, 2025-05-10 at 14:29 -0500, olcott wrote:
    On 5/10/2025 2:02 PM, wij wrote:
    On Sat, 2025-05-10 at 13:47 -0500, olcott wrote:
    On 5/10/2025 1:37 PM, wij wrote:
    On Sat, 2025-05-10 at 13:17 -0500, olcott wrote:
    On 5/10/2025 1:09 PM, wij wrote:
    On Sat, 2025-05-10 at 12:17 -0500, olcott wrote:
    On 5/10/2025 12:01 PM, wij wrote:
    On Sat, 2025-05-10 at 11:47 -0500, olcott wrote:
    On 5/10/2025 11:29 AM, wij wrote:
    On Sat, 2025-05-10 at 11:19 -0500, olcott wrote:
    On 5/10/2025 11:06 AM, wij wrote:
    On Sat, 2025-05-10 at 10:45 -0500, olcott wrote:
    On 5/10/2025 10:28 AM, wij wrote:
    On Sat, 2025-05-10 at 09:33 -0500, olcott wrote: >>>>>>>>>>>>>>>>> On 5/10/2025 7:37 AM, Bonita Montero wrote: >>>>>>>>>>>>>>>>>> Am 09.05.2025 um 04:22 schrieb olcott:

    Look at their replies to this post.
    Not a one of them will agree that

    void DDD()
    {
               HHH(DDD);
               return; // final halt state >>>>>>>>>>>>>>>>>>> }

    When 1 or more instructions of DDD are correctly >>>>>>>>>>>>>>>>>>> simulated by HHH then the correctly simulated DDD cannot >>>>>>>>>>>>>>>>>>> possibly reach its "return" instruction (final halt >>>>>>>>>>>>>>>>>>> state).

    They have consistently disagreed with this >>>>>>>>>>>>>>>>>>> simple point for three years.

    I guess that not even a professor of theoretical computer >>>>>>>>>>>>>>>>>> science would spend years working on so few lines of >>>>>>>>>>>>>>>>>> code.


    I created a whole x86utm operating system.
    It correctly determines that the halting problem's >>>>>>>>>>>>>>>>> otherwise "impossible" input is actually non halting. >>>>>>>>>>>>>>>>>
    int DD()
    {
               int Halt_Status = HHH(DD); >>>>>>>>>>>>>>>>>            if (Halt_Status)
                 HERE: goto HERE;
               return Halt_Status;
    }

    https://github.com/plolcott/x86utm


    Nope.
            From I know HHH(DD) decides whether the input DD
    is "impossible"
    input
    or
    not.


    DD has the standard form of the "impossible" input. >>>>>>>>>>>>>>> HHH merely rejects it as non-halting.


    You said 'merely' rejects it as non-halting.
    So, POOH do not answer the input of any other function? >>>>>>>>>>>>>>

    The input that has baffled computer scientists for 90 >>>>>>>>>>>>> years is merely correctly determined to be non-halting >>>>>>>>>>>>> when the behavior of this input is measured by HHH
    emulating this input according to the rules of the x86 >>>>>>>>>>>>> language.

    The same thing applies to the Linz proof yet cannot
    be understood until after HHH(DDD) and HHH(DD) are
    fully understood.


    HHH(DDD) (whatever) at most says DDD is a pathological/ >>>>>>>>>>>> midtaken input.
    Others of what you say are your imagine and wishes, so far >>>>>>>>>>>> so true.


    DDD emulated by HHH accor not the 'HHH' that makes the final >>>>>>>>>>> decision
    (otherwise, it will be an infinite recursive call which you agreed) >>>>>>>>
    ding to the rules of
    the x86 language specifies recursive emulation
    that cannot possibly reach the final halt state
    of DDD.


    I have no problem with that. And, you said HHH merely rejects >>>>>>>>>> it as non-halting.
    You had denied HHH can decide the halting property of any
    input, except DDD/DD/D..


    As long as HHH correctly determines the halt status
    of a single input that has no inputs then HHH is
    a correct termination analyzer for that input.

    Go it, that is a stronger statement that HHH ONLY decides DD.
    I have no problem with that, but be noticed that the HHH inside DD >>>>>>>> is not the 'HHH' that makes the final decision (otherwise, the >>>>>>>> 'HHH'
    will be an infinite recursive which cannot make any decision, which >>>>>>>> you had agreed)


    HHH(DD) correctly determines that its input specifies
    recursive emulation when this input is emulated by HHH
    HHH according to the rules of the x86 language.

       From the about, so you are talking about 'the HHH' which does >>>>>> not compute the final
    decision.


    HHH does recognize the recursive emulation pattern
    of DDD emulated by HHH according to the rules of
    the x86 language.

    *Thus exactly meets the following specification*
    <MIT Professor Sipser agreed to ONLY these verbatim words
    10/13/2022>
            If simulating halt decider H correctly simulates its >>>>>>>         input D until H correctly determines that its simulated D
            would never stop running unless aborted then

            H can abort its simulation of D and correctly report that D

    This H won't be the same HHH inside the DD, otherwise an infinite
    recursive call happens.


    It must always be the outermost HHH that does this
    because it has seen one entire recursive emulation
    more than the next inner HHH.

    No problem. H is not HHH.


    The H is the template that Professor Sipser agreed to.
    HHH is a specific implementation of H.

    This is also a pitty no one here understand POOH can help AI
    industry and mankind, even so mini.


    It is the same halting problem after its mistake
    has been corrected. So just like how ZFC corrected
    the error in set theory so that Russell's Paradox
    could be correctly decided, HHH corrects the error
    in the halting problem proof so that the otherwise
    impossible input is correctly decided.

    I don't know what that part of set theory works.
    (My feeling is that they are garbage, for reasons,
    unless you are doing logic researches)

    The original set theory is now called naive set
    theory after its mistake has been corrected. Thus
    the original halting problem proofs can now be
    called the naive halting problem proofs.

    Traditional logic (or the part mostly used) that won't
    cause confusion is more reliable.

    The halting problem itself remains the same, yet
    loses its most important proof.

    HP is based on TM. Proof of any other kind other than TM have to be
    cautious.

    Unless this is done as an actual simulating termination
    analyzer in a high level language like C and it operates
    on a 100% complete exactingly precise input specification
    such as the x86 language too many details slip through
    the cracks of vagueness.

    Nope. You need to use the vagueness of High level languages and complex machines to hide your compuational shenanigans.


    For example no one ever even noticed that it is 100%
    impossible to derive an input that actually does the
    opposite of whatever value that its termination
    analyzer reports.


    Sure they have. Your problem is you don't understand what the meaning of correct or behavior is.

    All of these proofs remain anchored in that false
    assumption.

    No, all your preofs are anchored in false assumptions, like that 1 step correctly emulated is a correctly emulated program.

    I guess you think answer 1 question on the IQ test coffectly and then
    stopping means you got the test correct, even though you never answered
    the other 99.

    "Correct Emuation" means correctly emulating *ALL* the steps, and 1 to n
    steps was not all.


    The part of 'logic' or 'philosophy' I saw from your posts are very
    dubious,
    hardly valid for HP.

    I think you are referring to (and confused by) self-reference.
    Sadly, the HP proof has nothing to do with self-reference.
    Let me make the counter example this way:

    void D() {
       for(int X; X<LimX; ++X) {   // X would enum all possible 'TM' whose >> value<LimX
         if(simu(H',X) while(1);   // H' decides whether X halts or not
       }                           // (If X is not a valid program,
    simu(H',X) returns 0.
                                   //  So, this H' is not exactly the
    halting decider H
                                   //  but can be build from the original H)
    }

    So, there exists an encoding X that functions the same as D that H
    cannot decide.
    (note that no function call or self-reference in the above D)

    The above D can be simplified to form another "impossible input":

    void D2() {
       if(simu(H',D2') while(1);   // D2' is the 'source' of D2, also no
    self ref. RECURSIVELY.
    }


    I have no idea what you are saying.


    Yep, that is your problem.

            specifies a non-halting sequence of configurations. >>>>>>> </MIT Professor Sipser agreed to ONLY these verbatim words
    10/13/2022>

    Professor Sipser is the best selling author of theory of
    computation textbooks.
    It is a pity that he could never take the five more minutes
    required to understand the notion of recursive emulation and
    thus see the significance of my work.

    You can cite any one, I don't know who Sipsper is.
    But yes, it is also a pity that Socrites and Turing did not know
    POOH.


    https://www.amazon.com/Introduction-Theory-Computation-Michael-
    Sipser/dp/113318779X










    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to olcott on Sat May 10 19:04:26 2025
    On 5/10/25 4:26 PM, olcott wrote:
    On 5/10/2025 3:07 PM, Alan Mackenzie wrote:
    Mr Flibble <flibble@red-dwarf.jmc.corp> wrote:
    On Sat, 10 May 2025 18:48:12 +0000, Alan Mackenzie wrote:

    olcott <polcott333@gmail.com> wrote:
    On 5/10/2025 7:37 AM, Bonita Montero wrote:

    [ .... ]

    I guess that not even a professor of theoretical computer science
    would spend years working on so few lines of code.


    I created a whole x86utm operating system.
    It correctly determines that the halting problem's otherwise
    "impossible" input is actually non halting.

    You've spent over 20 years on this matter.  Compare this with Alan
    Turing's solution of the Entscheidungsproblem.  He published this in
    1936 when he was just 24 years old.

    Turing didn't solve anything: what he published contained a mistake: the >>> category (type) error that I have described previously in this forum.

    What arrogant self-important ignorance!  Turing indeed solved the
    Entscheidungsproblem.  His procedure has been verified by hundreds of
    thousands of mathematicians over the last century, and none of them have
    found flaws in it.

    It is overwhelmingly likely that your lack of mathematical training has
    led you to delude yourself about finding an error.  The same applies to
    Peter Olcott.

    /Flibble


    Once we understand that functions computed
    by models of computation must apply the sequence
    of steps of an algorithm to derive their output
    from their input then we have one key element.

    Yes, but non-computable functions do not.


    Then we also need to understand that termination
    analyzers are required to compute the mapping from
    this input to the behavior ACTUALLY SPECIFIED by
    this input.

    And that behavior is SPECIFIED as the behavior of the program their
    input represents when it is actually run, (with any and all input for a termination analyser)


    The last step is understanding is that computing
    the mapping to the behavior specified by this
    input finite string must be according to the
    model's computation language.

    Only what the computation the generates, not the mapping for the CORRECT answer.


    This means that HHH is correct to reject its
    input DD because DD emulated by HHH according
    to the rules of the x86 language specifies
    recursive emulation (non halting behavior).

    Nope. As the input represents a program that will HALT since the decider
    it uses says it will not halt.

    Of course, this requires that you actually built a program as the input,
    and as the decider, and thus they both have fixed behavior.

    That means that when we correctly emulate that D, it *WILL* use the
    algorithm form the H that returned non-halting, and thus get that answer
    and thus halt.

    THe fact that H's incorrect emulation didn't get there is irrelevent.


    *Likewise for the Linz Proof*

    When Ĥ is applied to ⟨Ĥ⟩
    Ĥ.q0 ⟨Ĥ⟩ ⊢* embedded_H ⟨Ĥ⟩ ⟨Ĥ⟩ ⊢* Ĥ.qy ∞
    Ĥ.q0 ⟨Ĥ⟩ ⊢* embedded_H ⟨Ĥ⟩ ⟨Ĥ⟩ ⊢* Ĥ.qn

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

    ⟨Ĥ⟩ correctly simulated by embedded_H cannot possibly
    ever reach its own simulated final state ⟨Ĥ.qn⟩


    But ⟨Ĥ⟩ isn't correctly simulated by embedded_H, as the H that it is a copy of has been said to abort and go to qn, is it will also.

    You are just showing that you believe it is ok to lie in your logic.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to olcott on Sat May 10 19:23:28 2025
    On 5/10/25 4:58 PM, olcott wrote:
    On 5/10/2025 3:45 PM, Alan Mackenzie wrote:
    olcott <polcott333@gmail.com> wrote:
    On 5/10/2025 3:07 PM, Alan Mackenzie wrote:
    Mr Flibble <flibble@red-dwarf.jmc.corp> wrote:
    On Sat, 10 May 2025 18:48:12 +0000, Alan Mackenzie wrote:

    olcott <polcott333@gmail.com> wrote:
    On 5/10/2025 7:37 AM, Bonita Montero wrote:

    [ .... ]

    I guess that not even a professor of theoretical computer science >>>>>>>> would spend years working on so few lines of code.


    I created a whole x86utm operating system.
    It correctly determines that the halting problem's otherwise
    "impossible" input is actually non halting.

    You've spent over 20 years on this matter.  Compare this with Alan >>>>>> Turing's solution of the Entscheidungsproblem.  He published this in >>>>>> 1936 when he was just 24 years old.

    Turing didn't solve anything: what he published contained a
    mistake: the
    category (type) error that I have described previously in this forum.

    What arrogant self-important ignorance!  Turing indeed solved the
    Entscheidungsproblem.  His procedure has been verified by hundreds of >>>> thousands of mathematicians over the last century, and none of them
    have
    found flaws in it.

    It is overwhelmingly likely that your lack of mathematical training has >>>> led you to delude yourself about finding an error.  The same applies to >>>> Peter Olcott.

    /Flibble


    Once we understand ....

    [ Irrelevant stuff deleted ]

    That's the whole point.  You _don't_ understand

    I DO UNDERSTAND and your carefully memorized dogma
    has no actual understanding to it. No one has been
    able to point out an actual mistake in the essence
    of my reasoning for a long time.

    Sure we have, you just don't understand actual logic.


    _DDD()
    [00002172] 55         push ebp      ; housekeeping
    [00002173] 8bec       mov ebp,esp   ; housekeeping
    [00002175] 6872210000 push 00002172 ; push DDD
    [0000217a] e853f4ffff call 000015d2 ; call HHH(DDD)
    [0000217f] 83c404     add esp,+04
    [00002182] 5d         pop ebp
    [00002183] c3         ret
    Size in bytes:(0018) [00002183]

    And thos 18 bytes don't contain the code for HHH, and thus NOTHING can correctly emulate this input, as it doesn't represent a PROGRAM.


    THESE WORDS ARE A TRUSISM
    When HHH(DDD) computes the mapping from its input DDD
    to the behavior that this input specifies when DDD is
    emulated by HHH according to the rules of the x86
    language ...

    No. it is a LIE as it is IMPOSSIBE for ANY emulator to see the behavior
    of this input per the x86 language, as the required information is not
    in it.


    Everyone either changes the subject or changes my
    words in their rebuttal.

    Nope, you are just too stupid to understand the replies.


    The key rebuttal is essentially:
    "that is not the way that I memorized it".


    Nope, that is not the way it has been DEFINED.

    The problem is that you think you get to ignore the definitoins, but you
    don't. which is what just makes you a liar.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to olcott on Sat May 10 18:52:38 2025
    On 5/10/25 3:29 PM, olcott wrote:
    On 5/10/2025 2:02 PM, wij wrote:
    On Sat, 2025-05-10 at 13:47 -0500, olcott wrote:
    On 5/10/2025 1:37 PM, wij wrote:
    On Sat, 2025-05-10 at 13:17 -0500, olcott wrote:
    On 5/10/2025 1:09 PM, wij wrote:
    On Sat, 2025-05-10 at 12:17 -0500, olcott wrote:
    On 5/10/2025 12:01 PM, wij wrote:
    On Sat, 2025-05-10 at 11:47 -0500, olcott wrote:
    On 5/10/2025 11:29 AM, wij wrote:
    On Sat, 2025-05-10 at 11:19 -0500, olcott wrote:
    On 5/10/2025 11:06 AM, wij wrote:
    On Sat, 2025-05-10 at 10:45 -0500, olcott wrote:
    On 5/10/2025 10:28 AM, wij wrote:
    On Sat, 2025-05-10 at 09:33 -0500, olcott wrote:
    On 5/10/2025 7:37 AM, Bonita Montero wrote:
    Am 09.05.2025 um 04:22 schrieb olcott:

    Look at their replies to this post.
    Not a one of them will agree that

    void DDD()
    {
              HHH(DDD);
              return; // final halt state >>>>>>>>>>>>>>>>> }

    When 1 or more instructions of DDD are correctly >>>>>>>>>>>>>>>>> simulated by HHH then the correctly simulated DDD cannot >>>>>>>>>>>>>>>>> possibly reach its "return" instruction (final halt >>>>>>>>>>>>>>>>> state).

    They have consistently disagreed with this
    simple point for three years.

    I guess that not even a professor of theoretical computer >>>>>>>>>>>>>>>> science would spend years working on so few lines of code. >>>>>>>>>>>>>>>>

    I created a whole x86utm operating system.
    It correctly determines that the halting problem's >>>>>>>>>>>>>>> otherwise "impossible" input is actually non halting. >>>>>>>>>>>>>>>
    int DD()
    {
              int Halt_Status = HHH(DD);
              if (Halt_Status)
                HERE: goto HERE;
              return Halt_Status;
    }

    https://github.com/plolcott/x86utm


    Nope.
           From I know HHH(DD) decides whether the input DD is
    "impossible" input
    or
    not.


    DD has the standard form of the "impossible" input.
    HHH merely rejects it as non-halting.


    You said 'merely' rejects it as non-halting.
    So, POOH do not answer the input of any other function? >>>>>>>>>>>>

    The input that has baffled computer scientists for 90
    years is merely correctly determined to be non-halting
    when the behavior of this input is measured by HHH
    emulating this input according to the rules of the x86
    language.

    The same thing applies to the Linz proof yet cannot
    be understood until after HHH(DDD) and HHH(DD) are
    fully understood.


    HHH(DDD) (whatever) at most says DDD is a pathological/
    midtaken input.
    Others of what you say are your imagine and wishes, so far so >>>>>>>>>> true.


    DDD emulated by HHH accor not the 'HHH' that makes the final >>>>>>>>> decision
    (otherwise, it will be an infinite recursive call which you agreed) >>>>>>
    ding to the rules of
    the x86 language specifies recursive emulation
    that cannot possibly reach the final halt state
    of DDD.


    I have no problem with that. And, you said HHH merely rejects it >>>>>>>> as non-halting.
    You had denied HHH can decide the halting property of any input, >>>>>>>> except DDD/DD/D..


    As long as HHH correctly determines the halt status
    of a single input that has no inputs then HHH is
    a correct termination analyzer for that input.

    Go it, that is a stronger statement that HHH ONLY decides DD.
    I have no problem with that, but be noticed that the HHH inside DD >>>>>> is not the 'HHH' that makes the final decision (otherwise, the 'HHH' >>>>>> will be an infinite recursive which cannot make any decision, which >>>>>> you had agreed)


    HHH(DD) correctly determines that its input specifies
    recursive emulation when this input is emulated by HHH
    HHH according to the rules of the x86 language.

      From the about, so you are talking about 'the HHH' which does not
    compute the final decision.


    HHH does recognize the recursive emulation pattern
    of DDD emulated by HHH according to the rules of
    the x86 language.

    *Thus exactly meets the following specification*
    <MIT Professor Sipser agreed to ONLY these verbatim words 10/13/2022> >>>>>        If simulating halt decider H correctly simulates its
           input D until H correctly determines that its simulated D >>>>>        would never stop running unless aborted then

           H can abort its simulation of D and correctly report that D >>>>
    This H won't be the same HHH inside the DD, otherwise an infinite
    recursive call happens.


    It must always be the outermost HHH that does this
    because it has seen one entire recursive emulation
    more than the next inner HHH.

    No problem. H is not HHH.


    The H is the template that Professor Sipser agreed to.
    HHH is a specific implementation of H.

    This is also a pitty no one here understand POOH can help AI industry
    and mankind, even so mini.


    It is the same halting problem after its mistake
    has been corrected. So just like how ZFC corrected
    the error in set theory so that Russell's Paradox
    could be correctly decided, HHH corrects the error
    in the halting problem proof so that the otherwise
    impossible input is correctly decided.

    What "Mistake"?

    I guess you are just ADMITTING that your logic is based on the fallacy
    of the strawman.

    Note ZFC created a NEW set theory that the community adopted as the
    standard. THEY DID NOT THEMSELVES MAKE IT THE STANDARD. It was presented
    before many conferences and had several stages of development to get to
    what we now use.

    If you want to, you can work on FULLY DEFINING what you new theory of programming is, and maybe with 10-20 years of work can have papers that
    actualy describe it and what it can do, *IF* you are smart enough to do
    that. And then you can present them to conferences, and take questions,
    and try to defend your ideas .

    And even if you do, you haven't "refuted" the Halting Problem, only
    tried to make system where that theorem might not hold.


    The original set theory is now called naive set
    theory after its mistake has been corrected. Thus
    the original halting problem proofs can now be
    called the naive halting problem proofs.

    Right, and the renaming was done by the community.


    The halting problem itself remains the same, yet
    loses its most important proof.

    But only if you can define you system well enough, and show it to be
    usefull enough, for the community to accept it as the "default" theory
    of computation.

    Since it seems you concept is that the actual behavior of a program when
    run is not the defining characteristic of the program, which is what
    most people are actually interested in, this may be a hard sell.

    There are also a large number of inconsistancies that have been pointed
    out in your system that you have yet to answer. These WILL need to be eventually dealt with when you get to trying to actually define your system.

    And, until you do, and get the general community to accept yours as the default, you need to indicate you are talking in your private system
    rather than the default. I suggest the name Peter Olcotts Other
    Programing System, or POOPS for short (sort of like ZFC)


           specifies a non-halting sequence of configurations.
    </MIT Professor Sipser agreed to ONLY these verbatim words 10/13/2022> >>>>>
    Professor Sipser is the best selling author of theory of
    computation textbooks.
    It is a pity that he could never take the five more minutes
    required to understand the notion of recursive emulation and
    thus see the significance of my work.

    You can cite any one, I don't know who Sipsper is.
    But yes, it is also a pity that Socrites and Turing did not know POOH. >>>>

    https://www.amazon.com/Introduction-Theory-Computation-Michael-
    Sipser/dp/113318779X






    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to olcott on Sat May 10 19:27:29 2025
    On 5/10/25 4:42 PM, olcott wrote:
    On 5/10/2025 3:22 PM, Alan Mackenzie wrote:
    Mr Flibble <flibble@red-dwarf.jmc.corp> wrote:
    On Sat, 10 May 2025 18:48:12 +0000, Alan Mackenzie wrote:

    olcott <polcott333@gmail.com> wrote:
    On 5/10/2025 7:37 AM, Bonita Montero wrote:

    [ .... ]

    I guess that not even a professor of theoretical computer science
    would spend years working on so few lines of code.


    I created a whole x86utm operating system.
    It correctly determines that the halting problem's otherwise
    "impossible" input is actually non halting.

    You've spent over 20 years on this matter.  Compare this with Alan
    Turing's solution of the Entscheidungsproblem.  He published this in
    1936 when he was just 24 years old.

    Turing didn't solve anything: what he published contained a mistake: the >>> category (type) error that I have described previously in this forum.

    OK, then, give the page and line numbers from Turing's 1936 paper where
    this alleged mistake was made.  I would be surprised indeed if you'd even >> looked at Turing's paper, far less understood it.  Yet you're ready to
    denigrate his work.

    Perhaps it is time for you to withdraw these uncalled for insinuations.

    /Flibble


    It is the whole gist of the entire idea of
    the halting problem proof that is wrongheaded.




    (1) It is anchored in the false assumption that an
    input to a termination analyzer can actually
    do this opposite of whatever value that this
    analyzer returns. No one ever notices that this
    "do the opposite" code is unreachable.

    But it can.


    (2) It expects a self-contradictory (thus incorrect)
    question to have a correct answer.

    But it isn't. WHen H and D are actual programs, as required, then the
    behavior of D is fully defined and determined.



    Can Carol correctly answer “no” to this (yes/no) question? https://www.cs.toronto.edu/~hehner/OSS.pdf

    Which shows you don't know the difference between a willful being and a
    fully determined program.

    I guess you have lost your ability to be willful, and that explains why
    you are stuck in your loop.


    When the context of who is asked is understood
    to be an aspect of the full meaning of the question
    then the question posed to Carol is incorrect because
    both yes and no are the wrong answer.

    But the question has nothing to do with who it is asked to.


    Credit to Richard Damon for finding the loophole
    in the original question:

    Can Carol correctly answer “no” to this question?
    With the original version Carol can shake her head
    to indicate "no" without actually saying "no".


    No, the real problem is a question about the future behavior of a
    willful being is just not a valid objective question. It doesn't HAVE a
    correct answer until the event happens, thus it isn't a question of
    fact, but of true guessing.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Mr Flibble@21:1/5 to dbush on Sat May 10 23:35:10 2025
    On Sat, 10 May 2025 19:03:09 -0400, dbush wrote:

    On 5/10/2025 6:55 PM, Mr Flibble wrote:
    On Sat, 10 May 2025 18:39:18 -0400, dbush wrote:

    On 5/10/2025 6:03 PM, olcott wrote:
    On 5/10/2025 4:44 PM, wij wrote:
    On Sat, 2025-05-10 at 14:29 -0500, olcott wrote:
    On 5/10/2025 2:02 PM, wij wrote:
    On Sat, 2025-05-10 at 13:47 -0500, olcott wrote:
    On 5/10/2025 1:37 PM, wij wrote:
    On Sat, 2025-05-10 at 13:17 -0500, olcott wrote:
    On 5/10/2025 1:09 PM, wij wrote:
    On Sat, 2025-05-10 at 12:17 -0500, olcott wrote:
    On 5/10/2025 12:01 PM, wij wrote:
    On Sat, 2025-05-10 at 11:47 -0500, olcott wrote:
    On 5/10/2025 11:29 AM, wij wrote:
    On Sat, 2025-05-10 at 11:19 -0500, olcott wrote: >>>>>>>>>>>>>>>> On 5/10/2025 11:06 AM, wij wrote:
    On Sat, 2025-05-10 at 10:45 -0500, olcott wrote: >>>>>>>>>>>>>>>>>> On 5/10/2025 10:28 AM, wij wrote:
    On Sat, 2025-05-10 at 09:33 -0500, olcott wrote: >>>>>>>>>>>>>>>>>>>> On 5/10/2025 7:37 AM, Bonita Montero wrote: >>>>>>>>>>>>>>>>>>>>> Am 09.05.2025 um 04:22 schrieb olcott: >>>>>>>>>>>>>>>>>>>>>
    Look at their replies to this post. >>>>>>>>>>>>>>>>>>>>>> Not a one of them will agree that

    void DDD()
    {
               HHH(DDD);
               return; // final halt state >>>>>>>>>>>>>>>>>>>>>> }

    When 1 or more instructions of DDD are correctly >>>>>>>>>>>>>>>>>>>>>> simulated by HHH then the correctly simulated DDD >>>>>>>>>>>>>>>>>>>>>> cannot possibly reach its "return" instruction >>>>>>>>>>>>>>>>>>>>>> (final halt state).

    They have consistently disagreed with this simple >>>>>>>>>>>>>>>>>>>>>> point for three years.

    I guess that not even a professor of theoretical >>>>>>>>>>>>>>>>>>>>> computer science would spend years working on so few >>>>>>>>>>>>>>>>>>>>> lines of code.


    I created a whole x86utm operating system. >>>>>>>>>>>>>>>>>>>> It correctly determines that the halting problem's >>>>>>>>>>>>>>>>>>>> otherwise "impossible" input is actually non halting. >>>>>>>>>>>>>>>>>>>>
    int DD()
    {
               int Halt_Status = HHH(DD); >>>>>>>>>>>>>>>>>>>>            if (Halt_Status) >>>>>>>>>>>>>>>>>>>>              HERE: goto HERE; >>>>>>>>>>>>>>>>>>>>            return Halt_Status; >>>>>>>>>>>>>>>>>>>> }

    https://github.com/plolcott/x86utm


    Nope.
            From I know HHH(DD) decides whether >>>>>>>>>>>>>>>>>>>         the input DD
    is "impossible"
    input or not.


    DD has the standard form of the "impossible" input. >>>>>>>>>>>>>>>>>> HHH merely rejects it as non-halting.


    You said 'merely' rejects it as non-halting. >>>>>>>>>>>>>>>>> So, POOH do not answer the input of any other function? >>>>>>>>>>>>>>>>>

    The input that has baffled computer scientists for 90 >>>>>>>>>>>>>>>> years is merely correctly determined to be non-halting >>>>>>>>>>>>>>>> when the behavior of this input is measured by HHH >>>>>>>>>>>>>>>> emulating this input according to the rules of the x86 >>>>>>>>>>>>>>>> language.

    The same thing applies to the Linz proof yet cannot be >>>>>>>>>>>>>>>> understood until after HHH(DDD) and HHH(DD) are fully >>>>>>>>>>>>>>>> understood.


    HHH(DDD) (whatever) at most says DDD is a pathological/ >>>>>>>>>>>>>>> midtaken input.
    Others of what you say are your imagine and wishes, so far >>>>>>>>>>>>>>> so true.


    DDD emulated by HHH accor not the 'HHH' that makes the >>>>>>>>>>>>>> final decision
    (otherwise, it will be an infinite recursive call which you >>>>>>>>>>> agreed)

    ding to the rules of the x86 language specifies recursive >>>>>>>>>>>>>> emulation that cannot possibly reach the final halt state >>>>>>>>>>>>>> of DDD.


    I have no problem with that. And, you said HHH merely >>>>>>>>>>>>> rejects it as non-halting.
    You had denied HHH can decide the halting property of any >>>>>>>>>>>>> input, except DDD/DD/D..


    As long as HHH correctly determines the halt status of a >>>>>>>>>>>> single input that has no inputs then HHH is a correct
    termination analyzer for that input.

    Go it, that is a stronger statement that HHH ONLY decides DD. >>>>>>>>>>> I have no problem with that, but be noticed that the HHH >>>>>>>>>>> inside DD is not the 'HHH' that makes the final decision >>>>>>>>>>> (otherwise, the 'HHH'
    will be an infinite recursive which cannot make any decision, >>>>>>>>>>> which you had agreed)


    HHH(DD) correctly determines that its input specifies recursive >>>>>>>>>> emulation when this input is emulated by HHH HHH according to >>>>>>>>>> the rules of the x86 language.

       From the about, so you are talking about 'the HHH' which >>>>>>>>>    does
    not compute the final decision.


    HHH does recognize the recursive emulation pattern of DDD
    emulated by HHH according to the rules of the x86 language.

    *Thus exactly meets the following specification*
    <MIT Professor Sipser agreed to ONLY these verbatim words
    10/13/2022>
            If simulating halt decider H correctly
            simulates its input D until H correctly
            determines that its simulated D would never >>>>>>>>>>         stop running unless aborted then

            H can abort its simulation of D and correctly >>>>>>>>>>         report that D

    This H won't be the same HHH inside the DD, otherwise an
    infinite recursive call happens.


    It must always be the outermost HHH that does this because it has >>>>>>>> seen one entire recursive emulation more than the next inner HHH. >>>>>>>
    No problem. H is not HHH.


    The H is the template that Professor Sipser agreed to.
    HHH is a specific implementation of H.

    This is also a pitty no one here understand POOH can help AI
    industry and mankind, even so mini.


    It is the same halting problem after its mistake has been
    corrected.
    So just like how ZFC corrected the error in set theory so that
    Russell's Paradox could be correctly decided, HHH corrects the
    error in the halting problem proof so that the otherwise impossible >>>>>> input is correctly decided.

    I don't know what that part of set theory works.
    (My feeling is that they are garbage, for reasons,
    unless you are doing logic researches)

    The original set theory is now called naive set theory after its
    mistake has been corrected. Thus the original halting problem
    proofs can now be called the naive halting problem proofs.

    Traditional logic (or the part mostly used) that won't cause
    confusion is more reliable.

    The halting problem itself remains the same, yet loses its most
    important proof.

    HP is based on TM. Proof of any other kind other than TM have to be
    cautious.

    Unless this is done as an actual simulating termination analyzer

    That assumes one exists. Linz and others proved it doesn't, and you
    have *explicitly* agreed with that.

    Linz and others haven't proved jack shit: the contradiction at the
    heart of the halting problem is a category (type) error, i.e.
    ill-formed.


    There's no such thing as an ill-formed contradiction.

    False.


    Once an assumption is made, *any* contradiction proves that assumption
    false. It doesn't matter how outlandish the contradiction might seem.

    For a contradiction to be well-formed its two propositions must be of the
    same category otherwise the contradiction is ill-formed as is the case for
    the contradiction at the heart of the Halting Problem.

    /Flibble

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Heathfield@21:1/5 to olcott on Sun May 11 02:43:03 2025
    On 11/05/2025 02:26, olcott wrote:
    On 5/10/2025 8:17 PM, wij wrote:
    On Sat, 2025-05-10 at 17:03 -0500, olcott wrote:
    On 5/10/2025 4:44 PM, wij wrote:
    On Sat, 2025-05-10 at 14:29 -0500, olcott wrote:
    On 5/10/2025 2:02 PM, wij wrote:


    You don't know the counter example in the HP proof, your D is
    not the case what HP says.


    Sure I do this is it! (as correctly encoded in C)

    'correctly' is a bit of a stretch. 'Incorrectly' would be closer
    to the mark.

    $ gcc -c -o hhhagain.o hhhagain.c
    hhhagain.c: In function ‘DD’:
    hhhagain.c:6:25: warning: passing argument 1 of ‘HHH’ from
    incompatible pointer type [-Wincompatible-pointer-types]
    6 | int Halt_Status = HHH(DD);
    | ^~
    | |
    | int (*)()
    hhhagain.c:2:13: note: expected ‘ptr’ {aka ‘void (*)()’} but
    argument is of type ‘int (*)()’
    2 | int HHH(ptr P);
    | ~~~~^
    hhhagain.c: In function ‘main’:
    hhhagain.c:14:7: warning: passing argument 1 of ‘HHH’ from
    incompatible pointer type [-Wincompatible-pointer-types]
    14 | HHH(DD);
    | ^~
    | |
    | int (*)()
    hhhagain.c:2:13: note: expected ‘ptr’ {aka ‘void (*)()’} but
    argument is of type ‘int (*)()’
    2 | int HHH(ptr P);
    | ~~~~^


    Tedious details are best left to competent programmers.

    What you need is a 6" brush, a few tins of white paint, a ladder,
    and a nice big barn.

    --
    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 Damon@21:1/5 to olcott on Sat May 10 21:54:22 2025
    On 5/10/25 9:26 PM, olcott wrote:
    On 5/10/2025 8:17 PM, wij wrote:
    On Sat, 2025-05-10 at 17:03 -0500, olcott wrote:
    On 5/10/2025 4:44 PM, wij wrote:
    On Sat, 2025-05-10 at 14:29 -0500, olcott wrote:
    On 5/10/2025 2:02 PM, wij wrote:


    You don't know the counter example in the HP proof, your D is not the
    case what HP says.


    Sure I do this is it! (as correctly encoded in C)

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

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

    int main()
    {
      HHH(DD);
    }



    Nope.

    The D in the HP proof includes a copy of the halt decider H as part of
    its code.

    It is a full program, not a non-leaf function as your D is.

    You are just comitting a major category error, and then trying to
    expliot it to make your proof.

    When you fix that error, by realizing that all the code for HHH is part
    of the program DDD, then each HHH in your set each get DIFFERENT inputs,
    of this DD funciton paired with those different HHHs, and thus you can't
    use the behavor of one to make claims of the behavior of a different one.

    Sorry, you have been told of this many times, and your refusal to listen
    has just made your error a reckless disregard for the truth, and thus is
    a deliberate lie. It seems you are proving that either you just have no
    care about what is the truth and thus are a pathological liar, or are
    just too stupid to be able to learn the material, which is just another
    form of pathology that comes out as the lying.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to olcott on Sat May 10 22:12:38 2025
    On 5/10/25 9:56 PM, olcott wrote:
    On 5/10/2025 8:44 PM, wij wrote:
    On Sat, 2025-05-10 at 20:26 -0500, olcott wrote:
    On 5/10/2025 8:17 PM, wij wrote:
    On Sat, 2025-05-10 at 17:03 -0500, olcott wrote:
    On 5/10/2025 4:44 PM, wij wrote:
    On Sat, 2025-05-10 at 14:29 -0500, olcott wrote:
    On 5/10/2025 2:02 PM, wij wrote:


    You don't know the counter example in the HP proof, your D is not
    the case what HP says.


    Sure I do this is it! (as correctly encoded in C)

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

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

    int main()
    {
        HHH(DD);
    }



    Try to convert it to TM language to know you know nothing.


    I spent 22 years on this. I started with the Linz text

    You mean you have wasted 22 years on this.


    When Ĥ is applied to ⟨Ĥ⟩
    Ĥ.q0 ⟨Ĥ⟩ ⊢* embedded_H ⟨Ĥ⟩ ⟨Ĥ⟩ ⊢* Ĥ.qy ∞

    Missing the qualification, if Ĥ ⟨Ĥ⟩ will halt

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

    Missing the qualification, if Ĥ ⟨Ĥ⟩ will not halt

    And those qualifications are based on H being correct.


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

    Thus ⟨Ĥ⟩ ⟨Ĥ⟩ correctly simulated by embedded_H
    cannot possibly reach its simulated final halt state
    ⟨Ĥ.qn⟩

    but step (c) will stop after some finite time when embedded_H does the
    exact same process as H did when it reaches it conclusion (which it
    follows exactly as it is exactly the same algorithm on the same data) at
    which point it will stop and go to Qn and Ĥ ⟨Ĥ⟩ will halt, thus showing that H returned the wrong answer for H ⟨Ĥ⟩ ⟨Ĥ⟩, as in this case, to be
    correct H should have ended up in Qy instead of Qn.


    To refute the HP, you need to understand what it exactly means in TM.

    I have known this for 22 years.

    No, and you still don't as far as everything you have said.

    You confuse where the requirements are, and even ignore and drop them
    becuase of your ignorance.

    You don't seem to understand that programs are deteministic entities
    that will always do the same thing on the same input.


    Assembly (or C) also work, but you need to understand more details and
    be able to map every assembly instruction or C expressions to TM
    language.
    The form of the DD above (in some books maybe) is for layman to
    understand,
    which is not exactly the case that the HP provides. Don't be silly.





    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Alan Mackenzie@21:1/5 to Mr Flibble on Sun May 11 10:34:18 2025
    Mr Flibble <flibble@red-dwarf.jmc.corp> wrote:
    On Sat, 10 May 2025 20:07:50 +0000, Alan Mackenzie wrote:

    Mr Flibble <flibble@red-dwarf.jmc.corp> wrote:
    On Sat, 10 May 2025 18:48:12 +0000, Alan Mackenzie wrote:

    olcott <polcott333@gmail.com> wrote:
    On 5/10/2025 7:37 AM, Bonita Montero wrote:

    [ .... ]

    I guess that not even a professor of theoretical computer science
    would spend years working on so few lines of code.


    I created a whole x86utm operating system.
    It correctly determines that the halting problem's otherwise
    "impossible" input is actually non halting.

    You've spent over 20 years on this matter. Compare this with Alan
    Turing's solution of the Entscheidungsproblem. He published this in
    1936 when he was just 24 years old.

    Turing didn't solve anything: what he published contained a mistake:
    the category (type) error that I have described previously in this
    forum.

    What arrogant self-important ignorance! Turing indeed solved the
    Entscheidungsproblem. His procedure has been verified by hundreds of
    thousands of mathematicians over the last century, and none of them have
    found flaws in it.

    Not at all: I have simply found a flaw that has been overlooked all this time. Peter effectively found the same flaw but came at it from a
    different angle.

    That's laughable. You're just a confused and deluded narcissistic crank.
    If you really believe you've found a flaw in Turing's paper, try writing
    it up properly (something which is beyond you) and submit it for
    publication to a reputable peer-reviewed mathematical journal. I'd be surprised if you even got a reply.

    It is overwhelmingly likely that your lack of mathematical training has
    led you to delude yourself about finding an error. The same applies to
    Peter Olcott.

    Nope, I have formally defined the error that doesn't contradict Peter's
    work.

    You don't even understand what "formally" means.

    /Flibble

    --
    Alan Mackenzie (Nuremberg, Germany).

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From joes@21:1/5 to All on Sun May 11 11:07:06 2025
    Am Sat, 10 May 2025 17:03:26 -0500 schrieb olcott:
    On 5/10/2025 4:44 PM, wij wrote:
    On Sat, 2025-05-10 at 14:29 -0500, olcott wrote:
    On 5/10/2025 2:02 PM, wij wrote:
    On Sat, 2025-05-10 at 13:47 -0500, olcott wrote:
    On 5/10/2025 1:37 PM, wij wrote:
    On Sat, 2025-05-10 at 13:17 -0500, olcott wrote:
    On 5/10/2025 1:09 PM, wij wrote:
    On Sat, 2025-05-10 at 12:17 -0500, olcott wrote:
    On 5/10/2025 12:01 PM, wij wrote:
    On Sat, 2025-05-10 at 11:47 -0500, olcott wrote:
    On 5/10/2025 11:29 AM, wij wrote:
    On Sat, 2025-05-10 at 11:19 -0500, olcott wrote:
    On 5/10/2025 11:06 AM, wij wrote:
    On Sat, 2025-05-10 at 10:45 -0500, olcott wrote:
    On 5/10/2025 10:28 AM, wij wrote:
    On Sat, 2025-05-10 at 09:33 -0500, olcott wrote: >>>>>>>>>>>>>>>>> On 5/10/2025 7:37 AM, Bonita Montero wrote: >>>>>>>>>>>>>>>>>> Am 09.05.2025 um 04:22 schrieb olcott:

    It correctly determines that the halting problem's >>>>>>>>>>>>>>>>> otherwise "impossible" input is actually non halting.

    ...which makes it halt.

    The input that has baffled computer scientists for 90 years >>>>>>>>>>>>> is merely correctly determined to be non-halting when the >>>>>>>>>>>>> behavior of this input is measured by HHH emulating this >>>>>>>>>>>>> input according to the rules of the x86 language.

    Nobody is baffled. It halts.

    I have no problem with that. And, you said HHH merely rejects >>>>>>>>>> it as non-halting. You had denied HHH can decide the halting >>>>>>>>>> property of any input, except DDD/DD/D..

    As long as HHH correctly determines the halt status of a single >>>>>>>>> input that has no inputs then HHH is a correct termination
    analyzer for that input.

    I have no problem with that, but be noticed that the HHH inside >>>>>>>> DD is not the 'HHH' that makes the final decision (otherwise, the >>>>>>>> 'HHH'
    will be an infinite recursive which cannot make any decision,
    which you had agreed)

    The original set theory is now called naive set theory after its
    mistake has been corrected. Thus the original halting problem proofs
    can now be called the naive halting problem proofs.
    Traditional logic (or the part mostly used) that won't cause confusion
    is more reliable.

    The HP doesn't lead to contradictions.

    The halting problem itself remains the same, yet loses its most
    important proof.

    HP is based on TM. Proof of any other kind other than TM have to be
    cautious.
    Unless this is done as an actual simulating termination analyzer in a
    high level language like C and it operates on a 100% complete exactingly precise input specification such as the x86 language too many details
    slip through the cracks of vagueness.

    TMs are concrete. What details, what vagueness?

    For example no one ever even noticed that it is 100% impossible to
    derive an input that actually does the opposite of whatever value that
    its termination analyzer reports.
    Wrong, DDD calls HHH, which returns "non-halting", *and halts*.

    --
    Am Sat, 20 Jul 2024 12:35:31 +0000 schrieb WM in sci.math:
    It is not guaranteed that n+1 exists for every n.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to olcott on Sun May 11 07:03:27 2025
    On 5/10/25 10:19 PM, olcott wrote:
    On 5/10/2025 9:09 PM, wij wrote:
    On Sat, 2025-05-10 at 20:56 -0500, olcott wrote:
    On 5/10/2025 8:44 PM, wij wrote:
    On Sat, 2025-05-10 at 20:26 -0500, olcott wrote:
    On 5/10/2025 8:17 PM, wij wrote:
    On Sat, 2025-05-10 at 17:03 -0500, olcott wrote:
    On 5/10/2025 4:44 PM, wij wrote:
    On Sat, 2025-05-10 at 14:29 -0500, olcott wrote:
    On 5/10/2025 2:02 PM, wij wrote:


    You don't know the counter example in the HP proof, your D is not
    the case what HP says.


    Sure I do this is it! (as correctly encoded in C)

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

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

    int main()
    {
         HHH(DD);
    }



    Try to convert it to TM language to know you know nothing.


    I spent 22 years on this. I started with the Linz text

    When Ĥ is applied to ⟨Ĥ⟩
    Ĥ.q0 ⟨Ĥ⟩ ⊢* embedded_H ⟨Ĥ⟩ ⟨Ĥ⟩ ⊢* Ĥ.qy ∞
        or
    Ĥ.q0 ⟨Ĥ⟩ ⊢* embedded_H ⟨Ĥ⟩ ⟨Ĥ⟩ ⊢* Ĥ.qn

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

    Thus ⟨Ĥ⟩ ⟨Ĥ⟩ correctly simulated by embedded_H
    cannot possibly reach its simulated final halt state
    ⟨Ĥ.qn⟩

    To refute the HP, you need to understand what it exactly means in TM.

    I have known this for 22 years.

    A working TM. Build it explicitly from transition function, then explain
    your derivation. You know nothing.


    That would be like examining how an operating system
    works entirely from its machine code.

    And what is wrong with that?

    Some parts need to be analyzed at that level.


    We only have to actually know one detail:
    Every counter-example input encoded in any model
    of computation always specifies recursive simulation
    that never halts to its corresponding simulating
    termination analyzer.


    You are missing an important qualifier, it specifices FINITE recursive simulation as each level of the simulation limits how deep it will allow
    its self to go, or it just fails to meet its requirement to be a decider.

    Your error is thinking that you can have as an input, claimed to be the
    same for every decider, that doesn't include the code it uses. WHen you
    include that needed code, they are no longer the "same input".

    In simpler terms, your argument uses the equivalent of assume x = =, and
    then divides by x assuming that x is not equal to 0.

    Sorry, your world is just based on you believing your own lies.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From joes@21:1/5 to All on Sun May 11 11:13:57 2025
    Am Sat, 10 May 2025 15:42:13 -0500 schrieb olcott:
    On 5/10/2025 3:22 PM, Alan Mackenzie wrote:

    OK, then, give the page and line numbers from Turing's 1936 paper where
    this alleged mistake was made. I would be surprised indeed if you'd
    even looked at Turing's paper, far less understood it. Yet you're
    ready to denigrate his work.
    Perhaps it is time for you to withdraw these uncalled for insinuations.

    It is the whole gist of the entire idea of the halting problem proof
    that is wrongheaded.
    (1) It is anchored in the false assumption that an input to a
    termination analyzer can actually do this opposite of whatever value
    that this analyzer returns. No one ever notices that this "do the
    opposite" code is unreachable.
    The simulated DDD doesn't matter. HHH returns to DDD, and DDD then does
    the opposite.

    (2) It expects a self-contradictory (thus incorrect)
    question to have a correct answer.
    Whether a program halts is not contradictory.

    Can Carol correctly answer “no” to this (yes/no) question?
    When the context of who is asked is understood to be an aspect of the
    full meaning of the question then the question posed to Carol is
    incorrect because both yes and no are the wrong answer.
    Yes, HHH cannot answer correctly.

    --
    Am Sat, 20 Jul 2024 12:35:31 +0000 schrieb WM in sci.math:
    It is not guaranteed that n+1 exists for every n.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Mr Flibble@21:1/5 to Alan Mackenzie on Sun May 11 11:48:04 2025
    On Sun, 11 May 2025 10:34:18 +0000, Alan Mackenzie wrote:

    Mr Flibble <flibble@red-dwarf.jmc.corp> wrote:
    On Sat, 10 May 2025 20:07:50 +0000, Alan Mackenzie wrote:

    Mr Flibble <flibble@red-dwarf.jmc.corp> wrote:
    On Sat, 10 May 2025 18:48:12 +0000, Alan Mackenzie wrote:

    olcott <polcott333@gmail.com> wrote:
    On 5/10/2025 7:37 AM, Bonita Montero wrote:

    [ .... ]

    I guess that not even a professor of theoretical computer science >>>>>>> would spend years working on so few lines of code.


    I created a whole x86utm operating system.
    It correctly determines that the halting problem's otherwise
    "impossible" input is actually non halting.

    You've spent over 20 years on this matter. Compare this with Alan
    Turing's solution of the Entscheidungsproblem. He published this in >>>>> 1936 when he was just 24 years old.

    Turing didn't solve anything: what he published contained a mistake:
    the category (type) error that I have described previously in this
    forum.

    What arrogant self-important ignorance! Turing indeed solved the
    Entscheidungsproblem. His procedure has been verified by hundreds of
    thousands of mathematicians over the last century, and none of them
    have found flaws in it.

    Not at all: I have simply found a flaw that has been overlooked all
    this time. Peter effectively found the same flaw but came at it from a
    different angle.

    That's laughable. You're just a confused and deluded narcissistic
    crank.
    If you really believe you've found a flaw in Turing's paper, try writing
    it up properly (something which is beyond you) and submit it for
    publication to a reputable peer-reviewed mathematical journal. I'd be surprised if you even got a reply.

    Such invective diatribes do you no favours, mate. The problem here is you cannot handle the fact that Flibble and Olcott have refuted the Halting
    Problem proofs, showing how they all contain the same flaw which Turing
    and all who followed him overlooked.

    It is overwhelmingly likely that your lack of mathematical training
    has led you to delude yourself about finding an error. The same
    applies to Peter Olcott.

    Nope, I have formally defined the error that doesn't contradict Peter's
    work.

    You don't even understand what "formally" means.

    Sure I do. I can formally define it again for you if you like? Here is the formal definition:

    What constitutes halting problem pathological input:

    Input that would cause infinite recursion when using a decider of the simulating kind.

    Such input forms a category error which results in the halting problem
    being ill-formed as currently defined.

    /Flibble

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Mr Flibble@21:1/5 to Richard Heathfield on Sun May 11 12:09:12 2025
    On Sun, 11 May 2025 12:57:21 +0100, Richard Heathfield wrote:

    On 11/05/2025 12:48, Mr Flibble wrote:
    On Sun, 11 May 2025 10:34:18 +0000, Alan Mackenzie wrote:

    Mr Flibble <flibble@red-dwarf.jmc.corp> wrote:

    <snip>

    Nope, I have formally defined the error that doesn't contradict
    Peter's work.

    You don't even understand what "formally" means.

    Sure I do. I can formally define it again for you if you like? Here is
    the formal definition:

    What constitutes halting problem pathological input:

    Input that would cause infinite recursion when using a decider of the
    simulating kind.

    When executed directly, such an input would either halt or not,
    category error or no.

    Which is it?

    Peter's view:
    * direct execution results in infinite recursion which is treated as non- halting.

    Flibble's view:
    * direct execution results in manifestation of the category error: which
    in practice means a crash in the form of a stack fault (debatable halting equivalance) for a decider with finite resources (stack space) or non-
    halting for a decider with infinitie resources (stack space).

    /Flibble

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Heathfield@21:1/5 to Mr Flibble on Sun May 11 13:12:14 2025
    On 11/05/2025 13:09, Mr Flibble wrote:
    On Sun, 11 May 2025 12:57:21 +0100, Richard Heathfield wrote:

    On 11/05/2025 12:48, Mr Flibble wrote:
    On Sun, 11 May 2025 10:34:18 +0000, Alan Mackenzie wrote:

    Mr Flibble <flibble@red-dwarf.jmc.corp> wrote:

    <snip>

    Nope, I have formally defined the error that doesn't contradict
    Peter's work.

    You don't even understand what "formally" means.

    Sure I do. I can formally define it again for you if you like? Here is
    the formal definition:

    What constitutes halting problem pathological input:

    Input that would cause infinite recursion when using a decider of the
    simulating kind.

    When executed directly, such an input would either halt or not,
    category error or no.

    Which is it?

    Peter's view:
    * direct execution results in infinite recursion which is treated as non- halting.

    Flibble's view:
    * direct execution results in manifestation of the category error: which
    in practice means a crash in the form of a stack fault (debatable halting equivalance) for a decider with finite resources (stack space) or non- halting for a decider with infinitie resources (stack space).

    So what you're saying is that the pair of you can't decide.

    QED.

    --
    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 Mr Flibble on Sun May 11 12:57:21 2025
    On 11/05/2025 12:48, Mr Flibble wrote:
    On Sun, 11 May 2025 10:34:18 +0000, Alan Mackenzie wrote:

    Mr Flibble <flibble@red-dwarf.jmc.corp> wrote:

    <snip>

    Nope, I have formally defined the error that doesn't contradict Peter's
    work.

    You don't even understand what "formally" means.

    Sure I do. I can formally define it again for you if you like? Here is the formal definition:

    What constitutes halting problem pathological input:

    Input that would cause infinite recursion when using a decider of the simulating kind.

    When executed directly, such an input would either halt or not,
    category error or no.

    Which is it?

    --
    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 Alan Mackenzie@21:1/5 to olcott on Sun May 11 12:26:48 2025
    olcott <polcott333@gmail.com> wrote:
    On 5/10/2025 3:22 PM, Alan Mackenzie wrote:
    Mr Flibble <flibble@red-dwarf.jmc.corp> wrote:
    On Sat, 10 May 2025 18:48:12 +0000, Alan Mackenzie wrote:

    olcott <polcott333@gmail.com> wrote:
    On 5/10/2025 7:37 AM, Bonita Montero wrote:

    [ .... ]

    I guess that not even a professor of theoretical computer science
    would spend years working on so few lines of code.


    I created a whole x86utm operating system.
    It correctly determines that the halting problem's otherwise
    "impossible" input is actually non halting.

    You've spent over 20 years on this matter. Compare this with Alan
    Turing's solution of the Entscheidungsproblem. He published this in
    1936 when he was just 24 years old.

    Turing didn't solve anything: what he published contained a mistake: the >>> category (type) error that I have described previously in this forum.

    OK, then, give the page and line numbers from Turing's 1936 paper where
    this alleged mistake was made. I would be surprised indeed if you'd even
    looked at Turing's paper, far less understood it. Yet you're ready to
    denigrate his work.

    Perhaps it is time for you to withdraw these uncalled for insinuations.

    /Flibble


    It is the whole gist of the entire idea of
    the halting problem proof that is wrongheaded.

    You are, in fact, quite wrong. The halting problem is in the field of mathematics. You are ignorant of this field, thus unable to contribute
    towards it, or make judgments about it.

    If you still think you are correct, and cannot point out a flaw in Alan Turing's original 1936 paper, perhaps you can find somebody qualified,
    i.e. with (at least) a first degree in mathematics, to back up your
    claim.

    Otherwise your credibility lies close to zero.

    [ .... ]

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

    --
    Alan Mackenzie (Nuremberg, Germany).

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Mr Flibble@21:1/5 to Alan Mackenzie on Sun May 11 12:34:08 2025
    On Sun, 11 May 2025 12:26:48 +0000, Alan Mackenzie wrote:

    olcott <polcott333@gmail.com> wrote:
    On 5/10/2025 3:22 PM, Alan Mackenzie wrote:
    Mr Flibble <flibble@red-dwarf.jmc.corp> wrote:
    On Sat, 10 May 2025 18:48:12 +0000, Alan Mackenzie wrote:

    olcott <polcott333@gmail.com> wrote:
    On 5/10/2025 7:37 AM, Bonita Montero wrote:

    [ .... ]

    I guess that not even a professor of theoretical computer science >>>>>>> would spend years working on so few lines of code.


    I created a whole x86utm operating system.
    It correctly determines that the halting problem's otherwise
    "impossible" input is actually non halting.

    You've spent over 20 years on this matter. Compare this with Alan
    Turing's solution of the Entscheidungsproblem. He published this in >>>>> 1936 when he was just 24 years old.

    Turing didn't solve anything: what he published contained a mistake:
    the category (type) error that I have described previously in this
    forum.

    OK, then, give the page and line numbers from Turing's 1936 paper
    where this alleged mistake was made. I would be surprised indeed if
    you'd even looked at Turing's paper, far less understood it. Yet
    you're ready to denigrate his work.

    Perhaps it is time for you to withdraw these uncalled for
    insinuations.

    /Flibble


    It is the whole gist of the entire idea of the halting problem proof
    that is wrongheaded.

    You are, in fact, quite wrong. The halting problem is in the field of mathematics. You are ignorant of this field, thus unable to contribute towards it, or make judgments about it.

    If you still think you are correct, and cannot point out a flaw in Alan Turing's original 1936 paper, perhaps you can find somebody qualified,
    i.e. with (at least) a first degree in mathematics, to back up your
    claim.

    Appealing to authority is a logical fallacy.


    Otherwise your credibility lies close to zero.

    Ad hominem attack is a logical fallacy.

    /Flibble

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Heathfield@21:1/5 to Mr Flibble on Sun May 11 13:36:47 2025
    On 11/05/2025 13:17, Mr Flibble wrote:
    On Sun, 11 May 2025 13:12:14 +0100, Richard Heathfield wrote:

    On 11/05/2025 13:09, Mr Flibble wrote:
    On Sun, 11 May 2025 12:57:21 +0100, Richard Heathfield wrote:

    On 11/05/2025 12:48, Mr Flibble wrote:
    On Sun, 11 May 2025 10:34:18 +0000, Alan Mackenzie wrote:

    Mr Flibble <flibble@red-dwarf.jmc.corp> wrote:

    <snip>

    Nope, I have formally defined the error that doesn't contradict
    Peter's work.

    You don't even understand what "formally" means.

    Sure I do. I can formally define it again for you if you like? Here
    is the formal definition:

    What constitutes halting problem pathological input:

    Input that would cause infinite recursion when using a decider of the >>>>> simulating kind.

    When executed directly, such an input would either halt or not,
    category error or no.

    Which is it?

    Peter's view:
    * direct execution results in infinite recursion which is treated as
    non-
    halting.

    Flibble's view:
    * direct execution results in manifestation of the category error:
    which in practice means a crash in the form of a stack fault (debatable
    halting equivalance) for a decider with finite resources (stack space)
    or non- halting for a decider with infinitie resources (stack space).

    So what you're saying is that the pair of you can't decide.

    What is that supposed to mean?

    The infinite recursion is a manifestation of the category error; the
    halting problem relies on two aspects: self-reference then diagonalization but that latter can never happen as the former is invalid.


    QED.

    All you have demonstrated is hand waving.

    On the contrary, you described a category of decider program as
    "pathological input" that demonstrated that the Halting Problem
    proof is flawed.

    The Halting Problem proof claims to prove that there are some
    programs whose termination status we can't know. You have devised
    a program category which you claim overturns this proof, and you
    claim that you can even describe the behaviour of at least one
    program in this category, but you... don't know its termination
    status.

    Got it. :-)

    Are you here all week?

    --
    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 Mr Flibble@21:1/5 to Richard Heathfield on Sun May 11 12:41:58 2025
    On Sun, 11 May 2025 13:36:47 +0100, Richard Heathfield wrote:

    On 11/05/2025 13:17, Mr Flibble wrote:
    On Sun, 11 May 2025 13:12:14 +0100, Richard Heathfield wrote:

    On 11/05/2025 13:09, Mr Flibble wrote:
    On Sun, 11 May 2025 12:57:21 +0100, Richard Heathfield wrote:

    On 11/05/2025 12:48, Mr Flibble wrote:
    On Sun, 11 May 2025 10:34:18 +0000, Alan Mackenzie wrote:

    Mr Flibble <flibble@red-dwarf.jmc.corp> wrote:

    <snip>

    Nope, I have formally defined the error that doesn't contradict >>>>>>>> Peter's work.

    You don't even understand what "formally" means.

    Sure I do. I can formally define it again for you if you like? Here >>>>>> is the formal definition:

    What constitutes halting problem pathological input:

    Input that would cause infinite recursion when using a decider of
    the simulating kind.

    When executed directly, such an input would either halt or not,
    category error or no.

    Which is it?

    Peter's view:
    * direct execution results in infinite recursion which is treated as
    non-
    halting.

    Flibble's view:
    * direct execution results in manifestation of the category error:
    which in practice means a crash in the form of a stack fault
    (debatable halting equivalance) for a decider with finite resources
    (stack space) or non- halting for a decider with infinitie resources
    (stack space).

    So what you're saying is that the pair of you can't decide.

    What is that supposed to mean?

    The infinite recursion is a manifestation of the category error; the
    halting problem relies on two aspects: self-reference then
    diagonalization but that latter can never happen as the former is
    invalid.


    QED.

    All you have demonstrated is hand waving.

    On the contrary, you described a category of decider program as
    "pathological input" that demonstrated that the Halting Problem proof is flawed.

    The Halting Problem proof claims to prove that there are some programs
    whose termination status we can't know. You have devised a program
    category which you claim overturns this proof, and you claim that you
    can even describe the behaviour of at least one program in this
    category, but you... don't know its termination status.

    I have fully described its termination status, again:

    Flibble's view:
    * direct execution results in manifestation of the category error:
    which in practice means a crash in the form of a stack fault
    (debatable halting equivalance) for a decider with finite resources
    (stack space) or non- halting for a decider with infinitie resources
    (stack space).


    Got it. :-)

    Have you got it?


    Are you here all week?

    Sure.

    /Flibble

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Mr Flibble@21:1/5 to Richard Heathfield on Sun May 11 12:17:50 2025
    On Sun, 11 May 2025 13:12:14 +0100, Richard Heathfield wrote:

    On 11/05/2025 13:09, Mr Flibble wrote:
    On Sun, 11 May 2025 12:57:21 +0100, Richard Heathfield wrote:

    On 11/05/2025 12:48, Mr Flibble wrote:
    On Sun, 11 May 2025 10:34:18 +0000, Alan Mackenzie wrote:

    Mr Flibble <flibble@red-dwarf.jmc.corp> wrote:

    <snip>

    Nope, I have formally defined the error that doesn't contradict
    Peter's work.

    You don't even understand what "formally" means.

    Sure I do. I can formally define it again for you if you like? Here
    is the formal definition:

    What constitutes halting problem pathological input:

    Input that would cause infinite recursion when using a decider of the
    simulating kind.

    When executed directly, such an input would either halt or not,
    category error or no.

    Which is it?

    Peter's view:
    * direct execution results in infinite recursion which is treated as
    non-
    halting.

    Flibble's view:
    * direct execution results in manifestation of the category error:
    which in practice means a crash in the form of a stack fault (debatable
    halting equivalance) for a decider with finite resources (stack space)
    or non- halting for a decider with infinitie resources (stack space).

    So what you're saying is that the pair of you can't decide.

    What is that supposed to mean?

    The infinite recursion is a manifestation of the category error; the
    halting problem relies on two aspects: self-reference then diagonalization
    but that latter can never happen as the former is invalid.


    QED.

    All you have demonstrated is hand waving.

    /Flibble

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Heathfield@21:1/5 to Mr Flibble on Sun May 11 14:58:23 2025
    On 11/05/2025 13:41, Mr Flibble wrote:
    On Sun, 11 May 2025 13:36:47 +0100, Richard Heathfield wrote:

    On 11/05/2025 13:17, Mr Flibble wrote:
    On Sun, 11 May 2025 13:12:14 +0100, Richard Heathfield wrote:

    On 11/05/2025 13:09, Mr Flibble wrote:
    On Sun, 11 May 2025 12:57:21 +0100, Richard Heathfield wrote:

    On 11/05/2025 12:48, Mr Flibble wrote:
    On Sun, 11 May 2025 10:34:18 +0000, Alan Mackenzie wrote:

    Mr Flibble <flibble@red-dwarf.jmc.corp> wrote:

    <snip>

    Nope, I have formally defined the error that doesn't contradict >>>>>>>>> Peter's work.

    You don't even understand what "formally" means.

    Sure I do. I can formally define it again for you if you like? Here >>>>>>> is the formal definition:

    What constitutes halting problem pathological input:

    Input that would cause infinite recursion when using a decider of >>>>>>> the simulating kind.

    When executed directly, such an input would either halt or not,
    category error or no.

    Which is it?

    Peter's view:
    * direct execution results in infinite recursion which is treated as >>>>> non-
    halting.

    Flibble's view:
    * direct execution results in manifestation of the category error:
    which in practice means a crash in the form of a stack fault
    (debatable halting equivalance) for a decider with finite resources
    (stack space) or non- halting for a decider with infinitie resources >>>>> (stack space).

    So what you're saying is that the pair of you can't decide.

    What is that supposed to mean?

    The infinite recursion is a manifestation of the category error; the
    halting problem relies on two aspects: self-reference then
    diagonalization but that latter can never happen as the former is
    invalid.


    QED.

    All you have demonstrated is hand waving.

    On the contrary, you described a category of decider program as
    "pathological input" that demonstrated that the Halting Problem proof is
    flawed.

    The Halting Problem proof claims to prove that there are some programs
    whose termination status we can't know. You have devised a program
    category which you claim overturns this proof, and you claim that you
    can even describe the behaviour of at least one program in this
    category, but you... don't know its termination status.

    I have fully described its termination status, again:

    Flibble's view:
    * direct execution results in manifestation of the category error:
    which in practice means a crash in the form of a stack fault
    (debatable halting equivalance) for a decider with finite resources
    (stack space) or non- halting for a decider with infinitie resources
    (stack space).

    Nothing has infinite resources, so your vote is that it crashes,
    yes? And I think we have to count that as halting.

    Peter's view:
    * direct execution results in infinite recursion which is treated as non- halting.

    Non-halting.

    One vote each - a tie.

    So what you're saying is that the pair of you can't decide.

    QED^2.

    --
    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 Alan Mackenzie@21:1/5 to Mr Flibble on Sun May 11 14:38:30 2025
    Mr Flibble <flibble@red-dwarf.jmc.corp> wrote:
    On Sun, 11 May 2025 12:26:48 +0000, Alan Mackenzie wrote:

    olcott <polcott333@gmail.com> wrote:
    On 5/10/2025 3:22 PM, Alan Mackenzie wrote:
    Mr Flibble <flibble@red-dwarf.jmc.corp> wrote:
    On Sat, 10 May 2025 18:48:12 +0000, Alan Mackenzie wrote:

    olcott <polcott333@gmail.com> wrote:
    On 5/10/2025 7:37 AM, Bonita Montero wrote:

    [ .... ]

    I guess that not even a professor of theoretical computer science >>>>>>>> would spend years working on so few lines of code.


    I created a whole x86utm operating system.
    It correctly determines that the halting problem's otherwise
    "impossible" input is actually non halting.

    You've spent over 20 years on this matter. Compare this with Alan >>>>>> Turing's solution of the Entscheidungsproblem. He published this in >>>>>> 1936 when he was just 24 years old.

    Turing didn't solve anything: what he published contained a mistake: >>>>> the category (type) error that I have described previously in this
    forum.

    OK, then, give the page and line numbers from Turing's 1936 paper
    where this alleged mistake was made. I would be surprised indeed if
    you'd even looked at Turing's paper, far less understood it. Yet
    you're ready to denigrate his work.

    Perhaps it is time for you to withdraw these uncalled for
    insinuations.

    /Flibble


    It is the whole gist of the entire idea of the halting problem proof
    that is wrongheaded.

    You are, in fact, quite wrong. The halting problem is in the field of
    mathematics. You are ignorant of this field, thus unable to contribute
    towards it, or make judgments about it.

    If you still think you are correct, and cannot point out a flaw in Alan
    Turing's original 1936 paper, perhaps you can find somebody qualified,
    i.e. with (at least) a first degree in mathematics, to back up your
    claim.

    Appealing to authority is a logical fallacy.

    I agree, it would be.

    Insisting on competence is entirely different. You and PO are
    insufficiently competent in mathematics to express your ideas coherently
    and persuasively. Finding a qualified mathematician willing to present
    those ideas coherently would enable them to be discussed and
    comprehensively dismissed.

    I put it to you that you will not find anybody with a maths degree
    willing to do this. You cannot point to a definite flaw in Turing's 1936 paper. All this suggests you, both of you, are simply wrong.

    Otherwise your credibility lies close to zero.

    Ad hominem attack is a logical fallacy.

    It is, yes. What's that got to do with anything, here?

    /Flibble

    --
    Alan Mackenzie (Nuremberg, Germany).

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Heathfield@21:1/5 to olcott on Sun May 11 16:27:47 2025
    On 11/05/2025 16:14, olcott wrote:
    On 5/11/2025 5:34 AM, Alan Mackenzie wrote:
    Mr Flibble <flibble@red-dwarf.jmc.corp> wrote:
    On Sat, 10 May 2025 20:07:50 +0000, Alan Mackenzie wrote:

    Mr Flibble <flibble@red-dwarf.jmc.corp> wrote:
    On Sat, 10 May 2025 18:48:12 +0000, Alan Mackenzie wrote:

    olcott <polcott333@gmail.com> wrote:
    On 5/10/2025 7:37 AM, Bonita Montero wrote:

    [ .... ]

    I guess that not even a professor of theoretical computer
    science
    would spend years working on so few lines of code.


    I created a whole x86utm operating system.
    It correctly determines that the halting problem's otherwise
    "impossible" input is actually non halting.

    You've spent over 20 years on this matter.  Compare this
    with Alan
    Turing's solution of the Entscheidungsproblem.  He
    published this in
    1936 when he was just 24 years old.

    Turing didn't solve anything: what he published contained a
    mistake:
    the category (type) error that I have described previously
    in this
    forum.

    What arrogant self-important ignorance!  Turing indeed solved
    the
    Entscheidungsproblem.  His procedure has been verified by
    hundreds of
    thousands of mathematicians over the last century, and none
    of them have
    found flaws in it.

    Not at all: I have simply found a flaw that has been
    overlooked all this
    time.  Peter effectively found the same flaw but came at it
    from a
    different angle.

    That's laughable.  You're just a confused and deluded
    narcissistic crank.
    If you really believe you've found a flaw in Turing's paper,
    try writing
    it up properly (something which is beyond you) and submit it for
    publication to a reputable peer-reviewed mathematical journal.
    I'd be
    surprised if you even got a reply.

    It is overwhelmingly likely that your lack of mathematical
    training has
    led you to delude yourself about finding an error.  The same
    applies to
    Peter Olcott.

    Nope, I have formally defined the error that doesn't
    contradict Peter's
    work.

    You don't even understand what "formally" means.

    /Flibble


    You pay attention to irrelevant details.

    Perhaps. But you fail to pay attention to relevant details, such
    as the rules of the language you're using.

    But details are /so/ tedious, aren't they?

    Flibble does understand the key essence of these
    things better than you.

    I have seen no evidence of that.

    --
    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 Sun May 11 16:38:02 2025
    On 11/05/2025 16:26, olcott wrote:
    On 5/11/2025 7:26 AM, Alan Mackenzie wrote:

    <snip>

    If you still think you are correct, and cannot point out a flaw
    in Alan
    Turing's original 1936 paper, perhaps you can find somebody
    qualified,
    i.e. with (at least) a first degree in mathematics, to back up
    your
    claim.


    The flaw is that the conclusion is incorrect.

    You have not shown this.

    One can ignore every step in a proof and show
    that it is wrong by simply proving that its
    conclusion is incorrect.

    The very best way to prove that the conclusion is incorrect is to
    produce a program that can in finite time correctly answer HALTS
    or LOOPS for any arbitrary (syntactically correct) program (in a Turing-complete language) and arbitrary data.

    Do that, and you shall have not just your Turing Award but also,
    if you play your cards right, a Fields Medal into the bargain.

    But your on-paper proof is almost as full of holes as your C
    code, so you've got your work cut out.

    <snip>

    The same thing applies to the Halting Problem's
    counter example input:

    ...which didn't actually compile here, presumably because it was
    written by someone who doesn't know C very well.

    When you get to grips with your universal solver, you might want
    to phone a friend to do the coding for you.

    --
    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 Sun May 11 16:49:50 2025
    On 11/05/2025 16:44, olcott wrote:
    On 5/11/2025 7:09 AM, Mr Flibble wrote:
    On Sun, 11 May 2025 12:57:21 +0100, Richard Heathfield wrote:

    On 11/05/2025 12:48, Mr Flibble wrote:
    On Sun, 11 May 2025 10:34:18 +0000, Alan Mackenzie wrote:

    Mr Flibble <flibble@red-dwarf.jmc.corp> wrote:

    <snip>

    Nope, I have formally defined the error that doesn't
    contradict
    Peter's work.

    You don't even understand what "formally" means.

    Sure I do. I can formally define it again for you if you
    like? Here is
    the formal definition:

    What constitutes halting problem pathological input:

    Input that would cause infinite recursion when using a
    decider of the
    simulating kind.

    When executed directly, such an input would either halt or not,
    category error or no.

    Which is it?

    Peter's view:
    * direct execution results in infinite recursion which is
    treated as non-
    halting.

    Not exactly, it is not direct execution.

    So what is its halt state when directly executed?

    If it's non-halting, why quibble with Flibble?

    But if it's halting, your simulation is wrong, right?

    Oh, decisions, decisions.

    --
    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 Sun May 11 18:11:00 2025
    On 11/05/2025 17:44, olcott wrote:
    Any yes/no question where both yes and no are the
    wrong answer is an incorrect polar question.

    Either DD stops or it doesn't (once it's been hacked around to
    get it to compile and after we've leeched out all the dodgy
    programming).

    If the computer cannot correctly decide whether or not DD halts,
    we have an undecidable computation, and therefore some
    computations are undecidable, so Turing's conclusion was right.
    Who knew? (Apart from practically everybody else, I mean.)

    --
    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 joes@21:1/5 to All on Sun May 11 19:54:33 2025
    Am Sun, 11 May 2025 11:44:12 -0500 schrieb olcott:
    On 5/11/2025 6:13 AM, joes wrote:
    Am Sat, 10 May 2025 15:42:13 -0500 schrieb olcott:

    It is the whole gist of the entire idea of the halting problem proof
    that is wrongheaded.
    (1) It is anchored in the false assumption that an input to a
    termination analyzer can actually do this opposite of whatever value
    that this analyzer returns. No one ever notices that this "do the
    opposite" code is unreachable.
    The simulated DDD doesn't matter. HHH returns to DDD, and DDD then does
    the opposite.
    HHH is only allowed to report on the behavior that its actual input
    actually specifies.
    Yes, and then it returns to DDD, which then halts.

    Can Carol correctly answer “no” to this (yes/no) question?
    When the context of who is asked is understood to be an aspect of the
    full meaning of the question then the question posed to Carol is
    incorrect because both yes and no are the wrong answer.
    Yes, HHH cannot answer correctly.
    Any yes/no question where both yes and no are the wrong answer is an incorrect polar question.
    No, I can tell you that the correct answer to Carol's question is "no".

    --
    Am Sat, 20 Jul 2024 12:35:31 +0000 schrieb WM in sci.math:
    It is not guaranteed that n+1 exists for every n.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to olcott on Sun May 11 16:25:01 2025
    On 5/11/25 11:38 AM, olcott wrote:
    On 5/11/2025 9:34 AM, wij wrote:
    On Sat, 2025-05-10 at 21:19 -0500, olcott wrote:
    On 5/10/2025 9:09 PM, wij wrote:
    On Sat, 2025-05-10 at 20:56 -0500, olcott wrote:
    On 5/10/2025 8:44 PM, wij wrote:
    On Sat, 2025-05-10 at 20:26 -0500, olcott wrote:
    On 5/10/2025 8:17 PM, wij wrote:
    On Sat, 2025-05-10 at 17:03 -0500, olcott wrote:
    On 5/10/2025 4:44 PM, wij wrote:
    On Sat, 2025-05-10 at 14:29 -0500, olcott wrote:
    On 5/10/2025 2:02 PM, wij wrote:


    You don't know the counter example in the HP proof, your D is
    not the case what HP says.


    Sure I do this is it! (as correctly encoded in C)

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

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

    int main()
    {
          HHH(DD);
    }



    Try to convert it to TM language to know you know nothing.


    I spent 22 years on this. I started with the Linz text

    When Ĥ is applied to ⟨Ĥ⟩
    Ĥ.q0 ⟨Ĥ⟩ ⊢* embedded_H ⟨Ĥ⟩ ⟨Ĥ⟩ ⊢* Ĥ.qy ∞
         or
    Ĥ.q0 ⟨Ĥ⟩ ⊢* embedded_H ⟨Ĥ⟩ ⟨Ĥ⟩ ⊢* Ĥ.qn

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

    Thus ⟨Ĥ⟩ ⟨Ĥ⟩ correctly simulated by embedded_H
    cannot possibly reach its simulated final halt state
    ⟨Ĥ.qn⟩

    To refute the HP, you need to understand what it exactly means in TM. >>>>>
    I have known this for 22 years.

    A working TM. Build it explicitly from transition function, then
    explain
    your derivation. You know nothing.


    That would be like examining how an operating system
    works entirely from its machine code.

    You are refuting a CS foundamental theorem (i.e. HP) officially.
    So, yes, and actually MORE need to be done (beyond your imagination).

    Knowing a car or smart phone,... is far different from making one.
    Knowing E=mc^2 is far from knowing relativity, making A-bomb
    (actually, making
    A-bomb don't need to know E=mc^2, people are often fooled by popular
    saying)
    Every chapter of Linz's book, C text textbook has exercises, you need
    to those
    exercises AT LEAST to comment CS (and computation theory is more
    advanced topic
    than TM). Saying so is because we know you can't do the exercise and
    boast lots
    about TM stuff (and pretty much anything else from just reading
    words), even
    about theorem.


    When Ĥ is applied to ⟨Ĥ⟩
    Ĥ.q0 ⟨Ĥ⟩ ⊢* embedded_H ⟨Ĥ⟩ ⟨Ĥ⟩ ⊢* Ĥ.qy ∞
      or
    Ĥ.q0 ⟨Ĥ⟩ ⊢* embedded_H ⟨Ĥ⟩ ⟨Ĥ⟩ ⊢* Ĥ.qn

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

    All that I need to know is that I proved that
    embedded_H correctly recognizes the repeating
    pattern where its correctly simulated ⟨Ĥ⟩ ⟨Ĥ⟩
    cannot possibly reach its own simulated final
    halt state of ⟨Ĥ.qn⟩

    https://www.liarparadox.org/Linz_Proof.pdf

    But it doesn't because neither you H or embedded_H do a correct
    simulation of their inputs, and the correct simulation of that input
    will halt.


    We only have to actually know one detail:
    Every counter-example input encoded in any model
    of computation always specifies recursive simulation
    that never halts to its corresponding simulating
    termination analyzer.

    More example here that you don't understand nearly all CS terms.


    Mere empty rhetoric entirely bereft of any supporting
    reasoning. The x86 language is comparable to a RASP
    machine that is equivalent to a Turing machine.


    That is just you projecting your own arguements.

    Yes, the x86 language CAN be comparable to a Turing Machine, but only
    when everything the routine uses/affects are defined as the input and
    output, and when ALL the code used is included in the algorithm.

    That means your function DDD is NOT a Turing Machine Equivalent, since
    you have defined it not to include the code of HHH which it uses, and
    HHH is not because to do its emulation, it accesses memory locations
    that are not part of the input.

    Sorry, youa are just showing you don't actully know what you are talking
    about.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to olcott on Sun May 11 16:36:02 2025
    On 5/11/25 12:37 PM, olcott wrote:
    On 5/11/2025 6:07 AM, joes wrote:
    Am Sat, 10 May 2025 17:03:26 -0500 schrieb olcott:
    On 5/10/2025 4:44 PM, wij wrote:
    On Sat, 2025-05-10 at 14:29 -0500, olcott wrote:
    On 5/10/2025 2:02 PM, wij wrote:
    On Sat, 2025-05-10 at 13:47 -0500, olcott wrote:
    On 5/10/2025 1:37 PM, wij wrote:
    On Sat, 2025-05-10 at 13:17 -0500, olcott wrote:
    On 5/10/2025 1:09 PM, wij wrote:
    On Sat, 2025-05-10 at 12:17 -0500, olcott wrote:
    On 5/10/2025 12:01 PM, wij wrote:
    On Sat, 2025-05-10 at 11:47 -0500, olcott wrote:
    On 5/10/2025 11:29 AM, wij wrote:
    On Sat, 2025-05-10 at 11:19 -0500, olcott wrote:
    On 5/10/2025 11:06 AM, wij wrote:
    On Sat, 2025-05-10 at 10:45 -0500, olcott wrote: >>>>>>>>>>>>>>>>> On 5/10/2025 10:28 AM, wij wrote:
    On Sat, 2025-05-10 at 09:33 -0500, olcott wrote: >>>>>>>>>>>>>>>>>>> On 5/10/2025 7:37 AM, Bonita Montero wrote: >>>>>>>>>>>>>>>>>>>> Am 09.05.2025 um 04:22 schrieb olcott:

    It correctly determines that the halting problem's >>>>>>>>>>>>>>>>>>> otherwise "impossible" input is actually non halting.

    ...which makes it halt.

    The input that has baffled computer scientists for 90 years >>>>>>>>>>>>>>> is merely correctly determined to be non-halting when the >>>>>>>>>>>>>>> behavior of this input is measured by HHH emulating this >>>>>>>>>>>>>>> input according to the rules of the x86 language.

    Nobody is baffled. It halts.

    I have no problem with that. And, you said HHH merely rejects >>>>>>>>>>>> it as non-halting. You had denied HHH can decide the halting >>>>>>>>>>>> property of any input, except DDD/DD/D..

    As long as HHH correctly determines the halt status of a single >>>>>>>>>>> input that has no inputs then HHH is a correct termination >>>>>>>>>>> analyzer for that input.

    I have no problem with that, but be noticed that the HHH inside >>>>>>>>>> DD is not the 'HHH' that makes the final decision (otherwise, the >>>>>>>>>> 'HHH'
    will be an infinite recursive which cannot make any decision, >>>>>>>>>> which you had agreed)

    The original set theory is now called naive set theory after its
    mistake has been corrected. Thus the original halting problem proofs >>>>> can now be called the naive halting problem proofs.
    Traditional logic (or the part mostly used) that won't cause confusion >>>> is more reliable.

    The HP doesn't lead to contradictions.

    The halting problem itself remains the same, yet loses its most
    important proof.

    HP is based on TM. Proof of any other kind other than TM have to be
    cautious.
    Unless this is done as an actual simulating termination analyzer in a
    high level language like C and it operates on a 100% complete exactingly >>> precise input specification such as the x86 language too many details
    slip through the cracks of vagueness.

    TMs are concrete. What details, what vagueness?


    There isn't even a common TM language.
    If there was a TM language then examining
    the details of a termination analyzer would
    be like reverse engineering all of the details
    of how an operating system works from its
    machine code. Humans really need high level
    abstractions or they get totally lost.

    There is a standardize version of the Turing Machine Language.

    The fact the problem is too big for you to understand just shows that
    you are just too stupid to understand it.

    Note, Turing Machines CAN be described at a high level, just like the
    OS. And just like understanding the OS with high level code needs an understanding of the lower level code, understanding the high level descriptions of Turing Machines needs an understanding of the basic
    operaiton of a Turing Machine.

    Since you couldn't handle a Turing Machine of only a few states, that is
    about like not being able to understand an assembly function of just a
    small number of instructions.


    For example no one ever even noticed that it is 100% impossible to
    derive an input that actually does the opposite of whatever value that
    its termination analyzer reports.
    Wrong, DDD calls HHH, which returns "non-halting", *and halts*.


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

    There is no possible way for DD emulated by HHH
    according to the rules of the x86 language to
    receive the return value from its call to HHH(DDD).
    It has been this way for 90 years.



    First, if that is ALL the input, HHH can't emulate past the call
    instruction and be a pure function.

    If it isn't a pure function, then my static local hack lets it do the emulation.

    So, the input DD needs to be defined to include the code of HHH that it
    calls as part of its definition, and for you system, that must be the
    same as the decider.

    Yes, with tha fix there is also no possible way for a HHH that emulates
    its input by that rule to be a decider and give an answer.

    Once you make your HHH give up to answer, it fails to meet your initial requrement, and it is looking at a different input then the correctly
    emulating HHH, so we can't use its answer, as it is a different input.

    It turns out that the correct simulation of the input DD for a DD built
    on an HHH that answer 0 for HHH(DD) will reach the final state, the fact
    that the only partial emulation by HHH didn't do that is irrelevent, and
    the fact that the DIFFERENT DD

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to Mr Flibble on Sun May 11 16:50:46 2025
    On 5/11/25 7:48 AM, Mr Flibble wrote:
    On Sun, 11 May 2025 10:34:18 +0000, Alan Mackenzie wrote:

    Mr Flibble <flibble@red-dwarf.jmc.corp> wrote:
    On Sat, 10 May 2025 20:07:50 +0000, Alan Mackenzie wrote:

    Mr Flibble <flibble@red-dwarf.jmc.corp> wrote:
    On Sat, 10 May 2025 18:48:12 +0000, Alan Mackenzie wrote:

    olcott <polcott333@gmail.com> wrote:
    On 5/10/2025 7:37 AM, Bonita Montero wrote:

    [ .... ]

    I guess that not even a professor of theoretical computer science >>>>>>>> would spend years working on so few lines of code.


    I created a whole x86utm operating system.
    It correctly determines that the halting problem's otherwise
    "impossible" input is actually non halting.

    You've spent over 20 years on this matter. Compare this with Alan >>>>>> Turing's solution of the Entscheidungsproblem. He published this in >>>>>> 1936 when he was just 24 years old.

    Turing didn't solve anything: what he published contained a mistake: >>>>> the category (type) error that I have described previously in this
    forum.

    What arrogant self-important ignorance! Turing indeed solved the
    Entscheidungsproblem. His procedure has been verified by hundreds of
    thousands of mathematicians over the last century, and none of them
    have found flaws in it.

    Not at all: I have simply found a flaw that has been overlooked all
    this time. Peter effectively found the same flaw but came at it from a
    different angle.

    That's laughable. You're just a confused and deluded narcissistic
    crank.
    If you really believe you've found a flaw in Turing's paper, try writing
    it up properly (something which is beyond you) and submit it for
    publication to a reputable peer-reviewed mathematical journal. I'd be
    surprised if you even got a reply.

    Such invective diatribes do you no favours, mate. The problem here is you cannot handle the fact that Flibble and Olcott have refuted the Halting Problem proofs, showing how they all contain the same flaw which Turing
    and all who followed him overlooked.

    It is overwhelmingly likely that your lack of mathematical training
    has led you to delude yourself about finding an error. The same
    applies to Peter Olcott.

    Nope, I have formally defined the error that doesn't contradict Peter's
    work.

    You don't even understand what "formally" means.

    Sure I do. I can formally define it again for you if you like? Here is the formal definition:

    What constitutes halting problem pathological input:

    Input that would cause infinite recursion when using a decider of the simulating kind.

    So, what is a decider of a simulationg kind?

    If it is a decider, it can't do an infinte emulation.

    If it is a correct simulator, then it can't be a decider as it doesn't
    always anser.

    If it is a decider when directly called, and a simulator when called by
    D, then it isn't a program, as it doesn't have a uniquly defined algorithm.

    Sorry, your term of "a decider of the simulating kind" needs a correct
    formal definition to resolve which way your arguement is just wrong.


    Such input forms a category error which results in the halting problem
    being ill-formed as currently defined.

    No, they show that YOU are using a misdefined term, and is the category
    error.

    Note, the actual definition of the canonical pathological input is a description of a program that uses a copy of the decider that it is to
    make wrong on two copies of its input to get its decision and then does
    the opposite of that behavior, and said program is given to the decider
    with its representaiton, with an input of also its representation.

    A second version (which takes a bit more work to show is valid) is a
    program that generates an input that represents itself (which can be
    show to be doable, but takes more work) and then uses a copy of a halt
    decider for programs without inputs, and then does the opposite of that behavior.

    The first version has absolutely no "references" in the input to
    anything, just a copy of the decider it is to refute, which is a valid step.

    The second version sort of has a reference, in the ability to crreate
    its own representation, but it can be proven that you can build such a
    machine for any payload algorithm you want.

    Since you started with a strawman, your argument is just based on a fallacy.


    /Flibble

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to olcott on Sun May 11 17:02:38 2025
    On 5/11/25 12:44 PM, olcott wrote:
    On 5/11/2025 6:13 AM, joes wrote:
    Am Sat, 10 May 2025 15:42:13 -0500 schrieb olcott:
    On 5/10/2025 3:22 PM, Alan Mackenzie wrote:

    OK, then, give the page and line numbers from Turing's 1936 paper where >>>> this alleged mistake was made.  I would be surprised indeed if you'd
    even looked at Turing's paper, far less understood it.  Yet you're
    ready to denigrate his work.
    Perhaps it is time for you to withdraw these uncalled for insinuations. >>>>
    It is the whole gist of the entire idea of the halting problem proof
    that is wrongheaded.
    (1) It is anchored in the false assumption that an input to a
    termination analyzer can actually do this opposite of whatever value
    that this analyzer returns. No one ever notices that this "do the
    opposite" code is unreachable.

    The simulated DDD doesn't matter. HHH returns to DDD, and DDD then does
    the opposite.


    HHH is only allowed to report on the behavior that
    its actual input actually specifies.


    Which is DEFINED to be the bahavior of the program that the input
    represents when run.

    int sum(int x, int y) { return x + y; }
    sum(3,2) is not allowed to report on the sum of 5 + 7
    because that is not what its input specifies.

    and your HHH is doing the equivalent of doing:

    int *p = 0;
    sum(5,*p)

    as it doesn't have all the needed information, and thus accesses data it
    isn't supposed to.

    If you fix the defintion of DD to inlude its HHH then you sample is that


    sum(3,2) returning the results of 5 + 2, as it doesn't actually use the
    actual HHH that DD calls, but a mistaken assumption of what that code is.

    Remember, this HHH aborts and returns, but it assumes that HHH (which is
    the same) never aborts.

    Sorry, it incorrect emulates the input by any reasonable definition that
    isn't based on allowing lying.


    (2) It expects a self-contradictory (thus incorrect)
    question to have a correct answer.
    Whether a program halts is not contradictory.


    Asking sum(3,2) about the sum of 5 + 7
    is the same as asking HHH(DDD) about the
    direct execution of DDD().

    Nope, it is like HHH not looking at the HHH that its DDD calls, but even
    though it actually is the aborting and returning 0 HHH, it assumes it is
    the never aborting and never returning HHH, which doesn't actualy exist.


    Can Carol correctly answer “no” to this (yes/no) question?
    When the context of who is asked is understood to be an aspect of the
    full meaning of the question then the question posed to Carol is
    incorrect because both yes and no are the wrong answer.
    Yes, HHH cannot answer correctly.


    Any yes/no question where both yes and no are the
    wrong answer is an incorrect polar question.
    Copyright PL Olcott 2025.


    But for that actual question that isn't the case.

    The question is: Does the program represented by the input halt when run?

    TO even ask that question, we need the full definition of that program,
    and for DD or DDD that requires us to have a full definition of the HHH
    that they call (or we don't even have a program) and thus there *IS* a
    definite answer based on that definiton.

    Since your HHH(DD) or HHH(DDD) returns 0 becuase it does abort its
    emulation, that means that the actual execution of either DD or DDD will
    call that HHH and it will return the 0 result and thus DD / DDD will
    halt, and thus Halting was the correct answer, just not the answer that
    that HHH gave.

    The problem is your strawman question, "What can HHH return for DDD to
    be correct?" is an invalid question, as a given HHH can only return one
    answer, and that is fixed by its definition, so the question itself is malformed based on a false assumption of ability to choose.

    Your question is like asking what is the length of a side of a square
    circle? It presumes something that is impossible.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to olcott on Sun May 11 17:06:48 2025
    On 5/11/25 4:19 PM, olcott wrote:
    On 5/11/2025 1:38 PM, wij wrote:
    On Sun, 2025-05-11 at 12:40 -0500, olcott wrote:
    On 5/11/2025 12:21 PM, wij wrote:
    On Sun, 2025-05-11 at 12:00 -0500, olcott wrote:
    On 5/11/2025 11:28 AM, wij wrote:
    On Sun, 2025-05-11 at 10:38 -0500, olcott wrote:
    On 5/11/2025 9:34 AM, wij wrote:
    On Sat, 2025-05-10 at 21:19 -0500, olcott wrote:
    On 5/10/2025 9:09 PM, wij wrote:
    On Sat, 2025-05-10 at 20:56 -0500, olcott wrote:
    On 5/10/2025 8:44 PM, wij wrote:
    On Sat, 2025-05-10 at 20:26 -0500, olcott wrote:
    On 5/10/2025 8:17 PM, wij wrote:
    On Sat, 2025-05-10 at 17:03 -0500, olcott wrote:
    On 5/10/2025 4:44 PM, wij wrote:
    On Sat, 2025-05-10 at 14:29 -0500, olcott wrote: >>>>>>>>>>>>>>>>> On 5/10/2025 2:02 PM, wij wrote:


    You don't know the counter example in the HP proof, your D >>>>>>>>>>>>>> is not the case
    what HP
    says.


    Sure I do this is it! (as correctly encoded in C)

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

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

    int main()
    {
             HHH(DD);
    }



    Try to convert it to TM language to know you know nothing. >>>>>>>>>>>>

    I spent 22 years on this. I started with the Linz text

    When Ĥ is applied to ⟨Ĥ⟩
    Ĥ.q0 ⟨Ĥ⟩ ⊢* embedded_H ⟨Ĥ⟩ ⟨Ĥ⟩ ⊢* Ĥ.qy ∞ >>>>>>>>>>>         or
    Ĥ.q0 ⟨Ĥ⟩ ⊢* embedded_H ⟨Ĥ⟩ ⟨Ĥ⟩ ⊢* Ĥ.qn >>>>>>>>>>>
    (a) Ĥ copies its input ⟨Ĥ⟩
    (b) Ĥ invokes embedded_H ⟨Ĥ⟩ ⟨Ĥ⟩
    (c) embedded_H simulates ⟨Ĥ⟩ ⟨Ĥ⟩ ...

    Thus ⟨Ĥ⟩ ⟨Ĥ⟩ correctly simulated by embedded_H >>>>>>>>>>> cannot possibly reach its simulated final halt state
    ⟨Ĥ.qn⟩

    To refute the HP, you need to understand what it exactly >>>>>>>>>>>> means in TM.

    I have known this for 22 years.

    A working TM. Build it explicitly from transition function, >>>>>>>>>> then explain
    your derivation. You know nothing.


    That would be like examining how an operating system
    works entirely from its machine code.

    You are refuting a CS foundamental theorem (i.e. HP) officially. >>>>>>>> So, yes, and actually MORE need to be done (beyond your
    imagination).

    Knowing a car or smart phone,... is far different from making one. >>>>>>>> Knowing E=mc^2 is far from knowing relativity, making A-bomb
    (actually, making
    A-bomb don't need to know E=mc^2, people are often fooled by
    popular saying)
    Every chapter of Linz's book, C text textbook has exercises, you >>>>>>>> need to those
    exercises AT LEAST to comment CS (and computation theory is more >>>>>>>> advanced topic
    than TM). Saying so is because we know you can't do the exercise >>>>>>>> and boast lots
    about TM stuff (and pretty much anything else from just reading >>>>>>>> words), even
    about theorem.


    When Ĥ is applied to ⟨Ĥ⟩
    Ĥ.q0 ⟨Ĥ⟩ ⊢* embedded_H ⟨Ĥ⟩ ⟨Ĥ⟩ ⊢* Ĥ.qy ∞
          or
    Ĥ.q0 ⟨Ĥ⟩ ⊢* embedded_H ⟨Ĥ⟩ ⟨Ĥ⟩ ⊢* Ĥ.qn

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

    All that I need to know is that I proved that
    embedded_H correctly recognizes the repeating
    pattern where its correctly simulated ⟨Ĥ⟩ ⟨Ĥ⟩
    cannot possibly reach its own simulated final
    halt state of ⟨Ĥ.qn⟩

    https://www.liarparadox.org/Linz_Proof.pdf

    We only have to actually know one detail:
    Every counter-example input encoded in any model
    of computation always specifies recursive simulation
    that never halts to its corresponding simulating
    termination analyzer.

    More example here that you don't understand nearly all CS terms. >>>>>>>>

    Mere empty rhetoric entirely bereft of any supporting
    reasoning. The x86 language is comparable to a RASP
    machine that is equivalent to a Turing machine.

    Question:
    1. Do you understand that you can't do the exercises in Linz's book? >>>>>
    Everything is 100% irrelevant besides the fact that
    I have shown that ⟨Ĥ⟩ ⟨Ĥ⟩ correctly simulated by
    embedded_H cannot possibly reach its own simulated
    final halt state ⟨Ĥ.qn⟩. Thus when embedded_H reports
    on the behavior that its input specifies it can
    correctly transition to Ĥ.qn.

    2. Do you understand your ability of C/assembly/TM is less than 1
    year CS level?


    I construe C as high level assembly language thus
    disregard any inessentials. No change since K & R
    is of any use to me. I write C++ the same way. I
    use it as C with classes. I also use std::vector a lot.

    Q3. If people know the capability of the author of POOH is less than
    1 year CS
          level. How persuasive and reliable of POOH do you think it
    would be?

    Q4: Why no one can reproduce the result of POOH for these 22? years?



    _DDD()
    [00002172] 55         push ebp      ; housekeeping
    [00002173] 8bec       mov  ebp,esp  ; housekeeping
    [00002175] 6872210000 push 00002172 ; push DDD
    [0000217a] e853f4ffff call 000015d2 ; call HHH(DDD)
    [0000217f] 83c404     add  esp,+04
    [00002182] 5d         pop  ebp
    [00002183] c3         ret
    Size in bytes:(0018) [00002183]

    All anyone need do to show that I am wrong
    is provide the steps where DDD emulated by
    HHH according to the rules of the x86 language
    reaches its own emulated "ret" instruction.

    Because no one can actually correctly show any
    mistake in the above they resort to rhetoric
    because that have no actual reasoning.

    Q5: Do you remember you had claimed H(D) returns 1,0,both,... is
    correct and
         more. The answer changes. What is your comment of this?

    q6: What is the return value of H(D) now, exactly?



    I am only referring to the behavior of DDD
    emulated by HHH according to the rules of
    the x86 language.


    Which since your HHH doesn't actually do that, is a nonsense question.

    That you DDD can't be emulated by your stipulations, since it isn't a
    complete program, but just a non-leaf function, makes it doubling nonsense.

    Sorry, you are just showing your ignorance of what you are talking
    about, and that you are just living in a fantasy world filled with contradictions, equivocations, and just plain lies.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to olcott on Sun May 11 19:39:44 2025
    On 5/11/25 5:15 PM, olcott wrote:
    On 5/11/2025 4:02 PM, Richard Damon wrote:
    On 5/11/25 12:44 PM, olcott wrote:
    On 5/11/2025 6:13 AM, joes wrote:
    Am Sat, 10 May 2025 15:42:13 -0500 schrieb olcott:
    On 5/10/2025 3:22 PM, Alan Mackenzie wrote:

    OK, then, give the page and line numbers from Turing's 1936 paper
    where
    this alleged mistake was made.  I would be surprised indeed if you'd >>>>>> even looked at Turing's paper, far less understood it.  Yet you're >>>>>> ready to denigrate his work.
    Perhaps it is time for you to withdraw these uncalled for
    insinuations.

    It is the whole gist of the entire idea of the halting problem proof >>>>> that is wrongheaded.
    (1) It is anchored in the false assumption that an input to a
    termination analyzer can actually do this opposite of whatever value >>>>> that this analyzer returns. No one ever notices that this "do the
    opposite" code is unreachable.

    The simulated DDD doesn't matter. HHH returns to DDD, and DDD then does >>>> the opposite.


    HHH is only allowed to report on the behavior that
    its actual input actually specifies.


    Which is DEFINED to be the bahavior of the program that the input
    represents when run.

    When you define 5 == 6 you are simply wrong.
    That definition contradicts other axioms.


    And where did I do that?

    Show your source of the words actually defined by reliable sources that
    make my claim wrong.

    After all, the statement of the Halting problem from one of your
    favorite sources is:

    In computability theory, the halting problem is the problem of
    determining, from a description of an arbitrary computer program and an
    input, whether the program will finish running, or continue to run forever.

    If that isn't talking about the direct execution of the program, what is
    it talking about?

    That you don't like that definition, is your problem, and just shows you
    don't like that some rules just make your ideas wrong.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to olcott on Sun May 11 19:36:41 2025
    On 5/11/25 5:13 PM, olcott wrote:
    On 5/11/2025 3:36 PM, Richard Damon wrote:
    On 5/11/25 12:37 PM, olcott wrote:
    On 5/11/2025 6:07 AM, joes wrote:
    Am Sat, 10 May 2025 17:03:26 -0500 schrieb olcott:
    On 5/10/2025 4:44 PM, wij wrote:
    On Sat, 2025-05-10 at 14:29 -0500, olcott wrote:
    On 5/10/2025 2:02 PM, wij wrote:
    On Sat, 2025-05-10 at 13:47 -0500, olcott wrote:
    On 5/10/2025 1:37 PM, wij wrote:
    On Sat, 2025-05-10 at 13:17 -0500, olcott wrote:
    On 5/10/2025 1:09 PM, wij wrote:
    On Sat, 2025-05-10 at 12:17 -0500, olcott wrote:
    On 5/10/2025 12:01 PM, wij wrote:
    On Sat, 2025-05-10 at 11:47 -0500, olcott wrote:
    On 5/10/2025 11:29 AM, wij wrote:
    On Sat, 2025-05-10 at 11:19 -0500, olcott wrote: >>>>>>>>>>>>>>>>> On 5/10/2025 11:06 AM, wij wrote:
    On Sat, 2025-05-10 at 10:45 -0500, olcott wrote: >>>>>>>>>>>>>>>>>>> On 5/10/2025 10:28 AM, wij wrote:
    On Sat, 2025-05-10 at 09:33 -0500, olcott wrote: >>>>>>>>>>>>>>>>>>>>> On 5/10/2025 7:37 AM, Bonita Montero wrote: >>>>>>>>>>>>>>>>>>>>>> Am 09.05.2025 um 04:22 schrieb olcott:

    It correctly determines that the halting problem's >>>>>>>>>>>>>>>>>>>>> otherwise "impossible" input is actually non halting. >>>>
    ...which makes it halt.

    The input that has baffled computer scientists for 90 >>>>>>>>>>>>>>>>> years
    is merely correctly determined to be non-halting when the >>>>>>>>>>>>>>>>> behavior of this input is measured by HHH emulating this >>>>>>>>>>>>>>>>> input according to the rules of the x86 language.

    Nobody is baffled. It halts.

    I have no problem with that. And, you said HHH merely rejects >>>>>>>>>>>>>> it as non-halting. You had denied HHH can decide the halting >>>>>>>>>>>>>> property of any input, except DDD/DD/D..

    As long as HHH correctly determines the halt status of a >>>>>>>>>>>>> single
    input that has no inputs then HHH is a correct termination >>>>>>>>>>>>> analyzer for that input.

    I have no problem with that, but be noticed that the HHH inside >>>>>>>>>>>> DD is not the 'HHH' that makes the final decision
    (otherwise, the
    'HHH'
    will be an infinite recursive which cannot make any decision, >>>>>>>>>>>> which you had agreed)

    The original set theory is now called naive set theory after its >>>>>>> mistake has been corrected. Thus the original halting problem proofs >>>>>>> can now be called the naive halting problem proofs.
    Traditional logic (or the part mostly used) that won't cause
    confusion
    is more reliable.

    The HP doesn't lead to contradictions.

    The halting problem itself remains the same, yet loses its most
    important proof.

    HP is based on TM. Proof of any other kind other than TM have to be >>>>>> cautious.
    Unless this is done as an actual simulating termination analyzer in a >>>>> high level language like C and it operates on a 100% complete
    exactingly
    precise input specification such as the x86 language too many details >>>>> slip through the cracks of vagueness.

    TMs are concrete. What details, what vagueness?


    There isn't even a common TM language.
    If there was a TM language then examining
    the details of a termination analyzer would
    be like reverse engineering all of the details
    of how an operating system works from its
    machine code. Humans really need high level
    abstractions or they get totally lost.

    There is a standardize version of the Turing Machine Language.

    The fact the problem is too big for you to understand just shows that
    you are just too stupid to understand it.

    Note, Turing Machines CAN be described at a high level, just like the
    OS. And just like understanding the OS with high level code needs an
    understanding of the lower level code, understanding the high level
    descriptions of Turing Machines needs an understanding of the basic
    operaiton of a Turing Machine.

    Since you couldn't handle a Turing Machine of only a few states, that
    is about like not being able to understand an assembly function of
    just a small number of instructions.


    For example no one ever even noticed that it is 100% impossible to
    derive an input that actually does the opposite of whatever value that >>>>> its termination analyzer reports.
    Wrong, DDD calls HHH, which returns "non-halting", *and halts*.


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

    There is no possible way for DD emulated by HHH
    according to the rules of the x86 language to
    receive the return value from its call to HHH(DDD).
    It has been this way for 90 years.



    First, if that is ALL the input, HHH can't emulate past the call
    instruction and be a pure function.


    Sure it can.


    How? By breaking its requirements to be a pure function?

    I guess you are just admitting you are just a stupid liar that doesn't
    know the meaning of the words he is using.

    Your "proof" is now lying at the bottom of that lake of fire reserved
    for liars as that is what it has been proven to be, just a pile of lies,
    and you will be joining it there soon.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to olcott on Sun May 11 19:34:41 2025
    On 5/11/25 6:00 PM, olcott wrote:
    On 5/11/2025 4:48 PM, wij wrote:
    On Sun, 2025-05-11 at 15:53 -0500, olcott wrote:
    On 5/11/2025 3:23 PM, wij wrote:
    On Sun, 2025-05-11 at 15:19 -0500, olcott wrote:
    On 5/11/2025 1:38 PM, wij wrote:
    On Sun, 2025-05-11 at 12:40 -0500, olcott wrote:
    On 5/11/2025 12:21 PM, wij wrote:
    On Sun, 2025-05-11 at 12:00 -0500, olcott wrote:
    On 5/11/2025 11:28 AM, wij wrote:
    On Sun, 2025-05-11 at 10:38 -0500, olcott wrote:
    On 5/11/2025 9:34 AM, wij wrote:
    On Sat, 2025-05-10 at 21:19 -0500, olcott wrote:
    On 5/10/2025 9:09 PM, wij wrote:
    On Sat, 2025-05-10 at 20:56 -0500, olcott wrote:
    On 5/10/2025 8:44 PM, wij wrote:
    On Sat, 2025-05-10 at 20:26 -0500, olcott wrote: >>>>>>>>>>>>>>>>> On 5/10/2025 8:17 PM, wij wrote:
    On Sat, 2025-05-10 at 17:03 -0500, olcott wrote: >>>>>>>>>>>>>>>>>>> On 5/10/2025 4:44 PM, wij wrote:
    On Sat, 2025-05-10 at 14:29 -0500, olcott wrote: >>>>>>>>>>>>>>>>>>>>> On 5/10/2025 2:02 PM, wij wrote:


    You don't know the counter example in the HP proof, >>>>>>>>>>>>>>>>>> your D is not the
    case
    what HP
    says.


    Sure I do this is it! (as correctly encoded in C) >>>>>>>>>>>>>>>>>
    typedef void (*ptr)();
    int HHH(ptr P);

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

    int main()
    {
               HHH(DD);
    }



    Try to convert it to TM language to know you know nothing. >>>>>>>>>>>>>>>>

    I spent 22 years on this. I started with the Linz text >>>>>>>>>>>>>>>
    When Ĥ is applied to ⟨Ĥ⟩
    Ĥ.q0 ⟨Ĥ⟩ ⊢* embedded_H ⟨Ĥ⟩ ⟨Ĥ⟩ ⊢* Ĥ.qy ∞ >>>>>>>>>>>>>>>           or
    Ĥ.q0 ⟨Ĥ⟩ ⊢* embedded_H ⟨Ĥ⟩ ⟨Ĥ⟩ ⊢* Ĥ.qn >>>>>>>>>>>>>>>
    (a) Ĥ copies its input ⟨Ĥ⟩
    (b) Ĥ invokes embedded_H ⟨Ĥ⟩ ⟨Ĥ⟩
    (c) embedded_H simulates ⟨Ĥ⟩ ⟨Ĥ⟩ ...

    Thus ⟨Ĥ⟩ ⟨Ĥ⟩ correctly simulated by embedded_H >>>>>>>>>>>>>>> cannot possibly reach its simulated final halt state >>>>>>>>>>>>>>> ⟨Ĥ.qn⟩

    To refute the HP, you need to understand what it exactly >>>>>>>>>>>>>>>> means in TM.

    I have known this for 22 years.

    A working TM. Build it explicitly from transition >>>>>>>>>>>>>> function, then explain
    your derivation. You know nothing.


    That would be like examining how an operating system >>>>>>>>>>>>> works entirely from its machine code.

    You are refuting a CS foundamental theorem (i.e. HP)
    officially.
    So, yes, and actually MORE need to be done (beyond your >>>>>>>>>>>> imagination).

    Knowing a car or smart phone,... is far different from >>>>>>>>>>>> making one.
    Knowing E=mc^2 is far from knowing relativity, making A-bomb >>>>>>>>>>>> (actually, making
    A-bomb don't need to know E=mc^2, people are often fooled by >>>>>>>>>>>> popular saying)
    Every chapter of Linz's book, C text textbook has exercises, >>>>>>>>>>>> you need to those
    exercises AT LEAST to comment CS (and computation theory is >>>>>>>>>>>> more advanced topic
    than TM). Saying so is because we know you can't do the >>>>>>>>>>>> exercise and boast lots
    about TM stuff (and pretty much anything else from just >>>>>>>>>>>> reading words), even
    about theorem.


    When Ĥ is applied to ⟨Ĥ⟩
    Ĥ.q0 ⟨Ĥ⟩ ⊢* embedded_H ⟨Ĥ⟩ ⟨Ĥ⟩ ⊢* Ĥ.qy ∞ >>>>>>>>>>>         or
    Ĥ.q0 ⟨Ĥ⟩ ⊢* embedded_H ⟨Ĥ⟩ ⟨Ĥ⟩ ⊢* Ĥ.qn >>>>>>>>>>>
    (a) Ĥ copies its input ⟨Ĥ⟩
    (b) Ĥ invokes embedded_H ⟨Ĥ⟩ ⟨Ĥ⟩
    (c) embedded_H simulates ⟨Ĥ⟩ ⟨Ĥ⟩

    All that I need to know is that I proved that
    embedded_H correctly recognizes the repeating
    pattern where its correctly simulated ⟨Ĥ⟩ ⟨Ĥ⟩
    cannot possibly reach its own simulated final
    halt state of ⟨Ĥ.qn⟩

    https://www.liarparadox.org/Linz_Proof.pdf

    We only have to actually know one detail:
    Every counter-example input encoded in any model
    of computation always specifies recursive simulation >>>>>>>>>>>>> that never halts to its corresponding simulating
    termination analyzer.

    More example here that you don't understand nearly all CS >>>>>>>>>>>> terms.


    Mere empty rhetoric entirely bereft of any supporting
    reasoning. The x86 language is comparable to a RASP
    machine that is equivalent to a Turing machine.

    Question:
    1. Do you understand that you can't do the exercises in Linz's >>>>>>>>>> book?

    Everything is 100% irrelevant besides the fact that
    I have shown that ⟨Ĥ⟩ ⟨Ĥ⟩ correctly simulated by
    embedded_H cannot possibly reach its own simulated
    final halt state ⟨Ĥ.qn⟩. Thus when embedded_H reports
    on the behavior that its input specifies it can
    correctly transition to Ĥ.qn.

    2. Do you understand your ability of C/assembly/TM is less >>>>>>>>>> than 1 year CS level?


    I construe C as high level assembly language thus
    disregard any inessentials. No change since K & R
    is of any use to me. I write C++ the same way. I
    use it as C with classes. I also use std::vector a lot.

    Q3. If people know the capability of the author of POOH is less >>>>>>>> than 1 year CS
            level. How persuasive and reliable of POOH do you think >>>>>>>> it would be?

    Q4: Why no one can reproduce the result of POOH for these 22?
    years?



    _DDD()
    [00002172] 55         push ebp      ; housekeeping
    [00002173] 8bec       mov  ebp,esp  ; housekeeping
    [00002175] 6872210000 push 00002172 ; push DDD
    [0000217a] e853f4ffff call 000015d2 ; call HHH(DDD)
    [0000217f] 83c404     add  esp,+04
    [00002182] 5d         pop  ebp
    [00002183] c3         ret
    Size in bytes:(0018) [00002183]

    All anyone need do to show that I am wrong
    is provide the steps where DDD emulated by
    HHH according to the rules of the x86 language
    reaches its own emulated "ret" instruction.

    Because no one can actually correctly show any
    mistake in the above they resort to rhetoric
    because that have no actual reasoning.

    Q5: Do you remember you had claimed H(D) returns 1,0,both,... is
    correct and
           more. The answer changes. What is your comment of this? >>>>>>
    q6: What is the return value of H(D) now, exactly?



    I am only referring to the behavior of DDD
    emulated by HHH according to the rules of
    the x86 language.

    So, you longer refute the HP now?

    ZFC corrected the error in set theory so that
    it could resolve Russell's Paradox. The original
    set theory has now called naive set theory.

    I corrected the error of the HP that expects
    HHH to report on behavior that is different
    than the behavior that its input actually
    specifies.

    Specificly, "Halt(D)=1 iff D() halts" is an error?
    And it should expect: Halt(D)=1 iff POOH(D)=1 (correct problem)?


    Yes that is an error because the behavior that
    the input to HHH(DDD) specifies is the behavior
    that HHH must report on.



    Which, by the definiton of the problem, is the behavior of the program
    that input represents when it is run.

    NOT when partially emulated by this HHH,

    The problem is in part, that you DDD is defined to not be a program, as
    it doesn't include the code of the HHH that it calls, and thus your
    setup has a category error.

    You also have admitted that you HHH isn't a program either, so you are
    out on two counts.

    You are just showing you are utterly ignorant of the requirement of the
    field you are talking about.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Mike Terry@21:1/5 to Richard Heathfield on Mon May 12 01:38:10 2025
    On 11/05/2025 18:11, Richard Heathfield wrote:
    On 11/05/2025 17:44, olcott wrote:
    Any yes/no question where both yes and no are the
    wrong answer is an incorrect polar question.

    Either DD stops or it doesn't (once it's been hacked around to get it to compile and after we've
    leeched out all the dodgy programming).

    Done that. It still stops.


    If the computer cannot correctly decide whether or not DD halts,

    The decider says it doesn't stop..

    we have an undecidable computation,

    No no, that doesn't make sense. DD stops, and there are lots of partial halt deciders that will
    decide that particular input correctly. PO's DD isn't "undecidable".

    No single computation can be undecidable, considered on its own! There are only two possibilities:
    it halts or it doesn't. In either case there is a decider which decides that /one specific input/
    correctly. By extension, any finite number of computations is decidable - we just have a giant
    switch statement followed by returning halts/neverhalts as appropriate. If the input domain has
    just n inputs, there are 2^n trivial deciders that together cater for every combination of each
    input halting or never halting. One of those deciders is a correct decider for that (finite domain)
    problem.

    The HP is asking for a TM (or equiv.) that correctly decides EVERY (P,I) in its one finite
    algorithm. That is what is proven impossible. The trick of having a big switch statement no longer
    works because there are infinitely many possible inputs.

    Decidability for just one single input is trivial and not intersting.

    and therefore some computations are undecidable, so Turing's conclusion was right. Who knew? (Apart
    from practically everybody else, I mean.)


    Mike.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Heathfield@21:1/5 to Mike Terry on Mon May 12 02:25:29 2025
    On 12/05/2025 01:38, Mike Terry wrote:
    On 11/05/2025 18:11, Richard Heathfield wrote:
    On 11/05/2025 17:44, olcott wrote:
    Any yes/no question where both yes and no are the
    wrong answer is an incorrect polar question.

    Either DD stops or it doesn't (once it's been hacked around to
    get it to compile and after we've leeched out all the dodgy
    programming).

    Done that.

    And you still had code left?

    It still stops.

    Okay.

    If the computer cannot correctly decide whether or not DD halts,

    The decider says it doesn't stop..

    I said "cannot >>>correctly<<< decide".


    we have an undecidable computation,

    No no, that doesn't make sense.

    Agreed. Therefore, even *after* taking out all the dodgy code,
    the decider must be broken.

     DD stops, and there are lots of
    partial halt deciders that will decide that particular input
    correctly.  PO's DD isn't "undecidable".

    I hear what you're saying (or at least I see what you typed), but
    if DD's result is so decidable, how come his decider can't
    correctly decide?

    No single computation can be undecidable, considered on its own!
    There are only two possibilities: it halts or it doesn't.

    Or both, it seems. You say it halts (and I would not hesitate to
    take you at your word if the alternative is to dredge up a
    Windows system from somewhere). Olcott says it is non-halting.

    And we both know it /can't/ be both...

    --
    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 Damon@21:1/5 to olcott on Sun May 11 21:15:08 2025
    On 5/11/25 8:51 PM, olcott wrote:
    On 5/11/2025 7:33 PM, wij wrote:
    On Sun, 2025-05-11 at 18:08 -0500, olcott wrote:
    On 5/11/2025 5:50 PM, wij wrote:
    On Sun, 2025-05-11 at 17:30 -0500, olcott wrote:
    On 5/11/2025 5:11 PM, wij wrote:
    On Sun, 2025-05-11 at 17:00 -0500, olcott wrote:
    [cut]
    ZFC corrected the error in set theory so that
    it could resolve Russell's Paradox. The original
    set theory has now called naive set theory.

    I corrected the error of the HP that expects
    HHH to report on behavior that is different
    than the behavior that its input actually
    specifies.

    Specificly, "Halt(D)=1 iff D() halts" is an error?
    And it should expect: Halt(D)=1 iff POOH(D)=1 (correct problem)? >>>>>>>>

    Yes that is an error because the behavior that
    the input to HHH(DDD) specifies is the behavior
    that HHH must report on.

    If so, how do we know a given function e.g. D, halts or not by
    giving it to H,
    i.e. H(D)? Wrong question (according to you)?

    H and D is too vague and ambiguous.
    We know that the input to HHH(DDD) specifies
    a non-halting sequence of configurations.

    We know that the input to HHH1(DDD) specifies
    a halting sequence of configurations.

    Instead, every time we want to know whether D halts or not,

    When we intentionally define an input to attempt
    to thwart a specific termination analyzer THIS DOES
    CHANGE THE BEHAVIOR.

    If we let people run uploaded programs on our
    network we need to know if these programs are
    going to halt.

    Unless HHH(DDD) rejects its input as non-halting
    HHH will continue to eat up network resources.

    But, according to POOH, if D going to eat up network resources, it
    have to
    happen when we run POOH(D), because you said D's halting property only >>>> valid to H.


    If we want to prevent this kind of denial of service
    attack HHH must be able correctly handle inputs that
    are trying to thwart it or HHH fails.

    When HHH is our official denial of service attack
    preventer it either rejects its input DDD as non
    halting or it gets stuck in recursive emulation
    thus fails.

    It always has been the requirement that a termination
    analyzer was required to report on the behavior that
    its input actually specifies.

    This is a subtle nuance of functions computed by
    models of computation that no one bothered to
    pay attention to because they didn't know it made
    any difference.


    Is DDD a virus?


    If on a real system an input tried to fool the
    denial-of-service-attack detector IT WOULD FAIL.

    Prior to my work a denial-of-service-attack detector
    WOULD FAIL. It would not know to reject DDD.


    But DDD doesn't do a denial of service, so it is a false positive.

    Or, are you admitting that your HHH is a non-halting program, which
    means it isn't a decider.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to olcott on Sun May 11 21:31:40 2025
    On 5/11/25 8:29 PM, olcott wrote:
    On 5/11/2025 6:39 PM, Richard Damon wrote:
    On 5/11/25 5:15 PM, olcott wrote:
    On 5/11/2025 4:02 PM, Richard Damon wrote:
    On 5/11/25 12:44 PM, olcott wrote:
    On 5/11/2025 6:13 AM, joes wrote:
    Am Sat, 10 May 2025 15:42:13 -0500 schrieb olcott:
    On 5/10/2025 3:22 PM, Alan Mackenzie wrote:

    OK, then, give the page and line numbers from Turing's 1936
    paper where
    this alleged mistake was made.  I would be surprised indeed if >>>>>>>> you'd
    even looked at Turing's paper, far less understood it.  Yet you're >>>>>>>> ready to denigrate his work.
    Perhaps it is time for you to withdraw these uncalled for
    insinuations.

    It is the whole gist of the entire idea of the halting problem proof >>>>>>> that is wrongheaded.
    (1) It is anchored in the false assumption that an input to a
    termination analyzer can actually do this opposite of whatever value >>>>>>> that this analyzer returns. No one ever notices that this "do the >>>>>>> opposite" code is unreachable.

    The simulated DDD doesn't matter. HHH returns to DDD, and DDD then >>>>>> does
    the opposite.


    HHH is only allowed to report on the behavior that
    its actual input actually specifies.


    Which is DEFINED to be the bahavior of the program that the input
    represents when run.

    When you define 5 == 6 you are simply wrong.
    That definition contradicts other axioms.


    And where did I do that?


    When the definition of the halting problem requires
    the termination analyzer H to report on behavior besides
    the behavior of the input D simulated by H according
    to the rules of the computational language that the
    input D is encoded within.


    Where do you get that behavior to be decided needs to be based on the
    partial simulation of the decider.

    You try to call that PARTIAL simulation as according to the rule of the language, but it isn't.

    If you stipulate that you H actually DOES the emulation that you
    specify, then you have proven that you have effective stipulated that
    you H is not a decider.

    Sorry, but your system is based on requiring the existance of a machine
    that can not exist, a machine that can both do a simulation for an
    unbounded number of steps, but still after that return an answer in a
    finite number of steps.

    Sorry, you system is just proven to be self-contradictory and totally
    exploded in illogic.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to olcott on Sun May 11 21:27:37 2025
    On 5/11/25 8:48 PM, olcott wrote:
    On 5/11/2025 7:38 PM, Mike Terry wrote:
    On 11/05/2025 18:11, Richard Heathfield wrote:
    On 11/05/2025 17:44, olcott wrote:
    Any yes/no question where both yes and no are the
    wrong answer is an incorrect polar question.

    Either DD stops or it doesn't (once it's been hacked around to get it
    to compile and after we've leeched out all the dodgy programming).

    Done that.  It still stops.


    If the computer cannot correctly decide whether or not DD halts,

    The decider says it doesn't stop..

    we have an undecidable computation,

    No no, that doesn't make sense.  DD stops, and there are lots of
    partial halt deciders that will decide that particular input
    correctly.  PO's DD isn't "undecidable".

    No single computation can be undecidable, considered on its own!
    There are only two possibilities: it halts or it doesn't.  In either
    case there is a decider which decides that /one specific input/
    correctly. By extension, any finite number of computations is
    decidable - we just have a giant switch statement followed by
    returning halts/neverhalts as appropriate.  If the input domain has
    just n inputs, there are 2^n trivial deciders that together cater for
    every combination of each input halting or never halting.  One of
    those deciders is a correct decider for that (finite domain) problem.

    The HP is asking for a TM (or equiv.) that correctly decides EVERY
    (P,I) in its one finite algorithm.  That is what is proven
    impossible.  The trick of having a big switch statement no longer
    works because there are infinitely many possible inputs.

    Decidability for just one single input is trivial and not intersting.

    and therefore some computations are undecidable, so Turing's
    conclusion was right. Who knew? (Apart from practically everybody
    else, I mean.)


    Mike.

    DDD emulated by HHH according to the rules of
    the computational language that DD is encoded
    within already proves that the HP "impossible"
    input specifies a non-halting sequence of
    configurations.

    No it doesn't.

    First, we need to add the specified HHH to the code of DDD, or you just
    can do anything you talk about (and this make every HHH get a different
    DDD since it will be paired with that HHH and thus different then the
    DDD given to some other HHH). You have admitted that you whole system is
    just a category error, but we will fix it an move on.

    Then, since HHH(DDD) returns 0, as you have stipuled it does to be
    correct, then it doesn't, by simple inspection and definition. do the
    required correct simulation by the rules of the system, since it aborts
    its simulation. The computational language does not allow a correct
    emulation to stop prematurely.

    In addition, the actual correct emulation of this input *WILL* halt, as
    will the direcr execution of the program it represents, and since that
    *IS* the definition of the behavior that the decider is supposed to be answering on, it is just wrong, and you are shown to be just a stupid
    liar that is just showing he doesn't knwo what his words mean.



    The same goes for the Linz proof.

    Right, H <H^> <H^> is wrong to say non-halting as H^ <H^> will use its
    copy of H applied to <H^> <H^> see that it went to qn and then it will halt.

    The fact that H's emulation of H^ didn't get to that point is
    irrelevent, just the final results.


    The mistake is continuing to assume that a
    termination analyzer must report on behavior
    other than the behavior that its input specifies.

    But the behavor of its input *IS* the behavior of running the program
    the input specifies, which is exactly what you are trying to deny.

    The behavior you are talking about, the behavior of only a partial
    emulation of the input, confused with the behavior of diffferent inputs
    that have some relationship to this one is just not the behavior
    specified, execpt by your lies.


    When an input is simulated according to
    the behavior specified by the computation
    language that it is encoded within
    THEN THIS SIMULATION IS CORRECT.
    It seems nuts (or dishonest) to claim otherwise.


    Right, and that is NOT the results of the partial simulation done by
    HHH, but the actual correct simulation done by giving that exact input
    (which still calls the HHH that does the aborting that the HHH you claim
    is correct does) and thus we see DDD calll HHH(DDD) which will emulate
    DDD for some number of steps, then abort its emulation because it
    (erroneously) thinks that the input represent a non-halting program due
    to a incorrect pattern programmed into it, and it then returns to DDD
    which then halts.

    Thus the input must be Halting, and the decider wrong as it said
    non-halting.

    It seems you don't understand the rules fo the x86 processor (or any
    computer).

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to olcott on Sun May 11 21:40:13 2025
    On 5/11/25 9:05 PM, olcott wrote:
    On 5/11/2025 7:58 PM, dbush wrote:
    On 5/11/2025 8:48 PM, olcott wrote:
    On 5/11/2025 7:38 PM, Mike Terry wrote:
    On 11/05/2025 18:11, Richard Heathfield wrote:
    On 11/05/2025 17:44, olcott wrote:
    Any yes/no question where both yes and no are the
    wrong answer is an incorrect polar question.

    Either DD stops or it doesn't (once it's been hacked around to get
    it to compile and after we've leeched out all the dodgy programming). >>>>
    Done that.  It still stops.


    If the computer cannot correctly decide whether or not DD halts,

    The decider says it doesn't stop..

    we have an undecidable computation,

    No no, that doesn't make sense.  DD stops, and there are lots of
    partial halt deciders that will decide that particular input
    correctly.  PO's DD isn't "undecidable".

    No single computation can be undecidable, considered on its own!
    There are only two possibilities: it halts or it doesn't.  In either
    case there is a decider which decides that /one specific input/
    correctly. By extension, any finite number of computations is
    decidable - we just have a giant switch statement followed by
    returning halts/neverhalts as appropriate.  If the input domain has
    just n inputs, there are 2^n trivial deciders that together cater
    for every combination of each input halting or never halting.  One
    of those deciders is a correct decider for that (finite domain)
    problem.

    The HP is asking for a TM (or equiv.) that correctly decides EVERY
    (P,I) in its one finite algorithm.  That is what is proven
    impossible.  The trick of having a big switch statement no longer
    works because there are infinitely many possible inputs.

    Decidability for just one single input is trivial and not intersting.

    and therefore some computations are undecidable, so Turing's
    conclusion was right. Who knew? (Apart from practically everybody
    else, I mean.)


    Mike.

    DDD emulated by HHH according to the rules of
    the computational language that DD is encoded
    within

    Doesn't happen, as you have admitted on the record:



    I admitted on record that DDD is not infinitely
    emulated by HHH. Because you are only a damned
    Troll you try to twist this into incorrect emulation.


    Then why is the emulation of it non-halting? That a machine didn't halt
    after only some finite number of steps isn't non-halting.

    Note, partial emulation don't follow the law of the excluded middle, You
    have 3 states, Halted, Not-Yet-Halted, and Non-Halting.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Ben Bacarisse@21:1/5 to Richard Heathfield on Tue May 13 01:18:57 2025
    Richard Heathfield <rjh@cpax.org.uk> writes:

    On 12/05/2025 18:05, Ben Bacarisse wrote:
    Ben Bacarisse <ben@bsb.me.uk> writes:

    Richard Heathfield <rjh@cpax.org.uk> writes:

    On 12/05/2025 01:38, Mike Terry wrote:

    <snip>

    No single computation can be undecidable, considered on its own! There >>>>> are only two possibilities: it halts or it doesn't.

    Or both, it seems. You say it halts (and I would not hesitate to take you at
    your word if the alternative is to dredge up a Windows system from
    somewhere). Olcott says it is non-halting.
    This is very odd. You know it either halts or it does not halt so what
    do you mean by "Or both, it seems."?

    'Odd' is exactly the word.

    Mr Olcott claims it never halts,

    I don't think he does. He claims that returning 0 is the correct
    result, but that is all.

    and Mike Terry claims that it halts almost immediately.

    Perhaps we should send DDD to a robopsychiatrist.

    No need. It halts and PO claims that 0 (false) is the correct result
    from some halting computations. He's been quite clear about this in the
    past.

    --
    Ben.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Mike Terry@21:1/5 to Richard Heathfield on Tue May 13 03:17:32 2025
    On 12/05/2025 02:25, Richard Heathfield wrote:
    On 12/05/2025 01:38, Mike Terry wrote:
    On 11/05/2025 18:11, Richard Heathfield wrote:
    On 11/05/2025 17:44, olcott wrote:
    Any yes/no question where both yes and no are the
    wrong answer is an incorrect polar question.

    Either DD stops or it doesn't (once it's been hacked around to get it to compile and after we've
    leeched out all the dodgy programming).

    Done that.

    And you still had code left?

    It still stops.

    Okay.

    If the computer cannot correctly decide whether or not DD halts,

    The decider says it doesn't stop..

    I said "cannot >>>correctly<<< decide".

    There are infinitely many deciders that could be given the input. Some of them decide that
    particular input correctly, and some incorrectly.

    PO's HHH is one of the ones that decide incorrectly.

    Saying ".. /cannot/ correctly decide.." suggests you may be thinking about something the wrong way.
    HHH and DD are fixed machines with fixed implementations. They both do only one thing, which is
    what their code dictates: DD halts, and HHH(DD) returns non-halting, which is incorrect. If HHH's
    algorithm is somehow cloned and amended to make a different decider HHH2, then perhaps HHH2(DD) can
    return "halts" for DD, but HHH2 is not HHH.



    we have an undecidable computation,

    No no, that doesn't make sense.

    Agreed. Therefore, even *after* taking out all the dodgy code, the decider must be broken.

    PO's HHH is broken as a halt decider, because it decides the (<DD>) input incorrectly.


    DD stops, and there are lots of partial halt deciders that will decide that particular input
    correctly. PO's DD isn't "undecidable".

    I hear what you're saying (or at least I see what you typed), but if DD's result is so decidable,
    how come his decider can't correctly decide?

    /can't/ ? Remember HHH is one specific program, and it only does one thing. So it would be more
    reasonable to say it /doesn't/ correctly decide DD. If it simulated more steps (*processing the
    same input*) it /would/ see the normal end of the simulation, but that is just not the way his HHH
    is coded.

    We can imagine taking a new decider HHH2 which correctly decides DD [which calls HHH, remember, not
    HHH2]. The problem is that the HP proof tells us how to generate from /that/ HHH2 a /new/ input DD2
    which HHH2 will decide incorrectly!

    So to answer your question /why/ does PO's HHH decide DD incorrectly, there's no great mystery: DD
    was constructed based on PO's HHH deliberately so that HHH will get it wrong. See the order: PO
    wrote his decider, /then/ the input DD was constructed which it gets wrong. That is how the HP
    proof works, so you need to be perfectly clear how that proof works...

    PO tries to suggest there is only one DD, which /all/ possible HHH decide incorrectly. That's all
    wrong. Each candidate HHH has its own DD that it can't decide. PO likes to call them all "DD"
    which encourages his misconception.

    No single computation can be undecidable, considered on its own! There are only two possibilities:
    it halts or it doesn't.

    Or both, it seems. You say it halts (and I would not hesitate to take you at your word if the
    alternative is to dredge up a Windows system from somewhere). Olcott says it is non-halting.

    And we both know it /can't/ be both...

    Of course. PO knows that DD() will halt when run directly from main(). More concisely, DD "halts"
    (as the term is defined in the halting problem).

    When his HHH simulates DD, it spots a pattern in the simulation which PO calls his "infinite
    recursive simulation" pattern. PO believes that this pattern "specifies non halting behaviour" but
    it does not, as it can match for both halting and non-halting computations. Anyhow, PO has coded
    HHH to abort and return non-halting if it sees that pattern. He really really really believes that
    pattern "specifies non halting", despite observing with his own eyes DD halting when called
    directly! The rest of his arguments are just attempts to justify why HHH is "correct" to decide
    non-halting, despite DD halting. They generally amount to something like "during simulation my HHH
    detected non-halting behaviour, so it is correct to decide non-halting".

    Of course, the simple answer here is that his program /did not/ see non-halting behaviour; what it
    /did/ spot was his (unsound) "infinite recursive simulation" pattern, but to PO that is as good as
    saying DD will never halt.


    Mike.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Heathfield@21:1/5 to Mike Terry on Tue May 13 03:41:49 2025
    On 13/05/2025 03:17, Mike Terry wrote:

    <snip>

    Saying ".. /cannot/ correctly decide.." suggests you may be
    thinking about something the wrong way.

    Yes. I think I may be thinking about Usenet the wrong way.

    --
    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 Ben Bacarisse on Tue May 13 03:38:03 2025
    On 13/05/2025 01:18, Ben Bacarisse wrote:
    Richard Heathfield <rjh@cpax.org.uk> writes:

    <snip>

    Mr Olcott claims it never halts,

    I don't think he does.

    Then I am IN A LITTLE MAZE OF TWISTING PASSAGES, ALL DIFFERENT.

    --
    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 Damon@21:1/5 to olcott on Mon May 12 22:30:46 2025
    On 5/11/25 9:51 PM, olcott wrote:
    On 5/11/2025 8:15 PM, Richard Damon wrote:
    On 5/11/25 8:51 PM, olcott wrote:
    On 5/11/2025 7:33 PM, wij wrote:
    On Sun, 2025-05-11 at 18:08 -0500, olcott wrote:
    On 5/11/2025 5:50 PM, wij wrote:
    On Sun, 2025-05-11 at 17:30 -0500, olcott wrote:
    On 5/11/2025 5:11 PM, wij wrote:
    On Sun, 2025-05-11 at 17:00 -0500, olcott wrote:
    [cut]
    ZFC corrected the error in set theory so that
    it could resolve Russell's Paradox. The original
    set theory has now called naive set theory.

    I corrected the error of the HP that expects
    HHH to report on behavior that is different
    than the behavior that its input actually
    specifies.

    Specificly, "Halt(D)=1 iff D() halts" is an error?
    And it should expect: Halt(D)=1 iff POOH(D)=1 (correct problem)? >>>>>>>>>>

    Yes that is an error because the behavior that
    the input to HHH(DDD) specifies is the behavior
    that HHH must report on.

    If so, how do we know a given function e.g. D, halts or not by >>>>>>>> giving it to H,
    i.e. H(D)? Wrong question (according to you)?

    H and D is too vague and ambiguous.
    We know that the input to HHH(DDD) specifies
    a non-halting sequence of configurations.

    We know that the input to HHH1(DDD) specifies
    a halting sequence of configurations.

    Instead, every time we want to know whether D halts or not,

    When we intentionally define an input to attempt
    to thwart a specific termination analyzer THIS DOES
    CHANGE THE BEHAVIOR.

    If we let people run uploaded programs on our
    network we need to know if these programs are
    going to halt.

    Unless HHH(DDD) rejects its input as non-halting
    HHH will continue to eat up network resources.

    But, according to POOH, if D going to eat up network resources, it >>>>>> have to
    happen when we run POOH(D), because you said D's halting property
    only
    valid to H.


    If we want to prevent this kind of denial of service
    attack HHH must be able correctly handle inputs that
    are trying to thwart it or HHH fails.

    When HHH is our official denial of service attack
    preventer it either rejects its input DDD as non
    halting or it gets stuck in recursive emulation
    thus fails.

    It always has been the requirement that a termination
    analyzer was required to report on the behavior that
    its input actually specifies.

    This is a subtle nuance of functions computed by
    models of computation that no one bothered to
    pay attention to because they didn't know it made
    any difference.


    Is DDD a virus?


    If on a real system an input tried to fool the
    denial-of-service-attack detector IT WOULD FAIL.

    Prior to my work a denial-of-service-attack detector
    WOULD FAIL. It would not know to reject DDD.


    But DDD doesn't do a denial of service, so it is a false positive.


    When HHH is a denial-of-service-detector and DDD
    is trying to fool HHH into getting stuck in recursive
    emulation thus causing denial-of-service HHH is not fooled.


    But we aren't doing a DOS detector, that has a different criteria, as
    generally is allowed to have false positives (and even false negatives).

    You are just showing that it has always been a strawman, and you were
    never actually working on the problem you claimed, by have been lying
    for all these years out of your ignorance of what you have been trying
    to talk about.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to olcott on Mon May 12 22:39:47 2025
    On 5/11/25 10:11 PM, olcott wrote:
    On 5/11/2025 8:40 PM, Richard Damon wrote:
    On 5/11/25 9:05 PM, olcott wrote:
    On 5/11/2025 7:58 PM, dbush wrote:
    On 5/11/2025 8:48 PM, olcott wrote:
    On 5/11/2025 7:38 PM, Mike Terry wrote:
    On 11/05/2025 18:11, Richard Heathfield wrote:
    On 11/05/2025 17:44, olcott wrote:
    Any yes/no question where both yes and no are the
    wrong answer is an incorrect polar question.

    Either DD stops or it doesn't (once it's been hacked around to
    get it to compile and after we've leeched out all the dodgy
    programming).

    Done that.  It still stops.


    If the computer cannot correctly decide whether or not DD halts,

    The decider says it doesn't stop..

    we have an undecidable computation,

    No no, that doesn't make sense.  DD stops, and there are lots of
    partial halt deciders that will decide that particular input
    correctly.  PO's DD isn't "undecidable".

    No single computation can be undecidable, considered on its own!
    There are only two possibilities: it halts or it doesn't.  In
    either case there is a decider which decides that /one specific
    input/ correctly. By extension, any finite number of computations
    is decidable - we just have a giant switch statement followed by
    returning halts/neverhalts as appropriate.  If the input domain
    has just n inputs, there are 2^n trivial deciders that together
    cater for every combination of each input halting or never
    halting.  One of those deciders is a correct decider for that
    (finite domain) problem.

    The HP is asking for a TM (or equiv.) that correctly decides EVERY >>>>>> (P,I) in its one finite algorithm.  That is what is proven
    impossible.  The trick of having a big switch statement no longer >>>>>> works because there are infinitely many possible inputs.

    Decidability for just one single input is trivial and not intersting. >>>>>>
    and therefore some computations are undecidable, so Turing's
    conclusion was right. Who knew? (Apart from practically everybody >>>>>>> else, I mean.)


    Mike.

    DDD emulated by HHH according to the rules of
    the computational language that DD is encoded
    within

    Doesn't happen, as you have admitted on the record:



    I admitted on record that DDD is not infinitely
    emulated by HHH. Because you are only a damned
    Troll you try to twist this into incorrect emulation.


    Then why is the emulation of it non-halting?

    You will never know because you have no idea
    what infinite recursion is.


    Sure I do. It seems you don't, as you seem to think that 1 is infinity
    (or is it 0 is infinity).

    As you have admitted, you logic is based on the assumption that all
    natural numbers are the same, and other claims as bad.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to olcott on Mon May 12 22:42:04 2025
    On 5/11/25 9:56 PM, olcott wrote:
    On 5/11/2025 8:27 PM, Richard Damon wrote:
    On 5/11/25 8:48 PM, olcott wrote:
    On 5/11/2025 7:38 PM, Mike Terry wrote:
    On 11/05/2025 18:11, Richard Heathfield wrote:
    On 11/05/2025 17:44, olcott wrote:
    Any yes/no question where both yes and no are the
    wrong answer is an incorrect polar question.

    Either DD stops or it doesn't (once it's been hacked around to get
    it to compile and after we've leeched out all the dodgy programming). >>>>
    Done that.  It still stops.


    If the computer cannot correctly decide whether or not DD halts,

    The decider says it doesn't stop..

    we have an undecidable computation,

    No no, that doesn't make sense.  DD stops, and there are lots of
    partial halt deciders that will decide that particular input
    correctly.  PO's DD isn't "undecidable".

    No single computation can be undecidable, considered on its own!
    There are only two possibilities: it halts or it doesn't.  In either
    case there is a decider which decides that /one specific input/
    correctly. By extension, any finite number of computations is
    decidable - we just have a giant switch statement followed by
    returning halts/neverhalts as appropriate.  If the input domain has
    just n inputs, there are 2^n trivial deciders that together cater
    for every combination of each input halting or never halting.  One
    of those deciders is a correct decider for that (finite domain)
    problem.

    The HP is asking for a TM (or equiv.) that correctly decides EVERY
    (P,I) in its one finite algorithm.  That is what is proven
    impossible.  The trick of having a big switch statement no longer
    works because there are infinitely many possible inputs.

    Decidability for just one single input is trivial and not intersting.

    and therefore some computations are undecidable, so Turing's
    conclusion was right. Who knew? (Apart from practically everybody
    else, I mean.)


    Mike.

    DDD emulated by HHH according to the rules of
    the computational language that DD is encoded
    within already proves that the HP "impossible"
    input specifies a non-halting sequence of
    configurations.

    No it doesn't.


    _DDD()
    [00002172] 55         push ebp      ; housekeeping
    [00002173] 8bec       mov  ebp,esp  ; housekeeping
    [00002175] 6872210000 push 00002172 ; push DDD
    [0000217a] e853f4ffff call 000015d2 ; call HHH(DDD)
    [0000217f] 83c404     add  esp,+04
    [00002182] 5d         pop  ebp
    [00002183] c3         ret
    Size in bytes:(0018) [00002183]

    Not a valid input,


    Show all the steps of DDD emulated by simulating
    termination analyzer HHH according to the rules
    of the x86 language where the emulated DDD reaches
    its "ret" instruction.

    Why? That isn't the criteria.


    You can't only because you know that you are
    lying about this.

    No, I am pointing out your stupidity, and you just repeat it to make it
    more obvious.


    Your static data trick was clever yet your HHH
    was not a simulating termination analyzer.



    Sure it was. At the outer layer it fully emulates its input.

    That is more than yours does.

    Of course, your concept of that is just a category error and a lie.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to olcott on Mon May 12 22:44:32 2025
    On 5/11/25 10:14 PM, olcott wrote:
    On 5/11/2025 8:59 PM, dbush wrote:
    On 5/11/2025 9:56 PM, olcott wrote:
    On 5/11/2025 8:27 PM, Richard Damon wrote:
    On 5/11/25 8:48 PM, olcott wrote:
    On 5/11/2025 7:38 PM, Mike Terry wrote:
    On 11/05/2025 18:11, Richard Heathfield wrote:
    On 11/05/2025 17:44, olcott wrote:
    Any yes/no question where both yes and no are the
    wrong answer is an incorrect polar question.

    Either DD stops or it doesn't (once it's been hacked around to
    get it to compile and after we've leeched out all the dodgy
    programming).

    Done that.  It still stops.


    If the computer cannot correctly decide whether or not DD halts,

    The decider says it doesn't stop..

    we have an undecidable computation,

    No no, that doesn't make sense.  DD stops, and there are lots of
    partial halt deciders that will decide that particular input
    correctly.  PO's DD isn't "undecidable".

    No single computation can be undecidable, considered on its own!
    There are only two possibilities: it halts or it doesn't.  In
    either case there is a decider which decides that /one specific
    input/ correctly. By extension, any finite number of computations
    is decidable - we just have a giant switch statement followed by
    returning halts/neverhalts as appropriate.  If the input domain
    has just n inputs, there are 2^n trivial deciders that together
    cater for every combination of each input halting or never
    halting.  One of those deciders is a correct decider for that
    (finite domain) problem.

    The HP is asking for a TM (or equiv.) that correctly decides EVERY >>>>>> (P,I) in its one finite algorithm.  That is what is proven
    impossible.  The trick of having a big switch statement no longer >>>>>> works because there are infinitely many possible inputs.

    Decidability for just one single input is trivial and not intersting. >>>>>>
    and therefore some computations are undecidable, so Turing's
    conclusion was right. Who knew? (Apart from practically everybody >>>>>>> else, I mean.)


    Mike.

    DDD emulated by HHH according to the rules of
    the computational language that DD is encoded
    within already proves that the HP "impossible"
    input specifies a non-halting sequence of
    configurations.

    No it doesn't.


    _DDD()
    [00002172] 55         push ebp      ; housekeeping
    [00002173] 8bec       mov  ebp,esp  ; housekeeping
    [00002175] 6872210000 push 00002172 ; push DDD
    [0000217a] e853f4ffff call 000015d2 ; call HHH(DDD)
    [0000217f] 83c404     add  esp,+04
    [00002182] 5d         pop  ebp
    [00002183] c3         ret
    Size in bytes:(0018) [00002183]

    Show all the steps of DDD emulated by simulating
    termination analyzer HHH according to the rules
    of the x86 language

    Which it doesn't do as you have admitted on the record:


    I am daring you to show what they should be.
    You know you can't because you know you are a liar.


    Says the master of projection.

    Since the input can't be emulated correct past the Call HHH instuction,
    since the code past that point isn't in the input,

    Thus, the quesiton is just a category error. You can only correctly
    emulate programs, which must include all their code, missing code, just
    an error.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to olcott on Mon May 12 22:49:44 2025
    On 5/11/25 10:03 PM, olcott wrote:
    On 5/11/2025 8:31 PM, Richard Damon wrote:
    On 5/11/25 8:29 PM, olcott wrote:
    On 5/11/2025 6:39 PM, Richard Damon wrote:
    On 5/11/25 5:15 PM, olcott wrote:
    On 5/11/2025 4:02 PM, Richard Damon wrote:
    On 5/11/25 12:44 PM, olcott wrote:
    On 5/11/2025 6:13 AM, joes wrote:
    Am Sat, 10 May 2025 15:42:13 -0500 schrieb olcott:
    On 5/10/2025 3:22 PM, Alan Mackenzie wrote:

    OK, then, give the page and line numbers from Turing's 1936 >>>>>>>>>> paper where
    this alleged mistake was made.  I would be surprised indeed if >>>>>>>>>> you'd
    even looked at Turing's paper, far less understood it.  Yet >>>>>>>>>> you're
    ready to denigrate his work.
    Perhaps it is time for you to withdraw these uncalled for
    insinuations.

    It is the whole gist of the entire idea of the halting problem >>>>>>>>> proof
    that is wrongheaded.
    (1) It is anchored in the false assumption that an input to a >>>>>>>>> termination analyzer can actually do this opposite of whatever >>>>>>>>> value
    that this analyzer returns. No one ever notices that this "do the >>>>>>>>> opposite" code is unreachable.

    The simulated DDD doesn't matter. HHH returns to DDD, and DDD
    then does
    the opposite.


    HHH is only allowed to report on the behavior that
    its actual input actually specifies.


    Which is DEFINED to be the bahavior of the program that the input
    represents when run.

    When you define 5 == 6 you are simply wrong.
    That definition contradicts other axioms.


    And where did I do that?


    When the definition of the halting problem requires
    the termination analyzer H to report on behavior besides
    the behavior of the input D simulated by H according
    to the rules of the computational language that the
    input D is encoded within.


    Where do you get that behavior to be decided needs to be based on the
    partial simulation of the decider.


    The behavior of the input to HHH(DDD) is only correctly
    measured by the behavior that it actually specifies.

    Which, by the definiton of the problem, is the behavior of the direct
    execution of the program the input represent,


    Since DDD <is> a sequence of programming instructions
    this behavior must be measured according to its
    computer language.

    Right, and since your input calls a location of memory which has not
    been include, that input is just a category error.


    _DDD()
    [00002172] 55         push ebp      ; housekeeping
    [00002173] 8bec       mov  ebp,esp  ; housekeeping
    [00002175] 6872210000 push 00002172 ; push DDD
    [0000217a] e853f4ffff call 000015d2 ; call HHH(DDD)
    [0000217f] 83c404     add  esp,+04
    [00002182] 5d         pop  ebp
    [00002183] c3         ret
    Size in bytes:(0018) [00002183]

    When DDD calls HHH(DDD) HHH is not free to
    "interpret" this call as meaning JMP 00002183.


    Right, it must interprete it as push the address 0000217F onto the stack
    and then jump to 000015d2, as that *IS* the definition of the
    instruction in the language. SInce you don't show that next, all those
    traces are just INCORRECT.

    It is NOT somehow get into a new call to 00002172, especially since we
    never come to a call or jump to that address, it was only passed as a parameter, that was proceessed as data.

    Thus the processor will NEVER AGIAN exeucte those insturcions.


    Sorry, you are just proving how little you understand of what you lie
    about, causing your lies to be so obvious to those that know even a
    little bit of the field.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to olcott on Mon May 12 22:59:50 2025
    On 5/12/25 10:32 PM, olcott wrote:
    On 5/12/2025 9:17 PM, Mike Terry wrote:
    On 12/05/2025 02:25, Richard Heathfield wrote:
    On 12/05/2025 01:38, Mike Terry wrote:
    On 11/05/2025 18:11, Richard Heathfield wrote:
    On 11/05/2025 17:44, olcott wrote:
    Any yes/no question where both yes and no are the
    wrong answer is an incorrect polar question.

    Either DD stops or it doesn't (once it's been hacked around to get
    it to compile and after we've leeched out all the dodgy programming). >>>>
    Done that.

    And you still had code left?

    It still stops.

    Okay.

    If the computer cannot correctly decide whether or not DD halts,

    The decider says it doesn't stop..

    I said "cannot >>>correctly<<< decide".

    There are infinitely many deciders that could be given the input.
    Some of them decide that particular input correctly, and some
    incorrectly.

    PO's HHH is one of the ones that decide incorrectly.


    When "correctly" means to report on behavior besides
    that behavior that the input actually specifies then
    it is wrong.

    Right, so the behavior of the partial emulation done by HHH is wrong.

    By defintion, the behavior *IS* the behavior of the directly executed
    program it represents.


    When 2 + 3 = 5 this is determined by the rules
    of arithmetic.

    When the behavior that the input specifies according
    to the rules of the x86 language is non-halting then
    HHH must report on this behavior.

    But the behavior that the input specifies by those rules is HALTING, as
    that is what the actual sequence of the actual instructions of what you consider to be the input (The DDD calling the HHH that is at that
    location, which is the HHH that aborts and returns 0)'

    So, by your requirement, HHH MUST return 1, but it returns 0,


    HHH cannot compute the mapping from its input to
    the behavior of the directly executed DD() for the
    same reason that

    So? That is its problem, that *IS* the behavior of the input that it
    must report on.


    int sum(int x, int y) { return x + y; }
    sum(3,2) can not compute any mapping to sum 5 + 7.
    THE INPUT SPECIFIES SOMETHING ELSE.



    Right, the input DDD calls the HHH that aborts and returns 0, and thus
    is haltig.

    For HHH to presume (incorrectly) that the HHH that DDD calls will be
    something different and never return is just an error, an error cause by
    YOU the programmer being ignorant of what he was supposed to be doing
    and the rules that he was supposed to follow.

    Thus, YOU ARE JUST WRONG.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to olcott on Mon May 12 22:38:18 2025
    On 5/12/25 1:23 PM, olcott wrote:
    On 5/12/2025 11:46 AM, Ben Bacarisse wrote:
    wij <wyniijj5@gmail.com> writes:

    On Sat, 2025-05-10 at 20:56 -0500, olcott wrote:
    On 5/10/2025 8:44 PM, wij wrote:
    ...
    Try to convert it to TM language to know you know nothing.
    ...
    To refute the HP, you need to understand what it exactly means in TM. >>>>
    I have known this for 22 years.

    A working TM. Build it explicitly from transition function, then explain >>> your derivation. You know nothing.

    He did, in 2018, claim to have exactly such a thing:

       "Everyone has claimed that H on input pair (Ĥ, Ĥ) meeting the Linz
       specs does not exist. I now have a fully encoded pair of Turing
       Machines H / Ĥ proving them wrong."

       "I [...] encoded all of the exact TMD instructions of the Linz Turing >>    machine H that correctly decides halting for its fully encoded input
       pair: (Ĥ, Ĥ)."

       "I provide the exact ⊢* wildcard states after the Linz H.q0 and after >>    Ĥ.qx (Linz incorrectly uses q0 twice) showing exactly how the actual >>    Linz H would correctly decide the actual Linz (Ĥ, Ĥ)."

    Of course, no such "fully encoded Turing Machines" were ever produced.
    He spent months rowing back this claim, eventually settling on the
    notion that he was using "poetic licence" rather than admit he was wrong.


    <MIT Professor Sipser agreed to ONLY these verbatim words 10/13/2022>
        If simulating halt decider H correctly simulates its
        input D until H correctly determines that its simulated D
        would never stop running unless aborted then

        H can abort its simulation of D and correctly report that D
        specifies a non-halting sequence of configurations.
    </MIT Professor Sipser agreed to ONLY these verbatim words 10/13/2022>

    On 10/17/2022 10:23 AM, Ben Bacarisse wrote:
    ...D(D) would not halt unless H stops the simulation.
    H /can/ correctly determine this silly criterion (in this one case)...



    Which means the correct simulation of the exact input D that was given
    to H, which WILL use the algorithm of that H, so if H ultimately return non-halting, as you claim is correct, then the correct emulation (which
    isn't done by H) will show that, and thus H is wrong.

    Your problem is your "D" ends up not being the required program, and
    neither is your H.

    Thus, your whole argument is based on category errors and lies.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to olcott on Mon May 12 23:10:34 2025
    On 5/12/25 11:04 AM, olcott wrote:
    On 5/12/2025 3:03 AM, Mikko wrote:
    On 2025-05-11 17:00:41 +0000, olcott said:

    On 5/11/2025 11:28 AM, wij wrote:
    On Sun, 2025-05-11 at 10:38 -0500, olcott wrote:
    On 5/11/2025 9:34 AM, wij wrote:
    On Sat, 2025-05-10 at 21:19 -0500, olcott wrote:
    On 5/10/2025 9:09 PM, wij wrote:
    On Sat, 2025-05-10 at 20:56 -0500, olcott wrote:
    On 5/10/2025 8:44 PM, wij wrote:
    On Sat, 2025-05-10 at 20:26 -0500, olcott wrote:
    On 5/10/2025 8:17 PM, wij wrote:
    On Sat, 2025-05-10 at 17:03 -0500, olcott wrote:
    On 5/10/2025 4:44 PM, wij wrote:
    On Sat, 2025-05-10 at 14:29 -0500, olcott wrote:
    On 5/10/2025 2:02 PM, wij wrote:


    You don't know the counter example in the HP proof, your D >>>>>>>>>>>> is not the case what HP
    says.


    Sure I do this is it! (as correctly encoded in C)

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

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

    int main()
    {
          HHH(DD);
    }



    Try to convert it to TM language to know you know nothing. >>>>>>>>>>

    I spent 22 years on this. I started with the Linz text

    When Ĥ is applied to ⟨Ĥ⟩
    Ĥ.q0 ⟨Ĥ⟩ ⊢* embedded_H ⟨Ĥ⟩ ⟨Ĥ⟩ ⊢* Ĥ.qy ∞ >>>>>>>>>      or
    Ĥ.q0 ⟨Ĥ⟩ ⊢* embedded_H ⟨Ĥ⟩ ⟨Ĥ⟩ ⊢* Ĥ.qn

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

    Thus ⟨Ĥ⟩ ⟨Ĥ⟩ correctly simulated by embedded_H
    cannot possibly reach its simulated final halt state
    ⟨Ĥ.qn⟩

    To refute the HP, you need to understand what it exactly means >>>>>>>>>> in TM.

    I have known this for 22 years.

    A working TM. Build it explicitly from transition function, then >>>>>>>> explain
    your derivation. You know nothing.


    That would be like examining how an operating system
    works entirely from its machine code.

    You are refuting a CS foundamental theorem (i.e. HP) officially.
    So, yes, and actually MORE need to be done (beyond your imagination). >>>>>>
    Knowing a car or smart phone,... is far different from making one. >>>>>> Knowing E=mc^2 is far from knowing relativity, making A-bomb
    (actually, making
    A-bomb don't need to know E=mc^2, people are often fooled by
    popular saying)

    Every chapter of Linz's book, C text textbook has exercises, you
    need to those
    exercises AT LEAST to comment CS (and computation theory is more
    advanced topic
    than TM). Saying so is because we know you can't do the exercise
    and boast lots
    about TM stuff (and pretty much anything else from just reading
    words), even
    about theorem.


    When Ĥ is applied to ⟨Ĥ⟩
    Ĥ.q0 ⟨Ĥ⟩ ⊢* embedded_H ⟨Ĥ⟩ ⟨Ĥ⟩ ⊢* Ĥ.qy ∞
       or
    Ĥ.q0 ⟨Ĥ⟩ ⊢* embedded_H ⟨Ĥ⟩ ⟨Ĥ⟩ ⊢* Ĥ.qn

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

    All that I need to know is that I proved that
    embedded_H correctly recognizes the repeating
    pattern where its correctly simulated ⟨Ĥ⟩ ⟨Ĥ⟩
    cannot possibly reach its own simulated final
    halt state of ⟨Ĥ.qn⟩

    https://www.liarparadox.org/Linz_Proof.pdf

    We only have to actually know one detail:
    Every counter-example input encoded in any model
    of computation always specifies recursive simulation
    that never halts to its corresponding simulating
    termination analyzer.

    More example here that you don't understand nearly all CS terms.


    Mere empty rhetoric entirely bereft of any supporting
    reasoning. The x86 language is comparable to a RASP
    machine that is equivalent to a Turing machine.

    Question:
    1. Do you understand that you can't do the exercises in Linz's book?

    Everything is 100% irrelevant besides the fact that
    I have shown that ⟨Ĥ⟩ ⟨Ĥ⟩ correctly simulated by
    embedded_H cannot possibly reach its own simulated
    final halt state ⟨Ĥ.qn⟩.

    Which is irrelevant as from that you can't infer whether the input
    specifies a halting computation.


    That seems to show that you do not know that a halting
    computation is defined as reaching a final halt state.
    Stopping running for any other reason does not count as
    halting.

    But computations can't "stop running" except by reaching a final state.


    Termination analyzers compute the mapping from their
    inputs to the behavior that these inputs actually specify.
    Clearly the input to embedded_H ⟨Ĥ⟩ ⟨Ĥ⟩ specifies recursive simulation that does not halt.


    Right, and that behavior is the behavior of running the program
    represented by their input.

    And embedded_H ⟨Ĥ⟩ ⟨Ĥ⟩ can't specify a simuation that doesn't halt unless H ⟨Ĥ⟩ ⟨Ĥ⟩ is also a program that doens't halt, as they are (at least supposed to be) exactly the same code.

    To say they act differently just proves that you are just a liar that
    doesn't know what he is talking about.

    Since you H has been stipulated to abort its simulation when it reaches
    the state where it thinks the input is non-halting, it turns out that embedded_H ⟨Ĥ⟩ ⟨Ĥ⟩ will also do the same, and go to qn and thus Ĥ ⟨Ĥ⟩
    will halt, proving that H was just wrong.

    Your arguements just prove you think lying is ok and that you don't
    understand what you are talking about.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From joes@21:1/5 to All on Tue May 13 09:01:31 2025
    Am Tue, 13 May 2025 03:17:32 +0100 schrieb Mike Terry:

    When his HHH simulates DD, it spots a pattern in the simulation which PO calls his "infinite recursive simulation" pattern. PO believes that
    this pattern "specifies non halting behaviour" but it does not, as it
    can match for both halting and non-halting computations. Anyhow, PO has coded HHH to abort and return non-halting if it sees that pattern. He
    really really really believes that pattern "specifies non halting",
    despite observing with his own eyes DD halting when called directly!
    The rest of his arguments are just attempts to justify why HHH is
    "correct" to decide non-halting, despite DD halting. They generally
    amount to something like "during simulation my HHH detected non-halting behaviour, so it is correct to decide non-halting".

    Can you remind me how it matches halting computations? IIRC it looks
    for invocations of the same function (across simulation levels, mind)
    without conditional statements inbetween. Or is the impossibility of
    recursive simulation the only reason for false positives?

    --
    Am Sat, 20 Jul 2024 12:35:31 +0000 schrieb WM in sci.math:
    It is not guaranteed that n+1 exists for every n.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Mikko@21:1/5 to olcott on Tue May 13 13:19:16 2025
    On 2025-05-12 16:54:33 +0000, olcott said:

    On 5/12/2025 11:41 AM, dbush wrote:
    On 5/12/2025 12:19 PM, olcott wrote:
    On 5/12/2025 10:06 AM, dbush wrote:
    On 5/12/2025 11:04 AM, olcott wrote:
    Termination analyzers compute the mapping from their
    inputs to the behavior that these inputs actually specify.

    False.  They compute the mapping from their input to the behavior of
    the algorithm described by the input when executed directly, as per the >>>> requirements:


    That is easily proven stupidly wrong.


    Category error.  Definitions are not proven:


    Definitions that contradict other definitions are refuted.

    That two definitions contradict does not refute either one. The
    contradiction just means that it is an error to use both at the
    same time.

    --
    Mikko

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Fred. Zwarts@21:1/5 to All on Tue May 13 12:46:02 2025
    Op 12.mei.2025 om 04:03 schreef olcott:
    On 5/11/2025 8:31 PM, Richard Damon wrote:
    On 5/11/25 8:29 PM, olcott wrote:
    On 5/11/2025 6:39 PM, Richard Damon wrote:
    On 5/11/25 5:15 PM, olcott wrote:
    On 5/11/2025 4:02 PM, Richard Damon wrote:
    On 5/11/25 12:44 PM, olcott wrote:
    On 5/11/2025 6:13 AM, joes wrote:
    Am Sat, 10 May 2025 15:42:13 -0500 schrieb olcott:
    On 5/10/2025 3:22 PM, Alan Mackenzie wrote:

    OK, then, give the page and line numbers from Turing's 1936 >>>>>>>>>> paper where
    this alleged mistake was made.  I would be surprised indeed if >>>>>>>>>> you'd
    even looked at Turing's paper, far less understood it.  Yet >>>>>>>>>> you're
    ready to denigrate his work.
    Perhaps it is time for you to withdraw these uncalled for
    insinuations.

    It is the whole gist of the entire idea of the halting problem >>>>>>>>> proof
    that is wrongheaded.
    (1) It is anchored in the false assumption that an input to a >>>>>>>>> termination analyzer can actually do this opposite of whatever >>>>>>>>> value
    that this analyzer returns. No one ever notices that this "do the >>>>>>>>> opposite" code is unreachable.

    The simulated DDD doesn't matter. HHH returns to DDD, and DDD
    then does
    the opposite.


    HHH is only allowed to report on the behavior that
    its actual input actually specifies.


    Which is DEFINED to be the bahavior of the program that the input
    represents when run.

    When you define 5 == 6 you are simply wrong.
    That definition contradicts other axioms.


    And where did I do that?


    When the definition of the halting problem requires
    the termination analyzer H to report on behavior besides
    the behavior of the input D simulated by H according
    to the rules of the computational language that the
    input D is encoded within.


    Where do you get that behavior to be decided needs to be based on the
    partial simulation of the decider.


    The behavior of the input to HHH(DDD) is only correctly
    measured by the behavior that it actually specifies.

    And the input specifies a program that includes HHH, which has code to
    abort.
    That this input specifies a halting program is proven with direct
    execution and world-class simulators.
    Of course it is possible to create a simulator that does not reach the reachable end of the simulation.
    An example of such a program is HHH.


    Since DDD <is> a sequence of programming instructions
    this behavior must be measured according to its
    computer language.

    _DDD()
    [00002172] 55         push ebp      ; housekeeping
    [00002173] 8bec       mov  ebp,esp  ; housekeeping
    [00002175] 6872210000 push 00002172 ; push DDD
    [0000217a] e853f4ffff call 000015d2 ; call HHH(DDD)
    [0000217f] 83c404     add  esp,+04
    [00002182] 5d         pop  ebp
    [00002183] c3         ret
    Size in bytes:(0018) [00002183]

    When DDD calls HHH(DDD) HHH is not free to
    "interpret" this call as meaning JMP 00002183.



    Neither is HHH free to 'interpret' this call as 'stop the simulation'. A correct simulation (such as by HHH1) sees that HHH halts, but due to a
    bug HHH does not see that.
    That HHH does not see the full specification of the input, does not
    prove that the it was not specified in the input.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Fred. Zwarts@21:1/5 to All on Tue May 13 12:48:25 2025
    Op 11.mei.2025 om 23:15 schreef olcott:
    On 5/11/2025 4:02 PM, Richard Damon wrote:
    On 5/11/25 12:44 PM, olcott wrote:
    On 5/11/2025 6:13 AM, joes wrote:
    Am Sat, 10 May 2025 15:42:13 -0500 schrieb olcott:
    On 5/10/2025 3:22 PM, Alan Mackenzie wrote:

    OK, then, give the page and line numbers from Turing's 1936 paper
    where
    this alleged mistake was made.  I would be surprised indeed if you'd >>>>>> even looked at Turing's paper, far less understood it.  Yet you're >>>>>> ready to denigrate his work.
    Perhaps it is time for you to withdraw these uncalled for
    insinuations.

    It is the whole gist of the entire idea of the halting problem proof >>>>> that is wrongheaded.
    (1) It is anchored in the false assumption that an input to a
    termination analyzer can actually do this opposite of whatever value >>>>> that this analyzer returns. No one ever notices that this "do the
    opposite" code is unreachable.

    The simulated DDD doesn't matter. HHH returns to DDD, and DDD then does >>>> the opposite.


    HHH is only allowed to report on the behavior that
    its actual input actually specifies.


    Which is DEFINED to be the bahavior of the program that the input
    represents when run.

    When you define 5 == 6 you are simply wrong.
    That definition contradicts other axioms.


    Saying that 5 == 6 is the same as saying that the HHH that aborts is
    exactly the same as the HHH that does not abort. (Both have only a tiny difference.)

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Fred. Zwarts@21:1/5 to All on Tue May 13 12:58:17 2025
    Op 13.mei.2025 om 04:32 schreef olcott:
    On 5/12/2025 9:17 PM, Mike Terry wrote:
    On 12/05/2025 02:25, Richard Heathfield wrote:
    On 12/05/2025 01:38, Mike Terry wrote:
    On 11/05/2025 18:11, Richard Heathfield wrote:
    On 11/05/2025 17:44, olcott wrote:
    Any yes/no question where both yes and no are the
    wrong answer is an incorrect polar question.

    Either DD stops or it doesn't (once it's been hacked around to get
    it to compile and after we've leeched out all the dodgy programming). >>>>
    Done that.

    And you still had code left?

    It still stops.

    Okay.

    If the computer cannot correctly decide whether or not DD halts,

    The decider says it doesn't stop..

    I said "cannot >>>correctly<<< decide".

    There are infinitely many deciders that could be given the input.
    Some of them decide that particular input correctly, and some
    incorrectly.

    PO's HHH is one of the ones that decide incorrectly.


    When "correctly" means to report on behavior besides
    that behavior that the input actually specifies then
    it is wrong.

    And since the input actually specifies is a halting program, HHH is
    wrong when it says that it is a non-halting program.
    If HHH does not take into account the specification in the input, which contains a conditional abort, then HHH ignores the specification in the
    input.


    When 2 + 3 = 5 this is determined by the rules
    of arithmetic.

    When the behavior that the input specifies according
    to the rules of the x86 language is non-halting then
    HHH must report on this behavior.

    And when the input specifies a halting program, as proven by direct
    execution and world-class simulators. HHH must report that behaviour.


    HHH cannot compute the mapping from its input to
    the behavior of the directly executed DD() for the
    same reason that

    For the reason that its has a bug which causes a premature abort, that
    is a problem of HHH.
    Because of this bug, HHH computes another input than is specified in the
    input, which is the same as:


    int sum(int x, int y) { return x + y; }
    sum(3,2) can not compute any mapping to sum 5 + 7.
    THE INPUT SPECIFIES SOMETHING ELSE.


    And a buggy sum(int x, int y) { return 1 + x + y; } cannot compute the
    correct mapping of 3+2=5.
    A bug in the program does not make the mapping correct.

    Similarly, the bug in HHH to ignore the most important part of the
    input, does not make the mapping correct.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Fred. Zwarts@21:1/5 to All on Tue May 13 13:01:15 2025
    Op 12.mei.2025 om 18:32 schreef olcott:
    On 5/12/2025 6:46 AM, dbush wrote:
    On 5/12/2025 12:11 AM, olcott wrote:
    On 5/11/2025 10:54 PM, dbush wrote:
    On 5/11/2025 11:50 PM, olcott wrote:
    On 5/11/2025 10:39 PM, dbush wrote:
    On 5/11/2025 11:36 PM, olcott wrote:

    You try to get away with changing the subject
    because you know that you are lying about one
    or more steps of DDD emulated by HHH according
    to the rules of the x86 language

    It is you who are changing the subject away from DDD emulated by
    HHH (not one or more steps of DDD emulated by HHH) which you have
    admitted for the record is not correct:


    I am only referring to the hypothetical infinite
    set of pure x86 emulators specified below:


    Each of which is processing a distinct, different input.

    Changing the input is not allowed.

    I am examining all the elements of a infinite set
    such that each HHH/DDD pair has a specific fixed form.

    And each one has a distinctly different input, and as such the halt
    status of one is unrelated to the halt status of another.

    Changing the input is not allowed.

    In other words you are clueless about mathematical induction.

    It is true that when one step of DDD is emulated by HHH that
    DDD does not halt.

    It is true that when N steps of DDD are emulated by HHH that
    DDD does not halt.


    But when enough steps of the *unchanged* DDD are emulated, then DDD does
    halt, as proven by HHH1. Only when you also change the input, then more
    steps are needed, but changing the input is not allowed.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Fred. Zwarts@21:1/5 to All on Tue May 13 13:10:48 2025
    Op 11.mei.2025 om 19:35 schreef olcott:
    On 5/11/2025 11:52 AM, dbush wrote:
    On 5/11/2025 12:44 PM, olcott wrote:
    On 5/11/2025 6:13 AM, joes wrote:
    Am Sat, 10 May 2025 15:42:13 -0500 schrieb olcott:
    On 5/10/2025 3:22 PM, Alan Mackenzie wrote:

    OK, then, give the page and line numbers from Turing's 1936 paper
    where
    this alleged mistake was made.  I would be surprised indeed if you'd >>>>>> even looked at Turing's paper, far less understood it.  Yet you're >>>>>> ready to denigrate his work.
    Perhaps it is time for you to withdraw these uncalled for
    insinuations.

    It is the whole gist of the entire idea of the halting problem proof >>>>> that is wrongheaded.
    (1) It is anchored in the false assumption that an input to a
    termination analyzer can actually do this opposite of whatever value >>>>> that this analyzer returns. No one ever notices that this "do the
    opposite" code is unreachable.

    The simulated DDD doesn't matter. HHH returns to DDD, and DDD then does >>>> the opposite.


    HHH is only allowed to report on the behavior that
    its actual input actually specifies.

    False.  It must report on the behavior of the algorithm described by
    the input, as per the requirements:


    That was always only based on the false assumption
    that these behaviors could not possibly diverge.
    When I proves that these behaviors DO diverge that
    changes everything.

    The behaviours does not diverge. You could never show any difference in
    the traces. Moreover, a simulation that diverges from reality is just incorrect. I have worked on many different simulators for scientific
    equipment, but it was never accepted when a simulation diverged from the reality. That is just a failure of the simulation.
    Also your HHH has a bug to abort before it can see the full
    specification of the input, which makes it fail.
    .

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Fred. Zwarts@21:1/5 to All on Tue May 13 13:05:52 2025
    Op 12.mei.2025 om 06:11 schreef olcott:
    On 5/11/2025 10:54 PM, dbush wrote:
    On 5/11/2025 11:50 PM, olcott wrote:
    On 5/11/2025 10:39 PM, dbush wrote:
    On 5/11/2025 11:36 PM, olcott wrote:

    You try to get away with changing the subject
    because you know that you are lying about one
    or more steps of DDD emulated by HHH according
    to the rules of the x86 language

    It is you who are changing the subject away from DDD emulated by HHH
    (not one or more steps of DDD emulated by HHH) which you have
    admitted for the record is not correct:


    I am only referring to the hypothetical infinite
    set of pure x86 emulators specified below:


    Each of which is processing a distinct, different input.

    Changing the input is not allowed.

    I am examining all the elements of a infinite set
    such that each HHH/DDD pair has a specific fixed form.

    _DDD()
    [00002172] 55         push ebp      ; housekeeping
    [00002173] 8bec       mov  ebp,esp  ; housekeeping
    [00002175] 6872210000 push 00002172 ; push DDD
    [0000217a] e853f4ffff call 000015d2 ; call HHH(DDD)
    [0000217f] 83c404     add  esp,+04
    [00002182] 5d         pop  ebp
    [00002183] c3         ret
    Size in bytes:(0018) [00002183]

    For all x86 emulators HHH that emulate 1 or more x86 instructions
    of an input there does not exist a DDD (matching the above template) correctly emulated by HHH such that DDD reaches its “ret” instruction final halt state.




    You are not only examining an infinite set of simulators, but also an
    infinite set of inputs. For each input you choose a simulator that is
    just too early to abort its simulation.. A few steps more would cause a
    natural end of the simulation.
    Unfortunately, you choose an infinite number of wrong tools.
    That does not prove anything about the correct behaviour of the inputs.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Fred. Zwarts@21:1/5 to All on Tue May 13 13:16:35 2025
    Op 11.mei.2025 om 18:44 schreef olcott:
    On 5/11/2025 6:13 AM, joes wrote:
    Am Sat, 10 May 2025 15:42:13 -0500 schrieb olcott:
    On 5/10/2025 3:22 PM, Alan Mackenzie wrote:

    OK, then, give the page and line numbers from Turing's 1936 paper where >>>> this alleged mistake was made.  I would be surprised indeed if you'd
    even looked at Turing's paper, far less understood it.  Yet you're
    ready to denigrate his work.
    Perhaps it is time for you to withdraw these uncalled for insinuations. >>>>
    It is the whole gist of the entire idea of the halting problem proof
    that is wrongheaded.
    (1) It is anchored in the false assumption that an input to a
    termination analyzer can actually do this opposite of whatever value
    that this analyzer returns. No one ever notices that this "do the
    opposite" code is unreachable.

    The simulated DDD doesn't matter. HHH returns to DDD, and DDD then does
    the opposite.


    HHH is only allowed to report on the behavior that
    its actual input actually specifies.

    int sum(int x, int y) { return x + y; }
    sum(3,2) is not allowed to report on the sum of 5 + 7
    because that is not what its input specifies.

    Since the input for HHH specifies the conditional abort, HHH should
    report on that halting behaviour.
    Reporting on a hypothetical HHH that is not in the input that does not
    abort is similar to reporting 5+7 to sum(3,2).

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Fred. Zwarts@21:1/5 to All on Tue May 13 13:23:58 2025
    Op 12.mei.2025 om 19:58 schreef olcott:
    On 5/12/2025 12:30 PM, dbush wrote:
    On 5/12/2025 1:16 PM, olcott wrote:
    On 5/12/2025 12:07 PM, dbush wrote:
    On 5/12/2025 12:54 PM, olcott wrote:
    On 5/12/2025 11:41 AM, dbush wrote:
    On 5/12/2025 12:19 PM, olcott wrote:
    On 5/12/2025 10:06 AM, dbush wrote:
    On 5/12/2025 11:04 AM, olcott wrote:
    Termination analyzers compute the mapping from their
    inputs to the behavior that these inputs actually specify.

    False.  They compute the mapping from their input to the
    behavior of the algorithm described by the input when executed >>>>>>>> directly, as per the requirements:


    That is easily proven stupidly wrong.


    Category error.  Definitions are not proven:


    Definitions that contradict other definitions are refuted.



    And you haven't shown a conflict with the definition of a solution
    to the halting problem:


    That you keep ignoring it its not
    a matter of me never providing it.


    In other words, you agree that no algorithm exists that can compute
    the following mapping:


    Likewise no algorithm exists that can compute
    the square root of a dead rabbit. In neither
    case is computation actually limited.


    With the difference that the halting behaviour in direct execution
    exists, but the square root of a dead rabbit does not.
    That things that do not exist cannot be computed is not interesting.
    That things that exist cannot be computed is relevant.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Fred. Zwarts@21:1/5 to All on Tue May 13 13:20:58 2025
    Op 11.mei.2025 om 18:37 schreef olcott:
    On 5/11/2025 6:07 AM, joes wrote:
    Am Sat, 10 May 2025 17:03:26 -0500 schrieb olcott:
    On 5/10/2025 4:44 PM, wij wrote:
    On Sat, 2025-05-10 at 14:29 -0500, olcott wrote:
    On 5/10/2025 2:02 PM, wij wrote:
    On Sat, 2025-05-10 at 13:47 -0500, olcott wrote:
    On 5/10/2025 1:37 PM, wij wrote:
    On Sat, 2025-05-10 at 13:17 -0500, olcott wrote:
    On 5/10/2025 1:09 PM, wij wrote:
    On Sat, 2025-05-10 at 12:17 -0500, olcott wrote:
    On 5/10/2025 12:01 PM, wij wrote:
    On Sat, 2025-05-10 at 11:47 -0500, olcott wrote:
    On 5/10/2025 11:29 AM, wij wrote:
    On Sat, 2025-05-10 at 11:19 -0500, olcott wrote:
    On 5/10/2025 11:06 AM, wij wrote:
    On Sat, 2025-05-10 at 10:45 -0500, olcott wrote: >>>>>>>>>>>>>>>>> On 5/10/2025 10:28 AM, wij wrote:
    On Sat, 2025-05-10 at 09:33 -0500, olcott wrote: >>>>>>>>>>>>>>>>>>> On 5/10/2025 7:37 AM, Bonita Montero wrote: >>>>>>>>>>>>>>>>>>>> Am 09.05.2025 um 04:22 schrieb olcott:

    It correctly determines that the halting problem's >>>>>>>>>>>>>>>>>>> otherwise "impossible" input is actually non halting.

    ...which makes it halt.

    The input that has baffled computer scientists for 90 years >>>>>>>>>>>>>>> is merely correctly determined to be non-halting when the >>>>>>>>>>>>>>> behavior of this input is measured by HHH emulating this >>>>>>>>>>>>>>> input according to the rules of the x86 language.

    Nobody is baffled. It halts.

    I have no problem with that. And, you said HHH merely rejects >>>>>>>>>>>> it as non-halting. You had denied HHH can decide the halting >>>>>>>>>>>> property of any input, except DDD/DD/D..

    As long as HHH correctly determines the halt status of a single >>>>>>>>>>> input that has no inputs then HHH is a correct termination >>>>>>>>>>> analyzer for that input.

    I have no problem with that, but be noticed that the HHH inside >>>>>>>>>> DD is not the 'HHH' that makes the final decision (otherwise, the >>>>>>>>>> 'HHH'
    will be an infinite recursive which cannot make any decision, >>>>>>>>>> which you had agreed)

    The original set theory is now called naive set theory after its
    mistake has been corrected. Thus the original halting problem proofs >>>>> can now be called the naive halting problem proofs.
    Traditional logic (or the part mostly used) that won't cause confusion >>>> is more reliable.

    The HP doesn't lead to contradictions.

    The halting problem itself remains the same, yet loses its most
    important proof.

    HP is based on TM. Proof of any other kind other than TM have to be
    cautious.
    Unless this is done as an actual simulating termination analyzer in a
    high level language like C and it operates on a 100% complete exactingly >>> precise input specification such as the x86 language too many details
    slip through the cracks of vagueness.

    TMs are concrete. What details, what vagueness?


    There isn't even a common TM language.
    If there was a TM language then examining
    the details of a termination analyzer would
    be like reverse engineering all of the details
    of how an operating system works from its
    machine code. Humans really need high level
    abstractions or they get totally lost.

    For example no one ever even noticed that it is 100% impossible to
    derive an input that actually does the opposite of whatever value that
    its termination analyzer reports.
    Wrong, DDD calls HHH, which returns "non-halting", *and halts*.


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

    There is no possible way for DD emulated by HHH
    according to the rules of the x86 language to
    receive the return value from its call to HHH(DDD).
    It has been this way for 90 years.


    And we all expected this failure of HHH. It is a big support for the
    halting theorem.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Mike Terry@21:1/5 to joes on Tue May 13 18:46:30 2025
    On 13/05/2025 10:01, joes wrote:
    Am Tue, 13 May 2025 03:17:32 +0100 schrieb Mike Terry:

    When his HHH simulates DD, it spots a pattern in the simulation which PO
    calls his "infinite recursive simulation" pattern. PO believes that
    this pattern "specifies non halting behaviour" but it does not, as it
    can match for both halting and non-halting computations. Anyhow, PO has
    coded HHH to abort and return non-halting if it sees that pattern. He
    really really really believes that pattern "specifies non halting",
    despite observing with his own eyes DD halting when called directly!
    The rest of his arguments are just attempts to justify why HHH is
    "correct" to decide non-halting, despite DD halting. They generally
    amount to something like "during simulation my HHH detected non-halting
    behaviour, so it is correct to decide non-halting".

    Can you remind me how it matches halting computations? IIRC it looks
    for invocations of the same function (across simulation levels, mind)
    without conditional statements inbetween. Or is the impossibility of recursive simulation the only reason for false positives?


    Recursive simulation is not itself the problem. If we set aside some design errors like the use of
    mutable global data to communicate across simulation levels (making simulations follow a different
    code path to directly executed code), then in principle PO's x86utm could handle nested simulation
    in an ok way, at least for the purposes PO needs. His x86utm itself does cater for simulating a
    simulation of a simulation and so on, at the instruction level.

    Your description of the matching process is pretty much right - I'll need to check in halt7.c ...

    Right, so the matching process goes like this:

    - simulated instructions (from all simulation levels) are added to a
    global trace table, but ONLY IF THEY ARE FROM DD, i.e. their address
    puts them physically inside C function DD.
    Trace entries from HHH and routines called from HHH are discarded.

    - when a call instruction is simulated the trace table is scanned backwards
    looking for a "matching" entry: that is, another call from the same
    address, and to the same target address.

    - if one is found, a check is made for whether there were any conditional
    branch instructions in the trace table between the matching calls
    [remember, the trace table only includes instructions inside C function DD]

    - if no conditional branches were encountered, the simulation is aborted
    with message "Infinite Recursion Detected Simulation Stopped\n\n",
    and the simulating HHH decides non-halting.

    - if no match is found, simulation continues as normal.

    The global trace table does not record the simulation level for an entry, so the matching process is
    agnostic when it comes to simulation levels. Also note there are many conditional branch
    instructions in HHH which would prevent matches occuring if we were to include HHH instructions in
    the examined trace!

    For completeness, there is also a similar looking test relating to unconditional branches (jmp and
    the likes) aimed at detecting loops rather than recursion. This test does not match for input DD.


    Regards,
    Mike.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to olcott on Tue May 13 18:45:06 2025
    On 5/13/25 5:04 PM, olcott wrote:
    On 5/13/2025 12:46 PM, Mike Terry wrote:
    On 13/05/2025 10:01, joes wrote:
    Am Tue, 13 May 2025 03:17:32 +0100 schrieb Mike Terry:

    When his HHH simulates DD, it spots a pattern in the simulation
    which PO
    calls his "infinite recursive simulation" pattern.  PO believes that
    this pattern "specifies non halting behaviour" but it does not, as it
    can match for both halting and non-halting computations.  Anyhow, PO
    has
    coded HHH to abort and return non-halting if it sees that pattern.  He >>>> really really really believes that pattern "specifies non halting",
    despite observing with his own eyes DD halting when called directly!
    The rest of his arguments are just attempts to justify why HHH is
    "correct" to decide non-halting, despite DD halting.  They generally
    amount to something like "during simulation my HHH detected non-halting >>>> behaviour, so it is correct to decide non-halting".

    Can you remind me how it matches halting computations? IIRC it looks
    for invocations of the same function (across simulation levels, mind)
    without conditional statements inbetween. Or is the impossibility of
    recursive simulation the only reason for false positives?


    Recursive simulation is not itself the problem.  If we set aside some
    design errors like the use of mutable global data to communicate
    across simulation levels (making simulations follow a different code
    path to directly executed code), then in principle PO's x86utm could
    handle nested simulation in an ok way, at least for the purposes PO
    needs.  His x86utm itself does cater for simulating a simulation of a
    simulation and so on, at the instruction level.


    Thanks for clearing that up. Everyone else
    simply baselessly argued the opposite not
    even knowing that they had no basis.

    Yes, x86utm does it right.

    Your decider do it wrong by turning on and off the trace, and mixing up
    traces at different levels of simulation,

    The "simulation" of the input should be ALWAYS the result of the outer
    level of simulation. It might include "notes", clearly marked, of the
    wider sematnic meaning of what the sequence of code performed, but the simulaiton is only the outer level simulation.


    Your description of the matching process is pretty much right - I'll
    need to check in halt7.c ...

    Right, so the matching process goes like this:

    -  simulated instructions (from all simulation levels) are added to a
        global trace table, but ONLY IF THEY ARE FROM DD, i.e. their address >>     puts them physically inside C function DD.
        Trace entries from HHH and routines called from HHH are discarded.

    -  when a call instruction is simulated the trace table is scanned
    backwards
        looking for a "matching" entry: that is, another call from the same >>     address, and to the same target address.

    -  if one is found, a check is made for whether there were any
    conditional
        branch instructions in the trace table between the matching calls
        [remember, the trace table only includes instructions inside C
    function DD]

    -  if no conditional branches were encountered, the simulation is aborted >>     with message "Infinite Recursion Detected Simulation Stopped\n\n",
        and the simulating HHH decides non-halting.

    -  if no match is found, simulation continues as normal.


    That is all exactly correct.

    The global trace table does not record the simulation level for an
    entry, so the matching process is agnostic when it comes to simulation
    levels.   Also note there are many conditional branch instructions in
    HHH which would prevent matches occuring if we were to include HHH
    instructions in the examined trace!


    Yes that is true. The program-under-test is not the test-program.
    When HHH is reporting on the behavior of the finite string of x86
    machine code specified by DD, HHH correctly reports that its input
    DD cannot possibly reach its own final halt state.

    The input being decided by HHH(DD) includes DD
    calling its own emulator in recursive simulation.

    The input being decided by HHH1(DD) DOES NOT INCLUDE
    DD calling its own emulator in recursive simulation.

    Everyone here thinks that they can simply ignore
    that entirely on the basis that this issue was never
    raised in any textbooks.

    For completeness, there is also a similar looking test relating to
    unconditional branches (jmp and the likes) aimed at detecting loops
    rather than recursion.  This test does not match for input DD.


    Regards,
    Mike.




    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From joes@21:1/5 to All on Fri May 16 15:38:49 2025
    Am Sun, 11 May 2025 19:51:27 -0500 schrieb olcott:

    If on a real system an input tried to fool the denial-of-service-attack detector IT WOULD FAIL.
    Prior to my work a denial-of-service-attack detector WOULD FAIL. It
    would not know to reject DDD.
    No, the goal is not to make HHH run forever. It would not fail at
    terminating contrary to HHH's result.

    --
    Am Sat, 20 Jul 2024 12:35:31 +0000 schrieb WM in sci.math:
    It is not guaranteed that n+1 exists for every n.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to olcott on Fri May 16 12:04:37 2025
    On 5/16/25 11:50 AM, olcott wrote:
    On 5/16/2025 10:38 AM, joes wrote:
    Am Sun, 11 May 2025 19:51:27 -0500 schrieb olcott:

    If on a real system an input tried to fool the denial-of-service-attack
    detector IT WOULD FAIL.
    Prior to my work a denial-of-service-attack detector WOULD FAIL. It
    would not know to reject DDD.
    No, the goal is not to make HHH run forever. It would not fail at
    terminating contrary to HHH's result.


    The goal of the counter-example input to the HP
    proofs has always been to make halting undecidable
    on this input. A simulating termination analyzer
    fixes that.


    No, it is to show that there is an input that this decider gets wrong.

    "inputs" are not undecidable.

    Problems are undecidable.

    Which means there is not a single program that can give the correct
    answer to all instances of the problem.

    The Halting Problem is undecidable, as there is no single decider "H",
    that can correct decide for all inputs, as for any SPECIFIC H, we can
    make a SPECIFIC D, based on that H, that it will get wrong.

    H is not "an infinite set of deciders" as that isn't the right category.

    H is a specific decider out of that infinite set of programs.

    D is also, a specific input, different for each H chosen, which is why
    the proof calls it H^, to show that it is the input based on the ^
    transform of H.

    If you take a different decider HH, then we give it HH^, not H^, there
    is no reason HH can't correctly decide on H^ (it might or it might not,
    but the ^ transform doesn't assert anything about it).

    The Simulating Halting Decider can't fix that, and be a program, as the
    proof didn't care about how the decider worked. Your attempts at trying
    to weasle word around things just shows you think it is ok to lie about
    what you are talking about, meaning nothing you say can be taken as
    truthful, as that is just a foreign concept to you.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Mikko@21:1/5 to olcott on Sat May 17 11:09:06 2025
    On 2025-05-16 15:50:06 +0000, olcott said:

    On 5/16/2025 10:38 AM, joes wrote:
    Am Sun, 11 May 2025 19:51:27 -0500 schrieb olcott:

    If on a real system an input tried to fool the denial-of-service-attack
    detector IT WOULD FAIL.
    Prior to my work a denial-of-service-attack detector WOULD FAIL. It
    would not know to reject DDD.
    No, the goal is not to make HHH run forever. It would not fail at
    terminating contrary to HHH's result.

    The goal of the counter-example input to the HP
    proofs has always been to make halting undecidable
    on this input. A simulating termination analyzer
    fixes that.

    No, the "goal" is to make one Turing machine to fail on that input.
    That another Truing machine can determine whether it halts does not
    matter.

    --
    Mikko

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