• Re: Can D simulated by H terminate normally? --- Message_ID Provided

    From Richard Damon@21:1/5 to olcott on Sat May 18 15:15:12 2024
    XPost: sci.logic

    On 5/18/24 2:54 PM, olcott wrote:
    On 5/1/2024 7:10 PM, Richard Damon wrote:
    On 5/1/24 12:11 PM, olcott wrote:
    Until you refine your current non-existant definitions of the terms,
    you have the problem described.


    I can't have any idea what you are saying until you fill in
    all of the details of your baseless claims.


    But you refuse to listen.

    Remember, YOU are the one saying you are needing to change the
    definition from the classical theory, where we have things well defined.

    YOU have decided that H is just whatever C code you want to write for
    it, and D is the input proved. (which doesn't actually match the Linz
    or Sipser proof, but fairly close).


    First of all the code template that I am currently referring
    has nothing to do with any decider, it only pertains to a
    simulator where H correctly simulates 1 to ∞ steps of D
    of each H/D pair specified by the following template.

    And that is exactly what my H is. It will simulate all of the steps of
    D, the D that call that H, till it reaches the end.



    typedef int (*ptr)();  // ptr is pointer to int function
    00 int H(ptr x, ptr y);
    01 int D(ptr x)
    02 {
    03   int Halt_Status = H(x, x);
    04   if (Halt_Status)
    05     HERE: goto HERE;
    06   return Halt_Status;
    07 }
    08
    09 int main()
    10 {
    11   H(D,D);
    12   return 0;
    13 }

    In the above case a simulator is an x86 emulator that correctly emulates
    at least one of the x86 instructions of D in the order specified by the
    x86 instructions of D.

    And mine emulates ALL of them to the final return on line 06


    This may include correctly emulating the x86 instructions of H in the
    order specified by the x86 instructions of H thus calling H(D,D) in
    recursive simulation.

    Yep.


    Execution Trace
    Line 11: main() invokes H(D,D);

    keeps repeating (unless aborted)
    Line 01:
    Line 02:
    Line 03: simulated D(D) invokes simulated H(D,D) that simulates D(D)

    Simulation invariant:
    D correctly simulated by H cannot possibly reach past its own line 03.

    Proven wrong.


    The key thing to note is that no D correctly simulated by any H of every
    H/D pair specified by the above template ever reaches its own line 06
    and halts.

    But mine does, so you are just showing you are a liar that doesn't
    understand what he is saying.


    With THAT set of definitions we have a lot of options that break your
    incorrectly assumed results.


    I augmented the definitions since you posted this reply.

    Where?


    The first method has been discussed here by Flibble. While the final
    answer he got to doesn't fit the requirements, the first part of the
    method DOES show that it is possible for an H to simulate to past line 3.


    It is impossible for D to be correctly simulated by H within the
    above definitions that have H as only a simulator and specify
    exactly what a correct simulation is.

    What definitions does it break?



    THe basic idea is that if H(M,d) finds that its simulation of M(d) get
    to a call to H(M,d) then rather that your idea of just saying it will
    get stuck and declair the input invalid, since there ARE a number of
    possible inputs that there is a "correct" answer that H can give to
    match the behavior of the direct execution of M(d), what H does is
    fork its simulation into two threads.


    Pure simulator H has no basis to do that. I am stopping here
    you can update this view on this new set of definitions.



    So, did you not read that I am primarily talking about the SECOND option?

    I guess you don't know how to read and understand basic Englisn.

    Yes, the first option, which is largely based on discussions with
    Flibble, chooses to "simulate" calls to H by replacing them with one of
    the two possible results.

    But the second option, just goes ahead and simulates H by using code
    that makes the simulation work for the defined C function.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to olcott on Sat May 18 15:18:50 2024
    XPost: sci.logic

    On 5/18/24 2:54 PM, olcott wrote:
    On 5/1/2024 7:10 PM, Richard Damon wrote:
    On 5/1/24 12:11 PM, olcott wrote:
    Until you refine your current non-existant definitions of the terms,
    you have the problem described.


    I can't have any idea what you are saying until you fill in
    all of the details of your baseless claims.


    But you refuse to listen.

    Remember, YOU are the one saying you are needing to change the
    definition from the classical theory, where we have things well defined.

    YOU have decider that H is just whatever C code you want to write for
    it, and D is the input proved. (which doesn't actually match the Linz
    or Sipser proof, but fairly close).


    First of all the code template that I am currently referring
    has nothing to do with any decider, it only pertains to a
    simulator where H correctly simulates 1 to ∞ steps of D
    of each H/D pair specified by the following template.

    typedef int (*ptr)();  // ptr is pointer to int function
    00 int H(ptr x, ptr y);
    01 int D(ptr x)
    02 {
    03   int Halt_Status = H(x, x);
    04   if (Halt_Status)
    05     HERE: goto HERE;
    06   return Halt_Status;
    07 }
    08
    09 int main()
    10 {
    11   H(D,D);
    12   return 0;
    13 }

    In the above case a simulator is an x86 emulator that correctly emulates
    at least one of the x86 instructions of D in the order specified by the
    x86 instructions of D.

    This may include correctly emulating the x86 instructions of H in the
    order specified by the x86 instructions of H thus calling H(D,D) in
    recursive simulation.

    Execution Trace
    Line 11: main() invokes H(D,D);

    keeps repeating (unless aborted)
    Line 01:
    Line 02:
    Line 03: simulated D(D) invokes simulated H(D,D) that simulates D(D)

    Simulation invariant:
    D correctly simulated by H cannot possibly reach past its own line 03.

    The key thing to note is that no D correctly simulated by any H of every
    H/D pair specified by the above template ever reaches its own line 06
    and halts.

    With THAT set of definitions we have a lot of options that break your
    incorrectly assumed results.


    I augmented the definitions since you posted this reply.

    The first method has been discussed here by Flibble. While the final
    answer he got to doesn't fit the requirements, the first part of the
    method DOES show that it is possible for an H to simulate to past line 3.


    It is impossible for D to be correctly simulated by H within the
    above definitions that have H as only a simulator and specify
    exactly what a correct simulation is.

    THe basic idea is that if H(M,d) finds that its simulation of M(d) get
    to a call to H(M,d) then rather that your idea of just saying it will
    get stuck and declair the input invalid, since there ARE a number of
    possible inputs that there is a "correct" answer that H can give to
    match the behavior of the direct execution of M(d), what H does is
    fork its simulation into two threads.


    Pure simulator H has no basis to do that. I am stopping here
    you can update this view on this new set of definitions.



    And point of fact, YOUR H doesn't meet your definition either, so I
    guess you admit that you are just a cheating liar. Your publish code for
    H specifically stops simulationg at a callto H, and then starts showing
    the trace of the machine it simulated. (Your HH may be different, but
    not your H)

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to olcott on Sat May 18 15:42:06 2024
    XPost: sci.logic

    On 5/18/24 3:28 PM, olcott wrote:
    On 5/18/2024 2:18 PM, Richard Damon wrote:
    On 5/18/24 2:54 PM, olcott wrote:
    On 5/1/2024 7:10 PM, Richard Damon wrote:
    On 5/1/24 12:11 PM, olcott wrote:
    Until you refine your current non-existant definitions of the
    terms, you have the problem described.


    I can't have any idea what you are saying until you fill in
    all of the details of your baseless claims.


    But you refuse to listen.

    Remember, YOU are the one saying you are needing to change the
    definition from the classical theory, where we have things well
    defined.

    YOU have decider that H is just whatever C code you want to write
    for it, and D is the input proved. (which doesn't actually match the
    Linz or Sipser proof, but fairly close).


    First of all the code template that I am currently referring
    has nothing to do with any decider, it only pertains to a
    simulator where H correctly simulates 1 to ∞ steps of D
    of each H/D pair specified by the following template.

    typedef int (*ptr)();  // ptr is pointer to int function
    00 int H(ptr x, ptr y);
    01 int D(ptr x)
    02 {
    03   int Halt_Status = H(x, x);
    04   if (Halt_Status)
    05     HERE: goto HERE;
    06   return Halt_Status;
    07 }
    08
    09 int main()
    10 {
    11   H(D,D);
    12   return 0;
    13 }

    In the above case a simulator is an x86 emulator that correctly emulates >>> at least one of the x86 instructions of D in the order specified by the
    x86 instructions of D.

    This may include correctly emulating the x86 instructions of H in the
    order specified by the x86 instructions of H thus calling H(D,D) in
    recursive simulation.

    Execution Trace
    Line 11: main() invokes H(D,D);

    keeps repeating (unless aborted)
    Line 01:
    Line 02:
    Line 03: simulated D(D) invokes simulated H(D,D) that simulates D(D)

    Simulation invariant:
    D correctly simulated by H cannot possibly reach past its own line 03.

    The key thing to note is that no D correctly simulated by any H of
    every H/D pair specified by the above template ever reaches its own
    line 06 and halts.

    With THAT set of definitions we have a lot of options that break
    your incorrectly assumed results.


    I augmented the definitions since you posted this reply.

    The first method has been discussed here by Flibble. While the final
    answer he got to doesn't fit the requirements, the first part of the
    method DOES show that it is possible for an H to simulate to past
    line 3.


    It is impossible for D to be correctly simulated by H within the
    above definitions that have H as only a simulator and specify
    exactly what a correct simulation is.

    THe basic idea is that if H(M,d) finds that its simulation of M(d)
    get to a call to H(M,d) then rather that your idea of just saying it
    will get stuck and declair the input invalid, since there ARE a
    number of possible inputs that there is a "correct" answer that H
    can give to match the behavior of the direct execution of M(d), what
    H does is fork its simulation into two threads.


    Pure simulator H has no basis to do that. I am stopping here
    you can update this view on this new set of definitions.



    And point of fact, YOUR H doesn't meet your definition either,

    The above refers to pure simulator H that correctly simulates
    1 to ∞ steps of D. It takes you a very very long time to
    *PAY COMPLETE ATTENTION TO ALL OF MY EXACT WORDS*


    Which is what the second method does.

    You are just proving that you are just totally incompetent, stupid, and
    a pathological liar.

    I guess you are dooming yourself to take that label to the grave, and
    into the fiery pit you have condemned yourself to.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to olcott on Sat May 18 16:02:11 2024
    XPost: sci.logic

    On 5/18/24 3:57 PM, olcott wrote:
    On 5/1/2024 7:10 PM, Richard Damon wrote:
    The second method uses the fact that you have not restricted what H is
    allowed to do, and thus H can remember that it is simulating, and if a
    call to H shows that it is currently doing a simulation, just
    immediately return 0.

    Nice try but this has no effect on any D correctly simulated by H.
    When the directly executed H aborts its simulation it only returns
    to whatever directly executed it.

    Why? My H does correctly simulate the D it was given.

    You don't seem to understand how the C code actually works.


    If the directly executed outermost H does not abort then none of
    the inner simulated ones abort because they are the exact same code.
    When the directly executed outermost H does abort it can only return
    to its own caller.

    WHAT inner simulatioin?


    My H begins as:

    int H(ptr x, ptr y) {
    static int flag = 0;
    if(flag) return 0;
    flag = 1;

    followed by essentially your code for H, except that you need to disable
    the hack that doesn't simulate the call to H, but just let it continue
    into H where it will immediately return to D and D will then return.


    Thus, your claim is shown to be wrong.


    Thus, H can actually correct simulate the instruction at the call to
    H, as they will execute just a few instructions testing that condition
    and returning, and thus not run into the problem you ran into where H
    just couldn't simulate itself because it got bogged down.

    In this case it is actually true that the direct execution of D(D)
    differs from the correct simulation of the input by H, as H is no
    longer a "Computation" per the rules of Computation Theory, but you
    have admitted that you are abandoning those, so it doesn't matter (of
    course that make trying to get your results to apply to something
    similar harder, but that is why you need to try to come up with some
    actual definitons.)

    So, by the rules of Compuation Theory, your H is not correct, but by
    your lack of rules, your conclusion that H can not simulate past the
    call are incorrect, so you proof is also broken.



    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to olcott on Sat May 18 18:22:11 2024
    XPost: sci.logic

    On 5/18/24 5:00 PM, olcott wrote:
    On 5/18/2024 3:02 PM, Richard Damon wrote:
    On 5/18/24 3:57 PM, olcott wrote:
    On 5/1/2024 7:10 PM, Richard Damon wrote:
    The second method uses the fact that you have not restricted what H
    is allowed to do, and thus H can remember that it is simulating, and
    if a call to H shows that it is currently doing a simulation, just
    immediately return 0.

    Nice try but this has no effect on any D correctly simulated by H.
    When the directly executed H aborts its simulation it only returns
    to whatever directly executed it.

    Why? My H does correctly simulate the D it was given.

    You don't seem to understand how the C code actually works.


    If the directly executed outermost H does not abort then none of
    the inner simulated ones abort because they are the exact same code.
    When the directly executed outermost H does abort it can only return
    to its own caller.

    WHAT inner simulatioin?


    My H begins as:

    int H(ptr x, ptr y) {
       static int flag = 0;
       if(flag) return 0;
       flag = 1;

    followed by essentially your code for H, except that you need to
    disable the hack that doesn't simulate the call to H, but just let it
    continue into H where it will immediately return to D and D will then
    return.



    My original H(P,P) does simulate itself simulating P.

    But not your current one per you repository.


    We are talking about every element of an infinite set where
    H correctly simulates 1 to ∞ steps of D thus including 0 to ∞
    recursive simulations of H simulating itself simulating D.

    At whatever point the directly executed H(D,D) stops simulating
    its input it cannot possibly return to any simulated input.


    No, we are talking about ONE of those elements being able to do what you
    said NONE of the elements could do.

    I guess you are just admitting you don't understand what the meaning of
    the various categorical conditions you use mean.

    Your claim is that NONE of that infinite set could simulate D past the
    call H.

    I showed one that does.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to olcott on Sat May 18 19:06:06 2024
    XPost: sci.logic

    On 5/18/24 6:44 PM, olcott wrote:
    On 5/18/2024 3:02 PM, Richard Damon wrote:
    On 5/18/24 3:57 PM, olcott wrote:
    On 5/1/2024 7:10 PM, Richard Damon wrote:
    The second method uses the fact that you have not restricted what H
    is allowed to do, and thus H can remember that it is simulating, and
    if a call to H shows that it is currently doing a simulation, just
    immediately return 0.

    Nice try but this has no effect on any D correctly simulated by H.
    When the directly executed H aborts its simulation it only returns
    to whatever directly executed it.

    Why? My H does correctly simulate the D it was given.

    You don't seem to understand how the C code actually works.


    If the directly executed outermost H does not abort then none of
    the inner simulated ones abort because they are the exact same code.
    When the directly executed outermost H does abort it can only return
    to its own caller.

    WHAT inner simulatioin?


    My H begins as:

    int H(ptr x, ptr y) {
       static int flag = 0;
       if(flag) return 0;
       flag = 1;

    followed by essentially your code for H, except that you need to
    disable the hack that doesn't simulate the call to H, but just let it
    continue into H where it will immediately return to D and D will then
    return.


    Thus, your claim is shown to be wrong.


    We are talking about every element of an infinite set where
    H correctly simulates 1 to ∞ steps of D thus including 0 to ∞
    recursive simulations of H simulating itself simulating D.

    *At whatever point the directly executed H(D,D) stops simulating*
    *its input it cannot possibly return to any simulated input*

    And my H never stops simulating, so that doesn't apply. It will reach
    the final state.

    You seem to not understand such simple things.

    I guess this is because you are just an ignorant pathological liar that
    doesn't care avout the truth, so your rebuttal s don't need to have
    anythign to do with the statement you are claiming to rebute.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to olcott on Sat May 18 19:38:56 2024
    XPost: sci.logic

    On 5/18/24 7:24 PM, olcott wrote:
    On 5/18/2024 6:06 PM, Richard Damon wrote:
    On 5/18/24 6:44 PM, olcott wrote:
    On 5/18/2024 3:02 PM, Richard Damon wrote:
    On 5/18/24 3:57 PM, olcott wrote:
    On 5/1/2024 7:10 PM, Richard Damon wrote:
    The second method uses the fact that you have not restricted what
    H is allowed to do, and thus H can remember that it is simulating, >>>>>> and if a call to H shows that it is currently doing a simulation,
    just immediately return 0.

    Nice try but this has no effect on any D correctly simulated by H.
    When the directly executed H aborts its simulation it only returns
    to whatever directly executed it.

    Why? My H does correctly simulate the D it was given.

    You don't seem to understand how the C code actually works.


    If the directly executed outermost H does not abort then none of
    the inner simulated ones abort because they are the exact same code. >>>>> When the directly executed outermost H does abort it can only return >>>>> to its own caller.

    WHAT inner simulatioin?


    My H begins as:

    int H(ptr x, ptr y) {
       static int flag = 0;
       if(flag) return 0;
       flag = 1;

    followed by essentially your code for H, except that you need to
    disable the hack that doesn't simulate the call to H, but just let
    it continue into H where it will immediately return to D and D will
    then return.


    Thus, your claim is shown to be wrong.


    We are talking about every element of an infinite set where
    H correctly simulates 1 to ∞ steps of D thus including 0 to ∞
    recursive simulations of H simulating itself simulating D.

    *At whatever point the directly executed H(D,D) stops simulating*
    *its input it cannot possibly return to any simulated input*

    And my H never stops simulating, so that doesn't apply. It will reach
    the final state.

    *Show the error in my execution trace that I empirically*
    *proved has no error by H correctly simulating D to the*
    *point where H correctly simulates itself simulating D*
    (Fully operational empirically code proved this)

    See below:



    typedef int (*ptr)();  // ptr is pointer to int function
    00 int H(ptr x, ptr y);
    01 int D(ptr x)
    02 {
    03   int Halt_Status = H(x, x);
    04   if (Halt_Status)
    05     HERE: goto HERE;
    06   return Halt_Status;
    07 }
    08
    09 int main()
    10 {
    11   H(D,D);
    12   return 0;
    13 }

    For Reference

    14 int H(ptr x, ptr y)
    15 {
    16 static int flag = 0
    17 if (flag)
    18 return 0
    19 ... continuation of H that simulates its input


    In the above case a simulator is an x86 emulator that correctly
    emulates at least one of the x86 instructions of D in the order
    specified by the x86 instructions of D.

    This may include correctly emulating the x86 instructions of H
    in the order specified by the x86 instructions of H thus calling
    H(D,D) in recursive simulation.

    Execution Trace
    Line 11: main() invokes H(D,D);

    keeps repeating (unless aborted)
    Line 01
    Line 02
    Line 03: simulated D(D) invokes simulated H(D,D) that simulates D(D)

    Line 03: Calls H (line 14)
    Line 16: Static already inited, so not changed.
    Line 17: Flag is 1, so
    Line 18: Return 0
    Line 03: Set Halt_Status to 0
    Line 04: if (Halt_Status) halts status is 0, so skip
    Line 06: return Halt_Status

    Simulation completed, program halted.



    Simulation invariant:
    D correctly simulated by H cannot possibly reach past its own line 03.



    Nope. Not for this H

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From immibis@21:1/5 to olcott on Sun May 19 14:16:17 2024
    XPost: sci.logic

    On 19/05/24 05:59, olcott wrote:
    On 5/18/2024 6:38 PM, Richard Damon wrote:
    On 5/18/24 7:24 PM, olcott wrote:
    On 5/18/2024 6:06 PM, Richard Damon wrote:
    On 5/18/24 6:44 PM, olcott wrote:
    On 5/18/2024 3:02 PM, Richard Damon wrote:
    On 5/18/24 3:57 PM, olcott wrote:
    On 5/1/2024 7:10 PM, Richard Damon wrote:
    The second method uses the fact that you have not restricted
    what H is allowed to do, and thus H can remember that it is
    simulating, and if a call to H shows that it is currently doing >>>>>>>> a simulation, just immediately return 0.

    Nice try but this has no effect on any D correctly simulated by H. >>>>>>> When the directly executed H aborts its simulation it only returns >>>>>>> to whatever directly executed it.

    Why? My H does correctly simulate the D it was given.

    You don't seem to understand how the C code actually works.


    If the directly executed outermost H does not abort then none of >>>>>>> the inner simulated ones abort because they are the exact same code. >>>>>>> When the directly executed outermost H does abort it can only return >>>>>>> to its own caller.

    WHAT inner simulatioin?


    My H begins as:

    int H(ptr x, ptr y) {
       static int flag = 0;
       if(flag) return 0;
       flag = 1;

    followed by essentially your code for H, except that you need to
    disable the hack that doesn't simulate the call to H, but just let >>>>>> it continue into H where it will immediately return to D and D
    will then return.


    Thus, your claim is shown to be wrong.


    We are talking about every element of an infinite set where
    H correctly simulates 1 to ∞ steps of D thus including 0 to ∞
    recursive simulations of H simulating itself simulating D.

    *At whatever point the directly executed H(D,D) stops simulating*
    *its input it cannot possibly return to any simulated input*

    And my H never stops simulating, so that doesn't apply. It will
    reach the final state.

    *Show the error in my execution trace that I empirically*
    *proved has no error by H correctly simulating D to the*
    *point where H correctly simulates itself simulating D*
    (Fully operational empirically code proved this)

    See below:



    typedef int (*ptr)();  // ptr is pointer to int function
    00 int H(ptr x, ptr y);
    01 int D(ptr x)
    02 {
    03   int Halt_Status = H(x, x);
    04   if (Halt_Status)
    05     HERE: goto HERE;
    06   return Halt_Status;
    07 }
    08
    09 int main()
    10 {
    11   H(D,D);
    12   return 0;
    13 }

    For Reference

    14 int H(ptr x, ptr y)
    15 {
    16   static int flag = 0
    17   if (flag)
    18      return 0
    19   ... continuation of H that simulates its input


    In the above case a simulator is an x86 emulator that correctly
    emulates at least one of the x86 instructions of D in the order
    specified by the x86 instructions of D.

    This may include correctly emulating the x86 instructions of H
    in the order specified by the x86 instructions of H thus calling
    H(D,D) in recursive simulation.

    Execution Trace
    Line 11: main() invokes H(D,D);

    keeps repeating (unless aborted)
    Line 01
    Line 02
    Line 03: simulated D(D) invokes simulated H(D,D) that simulates D(D)

    Line 03: Calls H (line 14)
    Line 16: Static already inited, so not changed.
    Line 17: Flag is 1, so
    Line 18: Return 0
    Line 03: Set Halt_Status to 0
    Line 04: if (Halt_Status)      halts status is 0, so skip
    Line 06: return Halt_Status

    Simulation completed, program halted.



    Simulation invariant:
    D correctly simulated by H cannot possibly reach past its own line 03.



    Nope. Not for this H



    (a) That idea might work yet you did not say it correctly.
    For example line 11 is the first one invoked.
    (b) Computable functions cannot alter their behavior this way.

    (1) the function return values are identical for identical arguments (no variation with local static variables, non-local variables, mutable
    reference arguments or input streams, i.e., referential transparency), and

    Your function H works like Richard's function H. You just called the
    variable "execution trace" instead of "flag".

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to olcott on Sun May 19 13:17:28 2024
    XPost: sci.logic

    On 5/19/24 9:14 AM, olcott wrote:
    On 5/19/2024 7:16 AM, immibis wrote:
    On 19/05/24 05:59, olcott wrote:
    On 5/18/2024 6:38 PM, Richard Damon wrote:
    On 5/18/24 7:24 PM, olcott wrote:
    On 5/18/2024 6:06 PM, Richard Damon wrote:
    On 5/18/24 6:44 PM, olcott wrote:
    On 5/18/2024 3:02 PM, Richard Damon wrote:
    On 5/18/24 3:57 PM, olcott wrote:
    On 5/1/2024 7:10 PM, Richard Damon wrote:
    The second method uses the fact that you have not restricted >>>>>>>>>> what H is allowed to do, and thus H can remember that it is >>>>>>>>>> simulating, and if a call to H shows that it is currently
    doing a simulation, just immediately return 0.

    Nice try but this has no effect on any D correctly simulated by H. >>>>>>>>> When the directly executed H aborts its simulation it only returns >>>>>>>>> to whatever directly executed it.

    Why? My H does correctly simulate the D it was given.

    You don't seem to understand how the C code actually works.


    If the directly executed outermost H does not abort then none of >>>>>>>>> the inner simulated ones abort because they are the exact same >>>>>>>>> code.
    When the directly executed outermost H does abort it can only >>>>>>>>> return
    to its own caller.

    WHAT inner simulatioin?


    My H begins as:

    int H(ptr x, ptr y) {
       static int flag = 0;
       if(flag) return 0;
       flag = 1;

    followed by essentially your code for H, except that you need to >>>>>>>> disable the hack that doesn't simulate the call to H, but just >>>>>>>> let it continue into H where it will immediately return to D and >>>>>>>> D will then return.


    Thus, your claim is shown to be wrong.


    We are talking about every element of an infinite set where
    H correctly simulates 1 to ∞ steps of D thus including 0 to ∞ >>>>>>> recursive simulations of H simulating itself simulating D.

    *At whatever point the directly executed H(D,D) stops simulating* >>>>>>> *its input it cannot possibly return to any simulated input*

    And my H never stops simulating, so that doesn't apply. It will
    reach the final state.

    *Show the error in my execution trace that I empirically*
    *proved has no error by H correctly simulating D to the*
    *point where H correctly simulates itself simulating D*
    (Fully operational empirically code proved this)

    See below:



    typedef int (*ptr)();  // ptr is pointer to int function
    00 int H(ptr x, ptr y);
    01 int D(ptr x)
    02 {
    03   int Halt_Status = H(x, x);
    04   if (Halt_Status)
    05     HERE: goto HERE;
    06   return Halt_Status;
    07 }
    08
    09 int main()
    10 {
    11   H(D,D);
    12   return 0;
    13 }

    For Reference

    14 int H(ptr x, ptr y)
    15 {
    16   static int flag = 0
    17   if (flag)
    18      return 0
    19   ... continuation of H that simulates its input


    In the above case a simulator is an x86 emulator that correctly
    emulates at least one of the x86 instructions of D in the order
    specified by the x86 instructions of D.

    This may include correctly emulating the x86 instructions of H
    in the order specified by the x86 instructions of H thus calling
    H(D,D) in recursive simulation.

    Execution Trace
    Line 11: main() invokes H(D,D);

    keeps repeating (unless aborted)
    Line 01
    Line 02
    Line 03: simulated D(D) invokes simulated H(D,D) that simulates D(D)

    Line 03: Calls H (line 14)
    Line 16: Static already inited, so not changed.
    Line 17: Flag is 1, so
    Line 18: Return 0
    Line 03: Set Halt_Status to 0
    Line 04: if (Halt_Status)      halts status is 0, so skip
    Line 06: return Halt_Status

    Simulation completed, program halted.



    Simulation invariant:
    D correctly simulated by H cannot possibly reach past its own line 03. >>>>>


    Nope. Not for this H



    (a) That idea might work yet you did not say it correctly.
    For example line 11 is the first one invoked.
    (b) Computable functions cannot alter their behavior this way.

    (1) the function return values are identical for identical arguments (no >>> variation with local static variables, non-local variables, mutable
    reference arguments or input streams, i.e., referential
    transparency), and

    Your function H works like Richard's function H. You just called the
    variable "execution trace" instead of "flag".

    Since Richard did not respond to this post I am taking that
    as he understands that he is incorrect.


    No, I ran out of time this morning to answer before needing to go to a commitment. Debating you is on a time available basis, since you are
    just showing you aren't really interested in an honest debate.

    He has known this whole time that we having only been talking
    about computable functions. Thus he knows his example using
    static data is no good.


    Nope. You just don't understand what those are, see my reply for detaila.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to olcott on Sun May 19 19:31:29 2024
    XPost: sci.logic

    On 5/19/24 3:46 PM, olcott wrote:
    On 5/19/2024 12:17 PM, Richard Damon wrote:
    On 5/18/24 11:59 PM, olcott wrote:
    On 5/18/2024 6:38 PM, Richard Damon wrote:
    On 5/18/24 7:24 PM, olcott wrote:
    On 5/18/2024 6:06 PM, Richard Damon wrote:
    On 5/18/24 6:44 PM, olcott wrote:
    On 5/18/2024 3:02 PM, Richard Damon wrote:
    On 5/18/24 3:57 PM, olcott wrote:
    On 5/1/2024 7:10 PM, Richard Damon wrote:
    The second method uses the fact that you have not restricted >>>>>>>>>> what H is allowed to do, and thus H can remember that it is >>>>>>>>>> simulating, and if a call to H shows that it is currently
    doing a simulation, just immediately return 0.

    Nice try but this has no effect on any D correctly simulated by H. >>>>>>>>> When the directly executed H aborts its simulation it only returns >>>>>>>>> to whatever directly executed it.

    Why? My H does correctly simulate the D it was given.

    You don't seem to understand how the C code actually works.


    If the directly executed outermost H does not abort then none of >>>>>>>>> the inner simulated ones abort because they are the exact same >>>>>>>>> code.
    When the directly executed outermost H does abort it can only >>>>>>>>> return
    to its own caller.

    WHAT inner simulatioin?


    My H begins as:

    int H(ptr x, ptr y) {
       static int flag = 0;
       if(flag) return 0;
       flag = 1;

    followed by essentially your code for H, except that you need to >>>>>>>> disable the hack that doesn't simulate the call to H, but just >>>>>>>> let it continue into H where it will immediately return to D and >>>>>>>> D will then return.


    Thus, your claim is shown to be wrong.


    We are talking about every element of an infinite set where
    H correctly simulates 1 to ∞ steps of D thus including 0 to ∞ >>>>>>> recursive simulations of H simulating itself simulating D.

    *At whatever point the directly executed H(D,D) stops simulating* >>>>>>> *its input it cannot possibly return to any simulated input*

    And my H never stops simulating, so that doesn't apply. It will
    reach the final state.

    *Show the error in my execution trace that I empirically*
    *proved has no error by H correctly simulating D to the*
    *point where H correctly simulates itself simulating D*
    (Fully operational empirically code proved this)

    See below:



    typedef int (*ptr)();  // ptr is pointer to int function
    00 int H(ptr x, ptr y);
    01 int D(ptr x)
    02 {
    03   int Halt_Status = H(x, x);
    04   if (Halt_Status)
    05     HERE: goto HERE;
    06   return Halt_Status;
    07 }
    08
    09 int main()
    10 {
    11   H(D,D);
    12   return 0;
    13 }

    For Reference

    14 int H(ptr x, ptr y)
    15 {
    16   static int flag = 0
    17   if (flag)
    18      return 0
    19   ... continuation of H that simulates its input


    In the above case a simulator is an x86 emulator that correctly
    emulates at least one of the x86 instructions of D in the order
    specified by the x86 instructions of D.

    This may include correctly emulating the x86 instructions of H
    in the order specified by the x86 instructions of H thus calling
    H(D,D) in recursive simulation.

    Execution Trace
    Line 11: main() invokes H(D,D);

    keeps repeating (unless aborted)
    Line 01
    Line 02
    Line 03: simulated D(D) invokes simulated H(D,D) that simulates D(D)

    Line 03: Calls H (line 14)
    Line 16: Static already inited, so not changed.
    Line 17: Flag is 1, so
    Line 18: Return 0
    Line 03: Set Halt_Status to 0
    Line 04: if (Halt_Status)      halts status is 0, so skip
    Line 06: return Halt_Status

    Simulation completed, program halted.



    Simulation invariant:
    D correctly simulated by H cannot possibly reach past its own line 03. >>>>>


    Nope. Not for this H



    (a) That idea might work yet you did not say it correctly.
    For example line 11 is the first one invoked.


    No, I was showing what happens INSTEAD of your last line 03.

    Are you so stupid that you need everything just fully explained to you?


    *You just admitted that you thought that lying is OK because*
    *I did not specifically say that I expect correct answers*


    So you ADMIT that your H won't return the correct answer?

    Your final statement is that H is CORRECT about the behavior input, by
    making the decision.

    If you retract that, and admit that H is just making up a story by its
    answer, then you are admitting that you are working on a pure fantasy
    that means absoultely nothing.

    I guess every time you claim something to be "correct" we can assume
    that means that it might be correct, or it might be wrong, Peter Olcott
    doesn't mean anything by calling something to be "Correct"


    On 5/19/2024 12:17 PM, Richard Damon wrote:
    On 5/19/24 9:59 AM, olcott wrote:
    Richard has stated that he thinks that an example of
    {D never simulated by H} ∈ {every D simulated by H}

    No, the H that didn't simulate its input shows that
    *once you allow H to not be required to be correct*,
    that we can then have a trivial function that is
    "just as correct" (since wrong answers were allowed).


    On 5/1/2024 7:28 PM, Richard Damon wrote:
    Message-ID: <v0ummt$2qov3$2@i2pn2.org>
    http://al.howardknight.net/?STYPE=msgid&MSGI=%3Cv0ummt%242qov3%242%40i2pn2.org%3E



    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From immibis@21:1/5 to olcott on Mon May 20 06:37:17 2024
    XPost: sci.logic

    On 19/05/24 15:06, olcott wrote:
    On 5/19/2024 7:16 AM, immibis wrote:
    On 19/05/24 05:59, olcott wrote:
    On 5/18/2024 6:38 PM, Richard Damon wrote:
    On 5/18/24 7:24 PM, olcott wrote:
    On 5/18/2024 6:06 PM, Richard Damon wrote:
    On 5/18/24 6:44 PM, olcott wrote:
    On 5/18/2024 3:02 PM, Richard Damon wrote:
    On 5/18/24 3:57 PM, olcott wrote:
    On 5/1/2024 7:10 PM, Richard Damon wrote:
    The second method uses the fact that you have not restricted >>>>>>>>>> what H is allowed to do, and thus H can remember that it is >>>>>>>>>> simulating, and if a call to H shows that it is currently
    doing a simulation, just immediately return 0.

    Nice try but this has no effect on any D correctly simulated by H. >>>>>>>>> When the directly executed H aborts its simulation it only returns >>>>>>>>> to whatever directly executed it.

    Why? My H does correctly simulate the D it was given.

    You don't seem to understand how the C code actually works.


    If the directly executed outermost H does not abort then none of >>>>>>>>> the inner simulated ones abort because they are the exact same >>>>>>>>> code.
    When the directly executed outermost H does abort it can only >>>>>>>>> return
    to its own caller.

    WHAT inner simulatioin?


    My H begins as:

    int H(ptr x, ptr y) {
       static int flag = 0;
       if(flag) return 0;
       flag = 1;

    followed by essentially your code for H, except that you need to >>>>>>>> disable the hack that doesn't simulate the call to H, but just >>>>>>>> let it continue into H where it will immediately return to D and >>>>>>>> D will then return.


    Thus, your claim is shown to be wrong.


    We are talking about every element of an infinite set where
    H correctly simulates 1 to ∞ steps of D thus including 0 to ∞ >>>>>>> recursive simulations of H simulating itself simulating D.

    *At whatever point the directly executed H(D,D) stops simulating* >>>>>>> *its input it cannot possibly return to any simulated input*

    And my H never stops simulating, so that doesn't apply. It will
    reach the final state.

    *Show the error in my execution trace that I empirically*
    *proved has no error by H correctly simulating D to the*
    *point where H correctly simulates itself simulating D*
    (Fully operational empirically code proved this)

    See below:



    typedef int (*ptr)();  // ptr is pointer to int function
    00 int H(ptr x, ptr y);
    01 int D(ptr x)
    02 {
    03   int Halt_Status = H(x, x);
    04   if (Halt_Status)
    05     HERE: goto HERE;
    06   return Halt_Status;
    07 }
    08
    09 int main()
    10 {
    11   H(D,D);
    12   return 0;
    13 }

    For Reference

    14 int H(ptr x, ptr y)
    15 {
    16   static int flag = 0
    17   if (flag)
    18      return 0
    19   ... continuation of H that simulates its input


    In the above case a simulator is an x86 emulator that correctly
    emulates at least one of the x86 instructions of D in the order
    specified by the x86 instructions of D.

    This may include correctly emulating the x86 instructions of H
    in the order specified by the x86 instructions of H thus calling
    H(D,D) in recursive simulation.

    Execution Trace
    Line 11: main() invokes H(D,D);

    keeps repeating (unless aborted)
    Line 01
    Line 02
    Line 03: simulated D(D) invokes simulated H(D,D) that simulates D(D)

    Line 03: Calls H (line 14)
    Line 16: Static already inited, so not changed.
    Line 17: Flag is 1, so
    Line 18: Return 0
    Line 03: Set Halt_Status to 0
    Line 04: if (Halt_Status)      halts status is 0, so skip
    Line 06: return Halt_Status

    Simulation completed, program halted.



    Simulation invariant:
    D correctly simulated by H cannot possibly reach past its own line 03. >>>>>


    Nope. Not for this H



    (a) That idea might work yet you did not say it correctly.
    For example line 11 is the first one invoked.
    (b) Computable functions cannot alter their behavior this way.

    (1) the function return values are identical for identical arguments (no >>> variation with local static variables, non-local variables, mutable
    reference arguments or input streams, i.e., referential
    transparency), and

    Your function H works like Richard's function H. You just called the
    variable "execution trace" instead of "flag".

    pages 4-5 (of a paper that I published 2021-09-26 09:39 AM)
    Show H simulating P and H simulating itself simulating P.

    The 395 pages of the execution trace of the simulated H are
    screened out. No one here could ever understand the half page
    trace so embedding that in 395 more pages would not help.

    The fact that you took 395 pages to get to "if(flag) return 0;" does not
    mean that you didn't use "if(flag) return 0;"


    That P is simulated correctly is proven by the fact that the
    x86 assembly language instructions of P are correctly simulated
    and they are simulated in the order that the assembly language
    of P specifies.

    This is a lie -> If every assembly instruction that was simulated is
    simulated correctly, the program was simulated correctly. <- This is a lie.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From immibis@21:1/5 to olcott on Mon May 20 10:37:55 2024
    XPost: sci.logic

    On 20/05/24 07:17, olcott wrote:
    On 5/19/2024 11:37 PM, immibis wrote:
    On 19/05/24 15:06, olcott wrote:
    Show H simulating P and H simulating itself simulating P.

    The 395 pages of the execution trace of the simulated H are
    screened out. No one here could ever understand the half page
    trace so embedding that in 395 more pages would not help.

    The fact that you took 395 pages to get to "if(flag) return 0;" does
    not mean that you didn't use "if(flag) return 0;"


    That P is simulated correctly is proven by the fact that the
    x86 assembly language instructions of P are correctly simulated
    and they are simulated in the order that the assembly language
    of P specifies.

    This is a lie -> If every assembly instruction that was simulated is
    simulated correctly, the program was simulated correctly. <- This is a
    lie.


    *Quoted from page 4 of the paper linked below*

    Notice that none of what you wrote had any relationship to anything that
    I wrote.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From immibis@21:1/5 to olcott on Mon May 20 11:01:29 2024
    XPost: sci.logic

    On 19/05/24 15:14, olcott wrote:
    On 5/19/2024 7:16 AM, immibis wrote:
    On 19/05/24 05:59, olcott wrote:
    On 5/18/2024 6:38 PM, Richard Damon wrote:
    On 5/18/24 7:24 PM, olcott wrote:
    On 5/18/2024 6:06 PM, Richard Damon wrote:
    On 5/18/24 6:44 PM, olcott wrote:
    On 5/18/2024 3:02 PM, Richard Damon wrote:
    On 5/18/24 3:57 PM, olcott wrote:
    On 5/1/2024 7:10 PM, Richard Damon wrote:
    The second method uses the fact that you have not restricted >>>>>>>>>> what H is allowed to do, and thus H can remember that it is >>>>>>>>>> simulating, and if a call to H shows that it is currently
    doing a simulation, just immediately return 0.

    Nice try but this has no effect on any D correctly simulated by H. >>>>>>>>> When the directly executed H aborts its simulation it only returns >>>>>>>>> to whatever directly executed it.

    Why? My H does correctly simulate the D it was given.

    You don't seem to understand how the C code actually works.


    If the directly executed outermost H does not abort then none of >>>>>>>>> the inner simulated ones abort because they are the exact same >>>>>>>>> code.
    When the directly executed outermost H does abort it can only >>>>>>>>> return
    to its own caller.

    WHAT inner simulatioin?


    My H begins as:

    int H(ptr x, ptr y) {
       static int flag = 0;
       if(flag) return 0;
       flag = 1;

    followed by essentially your code for H, except that you need to >>>>>>>> disable the hack that doesn't simulate the call to H, but just >>>>>>>> let it continue into H where it will immediately return to D and >>>>>>>> D will then return.


    Thus, your claim is shown to be wrong.


    We are talking about every element of an infinite set where
    H correctly simulates 1 to ∞ steps of D thus including 0 to ∞ >>>>>>> recursive simulations of H simulating itself simulating D.

    *At whatever point the directly executed H(D,D) stops simulating* >>>>>>> *its input it cannot possibly return to any simulated input*

    And my H never stops simulating, so that doesn't apply. It will
    reach the final state.

    *Show the error in my execution trace that I empirically*
    *proved has no error by H correctly simulating D to the*
    *point where H correctly simulates itself simulating D*
    (Fully operational empirically code proved this)

    See below:



    typedef int (*ptr)();  // ptr is pointer to int function
    00 int H(ptr x, ptr y);
    01 int D(ptr x)
    02 {
    03   int Halt_Status = H(x, x);
    04   if (Halt_Status)
    05     HERE: goto HERE;
    06   return Halt_Status;
    07 }
    08
    09 int main()
    10 {
    11   H(D,D);
    12   return 0;
    13 }

    For Reference

    14 int H(ptr x, ptr y)
    15 {
    16   static int flag = 0
    17   if (flag)
    18      return 0
    19   ... continuation of H that simulates its input


    In the above case a simulator is an x86 emulator that correctly
    emulates at least one of the x86 instructions of D in the order
    specified by the x86 instructions of D.

    This may include correctly emulating the x86 instructions of H
    in the order specified by the x86 instructions of H thus calling
    H(D,D) in recursive simulation.

    Execution Trace
    Line 11: main() invokes H(D,D);

    keeps repeating (unless aborted)
    Line 01
    Line 02
    Line 03: simulated D(D) invokes simulated H(D,D) that simulates D(D)

    Line 03: Calls H (line 14)
    Line 16: Static already inited, so not changed.
    Line 17: Flag is 1, so
    Line 18: Return 0
    Line 03: Set Halt_Status to 0
    Line 04: if (Halt_Status)      halts status is 0, so skip
    Line 06: return Halt_Status

    Simulation completed, program halted.



    Simulation invariant:
    D correctly simulated by H cannot possibly reach past its own line 03. >>>>>


    Nope. Not for this H



    (a) That idea might work yet you did not say it correctly.
    For example line 11 is the first one invoked.
    (b) Computable functions cannot alter their behavior this way.

    (1) the function return values are identical for identical arguments (no >>> variation with local static variables, non-local variables, mutable
    reference arguments or input streams, i.e., referential
    transparency), and

    Your function H works like Richard's function H. You just called the
    variable "execution trace" instead of "flag".

    Since Richard did not respond to this post I am taking that
    as he understands that he is incorrect.

    He has known this whole time that we having only been talking
    about computable functions. Thus he knows his example using
    static data is no good.

    But the function H that you wrote also uses static data.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to olcott on Mon May 20 07:24:43 2024
    XPost: sci.logic

    On 5/20/24 1:17 AM, olcott wrote:
    On 5/19/2024 11:37 PM, immibis wrote:
    On 19/05/24 15:06, olcott wrote:
    On 5/19/2024 7:16 AM, immibis wrote:
    On 19/05/24 05:59, olcott wrote:
    On 5/18/2024 6:38 PM, Richard Damon wrote:
    On 5/18/24 7:24 PM, olcott wrote:
    On 5/18/2024 6:06 PM, Richard Damon wrote:
    On 5/18/24 6:44 PM, olcott wrote:
    On 5/18/2024 3:02 PM, Richard Damon wrote:
    On 5/18/24 3:57 PM, olcott wrote:
    On 5/1/2024 7:10 PM, Richard Damon wrote:
    The second method uses the fact that you have not restricted >>>>>>>>>>>> what H is allowed to do, and thus H can remember that it is >>>>>>>>>>>> simulating, and if a call to H shows that it is currently >>>>>>>>>>>> doing a simulation, just immediately return 0.

    Nice try but this has no effect on any D correctly simulated >>>>>>>>>>> by H.
    When the directly executed H aborts its simulation it only >>>>>>>>>>> returns
    to whatever directly executed it.

    Why? My H does correctly simulate the D it was given.

    You don't seem to understand how the C code actually works. >>>>>>>>>>

    If the directly executed outermost H does not abort then none of >>>>>>>>>>> the inner simulated ones abort because they are the exact >>>>>>>>>>> same code.
    When the directly executed outermost H does abort it can only >>>>>>>>>>> return
    to its own caller.

    WHAT inner simulatioin?


    My H begins as:

    int H(ptr x, ptr y) {
       static int flag = 0;
       if(flag) return 0;
       flag = 1;

    followed by essentially your code for H, except that you need >>>>>>>>>> to disable the hack that doesn't simulate the call to H, but >>>>>>>>>> just let it continue into H where it will immediately return >>>>>>>>>> to D and D will then return.


    Thus, your claim is shown to be wrong.


    We are talking about every element of an infinite set where
    H correctly simulates 1 to ∞ steps of D thus including 0 to ∞ >>>>>>>>> recursive simulations of H simulating itself simulating D.

    *At whatever point the directly executed H(D,D) stops simulating* >>>>>>>>> *its input it cannot possibly return to any simulated input*

    And my H never stops simulating, so that doesn't apply. It will >>>>>>>> reach the final state.

    *Show the error in my execution trace that I empirically*
    *proved has no error by H correctly simulating D to the*
    *point where H correctly simulates itself simulating D*
    (Fully operational empirically code proved this)

    See below:



    typedef int (*ptr)();  // ptr is pointer to int function
    00 int H(ptr x, ptr y);
    01 int D(ptr x)
    02 {
    03   int Halt_Status = H(x, x);
    04   if (Halt_Status)
    05     HERE: goto HERE;
    06   return Halt_Status;
    07 }
    08
    09 int main()
    10 {
    11   H(D,D);
    12   return 0;
    13 }

    For Reference

    14 int H(ptr x, ptr y)
    15 {
    16   static int flag = 0
    17   if (flag)
    18      return 0
    19   ... continuation of H that simulates its input


    In the above case a simulator is an x86 emulator that correctly
    emulates at least one of the x86 instructions of D in the order
    specified by the x86 instructions of D.

    This may include correctly emulating the x86 instructions of H
    in the order specified by the x86 instructions of H thus calling >>>>>>> H(D,D) in recursive simulation.

    Execution Trace
    Line 11: main() invokes H(D,D);

    keeps repeating (unless aborted)
    Line 01
    Line 02
    Line 03: simulated D(D) invokes simulated H(D,D) that simulates D(D) >>>>>>
    Line 03: Calls H (line 14)
    Line 16: Static already inited, so not changed.
    Line 17: Flag is 1, so
    Line 18: Return 0
    Line 03: Set Halt_Status to 0
    Line 04: if (Halt_Status)      halts status is 0, so skip
    Line 06: return Halt_Status

    Simulation completed, program halted.



    Simulation invariant:
    D correctly simulated by H cannot possibly reach past its own
    line 03.



    Nope. Not for this H



    (a) That idea might work yet you did not say it correctly.
    For example line 11 is the first one invoked.
    (b) Computable functions cannot alter their behavior this way.

    (1) the function return values are identical for identical
    arguments (no
    variation with local static variables, non-local variables, mutable
    reference arguments or input streams, i.e., referential
    transparency), and

    Your function H works like Richard's function H. You just called the
    variable "execution trace" instead of "flag".

    pages 4-5 (of a paper that I published 2021-09-26 09:39 AM)
    Show H simulating P and H simulating itself simulating P.

    The 395 pages of the execution trace of the simulated H are
    screened out. No one here could ever understand the half page
    trace so embedding that in 395 more pages would not help.

    The fact that you took 395 pages to get to "if(flag) return 0;" does
    not mean that you didn't use "if(flag) return 0;"


    That P is simulated correctly is proven by the fact that the
    x86 assembly language instructions of P are correctly simulated
    and they are simulated in the order that the assembly language
    of P specifies.

    This is a lie -> If every assembly instruction that was simulated is
    simulated correctly, the program was simulated correctly. <- This is a
    lie.


    *Quoted from page 4 of the paper linked below*
    // Simplified Linz Ĥ (Linz:1990:319)
    // Strachey(1965) CPL translated to C
    void P(u32 x)
    {
      if (H(x, x))HERE:
       goto HERE;
    }

    int main()
    {
      Output("Input_Halts = ", H((u32)P, (u32)P));
    }

    That P is correctly simulated by H is proven by the fact that
    every assembly language instruction of P is correctly simulated
    by H in the order specified by the x86 assembly language of P
    even when H correctly simulates itself simulating P.

    Which just means that you are admitting that you are using a
    non-standard definition of "Correct Simulation" from Computation theory,
    and thus can not link your simulations to non-halting.

    So, your conclusion just becomes unsound.

    There have been numerous other errors pointed out, that make the paper
    not worth the paper it (isn't) printed on.



    All of the details of this (except the 354 page execution
    trace of H) are shown on pages 4-5 of the following paper.

    *Halting problem undecidability and infinitely nested simulation* https://www.researchgate.net/publication/351947980_Halting_problem_undecidability_and_infinitely_nested_simulation



    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to olcott on Mon May 20 20:57:37 2024
    XPost: sci.logic

    On 5/20/24 11:32 AM, olcott wrote:
    On 5/20/2024 3:37 AM, immibis wrote:
    On 20/05/24 07:17, olcott wrote:
    On 5/19/2024 11:37 PM, immibis wrote:
    On 19/05/24 15:06, olcott wrote:
    Show H simulating P and H simulating itself simulating P.

    The 395 pages of the execution trace of the simulated H are
    screened out. No one here could ever understand the half page
    trace so embedding that in 395 more pages would not help.

    The fact that you took 395 pages to get to "if(flag) return 0;" does
    not mean that you didn't use "if(flag) return 0;"


    The fact that every instruction of D is correctly emulated in the
    order of the the assembly language that D specifies both before D
    calls H(D,D) and then after H(D,D) correctly simulates D(D) all
    over again conclusively proves recursive simulation without the
    need for the additional 395 pages mixed in.


    Which means that H did NOT correctly simulate EVERY imstruction in D, as
    it did not correctly simulate the "Call H" instruction.

    The tricky part of this was giving each simulated D its own
    separate process with its own memory registers and stack.

    Nope. because we are only interested in the behavior of the outer D, and
    what that H does processing its input. That is DIFFERENT then what that simulation that is being simulated does.

    Since the simulated H that the top level simulation of D calls will, if
    allowed to run, abort its simulation and return to that D, saying that
    *D* has cause an infinte recursion is just incorrect logic. D doesn't do
    that as the H that it calls, and thus is part of that D, breaks the loop.

    H just can't see that as it aborts its simulation too soon, and your
    logic looks at the WRONG simulations to evaluate what THIS input does.



    That P is simulated correctly is proven by the fact that the
    x86 assembly language instructions of P are correctly simulated
    and they are simulated in the order that the assembly language
    of P specifies.

    This is a lie -> If every assembly instruction that was simulated is
    simulated correctly, the program was simulated correctly. <- This is
    a lie.


    *Quoted from page 4 of the paper linked below*

    Notice that none of what you wrote had any relationship to anything
    that I wrote.


    I am using categorically exhaustive reasoning that can work
    through every possibility that can possibly exist in a feasible
    amount of time as long as the category is very very narrow.

    But don't define the precise category, or the precise thing you are
    trying to measure, so you aren't actually defining what you are doing so
    you can't really limit it.


    Enlarge the category a tiny little bit and then the time
    becomes infeasible.

    The tiniest little divergence from the title of this
    thread and I totally ignore and erase everything else
    that you say.


    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From immibis@21:1/5 to olcott on Tue May 21 06:50:42 2024
    XPost: sci.logic

    On 20/05/24 20:28, olcott wrote:
    *This boiler plate will be the only reply*

    You know that we ignore your boiler plate, right?

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