Deutsch English Français Italiano |
<v50n5a$2fh98$1@dont-email.me> View for Bookmarking (what is this?) Look up another Usenet article |
Path: ...!weretis.net!feeder8.news.weretis.net!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail From: "Fred. Zwarts" <F.Zwarts@HetNet.nl> Newsgroups: comp.theory Subject: Re: H(D,D) cannot even be asked about the behavior of D(D) V3 ---IGNORING ALL OTHER REPLIES Date: Thu, 20 Jun 2024 09:53:13 +0200 Organization: A noiseless patient Spider Lines: 300 Message-ID: <v50n5a$2fh98$1@dont-email.me> References: <v4kf3h$3h3iu$7@dont-email.me> <v4m5l6$3v4ql$1@dont-email.me> <v4mmsd$1qt6$3@dont-email.me> <v4oo36$hnns$1@dont-email.me> <v4pc7t$ln46$3@dont-email.me> <v4revs$18him$1@dont-email.me> <v4s07h$1boeu$5@dont-email.me> <v4sb8k$1e266$2@dont-email.me> <v4slo4$1g4ib$1@dont-email.me> <v4u33c$1rrod$1@dont-email.me> <v4ukld$1vpm0$1@dont-email.me> <v4unf7$1vtc8$1@dont-email.me> <v4urgp$21810$1@dont-email.me> <v4uu3k$1vtc8$4@dont-email.me> <v4uugg$21os1$1@dont-email.me> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Injection-Date: Thu, 20 Jun 2024 09:53:15 +0200 (CEST) Injection-Info: dont-email.me; posting-host="9186493c426985c2cd63a38e1dc7dbb9"; logging-data="2606376"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19wtKkZCJac9MJ8WhKFWxuo" User-Agent: Mozilla Thunderbird Cancel-Lock: sha1:H0Xc1kgBOYSGewUD4KanEXwqnak= Content-Language: en-GB In-Reply-To: <v4uugg$21os1$1@dont-email.me> Bytes: 14355 Op 19.jun.2024 om 17:46 schreef olcott: > On 6/19/2024 10:39 AM, Fred. Zwarts wrote: >> Op 19.jun.2024 om 16:55 schreef olcott: >>> On 6/19/2024 8:46 AM, Fred. Zwarts wrote: >>>> Op 19.jun.2024 om 14:58 schreef olcott: >>>>> On 6/19/2024 2:58 AM, Fred. Zwarts wrote: >>>>>> Op 18.jun.2024 om 21:04 schreef olcott: >>>>>>> On 6/18/2024 11:05 AM, Mikko wrote: >>>>>>>> On 2024-06-18 12:57:21 +0000, olcott said: >>>>>>>> >>>>>>>>> On 6/18/2024 3:03 AM, Mikko wrote: >>>>>>>>>> On 2024-06-17 13:03:56 +0000, olcott said: >>>>>>>>>> >>>>>>>>>>> On 6/17/2024 2:20 AM, Mikko wrote: >>>>>>>>>>>> On 2024-06-16 12:47:09 +0000, olcott said: >>>>>>>>>>>> >>>>>>>>>>>>> On 6/16/2024 2:53 AM, Mikko wrote: >>>>>>>>>>>>>> On 2024-06-15 16:22:09 +0000, olcott said: >>>>>>>>>>>>>> >>>>>>>>>>>>>>> On 6/13/2024 8:24 PM, Richard Damon wrote: >>>>>>>>>>>>>>> > On 6/13/24 11:32 AM, olcott wrote: >>>>>>>>>>>>>>> >> >>>>>>>>>>>>>>> >> It is contingent upon you to show the exact steps of >>>>>>>>>>>>>>> how H computes >>>>>>>>>>>>>>> >> the mapping from the x86 machine language finite >>>>>>>>>>>>>>> string input to >>>>>>>>>>>>>>> >> H(D,D) using the finite string transformation rules >>>>>>>>>>>>>>> specified by >>>>>>>>>>>>>>> >> the semantics of the x86 programming language that >>>>>>>>>>>>>>> reaches the >>>>>>>>>>>>>>> >> behavior of the directly executed D(D) >>>>>>>>>>>>>>> >> >>>>>>>>>>>>>>> > >>>>>>>>>>>>>>> > Why? I don't claim it can. >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> The first six steps of this mapping are when instructions >>>>>>>>>>>>>>> at the machine address range of [00000cfc] to [00000d06] >>>>>>>>>>>>>>> are simulated/executed. >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> After that the behavior of D correctly simulated by H >>>>>>>>>>>>>>> diverges >>>>>>>>>>>>>>> from the behavior of D(D) because the call to H(D,D) by D >>>>>>>>>>>>>>> correctly simulated by H cannot possibly return to D. >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> _D() >>>>>>>>>>>>>>> [00000cfc](01) 55 push ebp >>>>>>>>>>>>>>> [00000cfd](02) 8bec mov ebp,esp >>>>>>>>>>>>>>> [00000cff](03) 8b4508 mov eax,[ebp+08] >>>>>>>>>>>>>>> [00000d02](01) 50 push eax ; push D >>>>>>>>>>>>>>> [00000d03](03) 8b4d08 mov ecx,[ebp+08] >>>>>>>>>>>>>>> [00000d06](01) 51 push ecx ; push D >>>>>>>>>>>>>>> [00000d07](05) e800feffff call 00000b0c ; call H >>>>>>>>>>>>>>> [00000d0c](03) 83c408 add esp,+08 >>>>>>>>>>>>>>> [00000d0f](02) 85c0 test eax,eax >>>>>>>>>>>>>>> [00000d11](02) 7404 jz 00000d17 >>>>>>>>>>>>>>> [00000d13](02) 33c0 xor eax,eax >>>>>>>>>>>>>>> [00000d15](02) eb05 jmp 00000d1c >>>>>>>>>>>>>>> [00000d17](05) b801000000 mov eax,00000001 >>>>>>>>>>>>>>> [00000d1c](01) 5d pop ebp >>>>>>>>>>>>>>> [00000d1d](01) c3 ret >>>>>>>>>>>>>>> Size in bytes:(0034) [00000d1d] >>>>>>>>>>>>>> >>>>>>>>>>>>>> When you put "V2" or "V3" or something similar on the >>>>>>>>>>>>>> subject line >>>>>>>>>>>>>> you should tell what is different from the original version. >>>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> I ask what are the steps >>>>>>>>>>>>> I provide 6 steps and then ask what are the next steps. >>>>>>>>>>>>> I provide all of the steps. >>>>>>>>>>>> >>>>>>>>>>>> In which version? >>>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> *This is the simplest possible version* >>>>>>>>>>> >>>>>>>>>>> void DDD() >>>>>>>>>>> { >>>>>>>>>>> H0(DDD); >>>>>>>>>>> } >>>>>>>>>>> >>>>>>>>>>> After six steps of DDD are correctly emulated by H0 >>>>>>>>>>> what machine address of DDD would it be at? >>>>>>>>>>> >>>>>>>>>>> _DDD() >>>>>>>>>>> [00001fd2] 55 push ebp ; housekeeping >>>>>>>>>>> [00001fd3] 8bec mov ebp,esp ; housekeeping >>>>>>>>>>> [00001fd5] 68d21f0000 push 00001fd2 ; push DDD >>>>>>>>>>> [00001fda] e8f3f9ffff call 000019d2 ; call H0 >>>>>>>>>>> [00001fdf] 83c404 add esp,+04 ; housekeeping >>>>>>>>>>> [00001fe2] 5d pop ebp ; housekeeping >>>>>>>>>>> [00001fe3] c3 ret ; return to caller >>>>>>>>>>> Size in bytes:(0018) [00001fe3] >>>>>>>>>> >>>>>>>>>> So how is this a difference between the original version and >>>>>>>>>> V2 and V3? >>>>>>>>>> >>>>>>>>> >>>>>>>>> No params thus easier to see that it pushes its own machine >>>>>>>>> address. >>>>>>>> >>>>>>>> My question is still unanswered. >>>>>>>> >>>>>>> >>>>>>> *The simplest possible case* >>>>>>> void DDD() >>>>>>> { >>>>>>> H0(DDD); >>>>>>> } >>>>>>> >>>>>>> *The next simplest case* >>>>>>> typedef void (*ptr)(); >>>>>>> void DDD(ptr x) >>>>>>> { >>>>>>> HH(x, x); >>>>>>> } >>>>>>> >>>>>>> *The conventional case* >>>>>>> typedef int (*ptr2)(); >>>>>>> int P(ptr2 x) >>>>>>> { >>>>>>> int Halt_Status = H(x, x); >>>>>>> if (Halt_Status) >>>>>>> HERE: goto HERE; >>>>>>> return Halt_Status; >>>>>>> } >>>>>>> >>>>>>> I had to keep dumbing it down to make it more >>>>>>> difficult to reject out-of-hand without review. >>>>>> >>>>>> No, this is not the simplest case. You are making it unnecessary >>>>>> complex. The simplest case is: >>>>>> >>>>>> int main() >>>>>> { >>>>>> return H(main, 0); >>>>>> } >>>>>> >>>>>> No D, DD, or DDD is needed. >>>>>> For this case you proved that main halts, whereas H reports >>>>>> non-halting, i.e. a false negative. >>>>>> This shows that in your more complex (but equivalent) cases there >>>>>> is also a false negative. >>>>>> Of course, you prefer the more complex cases, because there you >>>>>> can play your invalid claim that the direct execution and the >>>>>> simulation of DDD(DDD) show different behaviour., but the simplest >>>>>> case shows that it is not true. It is just a false negative. >>>>> >>>>> _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] >>>>> >>>>> >>>> >>>> That has been pointed out to you so many times. >>> >>> When falsehoods are pointed out an unlimited number of times >>> they still remain falsehoods. >>> >>>> It seems really to difficult for you. So, you prefer to forget or >>>> ignore it. ========== REMAINDER OF ARTICLE TRUNCATED ==========