Liste des Groupes | Revenir à s logic |
On 6/19/2024 10:47 AM, Fred. Zwarts wrote:No, the *incorrectly* emulated input is prevented to halt, because it was aborted *too soon*. It aborted one cycle before the simulated H would abort and halt by itself. Unfortunately, there is never a good moment to abort, because the simulated self keeps running one cycle behind the simulating H. So, H is always incorrect.Op 19.jun.2024 om 17:01 schreef olcott:The correctly emulated input DOES NOT HALT.On 6/19/2024 8:56 AM, Fred. Zwarts wrote:Exactly what I said. Ignore simple proofs like:Op 19.jun.2024 om 15:00 schreef olcott:>On 6/19/2024 3:08 AM, Fred. Zwarts wrote:>Op 18.jun.2024 om 18:26 schreef olcott:>On 6/18/2024 10:47 AM, Fred. Zwarts wrote:>Op 18.jun.2024 om 17:33 schreef olcott:>On 6/18/2024 10:20 AM, Fred. Zwarts wrote:
>
It is a verified fact that serious C people have recently
agreed to the following verbatim statement in the C group.
http://al.howardknight.net/?STYPE=msgid&MSGI=%3Cv4pg5p%24morv%241%40raubtier-asyl.eternal-september.org%3E+
>>You either lack this degree of skill in C or are only>
interested in playing head games.
I have seen the response. It was most certainly not a serious reply.
But you know apparently to little of C to understand that.
Probably, because you are unable to escape from rebuttal mode, even if the truth is obvious.
>
I have known C since K&R was the standard and met
Bjarne Stroustrup when he came to our university
to promote his new C++ programming language.
>
*You seem to be willfully ignorant*
>It was your own proof that showed that in>
>
int main()
{
return H(main);
}
>
>
main halts, whereas H reported non-halting. So, it you were honest you would stop claiming that H is correct.
>
That is merely a more difficult to understand version of this
same pathological relationship.
>
int main()
{
Output("Input_Halts = ", HH0(main));
}
>
_main()
[000020c2] 55 push ebp
[000020c3] 8bec mov ebp,esp
[000020c5] 68c2200000 push 000020c2 ; push main
[000020ca] e833f4ffff call 00001502 ; call HH0
[000020cf] 83c404 add esp,+04
[000020d2] 50 push eax
[000020d3] 6843070000 push 00000743
[000020d8] e885e6ffff call 00000762
[000020dd] 83c408 add esp,+08
[000020e0] eb04 jmp 000020e6
[000020e2] 33c0 xor eax,eax
[000020e4] eb02 jmp 000020e8
[000020e6] 33c0 xor eax,eax
[000020e8] 5d pop ebp
[000020e9] c3 ret
Size in bytes:(0040) [000020e9]
>
machine stack stack machine assembly
address address data code language
======== ======== ======== ========= =============
[000020c2][001036c3][00000000] 55 push ebp
[000020c3][001036c3][00000000] 8bec mov ebp,esp
[000020c5][001036bf][000020c2] 68c2200000 push 000020c2 ; push main
[000020ca][001036bb][000020cf] e833f4ffff call 00001502 ; call HH0
New slave_stack at:103767
>
Begin Local Halt Decider Simulation Execution Trace Stored at:11376f
[000020c2][0011375f][00113763] 55 push ebp ; begin main
[000020c3][0011375f][00113763] 8bec mov ebp,esp
[000020c5][0011375b][000020c2] 68c2200000 push 000020c2 ; push main
[000020ca][00113757][000020cf] e833f4ffff call 00001502 ; call HH0
New slave_stack at:14e18f
[000020c2][0015e187][0015e18b] 55 push ebp ; begin main
[000020c3][0015e187][0015e18b] 8bec mov ebp,esp
[000020c5][0015e183][000020c2] 68c2200000 push 000020c2 ; push main
[000020ca][0015e17f][000020cf] e833f4ffff call 00001502 ; call HH0
Local Halt Decider: Infinite Recursion Detected Simulation Stopped
>
[000020cf][001036c3][00000000] 83c404 add esp,+04
[000020d2][001036bf][00000000] 50 push eax
[000020d3][001036bb][00000743] 6843070000 push 00000743
[000020d8][001036bb][00000743] e885e6ffff call 00000762
Input_Halts = 0
[000020dd][001036c3][00000000] 83c408 add esp,+08
[000020e0][001036c3][00000000] eb04 jmp 000020e6
[000020e6][001036c3][00000000] 33c0 xor eax,eax
[000020e8][001036c7][00000018] 5d pop ebp
[000020e9][001036cb][00000000] c3 ret ; exit main
Number of Instructions Executed(10070) == 150 Pages
>
It is easier to understand because a print statement was added.
You proved that it halts, but H0 reports non-halting.
So, it produces a false negative.
So, now it has been proved that H, H0, etc produce false negatives, when used to determine halting behaviour, please, stop to call them halt-deciders, or termination-deciders.
They might be "simulation deciders". When returning true, the simulation was correct, when false, the full simulation was not possible.
I don't want to discuss your screwy example because I
can't use screwy examples in my paper.
>
void DDD()
{
H0(DDD);
}
>
_DDD()
[000020a2] 55 push ebp ; housekeeping
[000020a3] 8bec mov ebp,esp ; housekeeping
[000020a5] 68a2200000 push 000020a2 ; push DDD
[000020aa] e8f3f9ffff call 00001aa2 ; call H0
[000020af] 83c404 add esp,+04 ; housekeeping
[000020b2] 5d pop ebp ; housekeeping
[000020b3] c3 ret ; never gets here
Size in bytes:(0018) [000020b3]
>
Exactly which step of DDD emulated by H0 was emulated
incorrectly such that this emulation would be complete?
AKA DDD emulated by H0 reaches machine address [000020b3]
>
Yes, that is your attitude. An example that proves you are wrong are called 'screwy'. You prefer more complex examples, for which you can easier hide the essential details.
>
void DDD()
{
HH0(DDD);
}
>
int main()
{
HH0(DDD);
}
>
_DDD()
[00002093] 55 push ebp
[00002094] 8bec mov ebp,esp
[00002096] 6893200000 push 00002093 ; push DDD
[0000209b] e853f4ffff call 000014f3 ; call HH0
[000020a0] 83c404 add esp,+04
[000020a3] 5d pop ebp
[000020a4] c3 ret
Size in bytes:(0018) [000020a4]
>
_main()
[000020b3] 55 push ebp
[000020b4] 8bec mov ebp,esp
[000020b6] 6893200000 push 00002093 ; push DDD
[000020bb] e833f4ffff call 000014f3 ; call HH0
[000020c0] 83c404 add esp,+04
[000020c3] eb04 jmp 000020c9
[000020c5] 33c0 xor eax,eax
[000020c7] eb02 jmp 000020cb
[000020c9] 33c0 xor eax,eax
[000020cb] 5d pop ebp
[000020cc] c3 ret
Size in bytes:(0026) [000020cc]
>
machine stack stack machine assembly
address address data code language
======== ======== ======== ========= =============
[000020b3][00103680][00000000] 55 push ebp ; begin main
[000020b4][00103680][00000000] 8bec mov ebp,esp
[000020b6][0010367c][00002093] 6893200000 push 00002093 ; push DDD
[000020bb][00103678][000020c0] e833f4ffff call 000014f3 ; call HH0
New slave_stack at:103724
>
Begin Local Halt Decider Simulation Execution Trace Stored at:11372c
[00002093][0011371c][00113720] 55 push ebp ; begin DDD
[00002094][0011371c][00113720] 8bec mov ebp,esp
[00002096][00113718][00002093] 6893200000 push 00002093 ; push DDD
[0000209b][00113714][000020a0] e853f4ffff call 000014f3 ; call HH0
>
That call right there to HH0 is fully simulated by the directly
executed HH0 and the 150 pages of steps are not displayed so that
the next four steps of DDD correctly simulated by the correctly
simulated HH0 can be clearly seen and not mixed into the 150 pages
of the instructions of the simulated HH0.
>
New slave_stack at:14e14c
[00002093][0015e144][0015e148] 55 push ebp ; begin DDD
[00002094][0015e144][0015e148] 8bec mov ebp,esp
[00002096][0015e140][00002093] 6893200000 push 00002093 ; push DDD
[0000209b][0015e13c][000020a0] e853f4ffff call 000014f3 ; call HH0
Local Halt Decider: Infinite Recursion Detected Simulation Stopped
>
[000020c0][00103680][00000000] 83c404 add esp,+04 ; return to main
[000020c3][00103680][00000000] eb04 jmp 000020c9
[000020c9][00103680][00000000] 33c0 xor eax,eax
[000020cb][00103684][00000018] 5d pop ebp
[000020cc][00103688][00000000] c3 ret ; end main
Number of Instructions Executed(10067) == 150 Pages
>
>
int main()
{
return H(main, 0);
}
>
For which you proved that it reports a false negative.
>
The directly executed main() only seems to haltAborted too soon, because one cycle later it would halt by itself.
because the directly executed main() is essentially
the first call in a recursive chain where the
second call is always aborted.
Les messages affichés proviennent d'usenet.