Path: ...!3.eu.feeder.erje.net!feeder.erje.net!news2.arglkargh.de!news.in-chemnitz.de!news.swapon.de!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail From: Mikko Newsgroups: comp.theory Subject: Re: DDD correctly emulated by HHH is Correctly rejected as non-halting V2 Date: Wed, 17 Jul 2024 09:48:04 +0300 Organization: - Lines: 100 Message-ID: References: <97e0632d0d889d141bdc6005ce6e513c53867798@i2pn2.org> <091e8b7baeea467ee894b1c79c8943cb9773adb7@i2pn2.org> <16ac79611a441e7e01119631051f69119eee958a@i2pn2.org> <23cb2d2401b87bf4f6a604aa1a78b93ffc9a29bc@i2pn2.org> <3fc6548531f91ed14a27420caf9679a634573ed0@i2pn2.org> <8a6e6d9ff49aabe2525ce5729a439c807de4768a@i2pn2.org> <3d124d535f6d59565df213fa58242ee156ee96bb@i2pn2.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Injection-Date: Wed, 17 Jul 2024 08:48:04 +0200 (CEST) Injection-Info: dont-email.me; posting-host="65978254551784bf68c380dad1a46784"; logging-data="1825973"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18d9jt0EJtrslOg2eI3Vppz" User-Agent: Unison/2.2 Cancel-Lock: sha1:uEAnYcKOZfPFVCIK2uDrO3MKShs= Bytes: 6320 On 2024-07-16 15:57:04 +0000, olcott said: > On 7/16/2024 2:20 AM, Mikko wrote: >> On 2024-07-15 12:22:19 +0000, olcott said: >> >>> On 7/15/2024 3:49 AM, joes wrote: >>>> Am Sun, 14 Jul 2024 19:30:27 -0500 schrieb olcott: >>>>> On 7/14/2024 7:20 PM, joes wrote: >>>>>> Am Sun, 14 Jul 2024 09:00:55 -0500 schrieb olcott: >>>>>>> On 7/14/2024 3:29 AM, joes wrote: >>>>>>>> Am Sat, 13 Jul 2024 18:33:53 -0500 schrieb olcott: >>>>>>>>> On 7/13/2024 6:26 PM, joes wrote: >>>>>>>>>> Can you elaborate? All runtime instances share the same static >>>>>>>>>> code. >>>>>>>>>> I am talking about the inner HHH which is called by the simulated >>>>>>>>>> DDD. That one is, according to you, aborted. Which is wrong, >>>>>>>>>> because by virtue of running the same code, the inner HHH aborts >>>>>>>>>> ITS simulation of DDD calling another HHH. >>>>>>>> What are the twins and what is their difference? Do you disagree with >>>>>>>> my tracing? >>>> >>>>>>> The directly executed DDD is like the first call of infinite >>>>>>> recursion. The emulated DDD is just like the second call of infinite >>>>>>> recursion. When the second call of infinite recursion is aborted then >>>>>>> the first call halts. >>>>>> Not really. Execution does not continue. >>>> >>>>>>> void Infinite_Recursion() >>>>>>> { >>>>>>> Infinite_Recursion(); >>>>>>> } >>>>>>> The above *is* infinite recursion. >>>>>>> A program could emulate the above code and simply skip line 3 causing >>>>>>> Infinite_Recursion() to halt. >>>>>> That would be incorrect. >>>> >>>>>>> When DDD calls HHH(DDD) HHH returns. >>>>>> Therefore it does not need to be aborted. >>>> >>>>>>> When DDD correctly emulated by HHH the call never returns as is proven >>>>>>> below. The executed DDD() has HHH(DDD) skip this call. >>>>>> I do not see this below. >>>> >>>>>>> HHH(DDD) must skip this call itself by terminating the whole DDD >>>>>>> process. >>>>>> >>>>>>> Because this HHH does not know its own machine address HHH only sees >>>>>>> that DDD calls a function that causes its first four steps to be >>>>>>> repeated. HHH does not know that this is recursive simulation. To HHH >>>>>>> it looks just like infinite recursion. >>>>>> >>>>>>> New slave_stack at:1038c4 -- create new process context for 1st DDD >>>>>>> Begin Local Halt Decider Simulation   Execution Trace Stored at:1138cc >>>>>> >>>>>>> [0000217a][001138b4][0000217f] e853f4ffff call 000015d2 ; call >>>>>>> HHH(DDD) New slave_stack at:14e2ec -- create new process context for >>>>>>> 2nd DDD >>>>>> >>>>>>> [0000217a][0015e2dc][0000217f] e853f4ffff call 000015d2 ; call >>>>>>> HHH(DDD) Local Halt Decider: Infinite Recursion Detected Simulation >>>>>>> Stopped >>>>>> How is this detected? Is it also triggered when calling a function in a >>>>>> loop? >>>> >>>>> You never bothered to answer whether or not you have 100% understanding >>>>> of infinite recursion. If you don't then you can never understand what I >>>>> am saying. If you do that I already proved my point. Here is the proof >>>>> again: >>>> As if you would believe me. >>>> You never bothered to answer my questions (see above). >>>> That only proves that HHH and DDD halt. >>>> >>> >>> This *is* an answer too difficult for you to understand. >>> >>> New slave_stack at:1038c4 >>> Begin Local Halt Decider Simulation   Execution Trace Stored at:1138cc >>> [00002172][001138bc][001138c0] 55         push ebp      ; housekeeping >>> [00002173][001138bc][001138c0] 8bec       mov ebp,esp   ; housekeeping >>> [00002175][001138b8][00002172] 6872210000 push 00002172 ; push DDD >>> [0000217a][001138b4][0000217f] e853f4ffff call 000015d2 ; call HHH(DDD) >>> New slave_stack at:14e2ec >>> [00002172][0015e2e4][0015e2e8] 55         push ebp      ; housekeeping >>> [00002173][0015e2e4][0015e2e8] 8bec       mov ebp,esp   ; housekeeping >>> [00002175][0015e2e0][00002172] 6872210000 push 00002172 ; push DDD >>> [0000217a][0015e2dc][0000217f] e853f4ffff call 000015d2 ; call HHH(DDD) >>> Local Halt Decider: Infinite Recursion Detected Simulation Stopped >> >> The trace does not show that HHH returns so there is no basis to >> think that HHH is a decider. >> > > The trace shows the data of the executed program of HHH that > does halt. It shows some of the data, not all, and in particular, not the halting. -- Mikko