| Deutsch English Français Italiano |
|
<101r6be$1adut$4@dont-email.me> View for Bookmarking (what is this?) Look up another Usenet article |
Path: news.eternal-september.org!eternal-september.org!.POSTED!not-for-mail From: olcott <polcott333@gmail.com> Newsgroups: comp.theory Subject: Re: DDD emulated by HHH diverges from DDD emulated by HHH1 Date: Wed, 4 Jun 2025 23:27:26 -0500 Organization: A noiseless patient Spider Lines: 184 Message-ID: <101r6be$1adut$4@dont-email.me> References: <101khcl$3bfvj$6@dont-email.me> <4113b5c3cb0e33212819ef36a4de858e40e70cba@i2pn2.org> <101noka$8rb8$4@dont-email.me> <101o96g$db96$3@dont-email.me> <101ob1t$hd6o$3@dont-email.me> <101obrf$hlr6$1@dont-email.me> <101ocan$hd6o$6@dont-email.me> <101ochl$i3m6$1@dont-email.me> <101oda2$hd6o$8@dont-email.me> <101oe1m$i3m6$3@dont-email.me> <101oee0$hd6o$9@dont-email.me> <101oeik$i3m6$4@dont-email.me> <101ofvi$inkg$1@dont-email.me> <101pask$pv5r$1@dont-email.me> <101porr$ta6v$1@dont-email.me> <101qb4p$11sr2$1@dont-email.me> <101qbtj$11qlg$1@dont-email.me> <101qc32$11sr2$3@dont-email.me> <101qhst$13bo7$1@dont-email.me> <101qicm$11sr2$4@dont-email.me> <101qjki$13i0e$1@dont-email.me> <101qn7s$14gq1$1@dont-email.me> <101qnp3$14gff$1@dont-email.me> <101qo1g$14gq1$2@dont-email.me> <101qoia$14gff$2@dont-email.me> <101qp3h$14gq1$3@dont-email.me> <101qqn5$14gff$4@dont-email.me> <101qrrc$14gq1$4@dont-email.me> <101qsfp$15bg8$1@dont-email.me> <101r4f3$1asab$1@dont-email.me> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Injection-Date: Thu, 05 Jun 2025 06:27:27 +0200 (CEST) Injection-Info: dont-email.me; posting-host="7a75ad72c7c9f6fd0ca7001367c21b2a"; logging-data="1390557"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+JxfYPqocl2KJMEhuNapm3" User-Agent: Mozilla Thunderbird Cancel-Lock: sha1:1yx/mQ9/F9XVs/fwggnLZ1xJmrU= X-Antivirus-Status: Clean X-Antivirus: Norton (VPS 250604-12, 6/4/2025), Outbound message In-Reply-To: <101r4f3$1asab$1@dont-email.me> Content-Language: en-US On 6/4/2025 10:55 PM, Mike Terry wrote: > On 05/06/2025 02:39, olcott wrote: >> On 6/4/2025 8:28 PM, dbush wrote: >>> On 6/4/2025 9:08 PM, olcott wrote: >>>> On 6/4/2025 7:41 PM, dbush wrote: >>>>> On 6/4/2025 8:32 PM, olcott wrote: >>>>>> >>>>>> Show me this side-by-side trace and I will point out your mistake. >>>>> >>>>> See below, which shows that the simulations performed by HHH and >>>>> HHH1 are identical up to the point that HHH aborts, as you have >>>>> agreed on the record. >>>>> >> >>> >>> False. The correct trace is the one I posted, which shows all levels >>> of emulation performed by HHH and HHH1. See the corrections I made >>> to your comments >> >> It is not supposed to do that. > > Are you saying it's not supposed to include /nested/ emulations? It is > perfectly sensible to include nested emulations. > It can include nested simulations yet nested simulations are in a hierarchy thus not side-by-side. A side-by-side analysis must be side-by-side. >> >> It is supposed to show >> the emulation of DDD by HHH1 and >> the emulation of DDD by HHH >> side-by-side to show the point where these >> emulations diverge. > > Just to be perfectly clear: > > It is supposed to show > the emulation of DDD by *OUTER* HHH1 and > the emulation of DDD by *OUTER* HHH > side-by-side to show the point where these > emulations diverge. > No, that is not the way I was doing it. I was doing it all in the execution trace of HHH1(DDD). The execution trace of DDD emulated by HHH1 emulates DDD exactly once and returns. The execution traces of DDD emulated by HHH emulates DDD exactly twice and cannot possibly return. > That is exactly what my comparison shows. > > Both these emulations include nested emulations, which are sensibly > considered part of the reporting of the outer emulations. As shown > upthread, they do not diverge, but different emulators may choose to > abort their emulations at different points. (The emulations agree up to > the point they are aborted.) > >> >> DDD emulated by HHH1 DDD emulated by HHH >> [00002183] push ebp [00002183] push ebp >> [00002184] mov ebp,esp [00002184] mov ebp,esp >> [00002186] push 00002183 ; DDD [00002186] push 00002183 ; DDD >> [0000218b] call 000015c3 ; HHH [0000218b] call 000015c3 ; HHH >> >> DDD emulated by HHH emulating itself >> [00002183] push ebp ; >> [00002184] mov ebp,esp ; >> [00002186] push 00002183 ; DDD >> [0000218b] call 000015c3 ; HHH >> > > LOL, I reckon I finally glimpsed your muddled thinking! > When we line up DDD directly emulated by HHH1 and DDD directly emulated by HHH We end up with HHH emulating itself emulating DDD one more emulation of DDD than HHH1 ever does. > First of all, you are not really counting the reporting of nested > emulations as being part of the outer emulation, per se. As I explained > in another post, that would be "a way of looking at the question", > although not such a useful way. [But viewed this way, it is /still/ the > case that the emulations exactly match up to the point where DDD aborts > the emulation.] > Withing the execution trace of the directly executed HHH1(DDD) DDD is directly emulated by HHH1 once DDD is directly emulated by HHH once *THAT IS THE END OF THE MATCHING BEHAVIOR* then the divergence of HHH emulating itself emulating DDD that has no correspondence in the emulation of HHH1 > For some time, I've been puzzled by why, if you're discounting nested > emulations, do you include the "DD emulated by HHH emulating itself" > trace?! > When we are analyzing side-by-side then we must unroll nestings. > That's your second (and fatal) mistake: you're counting it because the / > immediate/ emulator is DDD, so you think it's part of "the emulation of > DDD by HHH" but not "the emulation of DDD by HHH1" !! > We are only examining the behavior of DDD emulated by HHH1 and the behavior of DDD emulated by the HHH within the execution trace of HHH1(DDD). The key difference that you cannot see is crucial and pivotal is that HHH emulates itself emulating DDD and HHH1 never emulates itself emulating DDD. The whole termination analysis system depends on 100% completely understanding this single point. > That is REALLY DUMB, and shows a complete lack of understanding the > original question! Worse, it suggests a basic lack of understanding of > what emulation is. It's a case of scanning a sentence and just seeing a > couple of keywords you recognise, then inventing your own meaning for > the sentence based on that. No "logic" involved... > > If you include the behaviour of nested emulations [as is sensible, and > relevant to your overall argument] then "DDD emulated by HHH emulating > itself" is part of (outer) HHH1's emulation /AND/ part of (outer) HHH's > emulation. > *NO DIVERSION* > > If you include only the behaviour of direct emulation then "DDD emulated > by HHH emulating itself" > *is NOT part of (outer) HHH1's emulation AND NOT part of (outer) HHH's > emulation*. > NO DIVERSION. > > What you're actually doing is neither of those options. It is plain > dumb - including or excluding based on the /name/ of the immediate (one > level up) emulator. We are discussing the results of the outer > emulators, and the emulator /names/ are COMPLETELY irrelevant. It is > the /content/ of emulations we are comparing. Nobody is interested in > your useless redefinition of "divergence". > > This also explains your oft repeated claim that HHH1 only emulates DDD > once, whilst HHH emulates DDD twice. You're counting the number of > times during the nested emulation that DDD is emulated by an immediate > emulator with the same name as the outer emulator. Total nonsense, and > completely uninteresting, I'm afraid. > > I'm adding emulation to the list of abstract concepts you can't deal > with. As with other abstract concepts, you've replaced it in your mind > with something concrete - specific bits of code you've written. But > that leaves you with no way to evaluate questions regarding the > behaviour of that code. This explains many things, like why you didn't > know using mutable static variables was a no-no, why you put all the ========== REMAINDER OF ARTICLE TRUNCATED ==========