• Re: Hypothetical possibilities --- Complete Proof

    From Fred. Zwarts@21:1/5 to All on Thu Aug 1 15:12:06 2024
    Op 01.aug.2024 om 14:20 schreef olcott:
    On 8/1/2024 3:10 AM, Fred. Zwarts wrote:
    Op 31.jul.2024 om 23:23 schreef olcott:
    On 7/31/2024 3:01 PM, Fred. Zwarts wrote:
    Op 31.jul.2024 om 17:14 schreef olcott:
    On 7/31/2024 3:44 AM, Fred. Zwarts wrote:
    Op 31.jul.2024 om 06:09 schreef olcott:

      machine   stack     stack     machine    assembly >>>>>>>   address   address   data      code       language >>>>>>>   ========  ========  ========  =========  =============
    [00002192][00103820][00000000] 55         push ebp
    [00002193][00103820][00000000] 8bec       mov ebp,esp
    [00002195][0010381c][00002172] 6872210000 push 00002172 ; push DDD >>>>>>> [0000219a][00103818][0000219f] e833f4ffff call 000015d2 ; call
    HHH(DDD)
    New slave_stack at:1038c4

    We don't show any of HHH and show the execution trace of
    of just DDD assuming that HHH is an x86 emulator.

    This assumption is incorrect if it means that HHH is an
    unconditional simulator that does not abort.
    This algorithm is used by all the simulating termination analyzers:
    <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> >>>>
    So, Sipser only agreed to a correct simulation, not with an
    incorrect simulation that violates the semantics of the x86 language
    by skipping the last few instructions of a halting program.


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

    int main()
    {
       HHH(DD);
    }

    DD correctly emulated by HHH cannot possibly reach its own
    second line. I switched to DDD correctly emulated by HHH

    But it has been proven that no such HHH exists that simulates itself
    correctly. So, talking about a correct simulation by HHH is vacuous
    word salad.

    because only C experts understood the above example and we
    never had any of those here.

    There are many C experts that looked at it, but you only got critic,
    because you keep hiding important properties of HHH, which made the
    conclusion impossible.

    The following is all that is needed for 100% complete proof
    that HHH did emulate DDD correctly according to the semantics
    of the x86 language and did emulate itself emulating DDD
    according to these same semantics.

    You are repeating the same false claim with out any self-reflection. It
    has been pointed out that there are many errors in this proof.
    Why repeating such errors?


    _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]

    Begin Local Halt Decider Simulation   Execution Trace Stored at:1138cc [00002172][001138bc][001138c0] 55         push ebp      ; housekeeping
    [00002173][001138bc][001138c0] 8bec       mov ebp,esp   ; housekeeping
    [00002175][001138b8][00002172] 6872210000 push 00002172 ; push DDD [0000217a][001138b4][0000217f] e853f4ffff call 000015d2 ; call HHH(DDD)

    The trace stops and hides what happens when 000015d2 is called.
    Olcott is hiding the conditional branch instructions in the recursion.

    New slave_stack at:14e2ec
    [00002172][0015e2e4][0015e2e8] 55         push ebp      ; housekeeping
    [00002173][0015e2e4][0015e2e8] 8bec       mov ebp,esp   ; housekeeping
    [00002175][0015e2e0][00002172] 6872210000 push 00002172 ; push DDD [0000217a][0015e2dc][0000217f] e853f4ffff call 000015d2 ; call HHH(DDD)

    Again the trace stops and hides what happens when 000015d2 is called.
    Olcott is hiding the conditional branch instructions in the recursion.

    Local Halt Decider: Infinite Recursion Detected Simulation Stopped

    The program prints an erroneous message about an infinite recursion,
    when only two recursions are seen. It is clear the that the simulated
    HHH would need only one cycle more to return to DDD.

    No other conclusion is possible than that HHH performs an incomplete
    and, therefore, incomplete simulation.


    Now that we have established that HHH did emulate
    DDD correctly the above is also 100% complete proof
    that HHH must abort its correct emulation of DDD or
    neither HHH nor DDD will ever stop running.

    'Must abort ..' is no proof that aborting will results in a correct
    simulation. At most it proves that not-aborting is incorrect, as well.

    No matter how much olcott wants it to be correct, or how many times
    olcott repeats that it is correct, it does not change the fact that such
    a simulation is incorrect, because it is unable to reach the end of a
    halting program.
    Olcott's own claim that the simulated HHH does not reach its end
    confirms it. The trace he has shown also proves that HHH cannot reach
    the end of its own simulation. So, his own claims prove that it is true
    that HHH cannot possibly simulate itself up to the end, which makes the simulation incomplete and, therefore, incorrect.
    Dreams are no substitute for logic proofs.

    Sipser would agree that this incorrect simulation cannot be used to
    detect a non-halting behaviour.


    This has always been complete proof for anyone that knows
    the semantics of the x86 language sufficiently well.


    No, anyone with sufficient knowledge of the semantics of the x86
    language, sees that the simulation is incomplete and therefore
    incorrect. It is clear who lacks knowledge of the semantics of the x86 language.
    The sad thing is that you don't want to learn what these semantics mean.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Fred. Zwarts@21:1/5 to All on Thu Aug 1 16:23:21 2024
    Op 01.aug.2024 om 15:29 schreef olcott:
    On 8/1/2024 8:12 AM, Fred. Zwarts wrote:
    Op 01.aug.2024 om 14:20 schreef olcott:
    On 8/1/2024 3:10 AM, Fred. Zwarts wrote:
    Op 31.jul.2024 om 23:23 schreef olcott:
    On 7/31/2024 3:01 PM, Fred. Zwarts wrote:
    Op 31.jul.2024 om 17:14 schreef olcott:
    On 7/31/2024 3:44 AM, Fred. Zwarts wrote:
    Op 31.jul.2024 om 06:09 schreef olcott:

      machine   stack     stack     machine    assembly >>>>>>>>>   address   address   data      code       language >>>>>>>>>   ========  ========  ========  =========  ============= >>>>>>>>> [00002192][00103820][00000000] 55         push ebp
    [00002193][00103820][00000000] 8bec       mov ebp,esp
    [00002195][0010381c][00002172] 6872210000 push 00002172 ; push DDD >>>>>>>>> [0000219a][00103818][0000219f] e833f4ffff call 000015d2 ; call >>>>>>>>> HHH(DDD)
    New slave_stack at:1038c4

    We don't show any of HHH and show the execution trace of
    of just DDD assuming that HHH is an x86 emulator.

    This assumption is incorrect if it means that HHH is an
    unconditional simulator that does not abort.
    This algorithm is used by all the simulating termination analyzers: >>>>>>> <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>

    So, Sipser only agreed to a correct simulation, not with an
    incorrect simulation that violates the semantics of the x86
    language by skipping the last few instructions of a halting program. >>>>>>

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

    int main()
    {
       HHH(DD);
    }

    DD correctly emulated by HHH cannot possibly reach its own
    second line. I switched to DDD correctly emulated by HHH

    But it has been proven that no such HHH exists that simulates itself
    correctly. So, talking about a correct simulation by HHH is vacuous
    word salad.

    because only C experts understood the above example and we
    never had any of those here.

    There are many C experts that looked at it, but you only got critic,
    because you keep hiding important properties of HHH, which made the
    conclusion impossible.

    The following is all that is needed for 100% complete proof
    that HHH did emulate DDD correctly according to the semantics
    of the x86 language and did emulate itself emulating DDD
    according to these same semantics.

    You are repeating the same false claim with out any self-reflection.
    It has been pointed out that there are many errors in this proof.
    Why repeating such errors?


    _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]

    Begin Local Halt Decider Simulation   Execution Trace Stored at:1138cc >>> [00002172][001138bc][001138c0] 55         push ebp      ; housekeeping
    [00002173][001138bc][001138c0] 8bec       mov ebp,esp   ; housekeeping
    [00002175][001138b8][00002172] 6872210000 push 00002172 ; push DDD
    [0000217a][001138b4][0000217f] e853f4ffff call 000015d2 ; call HHH(DDD)

    The trace stops and hides what happens when 000015d2 is called.
    Olcott is hiding the conditional branch instructions in the recursion.


    *Here is the full trace where nothing is hidden* https://liarparadox.org/HHH(DDD)_Full_Trace.pdf

    These next lines conclusively prove that DDD is being
    correctly emulated by HHH after DDD calls HHH(DDD).

    It also shows that HHH when simulating itself, does not reach the end of
    its own simulation. So, the simulation is incomplete. Not reaching the
    end of the simulation of a halting program, makes the simulation
    incomplete. It hides the full behaviour of the halting program. It is incorrect.
    It is clear that you are a slow learner.
    Probably, you will repeat the same errors another thousand times,
    without any new evidence, ignoring all the errors in it that have been
    pointed out to you.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Fred. Zwarts@21:1/5 to All on Thu Aug 1 16:36:33 2024
    Op 01.aug.2024 om 16:30 schreef olcott:
    On 8/1/2024 9:23 AM, Fred. Zwarts wrote:
    Op 01.aug.2024 om 15:29 schreef olcott:
    On 8/1/2024 8:12 AM, Fred. Zwarts wrote:
    Op 01.aug.2024 om 14:20 schreef olcott:
    On 8/1/2024 3:10 AM, Fred. Zwarts wrote:
    Op 31.jul.2024 om 23:23 schreef olcott:
    On 7/31/2024 3:01 PM, Fred. Zwarts wrote:
    Op 31.jul.2024 om 17:14 schreef olcott:
    On 7/31/2024 3:44 AM, Fred. Zwarts wrote:
    Op 31.jul.2024 om 06:09 schreef olcott:

      machine   stack     stack     machine    assembly >>>>>>>>>>>   address   address   data      code       language
      ========  ========  ========  =========  ============= >>>>>>>>>>> [00002192][00103820][00000000] 55         push ebp >>>>>>>>>>> [00002193][00103820][00000000] 8bec       mov ebp,esp >>>>>>>>>>> [00002195][0010381c][00002172] 6872210000 push 00002172 ; >>>>>>>>>>> push DDD
    [0000219a][00103818][0000219f] e833f4ffff call 000015d2 ; >>>>>>>>>>> call HHH(DDD)
    New slave_stack at:1038c4

    We don't show any of HHH and show the execution trace of >>>>>>>>>>> of just DDD assuming that HHH is an x86 emulator.

    This assumption is incorrect if it means that HHH is an
    unconditional simulator that does not abort.
    This algorithm is used by all the simulating termination
    analyzers:
    <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>

    So, Sipser only agreed to a correct simulation, not with an
    incorrect simulation that violates the semantics of the x86
    language by skipping the last few instructions of a halting
    program.


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

    int main()
    {
       HHH(DD);
    }

    DD correctly emulated by HHH cannot possibly reach its own
    second line. I switched to DDD correctly emulated by HHH

    But it has been proven that no such HHH exists that simulates
    itself correctly. So, talking about a correct simulation by HHH is >>>>>> vacuous word salad.

    because only C experts understood the above example and we
    never had any of those here.

    There are many C experts that looked at it, but you only got
    critic, because you keep hiding important properties of HHH, which >>>>>> made the conclusion impossible.

    The following is all that is needed for 100% complete proof
    that HHH did emulate DDD correctly according to the semantics
    of the x86 language and did emulate itself emulating DDD
    according to these same semantics.

    You are repeating the same false claim with out any self-reflection.
    It has been pointed out that there are many errors in this proof.
    Why repeating such errors?


    _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]

    Begin Local Halt Decider Simulation   Execution Trace Stored at:1138cc >>>>> [00002172][001138bc][001138c0] 55         push ebp      ; housekeeping
    [00002173][001138bc][001138c0] 8bec       mov ebp,esp   ; housekeeping
    [00002175][001138b8][00002172] 6872210000 push 00002172 ; push DDD
    [0000217a][001138b4][0000217f] e853f4ffff call 000015d2 ; call
    HHH(DDD)

    The trace stops and hides what happens when 000015d2 is called.
    Olcott is hiding the conditional branch instructions in the recursion. >>>>

    *Here is the full trace where nothing is hidden*
    https://liarparadox.org/HHH(DDD)_Full_Trace.pdf

    These next lines conclusively prove that DDD is being
    correctly emulated by HHH after DDD calls HHH(DDD).

    It also shows that HHH when simulating itself, does not reach the end
    of its own simulation.

    If you weren't a clueless wonder you would understand
    that DDD correctly emulated by HHH including HHH emulating
    itself emulated DDD has no end of correct emulation.


    You say that only, because you do not understand the difference between
    two recursions and an infinite number of recursions.
    The HHH that has no end is the one in your dreams, the one that does not
    abort.
    Here we talk about the HHH that aborts after two recursions. When
    simulating *that* HHH correctly (e.g. by HHH1), it is clear that it
    halts and does not need to be aborted.
    The simulation of the HHH that aborts, does not need to be aborted!
    Dreams are no substitute for facts, nor for logic.
    You seem to be a slow learner and probably you will repeat the same
    error another thousand times.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From joes@21:1/5 to All on Thu Aug 1 16:11:56 2024
    Am Thu, 01 Aug 2024 09:30:00 -0500 schrieb olcott:
    On 8/1/2024 9:23 AM, Fred. Zwarts wrote:
    Op 01.aug.2024 om 15:29 schreef olcott:
    On 8/1/2024 8:12 AM, Fred. Zwarts wrote:
    Op 01.aug.2024 om 14:20 schreef olcott:
    On 8/1/2024 3:10 AM, Fred. Zwarts wrote:
    Op 31.jul.2024 om 23:23 schreef olcott:
    On 7/31/2024 3:01 PM, Fred. Zwarts wrote:
    Op 31.jul.2024 om 17:14 schreef olcott:
    On 7/31/2024 3:44 AM, Fred. Zwarts wrote:
    Op 31.jul.2024 om 06:09 schreef olcott:

    The trace stops and hides what happens when 000015d2 is called.
    Olcott is hiding the conditional branch instructions in the
    recursion.
    These next lines conclusively prove that DDD is being correctly
    emulated by HHH after DDD calls HHH(DDD).
    It also shows that HHH when simulating itself, does not reach the end
    of its own simulation.
    If you weren't a clueless wonder you would understand that DDD correctly emulated by HHH including HHH emulating itself emulated DDD has no end
    of correct emulation.
    It does if the simulated HHH aborts, but its simulating copy preempts
    that. Indeed, it has no choice, but if it didn't abort, the simulation
    wouldn't abort either. Therefore it can't simulate itself.

    --
    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 Thu Aug 1 21:30:30 2024
    Op 01.aug.2024 om 18:32 schreef olcott:
    On 8/1/2024 11:11 AM, joes wrote:
    Am Thu, 01 Aug 2024 09:30:00 -0500 schrieb olcott:
    On 8/1/2024 9:23 AM, Fred. Zwarts wrote:
    Op 01.aug.2024 om 15:29 schreef olcott:
    On 8/1/2024 8:12 AM, Fred. Zwarts wrote:
    Op 01.aug.2024 om 14:20 schreef olcott:
    On 8/1/2024 3:10 AM, Fred. Zwarts wrote:
    Op 31.jul.2024 om 23:23 schreef olcott:
    On 7/31/2024 3:01 PM, Fred. Zwarts wrote:
    Op 31.jul.2024 om 17:14 schreef olcott:
    On 7/31/2024 3:44 AM, Fred. Zwarts wrote:
    Op 31.jul.2024 om 06:09 schreef olcott:

    The trace stops and hides what happens when 000015d2 is called.
    Olcott is hiding the conditional branch instructions in the
    recursion.
    These next lines conclusively prove that DDD is being correctly
    emulated by HHH after DDD calls HHH(DDD).
    It also shows that HHH when simulating itself, does not reach the end
    of its own simulation.
    If you weren't a clueless wonder you would understand that DDD correctly >>> emulated by HHH including HHH emulating itself emulated DDD has no end
    of correct emulation.

    It does if the simulated HHH aborts, but its simulating copy preempts
    that. Indeed, it has no choice, but if it didn't abort, the simulation
    wouldn't abort either. Therefore it can't simulate itself.


    <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>

    Sipser agreed only to a correct simulation.

    I spent two years carefully composing the above before I even
    asked professor Sipser to review it.

    DDD is correctly emulated by HHH until HHH sees the same
    never ending pattern that anyone else can see.

    The never ending pattern is there only in your dreams. The HHH that
    halts after two cycles has a halting pattern. Only HHH, when simulating
    itself, cannot see that after two cycles, because it needs one more cycle.
    Two is not infinite.
    Dream are no substitute for facts, not for logic.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Fred. Zwarts@21:1/5 to All on Thu Aug 1 21:40:05 2024
    Op 01.aug.2024 om 17:49 schreef olcott:
    On 8/1/2024 9:36 AM, Fred. Zwarts wrote:
    Op 01.aug.2024 om 16:30 schreef olcott:
    On 8/1/2024 9:23 AM, Fred. Zwarts wrote:
    Op 01.aug.2024 om 15:29 schreef olcott:
    On 8/1/2024 8:12 AM, Fred. Zwarts wrote:
    Op 01.aug.2024 om 14:20 schreef olcott:
    On 8/1/2024 3:10 AM, Fred. Zwarts wrote:
    Op 31.jul.2024 om 23:23 schreef olcott:
    On 7/31/2024 3:01 PM, Fred. Zwarts wrote:
    Op 31.jul.2024 om 17:14 schreef olcott:
    On 7/31/2024 3:44 AM, Fred. Zwarts wrote:
    Op 31.jul.2024 om 06:09 schreef olcott:

      machine   stack     stack     machine    assembly
      address   address   data      code       language
      ========  ========  ========  =========  ============= >>>>>>>>>>>>> [00002192][00103820][00000000] 55         push ebp >>>>>>>>>>>>> [00002193][00103820][00000000] 8bec       mov ebp,esp >>>>>>>>>>>>> [00002195][0010381c][00002172] 6872210000 push 00002172 ; >>>>>>>>>>>>> push DDD
    [0000219a][00103818][0000219f] e833f4ffff call 000015d2 ; >>>>>>>>>>>>> call HHH(DDD)
    New slave_stack at:1038c4

    We don't show any of HHH and show the execution trace of >>>>>>>>>>>>> of just DDD assuming that HHH is an x86 emulator.

    This assumption is incorrect if it means that HHH is an >>>>>>>>>>>> unconditional simulator that does not abort.
    This algorithm is used by all the simulating termination >>>>>>>>>>> analyzers:
    <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>

    So, Sipser only agreed to a correct simulation, not with an >>>>>>>>>> incorrect simulation that violates the semantics of the x86 >>>>>>>>>> language by skipping the last few instructions of a halting >>>>>>>>>> program.


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

    int main()
    {
       HHH(DD);
    }

    DD correctly emulated by HHH cannot possibly reach its own
    second line. I switched to DDD correctly emulated by HHH

    But it has been proven that no such HHH exists that simulates
    itself correctly. So, talking about a correct simulation by HHH >>>>>>>> is vacuous word salad.

    because only C experts understood the above example and we
    never had any of those here.

    There are many C experts that looked at it, but you only got
    critic, because you keep hiding important properties of HHH,
    which made the conclusion impossible.

    The following is all that is needed for 100% complete proof
    that HHH did emulate DDD correctly according to the semantics
    of the x86 language and did emulate itself emulating DDD
    according to these same semantics.

    You are repeating the same false claim with out any
    self-reflection. It has been pointed out that there are many
    errors in this proof.
    Why repeating such errors?


    _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]

    Begin Local Halt Decider Simulation   Execution Trace Stored
    at:1138cc
    [00002172][001138bc][001138c0] 55         push ebp      ; >>>>>>> housekeeping
    [00002173][001138bc][001138c0] 8bec       mov ebp,esp   ; >>>>>>> housekeeping
    [00002175][001138b8][00002172] 6872210000 push 00002172 ; push DDD >>>>>>> [0000217a][001138b4][0000217f] e853f4ffff call 000015d2 ; call
    HHH(DDD)

    The trace stops and hides what happens when 000015d2 is called.
    Olcott is hiding the conditional branch instructions in the
    recursion.


    *Here is the full trace where nothing is hidden*
    https://liarparadox.org/HHH(DDD)_Full_Trace.pdf

    These next lines conclusively prove that DDD is being
    correctly emulated by HHH after DDD calls HHH(DDD).

    It also shows that HHH when simulating itself, does not reach the
    end of its own simulation.

    If you weren't a clueless wonder you would understand
    that DDD correctly emulated by HHH including HHH emulating
    itself emulated DDD has no end of correct emulation.


    You say that only, because you do not understand the difference
    between two recursions and an infinite number of recursions.

    I was the number one student out of 45 students in an advanced
    computer science about the internals of operating systems. Three
    of the students that I beat were instructors of other computer
    science classes. The lack on knowledge is not on my side.

    Sorry to hear that you lost such beautiful skills.


    Not terminating recursive emulation is isomorphic to infinite
    recursion.

    The non terminating recursive simulation is only in your dreams.
    The HHH that aborts terminates after two recursions. That is very
    different from non terminating.
    The HHH, when simulating itself, also aborts after two cycles, where it
    needed one more cycle to see the terminating behaviour.
    Dreams are no substitute for facts, nor for logic.


    The HHH that has no end is the one in your dreams, the one that does
    not abort.

    Therefore conclusively proving that it must abort jackass.

    That is completely missing the point. Nobody says that without abort it
    would be any better. You are fighting windmills.

    But aborting does not make it correct, because the abort is always
    premature. It does not matter whether HHH aborts or not. HHH cannot
    possibly simulate itself correctly.

    It seems you also lost your ability to learn new things.
    I wonder how many times you are going to repeat the same error, without
    paying attention to the errors pointed out to you.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Fred. Zwarts@21:1/5 to All on Fri Aug 2 10:13:59 2024
    Op 01.aug.2024 om 23:03 schreef olcott:
    On 8/1/2024 2:30 PM, Fred. Zwarts wrote:
    Op 01.aug.2024 om 18:32 schreef olcott:
    On 8/1/2024 11:11 AM, joes wrote:
    Am Thu, 01 Aug 2024 09:30:00 -0500 schrieb olcott:
    On 8/1/2024 9:23 AM, Fred. Zwarts wrote:
    Op 01.aug.2024 om 15:29 schreef olcott:
    On 8/1/2024 8:12 AM, Fred. Zwarts wrote:
    Op 01.aug.2024 om 14:20 schreef olcott:
    On 8/1/2024 3:10 AM, Fred. Zwarts wrote:
    Op 31.jul.2024 om 23:23 schreef olcott:
    On 7/31/2024 3:01 PM, Fred. Zwarts wrote:
    Op 31.jul.2024 om 17:14 schreef olcott:
    On 7/31/2024 3:44 AM, Fred. Zwarts wrote:
    Op 31.jul.2024 om 06:09 schreef olcott:

    The trace stops and hides what happens when 000015d2 is called. >>>>>>>> Olcott is hiding the conditional branch instructions in the
    recursion.
    These next lines conclusively prove that DDD is being correctly
    emulated by HHH after DDD calls HHH(DDD).
    It also shows that HHH when simulating itself, does not reach the end >>>>>> of its own simulation.
    If you weren't a clueless wonder you would understand that DDD
    correctly
    emulated by HHH including HHH emulating itself emulated DDD has no end >>>>> of correct emulation.

    It does if the simulated HHH aborts, but its simulating copy preempts
    that. Indeed, it has no choice, but if it didn't abort, the simulation >>>> wouldn't abort either. Therefore it can't simulate itself.


    <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>

    Sipser agreed only to a correct simulation.

    of N steps.

    Without skipping M steps of a halting program.



    I spent two years carefully composing the above before I even
    asked professor Sipser to review it.

    DDD is correctly emulated by HHH until HHH sees the same
    never ending pattern that anyone else can see.

    The never ending pattern is there only in your dreams. The HHH that
    halts after two cycles has a halting pattern.

    In order for DDD correctly emulated by HHH to halt
    DDD correctly emulated  must reach its emulated "ret"
    instruction. This <is> impossible.

    Indeed! HHH cannot possibly simulate itself correctly.
    You confirm what I have been trying to explain to you for some time now.
    HHH cannot reach its own 'ret', which makes the abort premature and
    incorrect.


    Only HHH, when simulating itself, cannot see that after two cycles,
    because it needs one more cycle.
    Two is not infinite.
    Dream are no substitute for facts, not for logic.



    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Mikko@21:1/5 to olcott on Fri Aug 2 13:12:53 2024
    On 2024-08-01 13:29:24 +0000, olcott said:

    On 8/1/2024 8:12 AM, Fred. Zwarts wrote:
    Op 01.aug.2024 om 14:20 schreef olcott:
    On 8/1/2024 3:10 AM, Fred. Zwarts wrote:
    Op 31.jul.2024 om 23:23 schreef olcott:
    On 7/31/2024 3:01 PM, Fred. Zwarts wrote:
    Op 31.jul.2024 om 17:14 schreef olcott:
    On 7/31/2024 3:44 AM, Fred. Zwarts wrote:
    Op 31.jul.2024 om 06:09 schreef olcott:

      machine   stack     stack     machine    assembly >>>>>>>>>   address   address   data      code       language >>>>>>>>>   ========  ========  ========  =========  ============= >>>>>>>>> [00002192][00103820][00000000] 55         push ebp
    [00002193][00103820][00000000] 8bec       mov ebp,esp
    [00002195][0010381c][00002172] 6872210000 push 00002172 ; push DDD >>>>>>>>> [0000219a][00103818][0000219f] e833f4ffff call 000015d2 ; call HHH(DDD)
    New slave_stack at:1038c4

    We don't show any of HHH and show the execution trace of
    of just DDD assuming that HHH is an x86 emulator.

    This assumption is incorrect if it means that HHH is an unconditional >>>>>>>> simulator that does not abort.
    This algorithm is used by all the simulating termination analyzers: >>>>>>> <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> >>>>>>
    So, Sipser only agreed to a correct simulation, not with an incorrect >>>>>> simulation that violates the semantics of the x86 language by skipping >>>>>> the last few instructions of a halting program.


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

    int main()
    {
       HHH(DD);
    }

    DD correctly emulated by HHH cannot possibly reach its own
    second line. I switched to DDD correctly emulated by HHH

    But it has been proven that no such HHH exists that simulates itself
    correctly. So, talking about a correct simulation by HHH is vacuous
    word salad.

    because only C experts understood the above example and we
    never had any of those here.

    There are many C experts that looked at it, but you only got critic,
    because you keep hiding important properties of HHH, which made the
    conclusion impossible.

    The following is all that is needed for 100% complete proof
    that HHH did emulate DDD correctly according to the semantics
    of the x86 language and did emulate itself emulating DDD
    according to these same semantics.

    You are repeating the same false claim with out any self-reflection. It
    has been pointed out that there are many errors in this proof.
    Why repeating such errors?


    _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]

    Begin Local Halt Decider Simulation   Execution Trace Stored at:1138cc >>> [00002172][001138bc][001138c0] 55         push ebp      ; housekeeping
    [00002173][001138bc][001138c0] 8bec       mov ebp,esp   ; housekeeping
    [00002175][001138b8][00002172] 6872210000 push 00002172 ; push DDD
    [0000217a][001138b4][0000217f] e853f4ffff call 000015d2 ; call HHH(DDD)

    The trace stops and hides what happens when 000015d2 is called.
    Olcott is hiding the conditional branch instructions in the recursion.


    *Here is the full trace where nothing is hidden* https://liarparadox.org/HHH(DDD)_Full_Trace.pdf

    On page 36 of that "trace"
    [0000128c][0010379f][00000018] e8e6f4ffff call 00000777
    is not followed by the trace of 00000777. Instead the trace continues
    with the next instruction after the return without any comment about
    the omission. Meaning of 00000777 is not told.

    --
    Mikko

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Mikko@21:1/5 to olcott on Fri Aug 2 13:19:57 2024
    On 2024-08-01 16:32:23 +0000, olcott said:

    On 8/1/2024 11:11 AM, joes wrote:
    Am Thu, 01 Aug 2024 09:30:00 -0500 schrieb olcott:
    On 8/1/2024 9:23 AM, Fred. Zwarts wrote:
    Op 01.aug.2024 om 15:29 schreef olcott:
    On 8/1/2024 8:12 AM, Fred. Zwarts wrote:
    Op 01.aug.2024 om 14:20 schreef olcott:
    On 8/1/2024 3:10 AM, Fred. Zwarts wrote:
    Op 31.jul.2024 om 23:23 schreef olcott:
    On 7/31/2024 3:01 PM, Fred. Zwarts wrote:
    Op 31.jul.2024 om 17:14 schreef olcott:
    On 7/31/2024 3:44 AM, Fred. Zwarts wrote:
    Op 31.jul.2024 om 06:09 schreef olcott:

    The trace stops and hides what happens when 000015d2 is called.
    Olcott is hiding the conditional branch instructions in the
    recursion.
    These next lines conclusively prove that DDD is being correctly
    emulated by HHH after DDD calls HHH(DDD).
    It also shows that HHH when simulating itself, does not reach the end
    of its own simulation.
    If you weren't a clueless wonder you would understand that DDD correctly >>> emulated by HHH including HHH emulating itself emulated DDD has no end
    of correct emulation.

    It does if the simulated HHH aborts, but its simulating copy preempts
    that. Indeed, it has no choice, but if it didn't abort, the simulation
    wouldn't abort either. Therefore it can't simulate itself.


    <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>

    I spent two years carefully composing the above before I even
    asked professor Sipser to review it.

    DDD is correctly emulated by HHH until HHH sees the same
    never ending pattern that anyone else can see.

    Maybe HHH really sees a never ending pattern but that pattern is not
    contained in the behaviour specified by DDD and therefore not relevant.

    --
    Mikko

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Mike Terry@21:1/5 to Mikko on Fri Aug 2 18:39:00 2024
    On 02/08/2024 11:12, Mikko wrote:
    On 2024-08-01 13:29:24 +0000, olcott said:

    On 8/1/2024 8:12 AM, Fred. Zwarts wrote:
    Op 01.aug.2024 om 14:20 schreef olcott:
    On 8/1/2024 3:10 AM, Fred. Zwarts wrote:
    Op 31.jul.2024 om 23:23 schreef olcott:
    On 7/31/2024 3:01 PM, Fred. Zwarts wrote:
    Op 31.jul.2024 om 17:14 schreef olcott:
    On 7/31/2024 3:44 AM, Fred. Zwarts wrote:
    Op 31.jul.2024 om 06:09 schreef olcott:

      machine   stack     stack     machine    assembly
      address   address   data      code       language
      ========  ========  ========  =========  =============
    [00002192][00103820][00000000] 55         push ebp
    [00002193][00103820][00000000] 8bec       mov ebp,esp
    [00002195][0010381c][00002172] 6872210000 push 00002172 ; push DDD >>>>>>>>>> [0000219a][00103818][0000219f] e833f4ffff call 000015d2 ; call HHH(DDD)
    New slave_stack at:1038c4

    We don't show any of HHH and show the execution trace of
    of just DDD assuming that HHH is an x86 emulator.

    This assumption is incorrect if it means that HHH is an unconditional simulator that does
    not abort.
    This algorithm is used by all the simulating termination analyzers: >>>>>>>> <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> >>>>>>>
    So, Sipser only agreed to a correct simulation, not with an incorrect simulation that
    violates the semantics of the x86 language by skipping the last few instructions of a halting
    program.


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

    int main()
    {
       HHH(DD);
    }

    DD correctly emulated by HHH cannot possibly reach its own
    second line. I switched to DDD correctly emulated by HHH

    But it has been proven that no such HHH exists that simulates itself correctly. So, talking
    about a correct simulation by HHH is vacuous word salad.

    because only C experts understood the above example and we
    never had any of those here.

    There are many C experts that looked at it, but you only got critic, because you keep hiding
    important properties of HHH, which made the conclusion impossible.

    The following is all that is needed for 100% complete proof
    that HHH did emulate DDD correctly according to the semantics
    of the x86 language and did emulate itself emulating DDD
    according to these same semantics.

    You are repeating the same false claim with out any self-reflection. It has been pointed out that
    there are many errors in this proof.
    Why repeating such errors?


    _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]

    Begin Local Halt Decider Simulation   Execution Trace Stored at:1138cc >>>> [00002172][001138bc][001138c0] 55         push ebp      ; housekeeping >>>> [00002173][001138bc][001138c0] 8bec       mov ebp,esp   ; housekeeping >>>> [00002175][001138b8][00002172] 6872210000 push 00002172 ; push DDD
    [0000217a][001138b4][0000217f] e853f4ffff call 000015d2 ; call HHH(DDD) >>>
    The trace stops and hides what happens when 000015d2 is called.
    Olcott is hiding the conditional branch instructions in the recursion.


    *Here is the full trace where nothing is hidden*
    https://liarparadox.org/HHH(DDD)_Full_Trace.pdf

    On page 36 of that "trace"
       [0000128c][0010379f][00000018] e8e6f4ffff call 00000777
    is not followed by the trace of 00000777. Instead the trace continues
    with the next instruction after the return without any comment about
    the omission. Meaning of 00000777 is not told.


    777 is the address of Allocate, which is one of PO's "primative ops" within his "computing model".
    (Similar to his DebugStep().)

    It is implemented inside x86utm.exe (his COFF obj code runner), not in the user code DDD/HHH/etc. in
    the obj file, and so we would not expect to see any trace entries for its internals. When the op
    concludes, rax has the address of the allocated memory, which is consistent with how a normal
    function would have returned the address.

    You can say correctly that PO has not explained this, but then he provided the full trace under
    protest, so it's understandable that he has not previously explained everything in it. I'm
    surprised that his response to your post was both to ignore the question and accuse you of playing
    sadistic head games, as the question was perfectly sensible.

    You can look up the 777 address in the listing at the start of the trace and it's there along with a
    bunch of other routines which appear to just return without doing anything - those are all PO's
    primitive ops. If you feel a need to understand exactly what they do, you'll need to check his
    source code! (Although for Allocate there is no big surprise...)


    So your observation isn't really a problem beyond not being properly explained. An actual problem
    seen in his trace data is that the simulation of DDD does not track the behaviour of the unsimulated
    DDD. I.e. his simulation is incorrect. (PO knows about that but claims it doesn't matter, although
    on other occasions he still claims the simulation is correct.)


    Mike.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to Mike Terry on Fri Aug 2 14:25:48 2024
    On 8/2/24 1:39 PM, Mike Terry wrote:
    On 02/08/2024 11:12, Mikko wrote:
    On 2024-08-01 13:29:24 +0000, olcott said:

    On 8/1/2024 8:12 AM, Fred. Zwarts wrote:
    Op 01.aug.2024 om 14:20 schreef olcott:
    On 8/1/2024 3:10 AM, Fred. Zwarts wrote:
    Op 31.jul.2024 om 23:23 schreef olcott:
    On 7/31/2024 3:01 PM, Fred. Zwarts wrote:
    Op 31.jul.2024 om 17:14 schreef olcott:
    On 7/31/2024 3:44 AM, Fred. Zwarts wrote:
    Op 31.jul.2024 om 06:09 schreef olcott:

      machine   stack     stack     machine    assembly >>>>>>>>>>>   address   address   data      code       language
      ========  ========  ========  =========  ============= >>>>>>>>>>> [00002192][00103820][00000000] 55         push ebp >>>>>>>>>>> [00002193][00103820][00000000] 8bec       mov ebp,esp >>>>>>>>>>> [00002195][0010381c][00002172] 6872210000 push 00002172 ; >>>>>>>>>>> push DDD
    [0000219a][00103818][0000219f] e833f4ffff call 000015d2 ; >>>>>>>>>>> call HHH(DDD)
    New slave_stack at:1038c4

    We don't show any of HHH and show the execution trace of >>>>>>>>>>> of just DDD assuming that HHH is an x86 emulator.

    This assumption is incorrect if it means that HHH is an
    unconditional simulator that does not abort.
    This algorithm is used by all the simulating termination
    analyzers:
    <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>

    So, Sipser only agreed to a correct simulation, not with an
    incorrect simulation that violates the semantics of the x86
    language by skipping the last few instructions of a halting
    program.


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

    int main()
    {
       HHH(DD);
    }

    DD correctly emulated by HHH cannot possibly reach its own
    second line. I switched to DDD correctly emulated by HHH

    But it has been proven that no such HHH exists that simulates
    itself correctly. So, talking about a correct simulation by HHH is >>>>>> vacuous word salad.

    because only C experts understood the above example and we
    never had any of those here.

    There are many C experts that looked at it, but you only got
    critic, because you keep hiding important properties of HHH, which >>>>>> made the conclusion impossible.

    The following is all that is needed for 100% complete proof
    that HHH did emulate DDD correctly according to the semantics
    of the x86 language and did emulate itself emulating DDD
    according to these same semantics.

    You are repeating the same false claim with out any self-reflection.
    It has been pointed out that there are many errors in this proof.
    Why repeating such errors?


    _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]

    Begin Local Halt Decider Simulation   Execution Trace Stored at:1138cc >>>>> [00002172][001138bc][001138c0] 55         push ebp      ; housekeeping
    [00002173][001138bc][001138c0] 8bec       mov ebp,esp   ; housekeeping
    [00002175][001138b8][00002172] 6872210000 push 00002172 ; push DDD
    [0000217a][001138b4][0000217f] e853f4ffff call 000015d2 ; call
    HHH(DDD)

    The trace stops and hides what happens when 000015d2 is called.
    Olcott is hiding the conditional branch instructions in the recursion. >>>>

    *Here is the full trace where nothing is hidden*
    https://liarparadox.org/HHH(DDD)_Full_Trace.pdf

    On page 36 of that "trace"
        [0000128c][0010379f][00000018] e8e6f4ffff call 00000777
    is not followed by the trace of 00000777. Instead the trace continues
    with the next instruction after the return without any comment about
    the omission. Meaning of 00000777 is not told.


    777 is the address of Allocate, which is one of PO's "primative ops"
    within his "computing model". (Similar to his DebugStep().)

    It is implemented inside x86utm.exe (his COFF obj code runner), not in
    the user code DDD/HHH/etc. in the obj file, and so we would not expect
    to see any trace entries for its internals.  When the op concludes, rax
    has the address of the allocated memory, which is consistent with how a normal function would have returned the address.

    You can say correctly that PO has not explained this, but then he
    provided the full trace under protest, so it's understandable that he
    has not previously explained everything in it.  I'm surprised that his response to your post was both to ignore the question and accuse you of playing sadistic head games, as the question was perfectly sensible.

    You can look up the 777 address in the listing at the start of the trace
    and it's there along with a bunch of other routines which appear to just return without doing anything - those are all PO's primitive ops.  If
    you feel a need to understand exactly what they do, you'll need to check
    his source code!  (Although for Allocate there is no big surprise...)


    So your observation isn't really a problem beyond not being properly explained.  An actual problem seen in his trace data is that the
    simulation of DDD does not track the behaviour of the unsimulated DDD.
    I.e. his simulation is incorrect.  (PO knows about that but claims it doesn't matter, although on other occasions he still claims the
    simulation is correct.)


    Mike.


    But the bigger error that totally negates this trace is if you at where
    it begins, it is at program address 00002197, which just the page before
    is shown to be the address of _main.

    Since HHH was not given the address of main to start with, this can not
    be the trace that HHH itself is generating and looking at, but is
    instead the trace of the running of that top level HHH.

    Since that shows the trace isn't what he claims it is, nothing it says
    means anything for his argument.

    In fact, the way the trace is produced, it is clear that the tracing
    code doesn't care about what level of simulation it is working but calls
    to "DebugStep" just inject the data they trace as part of the code that
    is being traced, which isn't actually what is happening in the processor.

    This seems to be part of the source for his confusion, and the tool he
    uses to try to spread his lies.

    such results should, at most, be inserted as a comment about what the
    results computed as meta-logic of the code just emulated did.

    But of course, noting that this second layer is just meta-results, and
    that the original emulator always had the option of stopping its
    emulation ruins his argument that the recursion is necessarily infinite.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Ben Bacarisse@21:1/5 to Mike Terry on Fri Aug 2 23:42:15 2024
    Mike Terry <news.dead.person.stones@darjeeling.plus.com> writes:

    Of course these traces don't support PO's overall case he is claiming, because the (various) logs show that DDD halts, and that HHH(DDD) reports
    DDD as non-halting, exactly as Linz/Sipser argue. Er, that's about it!

    PO certainly used to claim that false (non-halting) is the correct
    result "even though DDD halts" (I've edited the quote to reflect a name change). Unless he's changed this position, the traces do support his
    claim that what everyone else calls the wrong answer is actually the
    right one.

    --
    Ben.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From olcott@21:1/5 to Ben Bacarisse on Fri Aug 2 17:55:52 2024
    On 8/2/2024 5:42 PM, Ben Bacarisse wrote:
    Mike Terry <news.dead.person.stones@darjeeling.plus.com> writes:

    Of course these traces don't support PO's overall case he is claiming,
    because the (various) logs show that DDD halts, and that HHH(DDD) reports
    DDD as non-halting, exactly as Linz/Sipser argue. Er, that's about it!

    PO certainly used to claim that false (non-halting) is the correct
    result "even though DDD halts" (I've edited the quote to reflect a name change). Unless he's changed this position, the traces do support his
    claim that what everyone else calls the wrong answer is actually the
    right one.


    I had to simplify it into simpler steps because the
    recent people don't seem to know the first thing
    about programming.

    Who here is too stupid to know that DDD correctly
    simulated by HHH cannot possibly reach its own
    return instruction?

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

    *You are the only one that got this much correctly*

    On 10/14/2022 7:44 PM, Ben Bacarisse wrote:
    I don't think that is the shell game. PO really /has/ an H (it's
    trivial to do for this one case) that correctly determines that P(P)
    *would* never stop running *unless* aborted.
    ...
    But H determines (correctly) that D would not halt if it were not
    halted. That much is a truism.

    *Even Mike got much less that that*

    --
    Copyright 2024 Olcott

    "Talent hits a target no one else can hit;
    Genius hits a target no one else can see."
    Arthur Schopenhauer

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Mike Terry@21:1/5 to Richard Damon on Fri Aug 2 23:23:42 2024
    On 02/08/2024 19:25, Richard Damon wrote:
    On 8/2/24 1:39 PM, Mike Terry wrote:
    On 02/08/2024 11:12, Mikko wrote:
    On 2024-08-01 13:29:24 +0000, olcott said:

    On 8/1/2024 8:12 AM, Fred. Zwarts wrote:
    Op 01.aug.2024 om 14:20 schreef olcott:
    On 8/1/2024 3:10 AM, Fred. Zwarts wrote:
    Op 31.jul.2024 om 23:23 schreef olcott:
    On 7/31/2024 3:01 PM, Fred. Zwarts wrote:
    Op 31.jul.2024 om 17:14 schreef olcott:
    On 7/31/2024 3:44 AM, Fred. Zwarts wrote:
    Op 31.jul.2024 om 06:09 schreef olcott:

      machine   stack     stack     machine    assembly
      address   address   data      code       language
      ========  ========  ========  =========  ============= >>>>>>>>>>>> [00002192][00103820][00000000] 55         push ebp
    [00002193][00103820][00000000] 8bec       mov ebp,esp
    [00002195][0010381c][00002172] 6872210000 push 00002172 ; push DDD >>>>>>>>>>>> [0000219a][00103818][0000219f] e833f4ffff call 000015d2 ; call HHH(DDD)
    New slave_stack at:1038c4

    We don't show any of HHH and show the execution trace of >>>>>>>>>>>> of just DDD assuming that HHH is an x86 emulator.

    This assumption is incorrect if it means that HHH is an unconditional simulator that does
    not abort.
    This algorithm is used by all the simulating termination analyzers: >>>>>>>>>> <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>

    So, Sipser only agreed to a correct simulation, not with an incorrect simulation that
    violates the semantics of the x86 language by skipping the last few instructions of a
    halting program.


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

    int main()
    {
       HHH(DD);
    }

    DD correctly emulated by HHH cannot possibly reach its own
    second line. I switched to DDD correctly emulated by HHH

    But it has been proven that no such HHH exists that simulates itself correctly. So, talking
    about a correct simulation by HHH is vacuous word salad.

    because only C experts understood the above example and we
    never had any of those here.

    There are many C experts that looked at it, but you only got critic, because you keep hiding
    important properties of HHH, which made the conclusion impossible. >>>>>>
    The following is all that is needed for 100% complete proof
    that HHH did emulate DDD correctly according to the semantics
    of the x86 language and did emulate itself emulating DDD
    according to these same semantics.

    You are repeating the same false claim with out any self-reflection. It has been pointed out
    that there are many errors in this proof.
    Why repeating such errors?


    _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]

    Begin Local Halt Decider Simulation   Execution Trace Stored at:1138cc >>>>>> [00002172][001138bc][001138c0] 55         push ebp      ; housekeeping >>>>>> [00002173][001138bc][001138c0] 8bec       mov ebp,esp   ; housekeeping >>>>>> [00002175][001138b8][00002172] 6872210000 push 00002172 ; push DDD >>>>>> [0000217a][001138b4][0000217f] e853f4ffff call 000015d2 ; call HHH(DDD) >>>>>
    The trace stops and hides what happens when 000015d2 is called.
    Olcott is hiding the conditional branch instructions in the recursion. >>>>>

    *Here is the full trace where nothing is hidden*
    https://liarparadox.org/HHH(DDD)_Full_Trace.pdf

    On page 36 of that "trace"
        [0000128c][0010379f][00000018] e8e6f4ffff call 00000777
    is not followed by the trace of 00000777. Instead the trace continues
    with the next instruction after the return without any comment about
    the omission. Meaning of 00000777 is not told.


    777 is the address of Allocate, which is one of PO's "primative ops" within his "computing model".
    (Similar to his DebugStep().)

    It is implemented inside x86utm.exe (his COFF obj code runner), not in the user code DDD/HHH/etc.
    in the obj file, and so we would not expect to see any trace entries for its internals.  When the
    op concludes, rax has the address of the allocated memory, which is consistent with how a normal
    function would have returned the address.

    You can say correctly that PO has not explained this, but then he provided the full trace under
    protest, so it's understandable that he has not previously explained everything in it.  I'm
    surprised that his response to your post was both to ignore the question and accuse you of playing
    sadistic head games, as the question was perfectly sensible.

    You can look up the 777 address in the listing at the start of the trace and it's there along with
    a bunch of other routines which appear to just return without doing anything - those are all PO's
    primitive ops.  If you feel a need to understand exactly what they do, you'll need to check his
    source code!  (Although for Allocate there is no big surprise...)


    So your observation isn't really a problem beyond not being properly explained.  An actual problem
    seen in his trace data is that the simulation of DDD does not track the behaviour of the
    unsimulated DDD. I.e. his simulation is incorrect.  (PO knows about that but claims it doesn't
    matter, although on other occasions he still claims the simulation is correct.)


    Mike.


    But the bigger error that totally negates this trace is if you at where it begins, it is at program
    address 00002197, which just the page before is shown to be the address of _main.

    Since HHH was not given the address of main to start with, this can not be the trace that HHH itself
    is generating and looking at, but is instead the trace of the running of that top level HHH.

    Well, all PO's trace logs start with main! Something has to set up the required computation [aka
    the required TM + input tape]. That could be HHH(DDD), or maybe DDD() or whatever. PO might have
    done this through extra invocation arguments to x86utm.exe, and then there would have been no need
    to code a main() in his halt7.c user code file. But that would be decidedly fiddly, so having a
    fixed entry function main() is an ok convenience I'd say. The main() is not really part of his
    computation model, but x86utm traces the lot.

    Normally when PO gives code snippets, he includes the main() routine. In this case it is main
    calling HHH(DDD), so HHH as you say is the outer level HHH. (Later on in the trace we see simulated
    HHH entries...)

    Since that shows the trace isn't what he claims it is, nothing it says means anything for his argument.

    I can't see what PO claims the trace to be. That trace was taken and published some weeks ago, and
    doesn't match up exactly with todays partial trace - e.g. the addresses of HHH/DDD don't match and
    so on. If it's just wrong through being out of date, or because it has the main() trace on the
    front, that's not the worst of crimes...

    I see upthread that someone pointed out that the filtered trace "..stops and hides what happens when
    000015d2 is called." Well, the full trace does show the instructions of HHH being executed [even if
    the data is a bit out of date], and of course there are loads of conditional branches... so everyone
    should be happy! :)


    In fact, the way the trace is produced, it is clear that the tracing code doesn't care about what
    level of simulation it is working but calls to "DebugStep" just inject the data they trace as part
    of the code that is being traced, which isn't actually what is happening in the processor.

    That's correct. The full trace proceeds showing HHH executing its code as we would expect, and
    after some time HHH (actually a routine called by HHH) invokes a DebugStep op. We can see that the
    DebugStep op stepped HHH's simulation one instruction, which also appears in trace. Here is where
    that happens:

    ,,,
    [000011eb][00103783][00103863] 8b4d1c mov ecx,[ebp+1c] [000011ee][00103783][00103863] 8b11 mov edx,[ecx] [000011f0][0010377f][00103827] 52 push edx
    [000011f1][0010377f][00103827] e8b1f5ffff call 000007a7 <=== DebugStep [00002177][00113897][0011389b] 55 push ebp <=== simulated instruction
    [000011f6][0010378b][90909090] 83c40c add esp,+0c <=== next instructin after DebugStep
    [000011f9][0010378b][90909090] e8e9f5ffff call 000007e7
    ...

    The "push ebp" above is the first simulated instruction, and just appears in the trace straight
    after the call to DebugStep. [Note the apparent discontinuities in IP address and ESP (cols 1&2
    resp.) Yeah I know, /why isn't there a simulation level column/ ?]

    We could say that the trace as shown is a log of all the instructions x86utm "executes" in
    succession, so it is a merge of entries from all simulation levels - certainly it's not the x86
    "processor trace" it might be taken to be.

    Note - the "push ebp" instruction is the first simulated instruction of DDD(), which at least is the
    instruction we would expect it to be. In PO's normal "filtered" log output, all the other
    instructions above wouldn't appear as they're not from DDD.

    Of course these traces don't support PO's overall case he is claiming, because the (various) logs
    show that DDD halts, and that HHH(DDD) reports DDD as non-halting, exactly as Linz/Sipser argue.
    Er, that's about it!

    Whether it supports some minutia of what PO is currently arguing about - you'd have to explain to me
    exactly what he is claiming! (um, Please don't!)



    This seems to be part of the source for his confusion, and the tool he uses to try to spread his lies.

    such results should, at most, be inserted as a comment about what the results computed as meta-logic
    of the code just emulated did.

    But of course, noting that this second layer is just meta-results, and that the original emulator
    always had the option of stopping its emulation ruins his argument that the recursion is necessarily
    infinite.

    It's hard to pin down confusion sources. I agree PO doesn't need x86utm logs to argue his case, and
    including them doesn't /prove/ anything, especially when he admits the simulated code uses mutable
    static data to modify the behaviour of the simulation so that it does not match the unsimulated
    (outer) computation.

    I think PO views x86utm as some kind of "ultra authority" he can appeal to, to avoid having to
    actually prove his claims. [Which is funny, because the logs don't support his claims, but for some
    reason that passes him by...]

    Mike.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to Mike Terry on Fri Aug 2 19:12:23 2024
    On 8/2/24 6:23 PM, Mike Terry wrote:
    On 02/08/2024 19:25, Richard Damon wrote:
    On 8/2/24 1:39 PM, Mike Terry wrote:
    On 02/08/2024 11:12, Mikko wrote:
    On 2024-08-01 13:29:24 +0000, olcott said:

    On 8/1/2024 8:12 AM, Fred. Zwarts wrote:
    Op 01.aug.2024 om 14:20 schreef olcott:
    On 8/1/2024 3:10 AM, Fred. Zwarts wrote:
    Op 31.jul.2024 om 23:23 schreef olcott:
    On 7/31/2024 3:01 PM, Fred. Zwarts wrote:
    Op 31.jul.2024 om 17:14 schreef olcott:
    On 7/31/2024 3:44 AM, Fred. Zwarts wrote:
    Op 31.jul.2024 om 06:09 schreef olcott:

      machine   stack     stack     machine    assembly
      address   address   data      code       language
      ========  ========  ========  =========  ============= >>>>>>>>>>>>> [00002192][00103820][00000000] 55         push ebp >>>>>>>>>>>>> [00002193][00103820][00000000] 8bec       mov ebp,esp >>>>>>>>>>>>> [00002195][0010381c][00002172] 6872210000 push 00002172 ; >>>>>>>>>>>>> push DDD
    [0000219a][00103818][0000219f] e833f4ffff call 000015d2 ; >>>>>>>>>>>>> call HHH(DDD)
    New slave_stack at:1038c4

    We don't show any of HHH and show the execution trace of >>>>>>>>>>>>> of just DDD assuming that HHH is an x86 emulator.

    This assumption is incorrect if it means that HHH is an >>>>>>>>>>>> unconditional simulator that does not abort.
    This algorithm is used by all the simulating termination >>>>>>>>>>> analyzers:
    <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>

    So, Sipser only agreed to a correct simulation, not with an >>>>>>>>>> incorrect simulation that violates the semantics of the x86 >>>>>>>>>> language by skipping the last few instructions of a halting >>>>>>>>>> program.


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

    int main()
    {
       HHH(DD);
    }

    DD correctly emulated by HHH cannot possibly reach its own
    second line. I switched to DDD correctly emulated by HHH

    But it has been proven that no such HHH exists that simulates
    itself correctly. So, talking about a correct simulation by HHH >>>>>>>> is vacuous word salad.

    because only C experts understood the above example and we
    never had any of those here.

    There are many C experts that looked at it, but you only got
    critic, because you keep hiding important properties of HHH,
    which made the conclusion impossible.

    The following is all that is needed for 100% complete proof
    that HHH did emulate DDD correctly according to the semantics
    of the x86 language and did emulate itself emulating DDD
    according to these same semantics.

    You are repeating the same false claim with out any
    self-reflection. It has been pointed out that there are many
    errors in this proof.
    Why repeating such errors?


    _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]

    Begin Local Halt Decider Simulation   Execution Trace Stored
    at:1138cc
    [00002172][001138bc][001138c0] 55         push ebp      ; >>>>>>> housekeeping
    [00002173][001138bc][001138c0] 8bec       mov ebp,esp   ; >>>>>>> housekeeping
    [00002175][001138b8][00002172] 6872210000 push 00002172 ; push DDD >>>>>>> [0000217a][001138b4][0000217f] e853f4ffff call 000015d2 ; call
    HHH(DDD)

    The trace stops and hides what happens when 000015d2 is called.
    Olcott is hiding the conditional branch instructions in the
    recursion.


    *Here is the full trace where nothing is hidden*
    https://liarparadox.org/HHH(DDD)_Full_Trace.pdf

    On page 36 of that "trace"
        [0000128c][0010379f][00000018] e8e6f4ffff call 00000777
    is not followed by the trace of 00000777. Instead the trace continues
    with the next instruction after the return without any comment about
    the omission. Meaning of 00000777 is not told.


    777 is the address of Allocate, which is one of PO's "primative ops"
    within his "computing model". (Similar to his DebugStep().)

    It is implemented inside x86utm.exe (his COFF obj code runner), not
    in the user code DDD/HHH/etc. in the obj file, and so we would not
    expect to see any trace entries for its internals.  When the op
    concludes, rax has the address of the allocated memory, which is
    consistent with how a normal function would have returned the address.

    You can say correctly that PO has not explained this, but then he
    provided the full trace under protest, so it's understandable that he
    has not previously explained everything in it.  I'm surprised that
    his response to your post was both to ignore the question and accuse
    you of playing sadistic head games, as the question was perfectly
    sensible.

    You can look up the 777 address in the listing at the start of the
    trace and it's there along with a bunch of other routines which
    appear to just return without doing anything - those are all PO's
    primitive ops.  If you feel a need to understand exactly what they
    do, you'll need to check his source code!  (Although for Allocate
    there is no big surprise...)


    So your observation isn't really a problem beyond not being properly
    explained.  An actual problem seen in his trace data is that the
    simulation of DDD does not track the behaviour of the unsimulated
    DDD. I.e. his simulation is incorrect.  (PO knows about that but
    claims it doesn't matter, although on other occasions he still claims
    the simulation is correct.)


    Mike.


    But the bigger error that totally negates this trace is if you at
    where it begins, it is at program address 00002197, which just the
    page before is shown to be the address of _main.

    Since HHH was not given the address of main to start with, this can
    not be the trace that HHH itself is generating and looking at, but is
    instead the trace of the running of that top level HHH.

    Well, all PO's trace logs start with main!  Something has to set up the required computation [aka the required TM + input tape].  That could be HHH(DDD), or maybe DDD() or whatever.  PO might have done this through
    extra invocation arguments to x86utm.exe, and then there would have been
    no need to code a main() in his halt7.c user code file.  But that would
    be decidedly fiddly, so having a fixed entry function main() is an ok convenience I'd say.  The main() is not really part of his computation model, but x86utm traces the lot.

    Normally when PO gives code snippets, he includes the main() routine.
    In this case it is main calling HHH(DDD), so HHH as you say is the outer level HHH.  (Later on in the trace we see simulated HHH entries...)

    Since that shows the trace isn't what he claims it is, nothing it says
    means anything for his argument.

    I can't see what PO claims the trace to be.  That trace was taken and published some weeks ago, and doesn't match up exactly with todays
    partial trace - e.g. the addresses of HHH/DDD don't match and so on.  If it's just wrong through being out of date, or because it has the main()
    trace on the front, that's not the worst of crimes...

    I see upthread that someone pointed out that the filtered trace "..stops
    and hides what happens when 000015d2 is called."  Well, the full trace
    does show the instructions of HHH being executed [even if the data is a
    bit out of date], and of course there are loads of conditional
    branches... so everyone should be happy! :)


    In fact, the way the trace is produced, it is clear that the tracing
    code doesn't care about what level of simulation it is working but
    calls to "DebugStep" just inject the data they trace as part of the
    code that is being traced, which isn't actually what is happening in
    the processor.

    That's correct.  The full trace proceeds showing HHH executing its code
    as we would expect, and after some time HHH (actually a routine called
    by HHH) invokes a DebugStep op.  We can see that the DebugStep op
    stepped HHH's simulation one instruction, which also appears in trace.
    Here is where that happens:

    ,,,
    [000011eb][00103783][00103863] 8b4d1c mov ecx,[ebp+1c] [000011ee][00103783][00103863] 8b11 mov edx,[ecx] [000011f0][0010377f][00103827] 52 push edx
    [000011f1][0010377f][00103827] e8b1f5ffff call 000007a7     <=== DebugStep
    [00002177][00113897][0011389b] 55 push ebp                  <===
    simulated instruction
    [000011f6][0010378b][90909090] 83c40c add esp,+0c           <=== next
    instructin after DebugStep
    [000011f9][0010378b][90909090] e8e9f5ffff call 000007e7
    ...

    The "push ebp" above is the first simulated instruction, and just
    appears in the trace straight after the call to DebugStep.  [Note the apparent discontinuities in IP address and ESP (cols 1&2 resp.)  Yeah I know, /why isn't there a simulation level column/ ?]

    We could say that the trace as shown is a log of all the instructions
    x86utm "executes" in succession, so it is a merge of entries from all simulation levels - certainly it's not the x86 "processor trace" it
    might be taken to be.

    Note - the "push ebp" instruction is the first simulated instruction of DDD(), which at least is the instruction we would expect it to be.  In
    PO's normal "filtered" log output, all the other instructions above
    wouldn't appear as they're not from DDD.

    Of course these traces don't support PO's overall case he is claiming, because the (various) logs show that DDD halts, and that HHH(DDD)
    reports DDD as non-halting, exactly as Linz/Sipser argue. Er, that's
    about it!

    Whether it supports some minutia of what PO is currently arguing about - you'd have to explain to me exactly what he is claiming!  (um, Please don't!)



    This seems to be part of the source for his confusion, and the tool he
    uses to try to spread his lies.

    such results should, at most, be inserted as a comment about what the
    results computed as meta-logic of the code just emulated did.

    But of course, noting that this second layer is just meta-results, and
    that the original emulator always had the option of stopping its
    emulation ruins his argument that the recursion is necessarily infinite.

    It's hard to pin down confusion sources.  I agree PO doesn't need x86utm logs to argue his case, and including them doesn't /prove/ anything, especially when he admits the simulated code uses mutable static data to modify the behaviour of the simulation so that it does not match the unsimulated (outer) computation.

    I think PO views x86utm as some kind of "ultra authority" he can appeal
    to, to avoid having to actually prove his claims.  [Which is funny,
    because the logs don't support his claims, but for some reason that
    passes him by...]

    Mike.


    The problem is that he calls them traces of the emulation that HHH does,
    and it should never see that main, as it isn't part of what he has
    defined as the input.

    It is clear that this output is the output generated by x86utm, NOT just
    his HHH. As such, it is not the output he claims.

    It seems clear that he can't figure out how to get the x86UTM program to
    create just the trace of what HHH sees,

    He *CLAIMS* that HHH actually works on the full trace of DDD going into
    HHH, but apparently there is no way for him to show such a trace.

    WHen I last look in detail at the code, his H didn't actually trace into
    the decider itself, but just assumed that the decider was a emulator and started a nested emulation of it, just like he is currently showing. THe
    key point is he doesn't consider that the decider is a decider, but
    thinks of it as just an unconditional emuator, which is of course, and incorrect assumption.

    The problem he had with the version that tried to actually emulate the
    emulator but he needed the "illegal" static memory to let the decider
    know the recursion happened, so I suspect he just knows that he isn't
    actually doing what he claims, but is still using his old tricks, and
    just trying to hide it.

    The code does still appear to detecting if it is the "root" decider or
    not, but I am not sure if the code actually is doing anything.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to olcott on Fri Aug 2 19:17:21 2024
    On 8/2/24 6:55 PM, olcott wrote:
    On 8/2/2024 5:42 PM, Ben Bacarisse wrote:
    Mike Terry <news.dead.person.stones@darjeeling.plus.com> writes:

    Of course these traces don't support PO's overall case he is claiming,
    because the (various) logs show that DDD halts, and that HHH(DDD)
    reports
    DDD as non-halting, exactly as Linz/Sipser argue. Er, that's about it!

    PO certainly used to claim that false (non-halting) is the correct
    result "even though DDD halts" (I've edited the quote to reflect a name
    change).  Unless he's changed this position, the traces do support his
    claim that what everyone else calls the wrong answer is actually the
    right one.


    I had to simplify it into simpler steps because the
    recent people don't seem to know the first thing
    about programming.

    No, YOU don't know the first things about programming, like the actual
    behavior of the functions you call matter.


    Who here is too stupid to know that DDD correctly
    simulated by HHH cannot possibly reach its own
    return instruction?

    Which is irrelevent, since the HHH you talk about doesn't do that.

    That just shows that you are trying to use magic fairy dust powered logic.


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

    *You are the only one that got this much correctly*

    On 10/14/2022 7:44 PM, Ben Bacarisse wrote:
    I don't think that is the shell game.  PO really /has/ an H (it's
    trivial to do for this one case) that correctly determines that P(P) *would* never stop running *unless* aborted.
    ...
    But H determines (correctly) that D would not halt if it were not halted.  That much is a truism.

    *Even Mike got much less that that*


    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to olcott on Fri Aug 2 19:15:28 2024
    On 8/2/24 6:35 PM, olcott wrote:
    On 8/2/2024 5:23 PM, Mike Terry wrote:
    On 02/08/2024 19:25, Richard Damon wrote:
    On 8/2/24 1:39 PM, Mike Terry wrote:
    On 02/08/2024 11:12, Mikko wrote:
    On 2024-08-01 13:29:24 +0000, olcott said:

    On 8/1/2024 8:12 AM, Fred. Zwarts wrote:
    Op 01.aug.2024 om 14:20 schreef olcott:
    On 8/1/2024 3:10 AM, Fred. Zwarts wrote:
    Op 31.jul.2024 om 23:23 schreef olcott:
    On 7/31/2024 3:01 PM, Fred. Zwarts wrote:
    Op 31.jul.2024 om 17:14 schreef olcott:
    On 7/31/2024 3:44 AM, Fred. Zwarts wrote:
    Op 31.jul.2024 om 06:09 schreef olcott:

      machine   stack     stack     machine    assembly
      address   address   data      code       language
      ========  ========  ========  =========  ============= >>>>>>>>>>>>>> [00002192][00103820][00000000] 55         push ebp >>>>>>>>>>>>>> [00002193][00103820][00000000] 8bec       mov ebp,esp >>>>>>>>>>>>>> [00002195][0010381c][00002172] 6872210000 push 00002172 ; >>>>>>>>>>>>>> push DDD
    [0000219a][00103818][0000219f] e833f4ffff call 000015d2 ; >>>>>>>>>>>>>> call HHH(DDD)
    New slave_stack at:1038c4

    We don't show any of HHH and show the execution trace of >>>>>>>>>>>>>> of just DDD assuming that HHH is an x86 emulator.

    This assumption is incorrect if it means that HHH is an >>>>>>>>>>>>> unconditional simulator that does not abort.
    This algorithm is used by all the simulating termination >>>>>>>>>>>> analyzers:
    <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>

    So, Sipser only agreed to a correct simulation, not with an >>>>>>>>>>> incorrect simulation that violates the semantics of the x86 >>>>>>>>>>> language by skipping the last few instructions of a halting >>>>>>>>>>> program.


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

    int main()
    {
       HHH(DD);
    }

    DD correctly emulated by HHH cannot possibly reach its own >>>>>>>>>> second line. I switched to DDD correctly emulated by HHH

    But it has been proven that no such HHH exists that simulates >>>>>>>>> itself correctly. So, talking about a correct simulation by HHH >>>>>>>>> is vacuous word salad.

    because only C experts understood the above example and we >>>>>>>>>> never had any of those here.

    There are many C experts that looked at it, but you only got >>>>>>>>> critic, because you keep hiding important properties of HHH, >>>>>>>>> which made the conclusion impossible.

    The following is all that is needed for 100% complete proof
    that HHH did emulate DDD correctly according to the semantics
    of the x86 language and did emulate itself emulating DDD
    according to these same semantics.

    You are repeating the same false claim with out any self-
    reflection. It has been pointed out that there are many errors in >>>>>>> this proof.
    Why repeating such errors?


    _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]

    Begin Local Halt Decider Simulation   Execution Trace Stored >>>>>>>> at:1138cc
    [00002172][001138bc][001138c0] 55         push ebp      ; >>>>>>>> housekeeping
    [00002173][001138bc][001138c0] 8bec       mov ebp,esp   ; >>>>>>>> housekeeping
    [00002175][001138b8][00002172] 6872210000 push 00002172 ; push DDD >>>>>>>> [0000217a][001138b4][0000217f] e853f4ffff call 000015d2 ; call >>>>>>>> HHH(DDD)

    The trace stops and hides what happens when 000015d2 is called.
    Olcott is hiding the conditional branch instructions in the
    recursion.


    *Here is the full trace where nothing is hidden*
    https://liarparadox.org/HHH(DDD)_Full_Trace.pdf

    On page 36 of that "trace"
        [0000128c][0010379f][00000018] e8e6f4ffff call 00000777
    is not followed by the trace of 00000777. Instead the trace continues >>>>> with the next instruction after the return without any comment about >>>>> the omission. Meaning of 00000777 is not told.


    777 is the address of Allocate, which is one of PO's "primative ops"
    within his "computing model". (Similar to his DebugStep().)

    It is implemented inside x86utm.exe (his COFF obj code runner), not
    in the user code DDD/HHH/etc. in the obj file, and so we would not
    expect to see any trace entries for its internals.  When the op
    concludes, rax has the address of the allocated memory, which is
    consistent with how a normal function would have returned the address. >>>>
    You can say correctly that PO has not explained this, but then he
    provided the full trace under protest, so it's understandable that
    he has not previously explained everything in it.  I'm surprised
    that his response to your post was both to ignore the question and
    accuse you of playing sadistic head games, as the question was
    perfectly sensible.

    You can look up the 777 address in the listing at the start of the
    trace and it's there along with a bunch of other routines which
    appear to just return without doing anything - those are all PO's
    primitive ops.  If you feel a need to understand exactly what they
    do, you'll need to check his source code!  (Although for Allocate
    there is no big surprise...)


    So your observation isn't really a problem beyond not being properly
    explained.  An actual problem seen in his trace data is that the
    simulation of DDD does not track the behaviour of the unsimulated
    DDD. I.e. his simulation is incorrect.  (PO knows about that but
    claims it doesn't matter, although on other occasions he still
    claims the simulation is correct.)


    Mike.


    But the bigger error that totally negates this trace is if you at
    where it begins, it is at program address 00002197, which just the
    page before is shown to be the address of _main.

    Since HHH was not given the address of main to start with, this can
    not be the trace that HHH itself is generating and looking at, but is
    instead the trace of the running of that top level HHH.

    Well, all PO's trace logs start with main!  Something has to set up
    the required computation [aka the required TM + input tape].  That
    could be HHH(DDD), or maybe DDD() or whatever.  PO might have done
    this through extra invocation arguments to x86utm.exe, and then there
    would have been no need to code a main() in his halt7.c user code
    file.  But that would be decidedly fiddly, so having a fixed entry
    function main() is an ok convenience I'd say.  The main() is not
    really part of his computation model, but x86utm traces the lot.

    Normally when PO gives code snippets, he includes the main() routine.
    In this case it is main calling HHH(DDD), so HHH as you say is the
    outer level HHH.  (Later on in the trace we see simulated HHH entries...) >>
    Since that shows the trace isn't what he claims it is, nothing it
    says means anything for his argument.

    I can't see what PO claims the trace to be.  That trace was taken and
    published some weeks ago, and doesn't match up exactly with todays
    partial trace - e.g. the addresses of HHH/DDD don't match and so on.
    If it's just wrong through being out of date, or because it has the
    main() trace on the front, that's not the worst of crimes...

    I see upthread that someone pointed out that the filtered trace
    "..stops and hides what happens when 000015d2 is called."  Well, the
    full trace does show the instructions of HHH being executed [even if
    the data is a bit out of date], and of course there are loads of
    conditional branches... so everyone should be happy! :)


    In fact, the way the trace is produced, it is clear that the tracing
    code doesn't care about what level of simulation it is working but
    calls to "DebugStep" just inject the data they trace as part of the
    code that is being traced, which isn't actually what is happening in
    the processor.

    That's correct.  The full trace proceeds showing HHH executing its
    code as we would expect, and after some time HHH (actually a routine
    called by HHH) invokes a DebugStep op.  We can see that the DebugStep
    op stepped HHH's simulation one instruction, which also appears in
    trace. Here is where that happens:

    ,,,
    [000011eb][00103783][00103863] 8b4d1c mov ecx,[ebp+1c]
    [000011ee][00103783][00103863] 8b11 mov edx,[ecx]
    [000011f0][0010377f][00103827] 52 push edx
    [000011f1][0010377f][00103827] e8b1f5ffff call 000007a7     <===
    DebugStep
    [00002177][00113897][0011389b] 55 push ebp                  <===
    simulated instruction
    [000011f6][0010378b][90909090] 83c40c add esp,+0c           <=== next
    instructin after DebugStep
    [000011f9][0010378b][90909090] e8e9f5ffff call 000007e7
    ...

    The "push ebp" above is the first simulated instruction, and just
    appears in the trace straight after the call to DebugStep.  [Note the
    apparent discontinuities in IP address and ESP (cols 1&2 resp.)  Yeah
    I know, /why isn't there a simulation level column/ ?]

    We could say that the trace as shown is a log of all the instructions
    x86utm "executes" in succession, so it is a merge of entries from all
    simulation levels - certainly it's not the x86 "processor trace" it
    might be taken to be.

    Note - the "push ebp" instruction is the first simulated instruction
    of DDD(), which at least is the instruction we would expect it to be.
    In PO's normal "filtered" log output, all the other instructions above
    wouldn't appear as they're not from DDD.

    Of course these traces don't support PO's overall case he is claiming,
    because the (various) logs show that DDD halts, and that HHH(DDD)
    reports DDD as non-halting, exactly as Linz/Sipser argue. Er, that's
    about it!

    Whether it supports some minutia of what PO is currently arguing about
    - you'd have to explain to me exactly what he is claiming!  (um,
    Please don't!)



    This seems to be part of the source for his confusion, and the tool
    he uses to try to spread his lies.

    such results should, at most, be inserted as a comment about what the
    results computed as meta-logic of the code just emulated did.

    But of course, noting that this second layer is just meta-results,
    and that the original emulator always had the option of stopping its
    emulation ruins his argument that the recursion is necessarily infinite.

    It's hard to pin down confusion sources.  I agree PO doesn't need
    x86utm logs to argue his case, and including them doesn't /prove/
    anything, especially when he admits the simulated code uses mutable
    static data to modify the behaviour of the simulation so that it does
    not match the unsimulated (outer) computation.

    I think PO views x86utm as some kind of "ultra authority" he can
    appeal to, to avoid having to actually prove his claims.  [Which is
    funny, because the logs don't support his claims, but for some reason
    that passes him by...]

    Mike.



    *No dumbo. The ultimate authority is the x86 semantics of DDD*

    Which, without a definition of HHH, does HAVE semantics beyond 4
    instructions.


    _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]

    I have proved my point such that someone mostly clueless
    about the semantics of the x86 language would have understood
    that I have been correct all along with the original H/P
    three years ago.

    Nope, since you claim that these bytes alone define the behavior of DDD,
    you have demonstrated that you do not understand at all, how compututers
    work


    I have to simplify be proof so that anyone intentionally
    misconstruing it looks ridiculously stupid even to themselves.

    No, you need to leave out the details that show you are just a liar.


    Who here is too stupid to know that DDD correctly simulated
    by HHH cannot possibly reach its own return instruction?

    But, since you HHH doesn't do that, it is irrelevent.

    Sorry, Non-existant hypotheticals don't count.


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



    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Mike Terry@21:1/5 to Ben Bacarisse on Sat Aug 3 02:19:05 2024
    On 02/08/2024 23:42, Ben Bacarisse wrote:
    Mike Terry <news.dead.person.stones@darjeeling.plus.com> writes:

    Of course these traces don't support PO's overall case he is claiming,
    because the (various) logs show that DDD halts, and that HHH(DDD) reports
    DDD as non-halting, exactly as Linz/Sipser argue. Er, that's about it!

    PO certainly used to claim that false (non-halting) is the correct
    result "even though DDD halts" (I've edited the quote to reflect a name change). Unless he's changed this position, the traces do support his
    claim that what everyone else calls the wrong answer is actually the
    right one.


    So, in your opinion, what do you believe is PO's criterion for "correct result", exactly? It would
    be handy if you can give a proper mathematical definition so nobody will have any doubt what it is.
    Hey, I know you're more than capable of getting a definition right, so let's have that definition!

    Definition: A TM P given input I is said to "halt" iff ?????
    or whatever...

    It's easy enough to say "PO has his own criterion for halting, which is materially different from
    the HP condition, and so we all agree PO is correct by his own criterion, but that does not say
    anything about the HP theorem because it is different from the HP definition".

    But is that /really/ something PO agrees with? I don't think so somehow, because I'm pretty sure PO
    believes his claim "refutes" the HP result. He wouldn't say that if he freely acknowleded that he
    had invented a completely different definition for halting. Also, for what you're saying to be the
    right way of looking at things, PO would have to admit that the HP proof with its standard
    definition of halting is valid, and that there is nothing wrong with the Linz proof, other than it
    not applying to his own favourite PO-halting definition.

    I.e. I think your way of looking at it is a bit "too easy" - but I'd be happy to be convinced!
    Personally I suspect PO has no such "new and different definition" and that anything along those
    lines PO is thinking of will be quite incoherent. No doubt you could make some definition that is
    at least coherent but we have to ask ourselves - is that definition /really/ what PO is thinking???

    Nowadays, I think PO's position is more that:
    - yes, DDD() halts when run directly
    - but DDD() when it runs inside HHH simulator /really/ does not halt, in some kind of
    sense that it /really/ has infinite recursion which would never end
    however far it was simulated (because it "exhibits" infinite recursion in some way)
    - and yes, DDD() /does/ halt when simulated within UTM(DDD),
    - but the behaviour of DDD depends on who is simulating it. It terminates when
    UTM simulates it, but doesn't terminate when HHH simulates it, due to some
    kind of pathelogical relationship specifically with HHH. This difference in
    simulation is /more/ than one simulator aborting earlier than the other...


    Mike.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to Mike Terry on Fri Aug 2 21:56:01 2024
    On 8/2/24 9:19 PM, Mike Terry wrote:
    On 02/08/2024 23:42, Ben Bacarisse wrote:
    Mike Terry <news.dead.person.stones@darjeeling.plus.com> writes:

    Of course these traces don't support PO's overall case he is claiming,
    because the (various) logs show that DDD halts, and that HHH(DDD)
    reports
    DDD as non-halting, exactly as Linz/Sipser argue. Er, that's about it!

    PO certainly used to claim that false (non-halting) is the correct
    result "even though DDD halts" (I've edited the quote to reflect a name
    change).  Unless he's changed this position, the traces do support his
    claim that what everyone else calls the wrong answer is actually the
    right one.


    So, in your opinion, what do you believe is PO's criterion for "correct result", exactly?  It would be handy if you can give a proper
    mathematical definition so nobody will have any doubt what it is. Hey, I
    know you're more than capable of getting a definition right, so let's
    have that definition!

    Definition:  A TM P given input I is said to "halt" iff ?????
                 or whatever...

    It's easy enough to say "PO has his own criterion for halting, which is materially different from the HP condition, and so we all agree PO is
    correct by his own criterion, but that does not say anything about the
    HP theorem because it is different from the HP definition".

    But is that /really/ something PO agrees with?  I don't think so
    somehow, because I'm pretty sure PO believes his claim "refutes" the HP result.  He wouldn't say that if he freely acknowleded that he had
    invented a completely different definition for halting.  Also, for what you're saying to be the right way of looking at things, PO would have to admit that the HP proof with its standard definition of halting is
    valid, and that there is nothing wrong with the Linz proof, other than
    it not applying to his own favourite PO-halting definition.

    I.e. I think your way of looking at it is a bit "too easy" - but I'd be
    happy to be convinced! Personally I suspect PO has no such "new and
    different definition" and that anything along those lines PO is thinking
    of will be quite incoherent.  No doubt you could make some definition
    that is at least coherent but we have to ask ourselves - is that
    definition /really/ what PO is thinking???

    Nowadays, I think PO's position is more that:
    -  yes, DDD() halts when run directly
    -  but DDD() when it runs inside HHH simulator /really/ does not halt,
    in some kind of
       sense that it /really/ has infinite recursion which would never end
       however far it was simulated (because it "exhibits" infinite
    recursion in some way)
    -  and yes, DDD() /does/ halt when simulated within UTM(DDD),
    -  but the behaviour of DDD depends on who is simulating it.  It
    terminates when
       UTM simulates it, but doesn't terminate when HHH simulates it, due
    to some
       kind of pathelogical relationship specifically with HHH.  This difference in
       simulation is /more/ than one simulator aborting earlier than the other...


    Mike.


    My thoughts, which I am not sure is what Ben is thinking, but it goes
    like this.

    First, PO allows inputs to include something like a "template" instead
    of needing to be a full complete program, and templates, when decided on
    will be completed by pairing them with the decider that they are being
    given to. Regular programs just ignore this pairing, and don't use it.

    The "pathological input" of the halting proof is converted to such a
    template (and perhaps he has some rule to force this).

    The definition of halting is that if the input, when pair with a UTM
    will not halt, then the input is non-halting, but if when it is paired
    with the UTM, it comes to a final state, it is halting.

    This makes his "logic" of changing the decider to be a UTM and seeing
    tha tit ddoesn't halt, actualy be "proof" that the input is "non-halting".

    The problem being that the input at this point isn't actualy a program
    per the standard definitions, only a template.

    This is also why he wants the input to be just the code of the function
    DDD and not include the decider, as that makes it this non-program
    template subject to his alternate definition.

    Of course, we can still give his decider the original pathological
    program built on the copy of the decider, but he just tries to say that
    making copies of programs doesn't work, as copies don't need to behave
    teh same "because", which just shows his system just doesn't follow the
    basic laws of computation theory, because nothing he is doing is based
    on actual seperate computations.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Mike Terry@21:1/5 to Richard Damon on Sat Aug 3 04:11:10 2024
    On 03/08/2024 00:12, Richard Damon wrote:
    On 8/2/24 6:23 PM, Mike Terry wrote:
    On 02/08/2024 19:25, Richard Damon wrote:
    On 8/2/24 1:39 PM, Mike Terry wrote:
    On 02/08/2024 11:12, Mikko wrote:
    On 2024-08-01 13:29:24 +0000, olcott said:

    On 8/1/2024 8:12 AM, Fred. Zwarts wrote:
    Op 01.aug.2024 om 14:20 schreef olcott:
    On 8/1/2024 3:10 AM, Fred. Zwarts wrote:
    Op 31.jul.2024 om 23:23 schreef olcott:
    On 7/31/2024 3:01 PM, Fred. Zwarts wrote:
    Op 31.jul.2024 om 17:14 schreef olcott:
    On 7/31/2024 3:44 AM, Fred. Zwarts wrote:
    Op 31.jul.2024 om 06:09 schreef olcott:

      machine   stack     stack     machine    assembly >>>>>>>>>>>>>>   address   address   data      code       language >>>>>>>>>>>>>>   ========  ========  ========  =========  ============= >>>>>>>>>>>>>> [00002192][00103820][00000000] 55         push ebp >>>>>>>>>>>>>> [00002193][00103820][00000000] 8bec       mov ebp,esp >>>>>>>>>>>>>> [00002195][0010381c][00002172] 6872210000 push 00002172 ; push DDD
    [0000219a][00103818][0000219f] e833f4ffff call 000015d2 ; call HHH(DDD)
    New slave_stack at:1038c4

    We don't show any of HHH and show the execution trace of >>>>>>>>>>>>>> of just DDD assuming that HHH is an x86 emulator.

    This assumption is incorrect if it means that HHH is an unconditional simulator that
    does not abort.
    This algorithm is used by all the simulating termination analyzers:
    <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>

    So, Sipser only agreed to a correct simulation, not with an incorrect simulation that
    violates the semantics of the x86 language by skipping the last few instructions of a
    halting program.


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

    int main()
    {
       HHH(DD);
    }

    DD correctly emulated by HHH cannot possibly reach its own >>>>>>>>>> second line. I switched to DDD correctly emulated by HHH

    But it has been proven that no such HHH exists that simulates itself correctly. So, talking
    about a correct simulation by HHH is vacuous word salad.

    because only C experts understood the above example and we >>>>>>>>>> never had any of those here.

    There are many C experts that looked at it, but you only got critic, because you keep
    hiding important properties of HHH, which made the conclusion impossible.

    The following is all that is needed for 100% complete proof
    that HHH did emulate DDD correctly according to the semantics
    of the x86 language and did emulate itself emulating DDD
    according to these same semantics.

    You are repeating the same false claim with out any self-reflection. It has been pointed out
    that there are many errors in this proof.
    Why repeating such errors?


    _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]

    Begin Local Halt Decider Simulation   Execution Trace Stored at:1138cc >>>>>>>> [00002172][001138bc][001138c0] 55         push ebp      ; housekeeping >>>>>>>> [00002173][001138bc][001138c0] 8bec       mov ebp,esp   ; housekeeping >>>>>>>> [00002175][001138b8][00002172] 6872210000 push 00002172 ; push DDD >>>>>>>> [0000217a][001138b4][0000217f] e853f4ffff call 000015d2 ; call HHH(DDD)

    The trace stops and hides what happens when 000015d2 is called.
    Olcott is hiding the conditional branch instructions in the recursion. >>>>>>>

    *Here is the full trace where nothing is hidden*
    https://liarparadox.org/HHH(DDD)_Full_Trace.pdf

    On page 36 of that "trace"
        [0000128c][0010379f][00000018] e8e6f4ffff call 00000777
    is not followed by the trace of 00000777. Instead the trace continues >>>>> with the next instruction after the return without any comment about >>>>> the omission. Meaning of 00000777 is not told.


    777 is the address of Allocate, which is one of PO's "primative ops" within his "computing
    model". (Similar to his DebugStep().)

    It is implemented inside x86utm.exe (his COFF obj code runner), not in the user code
    DDD/HHH/etc. in the obj file, and so we would not expect to see any trace entries for its
    internals.  When the op concludes, rax has the address of the allocated memory, which is
    consistent with how a normal function would have returned the address. >>>>
    You can say correctly that PO has not explained this, but then he provided the full trace under
    protest, so it's understandable that he has not previously explained everything in it.  I'm
    surprised that his response to your post was both to ignore the question and accuse you of
    playing sadistic head games, as the question was perfectly sensible.

    You can look up the 777 address in the listing at the start of the trace and it's there along
    with a bunch of other routines which appear to just return without doing anything - those are
    all PO's primitive ops.  If you feel a need to understand exactly what they do, you'll need to
    check his source code!  (Although for Allocate there is no big surprise...)


    So your observation isn't really a problem beyond not being properly explained.  An actual
    problem seen in his trace data is that the simulation of DDD does not track the behaviour of the
    unsimulated DDD. I.e. his simulation is incorrect.  (PO knows about that but claims it doesn't
    matter, although on other occasions he still claims the simulation is correct.)


    Mike.


    But the bigger error that totally negates this trace is if you at where it begins, it is at
    program address 00002197, which just the page before is shown to be the address of _main.

    Since HHH was not given the address of main to start with, this can not be the trace that HHH
    itself is generating and looking at, but is instead the trace of the running of that top level HHH.

    Well, all PO's trace logs start with main!  Something has to set up the required computation [aka
    the required TM + input tape].  That could be HHH(DDD), or maybe DDD() or whatever.  PO might have
    done this through extra invocation arguments to x86utm.exe, and then there would have been no need
    to code a main() in his halt7.c user code file.  But that would be decidedly fiddly, so having a
    fixed entry function main() is an ok convenience I'd say.  The main() is not really part of his
    computation model, but x86utm traces the lot.

    Normally when PO gives code snippets, he includes the main() routine. In this case it is main
    calling HHH(DDD), so HHH as you say is the outer level HHH.  (Later on in the trace we see
    simulated HHH entries...)

    Since that shows the trace isn't what he claims it is, nothing it says means anything for his
    argument.

    I can't see what PO claims the trace to be.  That trace was taken and published some weeks ago,
    and doesn't match up exactly with todays partial trace - e.g. the addresses of HHH/DDD don't match
    and so on.  If it's just wrong through being out of date, or because it has the main() trace on
    the front, that's not the worst of crimes...

    I see upthread that someone pointed out that the filtered trace "..stops and hides what happens
    when 000015d2 is called."  Well, the full trace does show the instructions of HHH being executed
    [even if the data is a bit out of date], and of course there are loads of conditional branches...
    so everyone should be happy! :)


    In fact, the way the trace is produced, it is clear that the tracing code doesn't care about what
    level of simulation it is working but calls to "DebugStep" just inject the data they trace as
    part of the code that is being traced, which isn't actually what is happening in the processor.

    That's correct.  The full trace proceeds showing HHH executing its code as we would expect, and
    after some time HHH (actually a routine called by HHH) invokes a DebugStep op.  We can see that
    the DebugStep op stepped HHH's simulation one instruction, which also appears in trace. Here is
    where that happens:

    ,,,
    [000011eb][00103783][00103863] 8b4d1c mov ecx,[ebp+1c]
    [000011ee][00103783][00103863] 8b11 mov edx,[ecx]
    [000011f0][0010377f][00103827] 52 push edx
    [000011f1][0010377f][00103827] e8b1f5ffff call 000007a7     <=== DebugStep >> [00002177][00113897][0011389b] 55 push ebp                  <=== simulated instruction
    [000011f6][0010378b][90909090] 83c40c add esp,+0c           <=== next instructin after DebugStep
    [000011f9][0010378b][90909090] e8e9f5ffff call 000007e7
    ...

    The "push ebp" above is the first simulated instruction, and just appears in the trace straight
    after the call to DebugStep.  [Note the apparent discontinuities in IP address and ESP (cols 1&2
    resp.)  Yeah I know, /why isn't there a simulation level column/ ?]

    We could say that the trace as shown is a log of all the instructions x86utm "executes" in
    succession, so it is a merge of entries from all simulation levels - certainly it's not the x86
    "processor trace" it might be taken to be.

    Note - the "push ebp" instruction is the first simulated instruction of DDD(), which at least is
    the instruction we would expect it to be.  In PO's normal "filtered" log output, all the other
    instructions above wouldn't appear as they're not from DDD.

    Of course these traces don't support PO's overall case he is claiming, because the (various) logs
    show that DDD halts, and that HHH(DDD) reports DDD as non-halting, exactly as Linz/Sipser argue.
    Er, that's about it!

    Whether it supports some minutia of what PO is currently arguing about - you'd have to explain to
    me exactly what he is claiming!  (um, Please don't!)



    This seems to be part of the source for his confusion, and the tool he uses to try to spread his
    lies.

    such results should, at most, be inserted as a comment about what the results computed as
    meta-logic of the code just emulated did.

    But of course, noting that this second layer is just meta-results, and that the original emulator
    always had the option of stopping its emulation ruins his argument that the recursion is
    necessarily infinite.

    It's hard to pin down confusion sources.  I agree PO doesn't need x86utm logs to argue his case,
    and including them doesn't /prove/ anything, especially when he admits the simulated code uses
    mutable static data to modify the behaviour of the simulation so that it does not match the
    unsimulated (outer) computation.

    I think PO views x86utm as some kind of "ultra authority" he can appeal to, to avoid having to
    actually prove his claims.  [Which is funny, because the logs don't support his claims, but for
    some reason that passes him by...]

    Mike.


    The problem is that he calls them traces of the emulation that HHH does, and it should never see
    that main, as it isn't part of what he has defined as the input.

    Does he? I'm not convinced. Perhaps that's just how you've always interpreted it. Or perhaps that
    really is what PO claims. Anyhow, PO knows his traces start at main(). Perhaps PO just claims or
    means that the trace /contains/ the simulation that HHH does - that would make sense. We do need to
    be clear whether we're looking at simulation trace entries or outer HHH trace entries as they behave
    a differently (due to misused mutable static data).


    It is clear that this output is the output generated by x86utm,

    That's perfectly correct. X86utm "runs" starting from the main() from its input COFF (object) file
    which contains main() and everything it calls/simulates. x86utm logs what it runs - BUT, generally
    deliberately skips logging of code outside of DDD itself. This is similar but distinct filtering
    from HHH's "(global) trace table" which also happens to skip code outside of DDD, as explained below.

    NOT just his HHH. As such, it is not
    the output he claims.

    Not convinced, as above.


    It seems clear that he can't figure out how to get the x86UTM program to create just the trace of
    what HHH sees,

    There are two separate concepts here:

    - there is the x86utm *LOG* of executed instructions. (That's what PO publishes
    from time to time). Entries are written by x86utm.exe

    - there is the HHH "global *TRACE table*" which is a static array, maintained
    by HHH and inner HHH's that HHH examines when it applies its Abort criteria.
    This is HHH application data within the virtual x86 address space.

    The LOG is far more useful for working out definitively what is going on. For a start, the TRACE
    table only needs to contain entries of interest for the HHH Abort criteria. Since those criteria
    only require knowledge of what instructions within the bounds of C function DDD have done, only
    instructions within DDD go into the TRACE. Even if PO LOGs instructions in HHH (as he did in his
    published "full log" .pdf file) it will still be the case that the TRACE table only contains DDD
    instructions.

    From the log entries it is clear what HHH will have in its trace table. Conceptually, each HHH
    would have its own trace table /if PO hadn't messed up the nested simulation/, but there is just the
    one output log which (should) cover everything that goes on.


    He *CLAIMS* that HHH actually works on the full trace of DDD going into HHH, but apparently there is
    no way for him to show such a trace.

    That depends on what you mean by "actually works on the full trace".

    All the HHH's call DebugStep() to step their simulations, and inspect the result which is the result
    of the simulated instruction, which could be in HHH or a subroutine, or within the bounds of the C
    function DDD. So HHH is "working on the full trace", right? This is what I think PO says, in
    response to your claims that his simulations do not "simulate the simulator".

    But having inspected the result of the simulated instruction, ONLY INSTRUCTIONS IN DDD are added to
    the global trace table. And only the contents of that global trace table is inspected for the
    purposes of deciding whether to abort. E.g. the abort criteria may include "no conditional branches
    between the two calls", but that means "no conditional branches between the two calls recorded in
    the GLOBAL TRACE TABLE", which in turn means "no conditional branches between the two calls made
    from within DDD bounds". And similarly it implies that the two calls in question are within DDD
    bounds too.

    Also, ONLY OUTER HHH uses the global trace table to test the abort criteria - simulated HHH's just
    skips that bit.


    WHen I last look in detail at the code, his H didn't actually trace into the decider itself, but
    just assumed that the decider was a emulator and started a nested emulation of it, just like he is
    currently showing. THe key point is he doesn't consider that the decider is a decider, but thinks of
    it as just an unconditional emuator, which is of course, and incorrect assumption.

    Well, you can see the full published Log trace. I would say that clearly shows HHH tracing into
    itself. [Although as covered elsewhere, there is the issue that behaviour of HHH being traced does
    not match outer HHH as only outer HHH performs any abort tests.] Perhaps what you remember is how
    it worked a long time ago? [Perhaps when he had what he called the "Global halt decider" which was
    like moving the termination logic out of user code HHH into x86utm.]


    The problem he had with the version that tried to actually emulate the emulator but he needed the
    "illegal" static memory to let the decider know the recursion happened, so I suspect he just knows
    that he isn't actually doing what he claims, but is still using his old tricks, and just trying to
    hide it.

    Hmm, there was H, which never did nested simulations, because H's abort criteria included use of H's
    own (unsimulated) address for judging its simulation behaviour. So as soon as H gets to simulating
    D calling H (at simulation depth 1) it would abort! Hence no need for handling nested simulations,
    and no need for a global table. (I forget whether it actually had a global table, but it arguably
    didn't need one if the only cases we're interested in are H(D) and D().)

    When you get to HH or HHH there will be nested simulations, and that's where PO introduced his
    "illegal" static memory - as a mechanism for outer to HHH's to receive simulation results from
    recursively simulated routines. [More accurately from recursively simulated HHH's. HHH1 has its
    own static variable separating its behaviour from HHH...]


    The code does still appear to detecting if it is the "root" decider or not, but I am not sure if the
    code actually is doing anything.

    Yes. He is still using it to modify the behaviour of simulated HHH's with the result that it does
    not match that of outer HHH. You can see that in the .pdf file if you look closely enough. [If you
    can be bothered, the key is to focus on the DebugStep() calls, and look at the following instruction
    which is the simulated instruction (which may itself be a DebugStep op, and so on).]


    Mike.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Jeff Barnett@21:1/5 to All on Fri Aug 2 22:32:12 2024
    T24gOC8yLzIwMjQgNzoxOSBQTSwgTWlrZSBUZXJyeSB3cm90ZToNCj4gT24gMDIvMDgvMjAy NCAyMzo0MiwgQmVuIEJhY2FyaXNzZSB3cm90ZToNCj4+IE1pa2UgVGVycnkgPG5ld3MuZGVh ZC5wZXJzb24uc3RvbmVzQGRhcmplZWxpbmcucGx1cy5jb20+IHdyaXRlczoNCj4+DQo+Pj4g T2YgY291cnNlIHRoZXNlIHRyYWNlcyBkb24ndCBzdXBwb3J0IFBPJ3Mgb3ZlcmFsbCBjYXNl IGhlIGlzIGNsYWltaW5nLA0KPj4+IGJlY2F1c2UgdGhlICh2YXJpb3VzKSBsb2dzIHNob3cg dGhhdCBEREQgaGFsdHMsIGFuZCB0aGF0IEhISChEREQpIA0KPj4+IHJlcG9ydHMNCj4+PiBE REQgYXMgbm9uLWhhbHRpbmcsIGV4YWN0bHkgYXMgTGluei9TaXBzZXIgYXJndWUuIEVyLCB0 aGF0J3MgYWJvdXQgaXQhDQo+Pg0KPj4gUE8gY2VydGFpbmx5IHVzZWQgdG8gY2xhaW0gdGhh dCBmYWxzZSAobm9uLWhhbHRpbmcpIGlzIHRoZSBjb3JyZWN0DQo+PiByZXN1bHQgImV2ZW4g dGhvdWdoIERERCBoYWx0cyIgKEkndmUgZWRpdGVkIHRoZSBxdW90ZSB0byByZWZsZWN0IGEg bmFtZQ0KPj4gY2hhbmdlKS7CoCBVbmxlc3MgaGUncyBjaGFuZ2VkIHRoaXMgcG9zaXRpb24s IHRoZSB0cmFjZXMgZG8gc3VwcG9ydCBoaXMNCj4+IGNsYWltIHRoYXQgd2hhdCBldmVyeW9u ZSBlbHNlIGNhbGxzIHRoZSB3cm9uZyBhbnN3ZXIgaXMgYWN0dWFsbHkgdGhlDQo+PiByaWdo dCBvbmUuDQo+Pg0KPiANCj4gU28sIGluIHlvdXIgb3Bpbmlvbiwgd2hhdCBkbyB5b3UgYmVs aWV2ZSBpcyBQTydzIGNyaXRlcmlvbiBmb3IgImNvcnJlY3QgDQo+IHJlc3VsdCIsIGV4YWN0 bHk/wqAgSXQgd291bGQgYmUgaGFuZHkgaWYgeW91IGNhbiBnaXZlIGEgcHJvcGVyIA0KPiBt YXRoZW1hdGljYWwgZGVmaW5pdGlvbiBzbyBub2JvZHkgd2lsbCBoYXZlIGFueSBkb3VidCB3 aGF0IGl0IGlzLiBIZXksIEkgDQo+IGtub3cgeW91J3JlIG1vcmUgdGhhbiBjYXBhYmxlIG9m IGdldHRpbmcgYSBkZWZpbml0aW9uIHJpZ2h0LCBzbyBsZXQncyANCj4gaGF2ZSB0aGF0IGRl ZmluaXRpb24hDQo+IA0KPiBEZWZpbml0aW9uOsKgIEEgVE0gUCBnaXZlbiBpbnB1dCBJIGlz IHNhaWQgdG8gImhhbHQiIGlmZiA/Pz8/Pw0KPiAgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg IG9yIHdoYXRldmVyLi4uDQoNCkkgdGhpbmsgdGhpcyBpcyBhIHJhdGhlciBob3BlbGVzcyB2 ZW50dXJlIHdpdGhvdXQgZm9ybWFsbHkgZGVmaW5pbmcgdGhlIA0KcmVwcmVzZW50YXRpb24g b2YgYSBUTS4gRm9yIGV4YW1wbGU6IEluIHNvbWUgZm9ybXVsYXRpb25zLCB0aGVyZSBhcmUg DQpzcGVjaWZpYyBzdGF0ZXMgZGVmaW5lZCBhcyAiaGFsdGluZyBzdGF0ZXMiIGFuZCB0aGUg bWFjaGluZSBvbmx5IGhhbHRzIA0KaWYgZWl0aGVyIHRoZSBzdGFydCBzdGF0ZSBpcyBhIGhh bHQgc3RhdGUgb3IgdGhlcmUgaXMgYSB0cmFuc2l0aW9uIHRvIGEgDQpoYWx0IHN0YXRlIHdp dGhpbiB0aGUgZXhlY3V0aW9uIHRyYWNlOyBJbiBhbm90aGVyIGZvcm11bGF0aW9uLCBtYWNo aW5lcyANCmhhbHQgaWYgdGhlcmUgaXMgYSB0cmFuc2l0aW9uIHRvIGFuIHVuZGVmaW5lZCBz dGF0ZS4gTm90ZSBhIGZldyB0aGluZ3M6IA0KMSkgdGhlIGlmJ3MgYWJvdmUgYXJlIHJlYWxs eSBpZmYncywgMikgdGhlc2UgYW5kIG1hbnkgb3RoZXIgZGVmaW5pdGlvbnMgDQphbGwgaGF2 ZSBlcXVpdmFsZW50IGNvbXB1dGluZyBwcm93ZXNzLCAzKSBTb21lIGZvcm11bGF0aW9ucyBk ZWZpbmUgDQpyZXN1bHRzIGJ5IHdoYXQgaXMgbGVmdCBvbiB0aGUgdGFwZSAob3Igb3RoZXIg c3RvcmFnZSBkZXZpY2UpIHdoaWxlIA0Kb3RoZXJzIGFkZCB0aGUgYWN0dWFsIGhhbHRpbmcg c3RhdGUgdG8gZGV0ZXJtaW5lIHRoZSByZXN1bHRzLg0KDQpJbiBhIGNvbnZlcnNhdGlvbiBh Ym91dCBzdWNoIHRvcGljcywgZ2VudGxlbWVuIG9mIGdvb2QgZmFpdGggYW5kIA0KcmVhc29u YWJsZSBrbm93bGVkZ2UgY2FuIHNpbXBsZSBpZ25vcmUgdGhlc2UgZGlmZmVyZW5jZXMgYW5k IG5vdCBnbyBvZmYgDQp0aGUgcmFpbHMuIFRoaXMgaXMgbm90IHRydWUgd2hlbiB0aGUgcGll ZCBwaXBlciBpcyBpZ25vcmFudCwgDQpkaXNpbGx1c2lvbmFsLCBhbmQgbWFzdHVyYmF0aW5n IHdoaWxlIHNpbXVsdGFuZW91c2x5IHNwaW5uaW5nIGEgaHVsYSANCmhvb3AgYXJvdW5kIGhp cyBuZWNrLg0KDQo+IEl0J3MgZWFzeSBlbm91Z2ggdG8gc2F5ICJQTyBoYXMgaGlzIG93biBj cml0ZXJpb24gZm9yIGhhbHRpbmcsIHdoaWNoIGlzIA0KPiBtYXRlcmlhbGx5IGRpZmZlcmVu dCBmcm9tIHRoZSBIUCBjb25kaXRpb24sIGFuZCBzbyB3ZSBhbGwgYWdyZWUgUE8gaXMgDQo+ IGNvcnJlY3QgYnkgaGlzIG93biBjcml0ZXJpb24sIGJ1dCB0aGF0IGRvZXMgbm90IHNheSBh bnl0aGluZyBhYm91dCB0aGUgDQo+IEhQIHRoZW9yZW0gYmVjYXVzZSBpdCBpcyBkaWZmZXJl bnQgZnJvbSB0aGUgSFAgZGVmaW5pdGlvbiIuDQo+IA0KPiBCdXQgaXMgdGhhdCAvcmVhbGx5 LyBzb21ldGhpbmcgUE8gYWdyZWVzIHdpdGg/wqAgSSBkb24ndCB0aGluayBzbyANCj4gc29t ZWhvdywgYmVjYXVzZSBJJ20gcHJldHR5IHN1cmUgUE8gYmVsaWV2ZXMgaGlzIGNsYWltICJy ZWZ1dGVzIiB0aGUgSFAgDQo+IHJlc3VsdC7CoCBIZSB3b3VsZG4ndCBzYXkgdGhhdCBpZiBo ZSBmcmVlbHkgYWNrbm93bGVkZWQgdGhhdCBoZSBoYWQgDQo+IGludmVudGVkIGEgY29tcGxl dGVseSBkaWZmZXJlbnQgZGVmaW5pdGlvbiBmb3IgaGFsdGluZy7CoCBBbHNvLCBmb3Igd2hh dCANCj4geW91J3JlIHNheWluZyB0byBiZSB0aGUgcmlnaHQgd2F5IG9mIGxvb2tpbmcgYXQg dGhpbmdzLCBQTyB3b3VsZCBoYXZlIHRvIA0KPiBhZG1pdCB0aGF0IHRoZSBIUCBwcm9vZiB3 aXRoIGl0cyBzdGFuZGFyZCBkZWZpbml0aW9uIG9mIGhhbHRpbmcgaXMgDQo+IHZhbGlkLCBh bmQgdGhhdCB0aGVyZSBpcyBub3RoaW5nIHdyb25nIHdpdGggdGhlIExpbnogcHJvb2YsIG90 aGVyIHRoYW4gDQo+IGl0IG5vdCBhcHBseWluZyB0byBoaXMgb3duIGZhdm91cml0ZSBQTy1o YWx0aW5nIGRlZmluaXRpb24uDQo+IA0KPiBJLmUuIEkgdGhpbmsgeW91ciB3YXkgb2YgbG9v a2luZyBhdCBpdCBpcyBhIGJpdCAidG9vIGVhc3kiIC0gYnV0IEknZCBiZSANCj4gaGFwcHkg dG8gYmUgY29udmluY2VkISBQZXJzb25hbGx5IEkgc3VzcGVjdCBQTyBoYXMgbm8gc3VjaCAi bmV3IGFuZCANCj4gZGlmZmVyZW50IGRlZmluaXRpb24iIGFuZCB0aGF0IGFueXRoaW5nIGFs b25nIHRob3NlIGxpbmVzIFBPIGlzIHRoaW5raW5nIA0KPiBvZiB3aWxsIGJlIHF1aXRlIGlu Y29oZXJlbnQuwqAgTm8gZG91YnQgeW91IGNvdWxkIG1ha2Ugc29tZSBkZWZpbml0aW9uIA0K PiB0aGF0IGlzIGF0IGxlYXN0IGNvaGVyZW50IGJ1dCB3ZSBoYXZlIHRvIGFzayBvdXJzZWx2 ZXMgLSBpcyB0aGF0IA0KPiBkZWZpbml0aW9uIC9yZWFsbHkvIHdoYXQgUE8gaXMgdGhpbmtp bmc/Pz8NCj4gDQo+IE5vd2FkYXlzLCBJIHRoaW5rIFBPJ3MgcG9zaXRpb24gaXMgbW9yZSB0 aGF0Og0KPiAtwqAgeWVzLCBEREQoKSBoYWx0cyB3aGVuIHJ1biBkaXJlY3RseQ0KPiAtwqAg YnV0IERERCgpIHdoZW4gaXQgcnVucyBpbnNpZGUgSEhIIHNpbXVsYXRvciAvcmVhbGx5LyBk b2VzIG5vdCBoYWx0LCANCj4gaW4gc29tZSBraW5kIG9mDQo+ICDCoMKgIHNlbnNlIHRoYXQg aXQgL3JlYWxseS8gaGFzIGluZmluaXRlIHJlY3Vyc2lvbiB3aGljaCB3b3VsZCBuZXZlciBl bmQNCj4gIMKgwqAgaG93ZXZlciBmYXIgaXQgd2FzIHNpbXVsYXRlZCAoYmVjYXVzZSBpdCAi ZXhoaWJpdHMiIGluZmluaXRlIA0KPiByZWN1cnNpb24gaW4gc29tZSB3YXkpDQo+IC3CoCBh bmQgeWVzLCBEREQoKSAvZG9lcy8gaGFsdCB3aGVuIHNpbXVsYXRlZCB3aXRoaW4gVVRNKERE RCksDQo+IC3CoCBidXQgdGhlIGJlaGF2aW91ciBvZiBEREQgZGVwZW5kcyBvbiB3aG8gaXMg c2ltdWxhdGluZyBpdC7CoCBJdCANCj4gdGVybWluYXRlcyB3aGVuDQo+ICDCoMKgIFVUTSBz aW11bGF0ZXMgaXQsIGJ1dCBkb2Vzbid0IHRlcm1pbmF0ZSB3aGVuIEhISCBzaW11bGF0ZXMg aXQsIGR1ZSANCj4gdG8gc29tZQ0KPiAgwqDCoCBraW5kIG9mIHBhdGhlbG9naWNhbCByZWxh dGlvbnNoaXAgc3BlY2lmaWNhbGx5IHdpdGggSEhILsKgIFRoaXMgDQo+IGRpZmZlcmVuY2Ug aW4NCj4gIMKgwqAgc2ltdWxhdGlvbiBpcyAvbW9yZS8gdGhhbiBvbmUgc2ltdWxhdG9yIGFi b3J0aW5nIGVhcmxpZXIgdGhhbiB0aGUgDQo+IG90aGVyLi4uLS0gDQpKZWZmIEJhcm5ldHQN
    Cg0K

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Fred. Zwarts@21:1/5 to All on Sat Aug 3 10:25:55 2024
    Op 02.aug.2024 om 13:24 schreef olcott:
    On 8/2/2024 3:13 AM, Fred. Zwarts wrote:
    Op 01.aug.2024 om 23:03 schreef olcott:
    On 8/1/2024 2:30 PM, Fred. Zwarts wrote:
    Op 01.aug.2024 om 18:32 schreef olcott:
    On 8/1/2024 11:11 AM, joes wrote:
    Am Thu, 01 Aug 2024 09:30:00 -0500 schrieb olcott:
    On 8/1/2024 9:23 AM, Fred. Zwarts wrote:
    Op 01.aug.2024 om 15:29 schreef olcott:
    On 8/1/2024 8:12 AM, Fred. Zwarts wrote:
    Op 01.aug.2024 om 14:20 schreef olcott:
    On 8/1/2024 3:10 AM, Fred. Zwarts wrote:
    Op 31.jul.2024 om 23:23 schreef olcott:
    On 7/31/2024 3:01 PM, Fred. Zwarts wrote:
    Op 31.jul.2024 om 17:14 schreef olcott:
    On 7/31/2024 3:44 AM, Fred. Zwarts wrote:
    Op 31.jul.2024 om 06:09 schreef olcott:

    The trace stops and hides what happens when 000015d2 is called. >>>>>>>>>> Olcott is hiding the conditional branch instructions in the >>>>>>>>>> recursion.
    These next lines conclusively prove that DDD is being correctly >>>>>>>>> emulated by HHH after DDD calls HHH(DDD).
    It also shows that HHH when simulating itself, does not reach
    the end
    of its own simulation.
    If you weren't a clueless wonder you would understand that DDD
    correctly
    emulated by HHH including HHH emulating itself emulated DDD has
    no end
    of correct emulation.

    It does if the simulated HHH aborts, but its simulating copy preempts >>>>>> that. Indeed, it has no choice, but if it didn't abort, the
    simulation
    wouldn't abort either. Therefore it can't simulate itself.


    <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> >>>>
    Sipser agreed only to a correct simulation.

    of N steps.

    Without skipping M steps of a halting program.


    THAT IS WRONG. IT IS MAKING SURE TO SKIP ALL THE STEPS AFTER

    Are you shouting because you see my claim is true?


    H correctly determines that its simulated D would never
    stop running unless aborted

    It skips the last M steps of a halting program. The programmer was very confused when he thought that two recursions implied an infinite number
    of recursions. He did not notice that one cycle later the halting
    program would halt.
    The 'never stop running unless aborted' is irrelevant, because the
    simulated program does abort and halt.
    You are dreaming of a HHH that does not abort. Dreams are no substitute
    for fact, nor for logic.




    I spent two years carefully composing the above before I even
    asked professor Sipser to review it.

    DDD is correctly emulated by HHH until HHH sees the same
    never ending pattern that anyone else can see.

    The never ending pattern is there only in your dreams. The HHH that
    halts after two cycles has a halting pattern.

    In order for DDD correctly emulated by HHH to halt
    DDD correctly emulated  must reach its emulated "ret"
    instruction. This <is> impossible.

    Indeed! HHH cannot possibly simulate itself correctly.

    You are a damned liar about how correct emulation is defined.


    The fact that you need such language reveals how uncertain you feel
    about your claims.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Mikko@21:1/5 to olcott on Sat Aug 3 11:54:05 2024
    On 2024-08-02 11:24:59 +0000, olcott said:

    On 8/2/2024 3:13 AM, Fred. Zwarts wrote:
    Op 01.aug.2024 om 23:03 schreef olcott:
    On 8/1/2024 2:30 PM, Fred. Zwarts wrote:
    Op 01.aug.2024 om 18:32 schreef olcott:
    On 8/1/2024 11:11 AM, joes wrote:
    Am Thu, 01 Aug 2024 09:30:00 -0500 schrieb olcott:
    On 8/1/2024 9:23 AM, Fred. Zwarts wrote:
    Op 01.aug.2024 om 15:29 schreef olcott:
    On 8/1/2024 8:12 AM, Fred. Zwarts wrote:
    Op 01.aug.2024 om 14:20 schreef olcott:
    On 8/1/2024 3:10 AM, Fred. Zwarts wrote:
    Op 31.jul.2024 om 23:23 schreef olcott:
    On 7/31/2024 3:01 PM, Fred. Zwarts wrote:
    Op 31.jul.2024 om 17:14 schreef olcott:
    On 7/31/2024 3:44 AM, Fred. Zwarts wrote:
    Op 31.jul.2024 om 06:09 schreef olcott:

    The trace stops and hides what happens when 000015d2 is called. >>>>>>>>>> Olcott is hiding the conditional branch instructions in the >>>>>>>>>> recursion.
    These next lines conclusively prove that DDD is being correctly >>>>>>>>> emulated by HHH after DDD calls HHH(DDD).
    It also shows that HHH when simulating itself, does not reach the end >>>>>>>> of its own simulation.
    If you weren't a clueless wonder you would understand that DDD correctly
    emulated by HHH including HHH emulating itself emulated DDD has no end >>>>>>> of correct emulation.

    It does if the simulated HHH aborts, but its simulating copy preempts >>>>>> that. Indeed, it has no choice, but if it didn't abort, the simulation >>>>>> wouldn't abort either. Therefore it can't simulate itself.


    <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> >>>>
    Sipser agreed only to a correct simulation.

    of N steps.

    Without skipping M steps of a halting program.


    THAT IS WRONG. IT IS MAKING SURE TO SKIP ALL THE STEPS AFTER

    H correctly determines that its simulated D would never
    stop running unless aborted



    I spent two years carefully composing the above before I even
    asked professor Sipser to review it.

    DDD is correctly emulated by HHH until HHH sees the same
    never ending pattern that anyone else can see.

    The never ending pattern is there only in your dreams. The HHH that
    halts after two cycles has a halting pattern.

    In order for DDD correctly emulated by HHH to halt
    DDD correctly emulated  must reach its emulated "ret"
    instruction. This <is> impossible.

    Indeed! HHH cannot possibly simulate itself correctly.

    You are a damned liar about how correct emulation is defined.

    Emulation (of a program) is defined as execution of a program without the execution environment the program is made for. (The environment the program
    is made for is called "target environment" and whatever is used instead is called an "emulator".) Correct emulaton simply means that emulation does the same as the execution in the target environment. This follows from the usual meaning of "correct" so "correct emulation" needn't be defined.

    --
    Mikko

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Mikko@21:1/5 to olcott on Sat Aug 3 11:58:25 2024
    On 2024-08-02 11:21:17 +0000, olcott said:

    On 8/2/2024 5:19 AM, Mikko wrote:
    On 2024-08-01 16:32:23 +0000, olcott said:

    <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>

    I spent two years carefully composing the above before I even
    asked professor Sipser to review it.

    DDD is correctly emulated by HHH until HHH sees the same
    never ending pattern that anyone else can see.

    Maybe HHH really sees a never ending pattern but that pattern is not
    contained in the behaviour specified by DDD and therefore not relevant.


    When DDD correctly emulated by HHH keep repeating
    its first four instructions because it calls HHH(DDD)
    this does prove that DDD cannot possibly reach its
    own "ret" instruction and halt, thus DDD correctly
    emulated by HHH <is> non-halting even when it stops
    running.

    How is your expression of a disgreement with a self-evident thruth
    (that a process that stops is not non-halting) different from lying?

    --
    Mikko

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Mikko@21:1/5 to olcott on Sat Aug 3 12:07:02 2024
    On 2024-08-02 11:11:59 +0000, olcott said:

    On 8/2/2024 5:12 AM, Mikko wrote:
    On 2024-08-01 13:29:24 +0000, olcott said:

    *Here is the full trace where nothing is hidden*
    https://liarparadox.org/HHH(DDD)_Full_Trace.pdf

    On page 36 of that "trace"
       [0000128c][0010379f][00000018] e8e6f4ffff call 00000777
    is not followed by the trace of 00000777. Instead the trace continues
    with the next instruction after the return without any comment about
    the omission. Meaning of 00000777 is not told.


    The bottom line has always been (for three years now) that the
    fact that the next lines of DDD, (and DD) have always been the
    next lines that a correct x86 emulator would correctly emulate
    proves that HHH (and HH) did emulate these lines correctly
    *EVEN IF IT DID THIS BY WILD GUESS*

    Per the meaning of "trace" the next trae line after a call instruction
    is the treace line of the first instruction of the called program.
    If you want to make any exceptions they must be indicated in the
    trace.

    If you want ever to prove anything with your trace the proof must
    demonstrate that the omitted details do what they need to do for
    the proof to be valid.

    Because of this all of the requests for a full execution trace
    have never been more than sadistic trollish head games.

    We have already understood that your traces have never been more
    than sadistic trollish head games. Serious honest purposes would
    be satisfied with a couple of output calls.

    -
    Mikko

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Mikko@21:1/5 to Mike Terry on Sat Aug 3 12:14:01 2024
    On 2024-08-02 17:39:00 +0000, Mike Terry said:

    On 02/08/2024 11:12, Mikko wrote:
    On 2024-08-01 13:29:24 +0000, olcott said:

    On 8/1/2024 8:12 AM, Fred. Zwarts wrote:
    Op 01.aug.2024 om 14:20 schreef olcott:
    On 8/1/2024 3:10 AM, Fred. Zwarts wrote:
    Op 31.jul.2024 om 23:23 schreef olcott:
    On 7/31/2024 3:01 PM, Fred. Zwarts wrote:
    Op 31.jul.2024 om 17:14 schreef olcott:
    On 7/31/2024 3:44 AM, Fred. Zwarts wrote:
    Op 31.jul.2024 om 06:09 schreef olcott:

      machine   stack     stack     machine    assembly >>>>>>>>>>>   address   address   data      code       language
      ========  ========  ========  =========  ============= >>>>>>>>>>> [00002192][00103820][00000000] 55         push ebp >>>>>>>>>>> [00002193][00103820][00000000] 8bec       mov ebp,esp >>>>>>>>>>> [00002195][0010381c][00002172] 6872210000 push 00002172 ; push DDD >>>>>>>>>>> [0000219a][00103818][0000219f] e833f4ffff call 000015d2 ; call HHH(DDD)
    New slave_stack at:1038c4

    We don't show any of HHH and show the execution trace of >>>>>>>>>>> of just DDD assuming that HHH is an x86 emulator.

    This assumption is incorrect if it means that HHH is an unconditional
    simulator that does not abort.
    This algorithm is used by all the simulating termination analyzers: >>>>>>>>> <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>

    So, Sipser only agreed to a correct simulation, not with an incorrect >>>>>>>> simulation that violates the semantics of the x86 language by skipping >>>>>>>> the last few instructions of a halting program.


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

    int main()
    {
       HHH(DD);
    }

    DD correctly emulated by HHH cannot possibly reach its own
    second line. I switched to DDD correctly emulated by HHH

    But it has been proven that no such HHH exists that simulates itself >>>>>> correctly. So, talking about a correct simulation by HHH is vacuous >>>>>> word salad.

    because only C experts understood the above example and we
    never had any of those here.

    There are many C experts that looked at it, but you only got critic, >>>>>> because you keep hiding important properties of HHH, which made the >>>>>> conclusion impossible.

    The following is all that is needed for 100% complete proof
    that HHH did emulate DDD correctly according to the semantics
    of the x86 language and did emulate itself emulating DDD
    according to these same semantics.

    You are repeating the same false claim with out any self-reflection. It >>>> has been pointed out that there are many errors in this proof.
    Why repeating such errors?


    _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]

    Begin Local Halt Decider Simulation   Execution Trace Stored at:1138cc >>>>> [00002172][001138bc][001138c0] 55         push ebp      ; housekeeping
    [00002173][001138bc][001138c0] 8bec       mov ebp,esp   ; housekeeping
    [00002175][001138b8][00002172] 6872210000 push 00002172 ; push DDD
    [0000217a][001138b4][0000217f] e853f4ffff call 000015d2 ; call HHH(DDD) >>>>
    The trace stops and hides what happens when 000015d2 is called.
    Olcott is hiding the conditional branch instructions in the recursion. >>>>

    *Here is the full trace where nothing is hidden*
    https://liarparadox.org/HHH(DDD)_Full_Trace.pdf

    On page 36 of that "trace"
       [0000128c][0010379f][00000018] e8e6f4ffff call 00000777
    is not followed by the trace of 00000777. Instead the trace continues
    with the next instruction after the return without any comment about
    the omission. Meaning of 00000777 is not told.


    777 is the address of Allocate, which is one of PO's "primative ops"
    within his "computing model". (Similar to his DebugStep().)

    Yes, it is a minor issue. However, he claims that there are not conditions
    in the program simulated in the simulated simulation, and that means that
    he must prove that all untraced functions always return as if the contained
    no conditional execution. The x86 semantics do not rquire that a called function returns. Even C semantics allows some cases of non-return.

    --
    Mikko

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Mikko@21:1/5 to Richard Damon on Sat Aug 3 12:29:12 2024
    On 2024-08-02 23:12:23 +0000, Richard Damon said:

    On 8/2/24 6:23 PM, Mike Terry wrote:
    On 02/08/2024 19:25, Richard Damon wrote:
    On 8/2/24 1:39 PM, Mike Terry wrote:
    On 02/08/2024 11:12, Mikko wrote:
    On 2024-08-01 13:29:24 +0000, olcott said:

    On 8/1/2024 8:12 AM, Fred. Zwarts wrote:
    Op 01.aug.2024 om 14:20 schreef olcott:
    On 8/1/2024 3:10 AM, Fred. Zwarts wrote:
    Op 31.jul.2024 om 23:23 schreef olcott:
    On 7/31/2024 3:01 PM, Fred. Zwarts wrote:
    Op 31.jul.2024 om 17:14 schreef olcott:
    On 7/31/2024 3:44 AM, Fred. Zwarts wrote:
    Op 31.jul.2024 om 06:09 schreef olcott:

      machine   stack     stack     machine    assembly
      address   address   data      code       language
      ========  ========  ========  =========  ============= >>>>>>>>>>>>>> [00002192][00103820][00000000] 55         push ebp >>>>>>>>>>>>>> [00002193][00103820][00000000] 8bec       mov ebp,esp >>>>>>>>>>>>>> [00002195][0010381c][00002172] 6872210000 push 00002172 ; push DDD
    [0000219a][00103818][0000219f] e833f4ffff call 000015d2 ; call HHH(DDD)
    New slave_stack at:1038c4

    We don't show any of HHH and show the execution trace of >>>>>>>>>>>>>> of just DDD assuming that HHH is an x86 emulator.

    This assumption is incorrect if it means that HHH is an unconditional
    simulator that does not abort.
    This algorithm is used by all the simulating termination analyzers:
    <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>

    So, Sipser only agreed to a correct simulation, not with an incorrect
    simulation that violates the semantics of the x86 language by skipping
    the last few instructions of a halting program.


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

    int main()
    {
       HHH(DD);
    }

    DD correctly emulated by HHH cannot possibly reach its own >>>>>>>>>> second line. I switched to DDD correctly emulated by HHH

    But it has been proven that no such HHH exists that simulates itself >>>>>>>>> correctly. So, talking about a correct simulation by HHH is vacuous >>>>>>>>> word salad.

    because only C experts understood the above example and we >>>>>>>>>> never had any of those here.

    There are many C experts that looked at it, but you only got critic, >>>>>>>>> because you keep hiding important properties of HHH, which made the >>>>>>>>> conclusion impossible.

    The following is all that is needed for 100% complete proof
    that HHH did emulate DDD correctly according to the semantics
    of the x86 language and did emulate itself emulating DDD
    according to these same semantics.

    You are repeating the same false claim with out any self-reflection. It >>>>>>> has been pointed out that there are many errors in this proof.
    Why repeating such errors?


    _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]

    Begin Local Halt Decider Simulation   Execution Trace Stored at:1138cc
    [00002172][001138bc][001138c0] 55         push ebp      ; housekeeping
    [00002173][001138bc][001138c0] 8bec       mov ebp,esp   ; housekeeping
    [00002175][001138b8][00002172] 6872210000 push 00002172 ; push DDD >>>>>>>> [0000217a][001138b4][0000217f] e853f4ffff call 000015d2 ; call HHH(DDD)

    The trace stops and hides what happens when 000015d2 is called.
    Olcott is hiding the conditional branch instructions in the recursion. >>>>>>>

    *Here is the full trace where nothing is hidden*
    https://liarparadox.org/HHH(DDD)_Full_Trace.pdf

    On page 36 of that "trace"
        [0000128c][0010379f][00000018] e8e6f4ffff call 00000777
    is not followed by the trace of 00000777. Instead the trace continues >>>>> with the next instruction after the return without any comment about >>>>> the omission. Meaning of 00000777 is not told.


    777 is the address of Allocate, which is one of PO's "primative ops"
    within his "computing model". (Similar to his DebugStep().)

    It is implemented inside x86utm.exe (his COFF obj code runner), not in >>>> the user code DDD/HHH/etc. in the obj file, and so we would not expect >>>> to see any trace entries for its internals.  When the op concludes, rax >>>> has the address of the allocated memory, which is consistent with how a >>>> normal function would have returned the address.

    You can say correctly that PO has not explained this, but then he
    provided the full trace under protest, so it's understandable that he
    has not previously explained everything in it.  I'm surprised that his >>>> response to your post was both to ignore the question and accuse you of >>>> playing sadistic head games, as the question was perfectly sensible.

    You can look up the 777 address in the listing at the start of the
    trace and it's there along with a bunch of other routines which appear >>>> to just return without doing anything - those are all PO's primitive
    ops.  If you feel a need to understand exactly what they do, you'll
    need to check his source code!  (Although for Allocate there is no big >>>> surprise...)


    So your observation isn't really a problem beyond not being properly
    explained.  An actual problem seen in his trace data is that the
    simulation of DDD does not track the behaviour of the unsimulated DDD. >>>> I.e. his simulation is incorrect.  (PO knows about that but claims it >>>> doesn't matter, although on other occasions he still claims the
    simulation is correct.)


    Mike.


    But the bigger error that totally negates this trace is if you at where
    it begins, it is at program address 00002197, which just the page
    before is shown to be the address of _main.

    Since HHH was not given the address of main to start with, this can not
    be the trace that HHH itself is generating and looking at, but is
    instead the trace of the running of that top level HHH.

    Well, all PO's trace logs start with main!  Something has to set up the
    required computation [aka the required TM + input tape].  That could be
    HHH(DDD), or maybe DDD() or whatever.  PO might have done this through
    extra invocation arguments to x86utm.exe, and then there would have
    been no need to code a main() in his halt7.c user code file.  But that
    would be decidedly fiddly, so having a fixed entry function main() is
    an ok convenience I'd say.  The main() is not really part of his
    computation model, but x86utm traces the lot.

    Normally when PO gives code snippets, he includes the main() routine.
    In this case it is main calling HHH(DDD), so HHH as you say is the
    outer level HHH.  (Later on in the trace we see simulated HHH
    entries...)

    Since that shows the trace isn't what he claims it is, nothing it says
    means anything for his argument.

    I can't see what PO claims the trace to be.  That trace was taken and
    published some weeks ago, and doesn't match up exactly with todays
    partial trace - e.g. the addresses of HHH/DDD don't match and so on. 
    If it's just wrong through being out of date, or because it has the
    main() trace on the front, that's not the worst of crimes...

    I see upthread that someone pointed out that the filtered trace
    "..stops and hides what happens when 000015d2 is called."  Well, the
    full trace does show the instructions of HHH being executed [even if
    the data is a bit out of date], and of course there are loads of
    conditional branches... so everyone should be happy! :)


    In fact, the way the trace is produced, it is clear that the tracing
    code doesn't care about what level of simulation it is working but
    calls to "DebugStep" just inject the data they trace as part of the
    code that is being traced, which isn't actually what is happening in
    the processor.

    That's correct.  The full trace proceeds showing HHH executing its code
    as we would expect, and after some time HHH (actually a routine called
    by HHH) invokes a DebugStep op.  We can see that the DebugStep op
    stepped HHH's simulation one instruction, which also appears in trace.
    Here is where that happens:

    ,,,
    [000011eb][00103783][00103863] 8b4d1c mov ecx,[ebp+1c]
    [000011ee][00103783][00103863] 8b11 mov edx,[ecx]
    [000011f0][0010377f][00103827] 52 push edx
    [000011f1][0010377f][00103827] e8b1f5ffff call 000007a7     <=== DebugStep
    [00002177][00113897][0011389b] 55 push ebp                  <===
    simulated instruction
    [000011f6][0010378b][90909090] 83c40c add esp,+0c           <=== next
    instructin after DebugStep
    [000011f9][0010378b][90909090] e8e9f5ffff call 000007e7
    ...

    The "push ebp" above is the first simulated instruction, and just
    appears in the trace straight after the call to DebugStep.  [Note the
    apparent discontinuities in IP address and ESP (cols 1&2 resp.)  Yeah I
    know, /why isn't there a simulation level column/ ?]

    We could say that the trace as shown is a log of all the instructions
    x86utm "executes" in succession, so it is a merge of entries from all
    simulation levels - certainly it's not the x86 "processor trace" it
    might be taken to be.

    Note - the "push ebp" instruction is the first simulated instruction of
    DDD(), which at least is the instruction we would expect it to be.  In
    PO's normal "filtered" log output, all the other instructions above
    wouldn't appear as they're not from DDD.

    Of course these traces don't support PO's overall case he is claiming,
    because the (various) logs show that DDD halts, and that HHH(DDD)
    reports DDD as non-halting, exactly as Linz/Sipser argue. Er, that's
    about it!

    Whether it supports some minutia of what PO is currently arguing about
    - you'd have to explain to me exactly what he is claiming!  (um, Please
    don't!)



    This seems to be part of the source for his confusion, and the tool he
    uses to try to spread his lies.

    such results should, at most, be inserted as a comment about what the
    results computed as meta-logic of the code just emulated did.

    But of course, noting that this second layer is just meta-results, and
    that the original emulator always had the option of stopping its
    emulation ruins his argument that the recursion is necessarily infinite.

    It's hard to pin down confusion sources.  I agree PO doesn't need
    x86utm logs to argue his case, and including them doesn't /prove/
    anything, especially when he admits the simulated code uses mutable
    static data to modify the behaviour of the simulation so that it does
    not match the unsimulated (outer) computation.

    I think PO views x86utm as some kind of "ultra authority" he can appeal
    to, to avoid having to actually prove his claims.  [Which is funny,
    because the logs don't support his claims, but for some reason that
    passes him by...]

    Mike.


    The problem is that he calls them traces of the emulation that HHH
    does, and it should never see that main, as it isn't part of what he
    has defined as the input.

    It is clear that this output is the output generated by x86utm, NOT
    just his HHH. As such, it is not the output he claims.

    It seems clear that he can't figure out how to get the x86UTM program
    to create just the trace of what HHH sees,

    He *CLAIMS* that HHH actually works on the full trace of DDD going into
    HHH, but apparently there is no way for him to show such a trace.

    To me it seems that the changes required to make a sensible trace are
    fairly simple and easy to implement.

    --
    Mikko

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Ben Bacarisse@21:1/5 to Mike Terry on Mon Aug 5 03:33:53 2024
    Mike Terry <news.dead.person.stones@darjeeling.plus.com> writes:

    On 02/08/2024 23:42, Ben Bacarisse wrote:
    Mike Terry <news.dead.person.stones@darjeeling.plus.com> writes:

    Of course these traces don't support PO's overall case he is claiming,
    because the (various) logs show that DDD halts, and that HHH(DDD) reports >>> DDD as non-halting, exactly as Linz/Sipser argue. Er, that's about it!
    PO certainly used to claim that false (non-halting) is the correct
    result "even though DDD halts" (I've edited the quote to reflect a name
    change). Unless he's changed this position, the traces do support his
    claim that what everyone else calls the wrong answer is actually the
    right one.

    So, in your opinion, what do you believe is PO's criterion for "correct result", exactly? It would be handy if you can give a proper mathematical definition so nobody will have any doubt what it is. Hey, I know you're
    more than capable of getting a definition right, so let's have that definition!

    You are joking right?

    PO has no idea what he's talking about. I mean that more literally than
    you might think. The starting point is a gut feeling ("If God can not
    solve the Halting Problem, then there is something wrong with the
    problem") shored up by a basic axiom -- that PO is never wrong. This
    produces a endless sequence of nonsense statements, like

    "the fact that a computation halts does not entail that it is a
    halting computation" [May 2021]

    "The fact [that] a computation stops running does not prove that it
    halts" [Apr 2021]

    and

    "The same halt decider can have different behavior on the same input"
    [Jan 2021]

    Definition: A TM P given input I is said to "halt" iff ?????
    or whatever...

    Do you really think I can fathom what PO considers to be the "correct
    result" in formal terms? He certainly doesn't know (in general) and I
    can't even hazard a guess.

    It's easy enough to say "PO has his own criterion for halting, which is materially different from the HP condition, and so we all agree PO is
    correct by his own criterion, but that does not say anything about the HP theorem because it is different from the HP definition".

    He's been very, very clear about this:

    "A non-halting computation is every computation that never halts
    unless its simulation is aborted. This maps to every element of the
    conventional halting problem set of non-halting computations and a few
    more."

    There is something called the "conventional halting problem" and then
    there is there is the PO-halting problem.

    He's even explained in detail at least one of these "few more" cases.
    He sketched the simulator and explained that false (non-halting) is
    correct because of what would happen if line 15 (the check for "needs to
    be aborted") were commented out. The "few more" cases are halting
    computations that would not halt if the code where a bit different -- if
    the "decider" did not stop the simulation.

    That was in 2020. The last four years have all been about fleshing out
    this sketch of a decider for this "other" halting condition. I am
    staggered that people are still talking about it. Until he repudiates
    the claim that false is the correct answer for some halting
    computations, there is nothing more to discuss.

    But is that /really/ something PO agrees with?

    Does he really agree with what he said? Does he agree that there is
    "the conventional halting problem" and also his own non-halting that
    includes "a few more" computations? Does he agree with himself when he
    stated, in Oct 2021, that "Yes that is the correct answer even though
    P(P) halts" when asked "do you still assert that H(P,P) == false is the "correct" answer even though P(P) halts?"?

    I don't think so somehow,
    because I'm pretty sure PO believes his claim "refutes" the HP result.

    I am sure he still agrees with what he has said, and I am equally sure
    he still thinks he has refuted a theorem about something else. He,
    literally, has no idea what he is talking about.

    He
    wouldn't say that if he freely acknowleded that he had invented a
    completely different definition for halting.

    Why do you say that? Are you assuming he is sane? Remember he has
    published a website intended to bring new scripture to the world (https://the-pete.org/) and has asserted in a court of law (through
    lawyers, maybe) that he is God.

    Also, for what you're saying
    to be the right way of looking at things, PO would have to admit that the
    HP proof with its standard definition of halting is valid, and that there
    is nothing wrong with the Linz proof, other than it not applying to his own favourite PO-halting definition.

    Only if you assume his mind functions like yours or mine. Take this
    quote on the point you make example:

    "My current proof simply shows exactly how the exact Peter Linz H
    would correctly decide not halting on the exact Peter Linz Ĥ.

    This definition of halting circumvents the pathological self-reference
    error for every simulating halt decider:

    An input is decided to be halting only if its simulation never needs
    to be stopped by any simulating halt decider anywhere in its entire
    invocation chain." [May 2021]

    He clearly thinks that having a different definition of halting
    invalidates Linz's proof.

    I.e. I think your way of looking at it is a bit "too easy" - but I'd be
    happy to be convinced! Personally I suspect PO has no such "new and
    different definition" and that anything along those lines PO is thinking of will be quite incoherent. No doubt you could make some definition that is
    at least coherent but we have to ask ourselves - is that definition
    /really/ what PO is thinking???

    There is no doubt that he has a different definition. How could he have
    been more clear? There is the conventional halting problem and then
    there is what he is considering that includes "a few more" cases. He
    clearly tells us that false is the correct answer for some halting computations. He gives a (flabby) definition of PO-halting and states
    that it "circumvents" the proof.

    Nowadays, I think PO's position is more that:
    - yes, DDD() halts when run directly
    - but DDD() when it runs inside HHH simulator /really/ does not halt, in some kind of
    sense that it /really/ has infinite recursion which would never end
    however far it was simulated (because it "exhibits" infinite recursion in some way)
    - and yes, DDD() /does/ halt when simulated within UTM(DDD),
    - but the behaviour of DDD depends on who is simulating it. It terminates when
    UTM simulates it, but doesn't terminate when HHH simulates it, due to some
    kind of pathelogical relationship specifically with HHH. This difference in
    simulation is /more/ than one simulator aborting earlier than the other...

    I fear you have got sucked into the PO tar-pit. Until he categorically repudiates the claim that H(P,P) == false is the correct answer even
    though P(P) halts, I would say that there is nothing more to say.

    Obviously his position "evolves" because he has to keep people talking
    to him (has is a narcissist and needs the attention). But cranks are
    never wrong so he is stuck with what he's said in the past. All of the
    last four years has been about layering piles of detail on the basic
    notion that if the decider were not to halt the computation, the result
    would be a non-halting computation so saying "does not halt" is correct
    even though the computation halts.

    --
    Ben.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From olcott@21:1/5 to Ben Bacarisse on Sun Aug 4 22:56:58 2024
    On 8/4/2024 9:33 PM, Ben Bacarisse wrote:
    Mike Terry <news.dead.person.stones@darjeeling.plus.com> writes:

    On 02/08/2024 23:42, Ben Bacarisse wrote:
    Mike Terry <news.dead.person.stones@darjeeling.plus.com> writes:

    Of course these traces don't support PO's overall case he is claiming, >>>> because the (various) logs show that DDD halts, and that HHH(DDD) reports >>>> DDD as non-halting, exactly as Linz/Sipser argue. Er, that's about it!
    PO certainly used to claim that false (non-halting) is the correct
    result "even though DDD halts" (I've edited the quote to reflect a name
    change). Unless he's changed this position, the traces do support his
    claim that what everyone else calls the wrong answer is actually the
    right one.

    So, in your opinion, what do you believe is PO's criterion for "correct
    result", exactly? It would be handy if you can give a proper mathematical >> definition so nobody will have any doubt what it is. Hey, I know you're
    more than capable of getting a definition right, so let's have that
    definition!

    You are joking right?

    PO has no idea what he's talking about. I mean that more literally than
    you might think. The starting point is a gut feeling ("If God can not
    solve the Halting Problem, then there is something wrong with the
    problem") shored up by a basic axiom

    The equivalent paraphrase of this has always been:
    The inability to do the logically impossible places
    no actual limit on computation.

    https://www.cs.toronto.edu/~hehner/OSS.pdf
    Professor Hehner and I perfectly agree on this
    and he agrees that it is an accurate summary
    of the result of his above paper.

    *I humbly apologize for my harsh words to you*
    A stranger that I met last night convinced me that I
    should love my enemies. I have no enemies yet can refrain
    from ever using harsh words towards my adversaries.

    -- that PO is never wrong. This

    Never meant that at all ever. I have always been
    fully aware that I make many mistakes every day.

    produces a endless sequence of nonsense statements, like

    "the fact that a computation halts does not entail that it is a
    halting computation" [May 2021]

    "The fact [that] a computation stops running does not prove that it
    halts" [Apr 2021]

    and

    "The same halt decider can have different behavior on the same input"
    [Jan 2021]


    That does sound stupid.
    *As far as effective communication goes I am somewhat of a moron*

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

    *Here is a better way to phrase what I have been saying*
    DDD correctly emulated by any HHH that can possibly
    exist never reaches its "return" instruction halt state.

    Definition: A TM P given input I is said to "halt" iff ?????
    or whatever...

    Do you really think I can fathom what PO considers to be the "correct
    result" in formal terms? He certainly doesn't know (in general) and I
    can't even hazard a guess.


    HHH computes the mapping from the finite string of the x86
    machine code of DDD to to the above specified behavior.

    It's easy enough to say "PO has his own criterion for halting, which is
    materially different from the HP condition, and so we all agree PO is
    correct by his own criterion, but that does not say anything about the HP
    theorem because it is different from the HP definition".

    He's been very, very clear about this:

    "A non-halting computation is every computation that never halts
    unless its simulation is aborted. This maps to every element of the
    conventional halting problem set of non-halting computations and a few
    more."


    <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>

    You have agreed that the first part of that has been met showing
    that your understanding has always been better than anyone else.

    There is something called the "conventional halting problem" and then
    there is there is the PO-halting problem.


    The conventional halting problem has the implied false assumption
    that a decider must report on the behavior of the computation that
    contains itself rather than computing the mapping from its finite
    string input to the behavior that this finite string specifies.

    He's even explained in detail at least one of these "few more" cases.
    He sketched the simulator and explained that false (non-halting) is
    correct because of what would happen if line 15 (the check for "needs to
    be aborted") were commented out. The "few more" cases are halting computations that would not halt if the code where a bit different -- if
    the "decider" did not stop the simulation.


    My above example is as simple as I can possibly make it.

    That is a far cry from the x86 assembly language trace that
    I discussed extensively with the former editor in chief of
    CASM Professor Moshe Vardi. He eventually gave up because
    he did not understand the x86 language.

    That was in 2020. The last four years have all been about fleshing out
    this sketch of a decider for this "other" halting condition. I am
    staggered that people are still talking about it. Until he repudiates
    the claim that false is the correct answer for some halting
    computations, there is nothing more to discuss.


    I explained it much better above in terms of DDD emulated by HHH.

    But is that /really/ something PO agrees with?

    Does he really agree with what he said? Does he agree that there is
    "the conventional halting problem" and also his own non-halting that
    includes "a few more" computations? Does he agree with himself when he stated, in Oct 2021, that "Yes that is the correct answer even though
    P(P) halts" when asked "do you still assert that H(P,P) == false is the "correct" answer even though P(P) halts?"?

    I don't think so somehow,
    because I'm pretty sure PO believes his claim "refutes" the HP result.

    I am sure he still agrees with what he has said, and I am equally sure
    he still thinks he has refuted a theorem about something else. He, literally, has no idea what he is talking about.


    You are the only one that understood that the first half of the
    Sipser approved criteria has been met.

    He
    wouldn't say that if he freely acknowleded that he had invented a
    completely different definition for halting.

    Why do you say that? Are you assuming he is sane? Remember he has
    published a website intended to bring new scripture to the world (https://the-pete.org/) and has asserted in a court of law (through
    lawyers, maybe) that he is God.


    That has no bearing on the points that I made above.

    Also, for what you're saying
    to be the right way of looking at things, PO would have to admit that the
    HP proof with its standard definition of halting is valid, and that there
    is nothing wrong with the Linz proof, other than it not applying to his own >> favourite PO-halting definition.

    Only if you assume his mind functions like yours or mine. Take this
    quote on the point you make example:

    "My current proof simply shows exactly how the exact Peter Linz H
    would correctly decide not halting on the exact Peter Linz Ĥ.

    This definition of halting circumvents the pathological self-reference
    error for every simulating halt decider:

    An input is decided to be halting only if its simulation never needs
    to be stopped by any simulating halt decider anywhere in its entire
    invocation chain." [May 2021]


    This last part is correct and Professor Sipser agreed that
    it is correct.

    That you have not yet understood the second halt of the Sipser
    approved criteria yet do understand the first part puts you
    ahead of everyone else.

    He clearly thinks that having a different definition of halting
    invalidates Linz's proof.

    I.e. I think your way of looking at it is a bit "too easy" - but I'd be
    happy to be convinced! Personally I suspect PO has no such "new and
    different definition" and that anything along those lines PO is thinking of >> will be quite incoherent. No doubt you could make some definition that is >> at least coherent but we have to ask ourselves - is that definition
    /really/ what PO is thinking???

    There is no doubt that he has a different definition. How could he have
    been more clear? There is the conventional halting problem and then
    there is what he is considering that includes "a few more" cases. He
    clearly tells us that false is the correct answer for some halting computations. He gives a (flabby) definition of PO-halting and states
    that it "circumvents" the proof.


    It is an empirically verified fact that DDD correctly emulated
    by any HHH that can possibly exist cannot possibly reach its
    "return" instruction halt state. Every expert in C know this.

    Nowadays, I think PO's position is more that:
    - yes, DDD() halts when run directly
    - but DDD() when it runs inside HHH simulator /really/ does not halt, in some kind of
    sense that it /really/ has infinite recursion which would never end
    however far it was simulated (because it "exhibits" infinite recursion in some way)

    I just provided the details of that.

    - and yes, DDD() /does/ halt when simulated within UTM(DDD),
    - but the behaviour of DDD depends on who is simulating it. It terminates when
    UTM simulates it, but doesn't terminate when HHH simulates it, due to some
    kind of pathelogical relationship specifically with HHH. This difference in
    simulation is /more/ than one simulator aborting earlier than the other...


    When the halting problem is understood to be that
    no halt decider can provide the correct halt status
    of any input defined to do the opposite of whatever
    value it returns this is impossible to solve.

    This also requires the false assumption that a halt
    decider must report on the computation that itself
    is contained within rather than compute the mapping
    from its input finite string.

    I fear you have got sucked into the PO tar-pit. Until he categorically repudiates the claim that H(P,P) == false is the correct answer even
    though P(P) halts, I would say that there is nothing more to say.


    It is an empirically verified fact that DDD correctly emulated
    by any HHH that can possibly exist cannot possibly reach its
    "return" instruction halt state.

    Every expert in C knows this.
    Four experts affirmed it, two with MSCS.
    Everyone here denies that.

    Obviously his position "evolves" because he has to keep people talking
    to him (has is a narcissist and needs the attention). But cranks are
    never wrong so he is stuck with what he's said in the past. All of the
    last four years has been about layering piles of detail on the basic
    notion that if the decider were not to halt the computation, the result
    would be a non-halting computation so saying "does not halt" is correct
    even though the computation halts.


    The issue that I have know that I am correct the whole
    time and terribly awful at explaining this clearly.

    --
    Copyright 2024 Olcott "Talent hits a target no one else can hit; Genius
    hits a target no one else can see." Arthur Schopenhauer

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to olcott on Mon Aug 5 07:40:52 2024
    On 8/4/24 11:56 PM, olcott wrote:
    On 8/4/2024 9:33 PM, Ben Bacarisse wrote:
    Mike Terry <news.dead.person.stones@darjeeling.plus.com> writes:

    On 02/08/2024 23:42, Ben Bacarisse wrote:
    Mike Terry <news.dead.person.stones@darjeeling.plus.com> writes:

    Of course these traces don't support PO's overall case he is claiming, >>>>> because the (various) logs show that DDD halts, and that HHH(DDD)
    reports
    DDD as non-halting, exactly as Linz/Sipser argue. Er, that's about it! >>>> PO certainly used to claim that false (non-halting) is the correct
    result "even though DDD halts" (I've edited the quote to reflect a name >>>> change).  Unless he's changed this position, the traces do support his >>>> claim that what everyone else calls the wrong answer is actually the
    right one.

    So, in your opinion, what do you believe is PO's criterion for "correct
    result", exactly?  It would be handy if you can give a proper
    mathematical
    definition so nobody will have any doubt what it is. Hey, I know you're
    more than capable of getting a definition right, so let's have that
    definition!

    You are joking right?

    PO has no idea what he's talking about.  I mean that more literally than
    you might think.  The starting point is a gut feeling ("If God can not
    solve the Halting Problem, then there is something wrong with the
    problem") shored up by a basic axiom

    The equivalent paraphrase of this has always been:
    The inability to do the logically impossible places
    no actual limit on computation.

    Which is incorrect, as the admission that it IS logically impossible is
    itself a limitation on computations.


    https://www.cs.toronto.edu/~hehner/OSS.pdf
    Professor Hehner and I perfectly agree on this
    and he agrees that it is an accurate summary
    of the result of his above paper.

    And you realize his first paragraph puts his paper outside the topic of Computation Theory, as it deals with question NOT to "computations" but
    to willful beings (human behavior).

    The rules of computtion Theory specificially do not allow for
    "subjecgtive" questions, as there must be a specific answer that is
    independent of who you ask the question to.


    *I humbly apologize for my harsh words to you*
    A stranger that I met last night convinced me that I
    should love my enemies. I have no enemies yet can refrain
    from ever using harsh words towards my adversaries.

    -- that PO is never wrong.  This

    Never meant that at all ever. I have always been
    fully aware that I make many mistakes every day.

    Then why do you still refuse to accept that you are worng about this,
    and have been for decades.




    produces a endless sequence of nonsense statements, like

       "the fact that a computation halts does not entail that it is a
       halting computation" [May 2021]

       "The fact [that] a computation stops running does not prove that it
       halts" [Apr 2021]

    and

       "The same halt decider can have different behavior on the same input" >>    [Jan 2021]


    That does sound stupid.
    *As far as effective communication goes I am somewhat of a moron*

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

    *Here is a better way to phrase what I have been saying*
    DDD correctly emulated by any HHH that can possibly
    exist never reaches its "return" instruction halt state.

    But that only applies *if* the HHH that DDD calls is actually such an
    HHH, which means it never aborts its emulation.

    This also means that it is NOT correct for any HHH to abort and claim by
    this fact, that the DDD that calls it, is non-halting.



    Definition:  A TM P given input I is said to "halt" iff ?????
                  or whatever...

    Do you really think I can fathom what PO considers to be the "correct
    result" in formal terms?  He certainly doesn't know (in general) and I
    can't even hazard a guess.


    HHH computes the mapping from the finite string of the x86
    machine code of DDD to to the above specified behavior.

    Which included the machine code for HHH, and thus if that HHH aborts and returns, the DDD is halting.


    It's easy enough to say "PO has his own criterion for halting, which is
    materially different from the HP condition, and so we all agree PO is
    correct by his own criterion, but that does not say anything about
    the HP
    theorem because it is different from the HP definition".

    He's been very, very clear about this:

       "A non-halting computation is every computation that never halts
       unless its simulation is aborted.  This maps to every element of the >>    conventional halting problem set of non-halting computations and a few >>    more."


    <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>

    You have agreed that the first part of that has been met showing
    that your understanding has always been better than anyone else.

    Nope, it is only proven for a input that calls a "decider" that never
    aborts, since your deciders are not that, they can't use the (non-) fact
    of them doing a correct simulation (since they don't).


    There is something called the "conventional halting problem" and then
    there is there is the PO-halting problem.


    The conventional halting problem has the implied false assumption
    that a decider must report on the behavior of the computation that
    contains itself rather than computing the mapping from its finite
    string input to the behavior that this finite string specifies.

    But it IS responsible to decide on a computation that contains a copy of
    its self, as it is responsible for deciding on *ALL* computations (by definitions) and it must be a computation (by definition).

    You make up a rule you can not show because you don't understand what
    you talk about.


    He's even explained in detail at least one of these "few more" cases.
    He sketched the simulator and explained that false (non-halting) is
    correct because of what would happen if line 15 (the check for "needs to
    be aborted") were commented out.  The "few more" cases are halting
    computations that would not halt if the code where a bit different -- if
    the "decider" did not stop the simulation.


    My above example is as simple as I can possibly make it.

    That is a far cry from the x86 assembly language trace that
    I discussed extensively with the former editor in chief of
    CASM Professor Moshe Vardi. He eventually gave up because
    he did not understand the x86 language.

    No, I suspect he couldn't follow your non-logic. Note, the x86 assembly
    trace must include ONLY the actual instructions that are executed (not
    the instructions that this execution have emulated the behavior of,
    except as a possible parenthetical comment). He gave up, because you
    claimes were just a lie.


    That was in 2020.  The last four years have all been about fleshing out
    this sketch of a decider for this "other" halting condition.  I am
    staggered that people are still talking about it.  Until he repudiates
    the claim that false is the correct answer for some halting
    computations, there is nothing more to discuss.


    I explained it much better above in terms of DDD emulated by HHH.

    Which is based on the lie that a partial emulation is a correct
    emulation that reveal behavior, and conflating the behavior of the given program, that happens to be emulated by HHH, with the emulation that HHH
    does.


    But is that /really/ something PO agrees with?

    Does he really agree with what he said?  Does he agree that there is
    "the conventional halting problem" and also his own non-halting that
    includes "a few more" computations?  Does he agree with himself when he
    stated, in Oct 2021, that "Yes that is the correct answer even though
    P(P) halts" when asked "do you still assert that H(P,P) == false is the
    "correct" answer even though P(P) halts?"?

    I don't think so somehow,
    because I'm pretty sure PO believes his claim "refutes" the HP result.

    I am sure he still agrees with what he has said, and I am equally sure
    he still thinks he has refuted a theorem about something else.  He,
    literally, has no idea what he is talking about.


    You are the only one that understood that the first half of the
    Sipser approved criteria has been met.

    He
    wouldn't say that if he freely acknowleded that he had invented a
    completely different definition for halting.

    Why do you say that?  Are you assuming he is sane?  Remember he has
    published a website intended to bring new scripture to the world
    (https://the-pete.org/) and has asserted in a court of law (through
    lawyers, maybe) that he is God.


    That has no bearing on the points that I made above.

    Also, for what you're saying
    to be the right way of looking at things, PO would have to admit that
    the
    HP proof with its standard definition of halting is valid, and that
    there
    is nothing wrong with the Linz proof, other than it not applying to
    his own
    favourite PO-halting definition.

    Only if you assume his mind functions like yours or mine.  Take this
    quote on the point you make example:

       "My current proof simply shows exactly how the exact Peter Linz H
       would correctly decide not halting on the exact Peter Linz Ĥ.

       This definition of halting circumvents the pathological self-reference >>    error for every simulating halt decider:

       An input is decided to be halting only if its simulation never needs
       to be stopped by any simulating halt decider anywhere in its entire
       invocation chain."  [May 2021]


    This last part is correct and Professor Sipser agreed that
    it is correct.

    You have your conditions wrong.

    Every correct simulation will produce the same results, or they are not
    correct simulations. The input will be a specific machine, and thus it
    will use a specific decider as part of it, and not just some "any
    decider". If THAT decider returns, the correct simulation of that input
    will see that return, and if it doesn't, then it wasn't a decider in the
    first place.


    That you have not yet understood the second halt of the Sipser
    approved criteria yet do understand the first part puts you
    ahead of everyone else.

    Because you can't do the second part if you meet the first, as to meet
    the first your "decider" must never abort, and a program that never
    aborts can not abort. If it does, it never meet the first part.

    It isn't that we meet the first part until we decide to do the second
    part, it is we meet the first part, including the knowledge we will do
    the second part if we can.


    He clearly thinks that having a different definition of halting
    invalidates Linz's proof.

    I.e. I think your way of looking at it is a bit "too easy" - but I'd be
    happy to be convinced! Personally I suspect PO has no such "new and
    different definition" and that anything along those lines PO is
    thinking of
    will be quite incoherent.  No doubt you could make some definition
    that is
    at least coherent but we have to ask ourselves - is that definition
    /really/ what PO is thinking???

    There is no doubt that he has a different definition.  How could he have
    been more clear?  There is the conventional halting problem and then
    there is what he is considering that includes "a few more" cases.  He
    clearly tells us that false is the correct answer for some halting
    computations.  He gives a (flabby) definition of PO-halting and states
    that it "circumvents" the proof.


    It is an empirically verified fact that DDD correctly emulated
    by any HHH that can possibly exist cannot possibly reach its
    "return" instruction halt state. Every expert in C know this.

    Nope.


    Nowadays, I think PO's position is more that:
    -  yes, DDD() halts when run directly
    -  but DDD() when it runs inside HHH simulator /really/ does not
    halt, in some kind of
        sense that it /really/ has infinite recursion which would never end >>>     however far it was simulated (because it "exhibits" infinite
    recursion in some way)

    I just provided the details of that.

    -  and yes, DDD() /does/ halt when simulated within UTM(DDD),
    -  but the behaviour of DDD depends on who is simulating it.  It
    terminates when
        UTM simulates it, but doesn't terminate when HHH simulates it,
    due to some
        kind of pathelogical relationship specifically with HHH.  This
    difference in
        simulation is /more/ than one simulator aborting earlier than the >>> other...


    When the halting problem is understood to be that
    no halt decider can provide the correct halt status
    of any input defined to do the opposite of whatever
    value it returns this is impossible to solve.

    Which just shows that there ca not be a halt decider, Something thayt
    seems unable for you to understand,


    This also requires the false assumption that a halt
    decider must report on the computation that itself
    is contained within rather than compute the mapping
    from its input finite string.

    Which isn't a "false assumption" but part of the definition. It must
    decide on *ANY* computation, and that include ones that include copies
    of itself, as it is a computation.


    I fear you have got sucked into the PO tar-pit.  Until he categorically
    repudiates the claim that H(P,P) == false is the correct answer even
    though P(P) halts, I would say that there is nothing more to say.


    It is an empirically verified fact that DDD correctly emulated
    by any HHH that can possibly exist cannot possibly reach its
    "return" instruction halt state.

    Nope, you have shown that the emulation of DDD doesn't reach there, not
    the DDD that was emulated, as that continues after the emulation stops.


    Every expert in C knows this.
    Four experts affirmed it, two with MSCS.
    Everyone here denies that.

    Nope. only idiots it seems.


    Obviously his position "evolves" because he has to keep people talking
    to him (has is a narcissist and needs the attention).  But cranks are
    never wrong so he is stuck with what he's said in the past.  All of the
    last four years has been about layering piles of detail on the basic
    notion that if the decider were not to halt the computation, the result
    would be a non-halting computation so saying "does not halt" is correct
    even though the computation halts.


    The issue that I have know that I am correct the whole
    time and terribly awful at explaining this clearly.


    No, you think you are correct, and refuse to look at the actual facts
    because you have brainwashed yourself.

    Sorry, you are just wrong and refuse to look at the facts, just like the election deniers and the climate change deniers.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From olcott@21:1/5 to Mike Terry on Mon Aug 5 19:34:21 2024
    On 8/2/2024 8:19 PM, Mike Terry wrote:
    On 02/08/2024 23:42, Ben Bacarisse wrote:
    Mike Terry <news.dead.person.stones@darjeeling.plus.com> writes:

    Of course these traces don't support PO's overall case he is claiming,
    because the (various) logs show that DDD halts, and that HHH(DDD)
    reports
    DDD as non-halting, exactly as Linz/Sipser argue. Er, that's about it!

    PO certainly used to claim that false (non-halting) is the correct
    result "even though DDD halts" (I've edited the quote to reflect a name
    change).  Unless he's changed this position, the traces do support his
    claim that what everyone else calls the wrong answer is actually the
    right one.


    So, in your opinion, what do you believe is PO's criterion for "correct result", exactly?  It would be handy if you can give a proper
    mathematical definition so nobody will have any doubt what it is. Hey, I
    know you're more than capable of getting a definition right, so let's
    have that definition!

    Definition:  A TM P given input I is said to "halt" iff ?????
                 or whatever...


    *Jeff Barnett helped out on this with his: halt state*
    On 8/2/2024 11:32 PM, Jeff Barnett

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

    *Anyone that knows C should agree that*
    DDD correctly emulated by any HHH that can possibly exist
    cannot possibly reach its own "return" instruction.

    That only gets people to accept the first half of the Sipser
    approved criteria and see what Ben sees.

    When we add the this "return" instruction is Jeff Barnett's
    mentioned "halt state" things get much clearer. Then we might
    begin to see:

    HHH computes the mapping from its input finite string of x86
    machine code... to the above behavior that does not halt.

    One thing that everyone has persistently ignored for three
    years is that deciders only compute the mapping from their
    input finite string. HHH does do that !!!

    It's easy enough to say "PO has his own criterion for halting, which is materially different from the HP condition, and so we all agree PO is
    correct by his own criterion,

    No it was only Ben that ever acknowledged this.

    but that does not say anything about the
    HP theorem because it is different from the HP definition".

    But is that /really/ something PO agrees with?  I don't think so
    somehow, because I'm pretty sure PO believes his claim "refutes" the HP result.  He wouldn't say that if he freely acknowleded that he had
    invented a completely different definition for halting.  Also, for what you're saying to be the right way of looking at things, PO would have to admit that the HP proof with its standard definition of halting is
    valid, and that there is nothing wrong with the Linz proof, other than
    it not applying to his own favourite PO-halting definition.

    I.e. I think your way of looking at it is a bit "too easy" - but I'd be
    happy to be convinced! Personally I suspect PO has no such "new and
    different definition" and that anything along those lines PO is thinking
    of will be quite incoherent.  No doubt you could make some definition
    that is at least coherent but we have to ask ourselves - is that
    definition /really/ what PO is thinking???

    Nowadays, I think PO's position is more that:
    -  yes, DDD() halts when run directly
    -  but DDD() when it runs inside HHH simulator /really/ does not halt,
    in some kind of
       sense that it /really/ has infinite recursion which would never end
       however far it was simulated (because it "exhibits" infinite
    recursion in some way)
    -  and yes, DDD() /does/ halt when simulated within UTM(DDD),
    -  but the behaviour of DDD depends on who is simulating it.  It
    terminates when
       UTM simulates it, but doesn't terminate when HHH simulates it, due
    to some
       kind of pathelogical relationship specifically with HHH.  This difference in
       simulation is /more/ than one simulator aborting earlier than the other...


    Mike.



    --
    Copyright 2024 Olcott "Talent hits a target no one else can hit; Genius
    hits a target no one else can see." Arthur Schopenhauer

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From olcott@21:1/5 to Ben Bacarisse on Mon Aug 5 19:41:34 2024
    On 8/4/2024 9:33 PM, Ben Bacarisse wrote:
    Mike Terry <news.dead.person.stones@darjeeling.plus.com> writes:

    On 02/08/2024 23:42, Ben Bacarisse wrote:
    Mike Terry <news.dead.person.stones@darjeeling.plus.com> writes:

    Of course these traces don't support PO's overall case he is claiming, >>>> because the (various) logs show that DDD halts, and that HHH(DDD) reports >>>> DDD as non-halting, exactly as Linz/Sipser argue. Er, that's about it!
    PO certainly used to claim that false (non-halting) is the correct
    result "even though DDD halts" (I've edited the quote to reflect a name
    change). Unless he's changed this position, the traces do support his
    claim that what everyone else calls the wrong answer is actually the
    right one.

    So, in your opinion, what do you believe is PO's criterion for "correct
    result", exactly? It would be handy if you can give a proper mathematical >> definition so nobody will have any doubt what it is. Hey, I know you're
    more than capable of getting a definition right, so let's have that
    definition!

    You are joking right?

    PO has no idea what he's talking about. I mean that more literally than
    you might think. The starting point is a gut feeling ("If God can not
    solve the Halting Problem, then there is something wrong with the
    problem") shored up by a basic axiom -- that PO is never wrong. This produces a endless sequence of nonsense statements, like

    "the fact that a computation halts does not entail that it is a
    halting computation" [May 2021]

    "The fact [that] a computation stops running does not prove that it
    halts" [Apr 2021]

    and

    "The same halt decider can have different behavior on the same input"
    [Jan 2021]

    Definition: A TM P given input I is said to "halt" iff ?????
    or whatever...

    Do you really think I can fathom what PO considers to be the "correct
    result" in formal terms? He certainly doesn't know (in general) and I
    can't even hazard a guess.

    It's easy enough to say "PO has his own criterion for halting, which is
    materially different from the HP condition, and so we all agree PO is
    correct by his own criterion, but that does not say anything about the HP
    theorem because it is different from the HP definition".

    He's been very, very clear about this:

    "A non-halting computation is every computation that never halts
    unless its simulation is aborted. This maps to every element of the
    conventional halting problem set of non-halting computations and a few
    more."

    There is something called the "conventional halting problem" and then
    there is there is the PO-halting problem.

    He's even explained in detail at least one of these "few more" cases.
    He sketched the simulator and explained that false (non-halting) is
    correct because of what would happen if line 15 (the check for "needs to
    be aborted") were commented out. The "few more" cases are halting computations that would not halt if the code where a bit different -- if
    the "decider" did not stop the simulation.

    That was in 2020. The last four years have all been about fleshing out
    this sketch of a decider for this "other" halting condition. I am
    staggered that people are still talking about it. Until he repudiates
    the claim that false is the correct answer for some halting
    computations, there is nothing more to discuss.

    But is that /really/ something PO agrees with?

    Does he really agree with what he said? Does he agree that there is
    "the conventional halting problem" and also his own non-halting that
    includes "a few more" computations? Does he agree with himself when he stated, in Oct 2021, that "Yes that is the correct answer even though
    P(P) halts" when asked "do you still assert that H(P,P) == false is the "correct" answer even though P(P) halts?"?

    I don't think so somehow,
    because I'm pretty sure PO believes his claim "refutes" the HP result.

    I am sure he still agrees with what he has said, and I am equally sure
    he still thinks he has refuted a theorem about something else. He, literally, has no idea what he is talking about.

    He
    wouldn't say that if he freely acknowleded that he had invented a
    completely different definition for halting.

    Why do you say that? Are you assuming he is sane? Remember he has
    published a website intended to bring new scripture to the world (https://the-pete.org/) and has asserted in a court of law (through
    lawyers, maybe) that he is God.

    Also, for what you're saying
    to be the right way of looking at things, PO would have to admit that the
    HP proof with its standard definition of halting is valid, and that there
    is nothing wrong with the Linz proof, other than it not applying to his own >> favourite PO-halting definition.

    Only if you assume his mind functions like yours or mine. Take this
    quote on the point you make example:

    "My current proof simply shows exactly how the exact Peter Linz H
    would correctly decide not halting on the exact Peter Linz Ĥ.

    This definition of halting circumvents the pathological self-reference
    error for every simulating halt decider:

    An input is decided to be halting only if its simulation never needs
    to be stopped by any simulating halt decider anywhere in its entire
    invocation chain." [May 2021]

    He clearly thinks that having a different definition of halting
    invalidates Linz's proof.

    I.e. I think your way of looking at it is a bit "too easy" - but I'd be
    happy to be convinced! Personally I suspect PO has no such "new and
    different definition" and that anything along those lines PO is thinking of >> will be quite incoherent. No doubt you could make some definition that is >> at least coherent but we have to ask ourselves - is that definition
    /really/ what PO is thinking???

    There is no doubt that he has a different definition. How could he have
    been more clear? There is the conventional halting problem and then
    there is what he is considering that includes "a few more" cases. He
    clearly tells us that false is the correct answer for some halting computations. He gives a (flabby) definition of PO-halting and states
    that it "circumvents" the proof.

    Nowadays, I think PO's position is more that:
    - yes, DDD() halts when run directly
    - but DDD() when it runs inside HHH simulator /really/ does not halt, in some kind of
    sense that it /really/ has infinite recursion which would never end
    however far it was simulated (because it "exhibits" infinite recursion in some way)
    - and yes, DDD() /does/ halt when simulated within UTM(DDD),
    - but the behaviour of DDD depends on who is simulating it. It terminates when
    UTM simulates it, but doesn't terminate when HHH simulates it, due to some
    kind of pathelogical relationship specifically with HHH. This difference in
    simulation is /more/ than one simulator aborting earlier than the other...

    I fear you have got sucked into the PO tar-pit. Until he categorically repudiates the claim that H(P,P) == false is the correct answer even
    though P(P) halts, I would say that there is nothing more to say.

    Obviously his position "evolves" because he has to keep people talking
    to him (has is a narcissist and needs the attention). But cranks are
    never wrong so he is stuck with what he's said in the past. All of the
    last four years has been about layering piles of detail on the basic
    notion that if the decider were not to halt the computation, the result
    would be a non-halting computation so saying "does not halt" is correct
    even though the computation halts.


    The proof that I was correct all along for the last three years is

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

    *Anyone that knows C should agree that*
    DDD correctly emulated by any HHH that can possibly exist
    cannot possibly reach its own "return" instruction.

    That only gets people to accept the first half of the Sipser
    approved criteria and see what Ben sees.

    When we add the this "return" instruction is Jeff Barnett's
    mentioned "halt state" things get much clearer. Then we might
    begin to see:

    HHH computes the mapping from its input finite string of x86
    machine code... to the above behavior that does not halt.

    Everyone persistently ignores that deciders only compute
    the mapping from their input finite string. This is the
    key mistake of the conventional halting problem proof that
    even Linz makes. *The Linz proof is the greatest proof*

    --
    Copyright 2024 Olcott "Talent hits a target no one else can hit; Genius
    hits a target no one else can see." Arthur Schopenhauer

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