Liste des Groupes | Revenir à s logic |
On 7/03/24 06:23, Mike Terry wrote:Right, but a funny thing is that if/when PO corrects his logic to do a /correct/ simulation for HH/DD, the results reported for this corrected simulation will be exactly the same as the current incorrect HH/DD! I.e. the corrected HH will still report that the corrected DD(DD) is non-halting, and the corrected DD(DD) will in fact still halt as before. I expect even his (highly filtered) execution log will be unchanged, since corrections will be in the filtered portion of the log! PO's argument for how this refutes Linz will not have any reason to change, so his error is not really a /consequence/ of any incorrect simulation within HH - it is more basic. [Still, you're right - if x86utm code doesn't actually correctly implement what PO argues about, it is completely pointless, demonstrating nothing.]On 06/03/2024 23:59, immibis wrote:Last time I paid attention to what Olcott was saying about this scenario, I think he said something like "the non-halting result reported by H is correct, since D(D) never halts unless aborted." and then a lot of electrons were wasted trying to persuade Olcott that H was supposed to return based on whether the "direct execution" of D(D) "actually halts", not whether the "simulation" of D(D) "never halts unless aborted."I saw x86utm. In x86utm there is a mistake because Ĥ.H is not defined to do exactly the same steps as H, which means you failed to do the Linz procedure.>
Not sure if we're discussing a general H here, or PO's H/Ĥ under his x86utm. (Ĥ is called D under x86utm.)
>
Under x86utm, Ĥ.H is implemented as a call to H from D, whilst H in implemented as a call to H from main. So we would expect stack addresses to differ, but for that not to affect the computation.
>
In both cases, H:
- simulates D(D) computation
- spots PO's unsound "infinite recursion" pattern
- announces it has encountered infinite recursion
- returns 0 [non-halting]
>
So Ĥ.H does exactly the same steps as H, and reports the same result, as required for Linz proof. And just as Linz proof proves, the result reported by H is incorrect, since D(D) halts.
The HH/DD case is different, as that coding is completely broken by misuse of global variables to divert the course of the code under the simulator. But since EVEN WHEN THINGS WORK EXACTLY AS PO WANTS his results are in AGREEMENT with Linz, it seems to me that arguing that his problem is relating to cheating with the simulation is kind of missing the point.Halting deciders are allowed to do anything they want with their input programs, such as doing correct simulations, or incorrect simulators, or counting the length to see if it's a prime number. However, Olcott's argument was based on the premise that a correct simulation was involved. This is invalid since the simulation is not actually correct, and trying to hide the incorrectness - "cheating" - does not make it actually a correct one.
The mistake/cheating isn't that the simulation is incorrect (that's allowed) - it's that the simulation is incorrect but the argument is based on it being correct. That's why recently I got more careful by saying "you failed to do the Linz procedure" instead of "you are cheating".
Les messages affichés proviennent d'usenet.