• Re: DDD correctly emulated by HHH is Correctly rejected as non-halting

    From Richard Damon@21:1/5 to olcott on Fri Jul 12 19:41:16 2024
    XPost: comp.theory, sci.logic

    On 7/12/24 7:19 PM, olcott wrote:
    On 7/12/2024 5:56 PM, Richard Damon wrote:
    On 7/12/24 10:56 AM, olcott wrote:
    We stipulate that the only measure of a correct emulation is the
    semantics of the x86 programming language.

    Which means the only "correct emulation" that tells the behavior of
    the program at the input is a non-aborted one.


    _DDD()
    [00002163] 55         push ebp      ; housekeeping
    [00002164] 8bec       mov ebp,esp   ; housekeeping
    [00002166] 6863210000 push 00002163 ; push DDD
    [0000216b] e853f4ffff call 000015c3 ; call HHH(DDD)
    [00002170] 83c404     add esp,+04
    [00002173] 5d         pop ebp
    [00002174] c3         ret
    Size in bytes:(0018) [00002174]

    When N steps of DDD are emulated by HHH according to the
    semantics of the x86 language then N steps are emulated correctly.

    And thus HHH that do that know only the first N steps of the behavior
    of DDD, which continues per the definition of the x86 instruction set
    until the COMPLETE emulation (or direct execution) reaches a terminal
    instruction.


    When we examine the infinite set of every HHH/DDD pair such that:
    HHH₁ one step of DDD is correctly emulated by HHH.
    HHH₂ two steps of DDD are correctly emulated by HHH.
    HHH₃ three steps of DDD are correctly emulated by HHH.
    ...
    HHH∞ The emulation of DDD by HHH never stops running.

    And thus, the subset that only did a finite number of steps and
    aborted its emulation on a non-terminal instrucition only have partial
    knowledge of the behavior of their DDD, and by returning to their
    caller, they establish that behavior for ALL copies of that HHH, even
    the one that DDD calls, which shows that DDD will be halting, even
    though HHH stopped its observation of the input before it gets to that
    point.


    The above specifies the infinite set of every HHH/DDD pair
    where 1 to infinity steps of DDD are correctly emulated by HHH.

    No DDD instance of each HHH/DDD pair ever reaches past its
    own machine address of 0000216b and halts.

    Wrong. EVERY DDD of an HHH that simulated its input for only a finite
    number of steps WILL halt becuase it will reach its final return.

    The HHH that simulated it for only a finite number of steps, only
    learned that finite number of steps of the behaivor, and in EVERY
    case, when we look at the behavior past that point, which DOES occur
    per the definition of the x86 instruction set, as we have not reached
    a "termial" instruction that stops behavior, will see the HHH(DDD)
    that DDD called continuing to simulate its input to the point that
    this one was defined to stop, and then returns 0 to DDDD and then DDD
    returning and ending the behavior.

    You continue to stupidly confuse the PARTIAL observation that HHH does
    of the behavior of DDD by its PARTIAL emulation with the ACTUAL FULL
    behavior of DDD as defined by the full definition of the x86
    insttuction set.



    Thus each HHH element of the above infinite set of HHH/DDD
    pairs is necessarily correct to reject its DDD as non-halting.


    Nope.

    NONE Of them CORRECTLY rejected itS DDD as non-halting and you are
    shown to be ignorant of what you are talking about.

    The HHH that did a partial emulation got the wrong answer, because
    THEIR DDD will halt. and the HHH that doen't abort never get around to
    rejecting its DDD as non-halting.

    *Here is the gist of my proof it is irrefutable*
    When no DDD of every HHH/DDD that can possibly exist
    halts then each HHH that rejects its DDD as non-halting
    is necessarily correct.

    *No double-talk and weasel words can overcome that*


    Which is just your double-talk to try to redefine what halting means.

    You are just showing your mential inability to distinguish between what
    is actually true and the limited observation of your machines, or that
    all the DDDs that the HHHs are emulating are DIFFERENT, because they
    need to include the HHH they are paired with, or HHH CAN'T do what you
    said it does.

    The fact that HHH's partial emulation doesn't reach the terminal
    instructions, doesn't mean that the actual behavior doesn't.

    You are just stuck in your incorrect subjective view of the universe.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to olcott on Fri Jul 12 23:48:30 2024
    XPost: comp.theory, sci.logic

    On 7/12/24 11:00 PM, olcott wrote:
    On 7/12/2024 6:41 PM, Richard Damon wrote:
    On 7/12/24 7:19 PM, olcott wrote:
    On 7/12/2024 5:56 PM, Richard Damon wrote:
    On 7/12/24 10:56 AM, olcott wrote:
    We stipulate that the only measure of a correct emulation is the
    semantics of the x86 programming language.

    Which means the only "correct emulation" that tells the behavior of
    the program at the input is a non-aborted one.


    _DDD()
    [00002163] 55         push ebp      ; housekeeping
    [00002164] 8bec       mov ebp,esp   ; housekeeping
    [00002166] 6863210000 push 00002163 ; push DDD
    [0000216b] e853f4ffff call 000015c3 ; call HHH(DDD)
    [00002170] 83c404     add esp,+04
    [00002173] 5d         pop ebp
    [00002174] c3         ret
    Size in bytes:(0018) [00002174]

    When N steps of DDD are emulated by HHH according to the
    semantics of the x86 language then N steps are emulated correctly.

    And thus HHH that do that know only the first N steps of the
    behavior of DDD, which continues per the definition of the x86
    instruction set until the COMPLETE emulation (or direct execution)
    reaches a terminal instruction.


    When we examine the infinite set of every HHH/DDD pair such that:
    HHH₁ one step of DDD is correctly emulated by HHH.
    HHH₂ two steps of DDD are correctly emulated by HHH.
    HHH₃ three steps of DDD are correctly emulated by HHH.
    ...
    HHH∞ The emulation of DDD by HHH never stops running.

    And thus, the subset that only did a finite number of steps and
    aborted its emulation on a non-terminal instrucition only have
    partial knowledge of the behavior of their DDD, and by returning to
    their caller, they establish that behavior for ALL copies of that
    HHH, even the one that DDD calls, which shows that DDD will be
    halting, even though HHH stopped its observation of the input before
    it gets to that point.


    The above specifies the infinite set of every HHH/DDD pair
    where 1 to infinity steps of DDD are correctly emulated by HHH.

    No DDD instance of each HHH/DDD pair ever reaches past its
    own machine address of 0000216b and halts.

    Wrong. EVERY DDD of an HHH that simulated its input for only a
    finite number of steps WILL halt becuase it will reach its final
    return.

    The HHH that simulated it for only a finite number of steps, only
    learned that finite number of steps of the behaivor, and in EVERY
    case, when we look at the behavior past that point, which DOES occur
    per the definition of the x86 instruction set, as we have not
    reached a "termial" instruction that stops behavior, will see the
    HHH(DDD) that DDD called continuing to simulate its input to the
    point that this one was defined to stop, and then returns 0 to DDDD
    and then DDD returning and ending the behavior.

    You continue to stupidly confuse the PARTIAL observation that HHH
    does of the behavior of DDD by its PARTIAL emulation with the ACTUAL
    FULL behavior of DDD as defined by the full definition of the x86
    insttuction set.



    Thus each HHH element of the above infinite set of HHH/DDD
    pairs is necessarily correct to reject its DDD as non-halting.


    Nope.

    NONE Of them CORRECTLY rejected itS DDD as non-halting and you are
    shown to be ignorant of what you are talking about.

    The HHH that did a partial emulation got the wrong answer, because
    THEIR DDD will halt. and the HHH that doen't abort never get around
    to rejecting its DDD as non-halting.

    *Here is the gist of my proof it is irrefutable*
    When no DDD of every HHH/DDD that can possibly exist
    halts then each HHH that rejects its DDD as non-halting
    is necessarily correct.

    *No double-talk and weasel words can overcome that*


    Which is just your double-talk to try to redefine what halting means.


    You try to cut my airtight proof up in little pieces and fail.
    Every rebuttal that you make has disagreeing with the semantics
    of the x86 language as its basis.


    How?

    What Semantic of the x86 instruction set as defined by Intel dp I violate?

    Where is the statement that justifies stopping the simulation in any way
    still recreates the full behavior of the program given to the simulator?

    Where does it say that calling a function make the processor do ANYTHING
    other than stepping through the function itself? (So you can try to
    argue that calling HHH, a CONDITIONAL emulator, begins AT THE x86
    INSTRUCTION LEVEL, and emulation of the program given as an input?)

    What "instruction" tells the processor to "emulate" the program
    specified as a parameter to the function being called.


    This is just another of you many unfounded LIES where you claim
    something that you can not prove and just deflect, deflect, deflect, as
    you KNOW you have no grounds to base it on, just you own lies.

    This is just like your "non-sense" and non-existent "Diagonalization"
    proof that shows Godel wrong.

    Your argument is only "Air-tight" in the sense that it is just like a 3
    year old threatening to hold his breath until he turns blue.

    Go ahead, keep repeating you lie, and we can keep on pointing out how
    stupid you are to continue making the claim, it just show how absolutely
    little you understand what you are talking about.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Fred. Zwarts@21:1/5 to All on Sat Jul 13 10:15:37 2024
    XPost: comp.theory, sci.logic

    Op 13.jul.2024 om 01:19 schreef olcott:
    On 7/12/2024 5:56 PM, Richard Damon wrote:
    On 7/12/24 10:56 AM, olcott wrote:
    We stipulate that the only measure of a correct emulation is the
    semantics of the x86 programming language.

    Which means the only "correct emulation" that tells the behavior of
    the program at the input is a non-aborted one.


    _DDD()
    [00002163] 55         push ebp      ; housekeeping
    [00002164] 8bec       mov ebp,esp   ; housekeeping
    [00002166] 6863210000 push 00002163 ; push DDD
    [0000216b] e853f4ffff call 000015c3 ; call HHH(DDD)
    [00002170] 83c404     add esp,+04
    [00002173] 5d         pop ebp
    [00002174] c3         ret
    Size in bytes:(0018) [00002174]

    When N steps of DDD are emulated by HHH according to the
    semantics of the x86 language then N steps are emulated correctly.

    And thus HHH that do that know only the first N steps of the behavior
    of DDD, which continues per the definition of the x86 instruction set
    until the COMPLETE emulation (or direct execution) reaches a terminal
    instruction.


    When we examine the infinite set of every HHH/DDD pair such that:
    HHH₁ one step of DDD is correctly emulated by HHH.
    HHH₂ two steps of DDD are correctly emulated by HHH.
    HHH₃ three steps of DDD are correctly emulated by HHH.
    ...
    HHH∞ The emulation of DDD by HHH never stops running.

    And thus, the subset that only did a finite number of steps and
    aborted its emulation on a non-terminal instrucition only have partial
    knowledge of the behavior of their DDD, and by returning to their
    caller, they establish that behavior for ALL copies of that HHH, even
    the one that DDD calls, which shows that DDD will be halting, even
    though HHH stopped its observation of the input before it gets to that
    point.


    The above specifies the infinite set of every HHH/DDD pair
    where 1 to infinity steps of DDD are correctly emulated by HHH.

    No DDD instance of each HHH/DDD pair ever reaches past its
    own machine address of 0000216b and halts.

    Wrong. EVERY DDD of an HHH that simulated its input for only a finite
    number of steps WILL halt becuase it will reach its final return.

    The HHH that simulated it for only a finite number of steps, only
    learned that finite number of steps of the behaivor, and in EVERY
    case, when we look at the behavior past that point, which DOES occur
    per the definition of the x86 instruction set, as we have not reached
    a "termial" instruction that stops behavior, will see the HHH(DDD)
    that DDD called continuing to simulate its input to the point that
    this one was defined to stop, and then returns 0 to DDDD and then DDD
    returning and ending the behavior.

    You continue to stupidly confuse the PARTIAL observation that HHH does
    of the behavior of DDD by its PARTIAL emulation with the ACTUAL FULL
    behavior of DDD as defined by the full definition of the x86
    insttuction set.



    Thus each HHH element of the above infinite set of HHH/DDD
    pairs is necessarily correct to reject its DDD as non-halting.


    Nope.

    NONE Of them CORRECTLY rejected itS DDD as non-halting and you are
    shown to be ignorant of what you are talking about.

    The HHH that did a partial emulation got the wrong answer, because
    THEIR DDD will halt. and the HHH that doen't abort never get around to
    rejecting its DDD as non-halting.

    *Here is the gist of my proof it is irrefutable*
    When no DDD of every HHH/DDD that can possibly exist
    halts then each HHH that rejects its DDD as non-halting
    is necessarily correct.

    *No double-talk and weasel words can overcome that*


    This is double talk, because no HHH can possibly exist that simulates
    itself correctly. We know that every DDD would halt when simulated
    correctly. Each HHH misses the last part of the behaviour of the input,
    because they all abort one cycle too soon.
    You like to ignore it and continue to double-talk about the properties
    of an empty set of HHH that correctly simulate itself.

    No matter how much you want it to be correct, or how many times you
    repeat that it is correct, it does not change the fact that none of
    these simulations is correct, because none of them is able to reach the end. For each HHH in this set we see that HHH cannot possibly simulate itself correctly.

    DDD has nothing to do with it. It is easy to eliminate DDD:

    int main() {
    return HHH(main);
    }

    This has the same problem. This proves that the problem is not in DDD,
    but in HHH, which halts when it aborts the simulation, but it decides
    that the simulation of itself does not halt.

    HHH is unable to decide about finite recursions.

    void Finite_Recursion (int N) {
    if (N > 0) Finite_Recursion (N - 1);
    }

    It decides after N recursions that there is an infinite recursion, which
    is incorrect.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Fred. Zwarts@21:1/5 to All on Sat Jul 13 14:20:14 2024
    XPost: comp.theory, sci.logic

    Op 13.jul.2024 om 13:39 schreef olcott:
    On 7/13/2024 3:15 AM, Fred. Zwarts wrote:
    Op 13.jul.2024 om 01:19 schreef olcott:
    On 7/12/2024 5:56 PM, Richard Damon wrote:
    On 7/12/24 10:56 AM, olcott wrote:
    We stipulate that the only measure of a correct emulation is the
    semantics of the x86 programming language.

    Which means the only "correct emulation" that tells the behavior of
    the program at the input is a non-aborted one.


    _DDD()
    [00002163] 55         push ebp      ; housekeeping
    [00002164] 8bec       mov ebp,esp   ; housekeeping
    [00002166] 6863210000 push 00002163 ; push DDD
    [0000216b] e853f4ffff call 000015c3 ; call HHH(DDD)
    [00002170] 83c404     add esp,+04
    [00002173] 5d         pop ebp
    [00002174] c3         ret
    Size in bytes:(0018) [00002174]

    When N steps of DDD are emulated by HHH according to the
    semantics of the x86 language then N steps are emulated correctly.

    And thus HHH that do that know only the first N steps of the
    behavior of DDD, which continues per the definition of the x86
    instruction set until the COMPLETE emulation (or direct execution)
    reaches a terminal instruction.


    When we examine the infinite set of every HHH/DDD pair such that:
    HHH₁ one step of DDD is correctly emulated by HHH.
    HHH₂ two steps of DDD are correctly emulated by HHH.
    HHH₃ three steps of DDD are correctly emulated by HHH.
    ...
    HHH∞ The emulation of DDD by HHH never stops running.

    And thus, the subset that only did a finite number of steps and
    aborted its emulation on a non-terminal instrucition only have
    partial knowledge of the behavior of their DDD, and by returning to
    their caller, they establish that behavior for ALL copies of that
    HHH, even the one that DDD calls, which shows that DDD will be
    halting, even though HHH stopped its observation of the input before
    it gets to that point.


    The above specifies the infinite set of every HHH/DDD pair
    where 1 to infinity steps of DDD are correctly emulated by HHH.

    No DDD instance of each HHH/DDD pair ever reaches past its
    own machine address of 0000216b and halts.

    Wrong. EVERY DDD of an HHH that simulated its input for only a
    finite number of steps WILL halt becuase it will reach its final
    return.

    The HHH that simulated it for only a finite number of steps, only
    learned that finite number of steps of the behaivor, and in EVERY
    case, when we look at the behavior past that point, which DOES occur
    per the definition of the x86 instruction set, as we have not
    reached a "termial" instruction that stops behavior, will see the
    HHH(DDD) that DDD called continuing to simulate its input to the
    point that this one was defined to stop, and then returns 0 to DDDD
    and then DDD returning and ending the behavior.

    You continue to stupidly confuse the PARTIAL observation that HHH
    does of the behavior of DDD by its PARTIAL emulation with the ACTUAL
    FULL behavior of DDD as defined by the full definition of the x86
    insttuction set.



    Thus each HHH element of the above infinite set of HHH/DDD
    pairs is necessarily correct to reject its DDD as non-halting.


    Nope.

    NONE Of them CORRECTLY rejected itS DDD as non-halting and you are
    shown to be ignorant of what you are talking about.

    The HHH that did a partial emulation got the wrong answer, because
    THEIR DDD will halt. and the HHH that doen't abort never get around
    to rejecting its DDD as non-halting.

    *Here is the gist of my proof it is irrefutable*
    When no DDD of every HHH/DDD that can possibly exist
    halts then each HHH that rejects its DDD as non-halting
    is necessarily correct.

    *No double-talk and weasel words can overcome that*


    This is double talk, because no HHH can possibly exist that simulates
    itself correctly.

    Your definition of correct contradicts the semantics of
    the x86 language making it wrong.


    You have a wrong understanding of the semantics of the x86 language. You
    think that the x86 language specifies that skipping instructions do not
    change the behaviour of a program.
    However, the x86 language does not allow an abort halfway the processing
    of the instructions, because that would change the behaviour of the program. Your simulation does not follow the semantics of the x86 language,
    because it *does* stop the simulation halfway the simulation.
    So it is wrong according to your own criteria.

    DDD has nothing to do with it. It is easy to eliminate DDD:

    int main() {
    return HHH(main);
    }

    This has the same problem. This proves that the problem is not in DDD,
    but in HHH, which halts when it aborts the simulation, but it decides
    that the simulation of itself does not halt.

    HHH is unable to decide about finite recursions.

    void Finite_Recursion (int N) {
    if (N > 0) Finite_Recursion (N - 1);
    }

    It decides after N recursions that there is an infinite recursion, which
    is incorrect.

    Your HHH is programmed to abort the simulation after N cycles of
    recursive simulations. Therefore, it is incorrect to abort the
    simulation of HHH when the simulated HHH has performed N-1 cycles,
    because that changes the behaviour of HHH.
    Since the simulated HHH always runs one cycle behind the simulating HHH,
    it is clear that HHH can never simulate enough cycles for a correct
    simulation, as is required by the x86 language.
    Therefore, the simulation is incorrect according to the criteria you stipulated.
    The conclusion is simple:
    HHH cannot possibly simulate itself correctly.

    No matter how much you want it to be correct, or how many times you
    repeat that it is correct, it does not change the fact that such a
    simulation is incorrect, because it is unable to reach the end.

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

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to olcott on Sat Jul 13 12:05:34 2024
    XPost: comp.theory, sci.logic

    On 7/13/24 11:34 AM, olcott wrote:
    On 7/13/2024 10:25 AM, Richard Damon wrote:
    On 7/13/24 11:15 AM, olcott wrote:

    In other words when you are very hungry you have the
    free will to decide that you are not hungry at all
    and never eat anything ever again with no ill effects
    to your health what-so-ever.


    Just shows that though I have free will, I am also in a Universe with
    a lot of determinism.

    Try and use this free will to make a square circle.

    Nope, just shows you don't know what you are talking about and need to
    switch to Red Herring because you lost the argument.

    Face it, all you have proved is that you are nothing but a pathetic
    ignorant pathological lying idiot.


    After HHH has already aborted its simulation of DDD
    and returns to the DDD that called it is not the same
    behavior as DDD simulated by HHH that must be aborted.


    Right, and the question is about the behavior of DDD,

    the input finite string not an external process that HHH
    has no access to.


    Right, but the program it represents, and the question is about IS.


    HHH cannot be correctly required to report on the behavior
    of an external process that it has no access to.


    But it has access to the complete representation of it.

    That is all that is needed.

    You just don't understand the essential nature of how logic works.

    As soon as HHH correctly determines that it must abort the
    simulation of its input to prevent its own infinite execution
    HHH is necessarily correct to reject this finite string as
    specifying non-halting behavior.


    But it doesn't ever do that.

    It determines that some other HHH with some other version of the input
    DDD doesn't halt.

    Any HHH that aborts, does so because it reached the point it was
    programmed to do so. The PROGRAMMER is the one that needs to decide on
    the algorithm to correctly determine that condition, which there,
    unfortunately for you since you decided to take that job, doesn't exist.

    When you design HHH, you need to think about EVERY possible input, since
    that is what the problem statement says, INCLUDING inputs that happen to
    be based on you. Because of that, everytime you make change in your
    design based on the behavior of one input, the "pathological" input you
    need to handle changes. This ability of pathological relationships, and
    the fact that you need to be designing a causal program means that you
    have yourself stuck in a corner. The program that the input represents
    is a fixed program once we get to that point, and thus when you argue
    about "NO HHH" can get this input right, you are wrong, as version that
    run longer on THIS input, based on this HHH will reach the final state
    and show this NHH was wrong, but those HHHs also have a DDD that was
    based on them that they will get wrong.

    Bsically, you are looking at your infinite set wrong, HHH can't justify
    its behavior based on the actions of a DIFFERENT input, but you logic
    tries to do that.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to olcott on Sat Jul 13 12:31:37 2024
    XPost: comp.theory, sci.logic

    On 7/13/24 12:19 PM, olcott wrote:
    On 7/13/2024 11:05 AM, Richard Damon wrote:
    On 7/13/24 11:34 AM, olcott wrote:
    On 7/13/2024 10:25 AM, Richard Damon wrote:
    On 7/13/24 11:15 AM, olcott wrote:

    In other words when you are very hungry you have the
    free will to decide that you are not hungry at all
    and never eat anything ever again with no ill effects
    to your health what-so-ever.


    Just shows that though I have free will, I am also in a Universe
    with a lot of determinism.

    Try and use this free will to make a square circle.

    Nope, just shows you don't know what you are talking about and need
    to switch to Red Herring because you lost the argument.

    Face it, all you have proved is that you are nothing but a pathetic
    ignorant pathological lying idiot.


    After HHH has already aborted its simulation of DDD
    and returns to the DDD that called it is not the same
    behavior as DDD simulated by HHH that must be aborted.


    Right, and the question is about the behavior of DDD,

    the input finite string not an external process that HHH
    has no access to.


    Right, but the program it represents, and the question is about IS.


    HHH cannot be correctly required to report on the behavior
    of an external process that it has no access to.


    But it has access to the complete representation of it.


    In other words you are still hungry AFTER you filled
    yourself with food BECAUSE you are the same person
    thus the change in process state DOES NOT MATTER.


    Maybe you need to stop eating so much Herring with Red Sauce, and focus
    on some of the errors pointed out in your logic rather than just
    ignoring them, which, in effect, just admitss that you have no idea how
    to get out of your lies.

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