Sujet : Re: Simulating termination analyzers for dummies
De : richard (at) *nospam* damon-family.org (Richard Damon)
Groupes : comp.theory sci.logicDate : 20. Jun 2024, 04:17:20
Autres entêtes
Organisation : i2pn2 (i2pn.org)
Message-ID : <v503fg$ggen$1@i2pn2.org>
References : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
User-Agent : Mozilla Thunderbird
On 6/19/24 10:02 PM, olcott wrote:
On 6/19/2024 8:39 PM, Richard Damon wrote:
On 6/19/24 8:44 PM, olcott wrote:
On 6/19/2024 7:23 PM, Richard Damon wrote:
On 6/19/24 9:00 AM, olcott wrote:
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]
>
>
>
Why does H0 NEED to be able to correctly simulate its input?
>
>
Decider must compute the mapping from their finite string
input to the actual behavior that this finite string specifies.
They are not free to imagine the behavior that the authors of
textbooks expect.
>
AND THE DEFINITION OF THAT BEHAVIOR IS THE BEHAVIOR OF THE DIRECT EXECUTION OF THE PROGRAM THE INPUT REPRESENTS.
>
Yes, the DO need to follow the behavior that the author of the problem defined.
>
You are just showing you think it is ok to not follow the REQURIEMENTS and just LIE about what you are doing.
>
The finite string input does not communicate the behavior
that the textbook authors expect it to communicate.
The finite string certainly DOES communicate what is needed to determine the behavior, or it wasn't a correct representation.
For instance, the x86 code of the full program DDD gives enough information to fully determine the bahavior of the program the input represents.
If you don't give the full code, then you LIED in saying that DDD was constructed per the Linz proof.
Your LIE of showing he input as only inlcuding the x86 code of the immediate function says either you don't understand what is needed for the the decider to understand its input, or have just been lying about what you are doing.
Of course, your decider treats the input as if it was given all the data it needed, as it at least claims to undertand the meaning of the call to the decider.
Now, the finite string do NOT give the definition of the question the decider is supposed to be answering, because that isn't the job of the input.
That is the job of the programmer who wrote the decider, and if he can't read the textbook, he should claim that he followed their rules and built a Halt Decider.
Now, if you want to claim your H as a Universal decider, then you need to define how we are to specify every question, and if you can't show how to do, you just admitted that you didn't do what you claimed.
So, in summary, you just showed you don't understand what a requirement is, so you can't understand what truth is as it is based on requirements.
Sorry, you are just showing your complete stupidity.
I note, you didn't comment on how I quickly determined that you AGAIN lied about producing the output of your decider correctly simulating its input of the pathological program.
I guess you are just making it VERY CLEAR that you just don't understand what you are talking about.