• Re: DDD INcorrectly emulated by HHH is INcorrectly rejected as non-halt

    From Richard Damon@21:1/5 to olcott on Tue Jul 16 21:10:19 2024
    On 7/16/24 2:18 PM, olcott wrote:
    On 7/16/2024 2:57 AM, Mikko wrote:
    On 2024-07-15 13:43:34 +0000, olcott said:

    On 7/15/2024 3:17 AM, Mikko wrote:
    On 2024-07-14 14:50:47 +0000, olcott said:

    On 7/14/2024 5:09 AM, Mikko wrote:
    On 2024-07-12 14:56:05 +0000, olcott said:

    We stipulate that the only measure of a correct emulation is the >>>>>>> semantics of the x86 programming language.

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

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

    You should use the indices here, too, e.g., "where 1 to infinity
    steps of
    DDD₁ are correctly emulated by HHH₃" or whatever you mean.


    DDD is the exact same fixed constant finite string that
    always calls HHH at the same fixed constant machine
    address.

    If the function called by DDD is not part of the input then the
    input does
    not specify a behaviour and the question whether DDD halts is
    ill-posed.


    We don't care about whether HHH halts. We know that
    HHH halts or fails to meet its design spec.

    We are only seeing if DDD correctly emulated by HHH
    can can possibly reach its own final state.

    HHH does not see even that. It only sees whther that it does not emulate
    DDD to its final state.

    No. HHH is not judging whether or not itself is a correct
    emulator. The semantics of the x86 instructions that emulates
    prove that its emulation is correct.

    No they don't as HHH seemse to think that a call to HHH causes the x86 processor to create a new processor context and then jump to DDD instead
    of going into HHH.


    Only because DDD calls HHH(DDD) in recursive emulation it is
    impossible for DDD correctly emulated by HHH to reach past
    its own machine address of 0000216b.

    But it is onlh FINITE recursive emulation since HHH DOES abort its
    emulaiton and return.

    That makes the emulation by HHH not reach the point, but the actual DDD
    does.


    But we can see more, in particuar that DDD() halts
    if HHH(DDD) does.


    In the exact same way that we can see that we are no longer
    hungry after we have eaten. It is still a fact that HHH(DDD)
    was required to abort its emulation in the exact same way
    that it was required for us to eat to no longer be hungry.

    Just a Red Herring. Program attributes that deciders look at are not
    time varying, like your "hunger" attribute.


    Anyway, if the function DDD calls is not a part of the input then the
    question whether DDD halts is not well-posed and can only be ansered
    with a conditional.


    We are analyzing whether or not DDD halts.
    We are NOT analyzing whether or not HHH halts.


    But DDD Halts IF and ONLY IF HHH halts, so they ARE effectively the same question.

    If by the definition HHH is using, HHH does not halt, then HHH can't
    call itself a decider.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Richard Damon@21:1/5 to olcott on Tue Jul 16 21:12:09 2024
    On 7/16/24 10:46 AM, olcott wrote:
    On 7/16/2024 2:18 AM, Mikko wrote:
    On 2024-07-15 13:32:27 +0000, olcott said:

    On 7/15/2024 2:57 AM, Mikko wrote:
    On 2024-07-14 14:48:05 +0000, olcott said:

    On 7/14/2024 3:49 AM, Mikko wrote:
    On 2024-07-13 12:18:27 +0000, olcott said:

    When the source of your disagreement is your own ignorance
    then your disagreement has no actual basis.

    *You can comprehend this is a truism or fail to*
    *comprehend it disagreement is necessarily incorrect*
    Any input that must be aborted to prevent the non
    termination of HHH necessarily specifies non-halting
    behavior or it would never need to be aborted.

    Disagreeing with the above is analogous to disagreeing
    with arithmetic.

    A lame analogy. A better one is: 2 + 3 = 5 is a proven theorem just
    like the uncomputability of halting is.

    The uncomputability of halting is only proven when the problem
    is framed this way: HHH is required to report on the behavior
    of an input that was defined to do exactly the opposite of
    whatever DDD reports.

    No, it is proven about the halting problem as that problem is.

    Which is simply a logical impossibility thus no actual
    limit to computation more that this logical impossibility:
    What time is it (yes or no)?

    *This is isomorphic the HP decider/input pair*
    Can Carol correctly answer “no” to this (yes/no) question? (Hehner:2018:2)

    Giving credit where credit is due Richard corrected
    a loophole in the original question.

    The program that predicts what HHH would say and does the opposite
    is just one eample of a program.


    It is just like a Liar Paradox input to a True(L, x) predicate.
    The correct answer is INVALID INPUT.

    if the system allows the Liar Paradox input to be given to True(L, x)
    than that shows that system can't have the True Predicate, as "INVALID
    INPUT" isn't an allowed answer for a predicate, only True or False.

    Your problem is you don't understand what the words mean, because you
    decided it was smarter to just be ignorant;


    When HHH is defined such that an input that was defined to
    do the opposite of whatever HHH reports can never reach this
    point in its execution trace then the prior halting problem
    proof has been defeated.


        From a programmer's point of view, if we apply an
        interpreter to a program text that includes a call
        to that same interpreter with that same text as
        argument, then we have an infinite loop. A halting
        program has some of the same character as an interpreter:
        it applies to texts through abstract interpretation.
        Unsurprisingly, if we apply a halting program to a
        program text that includes a call to that same halting
        program with that same text as argument, then we have
        an infinite loop. (Hehner:2011:15)

    [5] E C R Hehner. Problems with the Halting Problem, COMPUTING2011
    Symposium on 75 years of Turing Machine and Lambda-Calculus, Karlsruhe Germany, invited, 2011 October 20-21; Advances in Computer Science and Engineering v.10 n.1 p.31-60, 2013
    https://www.cs.toronto.edu/~hehner/PHP.pdf

    No, not anymore that 2 + 3 = 5 is defeated by a 2 that is defined to
    shrink to 1 if 3 is added to it.


    *Simulating Termination Analyzer H is Not Fooled by Pathological Input D* https://www.researchgate.net/publication/369971402_Simulating_Termination_Analyzer_H_is_Not_Fooled_by_Pathological_Input_D


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