Path: news.eternal-september.org!eternal-september.org!.POSTED!not-for-mail From: Mikko Newsgroups: comp.theory Subject: Re: How do simulating termination analyzers work? Date: Mon, 30 Jun 2025 12:58:08 +0300 Organization: - Lines: 128 Message-ID: <103tn3g$23s8o$1@dont-email.me> References: <102sjg5$2k3e9$1@dont-email.me> <1607e7860c899b930b87d371c747708dbeaf1062@i2pn2.org> <102t67r$2o80a$1@dont-email.me> <102u3et$31q0g$4@dont-email.me> <102ufv8$35emj$1@dont-email.me> <1030kqk$3pfor$1@dont-email.me> <10319mv$3u901$7@dont-email.me> <103394q$m26r$1@dont-email.me> <1033pf6$25t1$1@dont-email.me> <1035vdm$10d9c$1@dont-email.me> <1036qg0$16lpk$3@dont-email.me> <103okdk$r70r$1@dont-email.me> <103oq0u$rq7e$6@dont-email.me> <103qucv$1ehdt$1@dont-email.me> <103ri63$1icfh$1@dont-email.me> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Injection-Date: Mon, 30 Jun 2025 11:58:08 +0200 (CEST) Injection-Info: dont-email.me; posting-host="c215c9529d64ae2151100eb2982209ae"; logging-data="2224408"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/CblDhcYtpxWUhvzUnU2PQ" User-Agent: Unison/2.2 Cancel-Lock: sha1:j4fVXgK8TglXLo96dMzX3vh6lf0= On 2025-06-29 14:21:55 +0000, olcott said: > On 6/29/2025 3:44 AM, Mikko wrote: >> On 2025-06-28 13:17:17 +0000, olcott said: >> >>> On 6/28/2025 6:41 AM, Mikko wrote: >>>> On 2025-06-21 17:34:55 +0000, olcott said: >>>> >>>>> On 6/21/2025 4:52 AM, Mikko wrote: >>>>>> On 2025-06-20 13:59:02 +0000, olcott said: >>>>>> >>>>>>> On 6/20/2025 4:20 AM, Fred. Zwarts wrote: >>>>>>>> Op 19.jun.2025 om 17:17 schreef olcott: >>>>>>>>> On 6/19/2025 4:21 AM, Fred. Zwarts wrote: >>>>>>>>>> Op 18.jun.2025 om 15:46 schreef olcott: >>>>>>>>>>> On 6/18/2025 5:12 AM, Fred. Zwarts wrote: >>>>>>>>>>>> Op 18.jun.2025 om 03:54 schreef olcott: >>>>>>>>>>>>> On 6/17/2025 8:19 PM, Richard Damon wrote: >>>>>>>>>>>>>> On 6/17/25 4:34 PM, olcott wrote: >>>>>>>>>>>>>>> void Infinite_Recursion() >>>>>>>>>>>>>>> { >>>>>>>>>>>>>>>    Infinite_Recursion(); >>>>>>>>>>>>>>>    return; >>>>>>>>>>>>>>> } >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> void Infinite_Loop() >>>>>>>>>>>>>>> { >>>>>>>>>>>>>>>    HERE: goto HERE; >>>>>>>>>>>>>>>    return; >>>>>>>>>>>>>>> } >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> void DDD() >>>>>>>>>>>>>>> { >>>>>>>>>>>>>>>    HHH(DDD); >>>>>>>>>>>>>>>    return; >>>>>>>>>>>>>>> } >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> When it is understood that HHH does simulate itself >>>>>>>>>>>>>>> simulating DDD then any first year CS student knows >>>>>>>>>>>>>>> that when each of the above are correctly simulated >>>>>>>>>>>>>>> by HHH that none of them ever stop running unless aborted. >>>>>>>>>>>>>> >>>>>>>>>>>>>> WHich means that the code for HHH is part of the input, and thus there >>>>>>>>>>>>>> is just ONE HHH in existance at this time. >>>>>>>>>>>>>> >>>>>>>>>>>>>> Since that code aborts its simulation to return the answer that you >>>>>>>>>>>>>> claim, you are just lying that it did a correct simulation (which in >>>>>>>>>>>>>> this context means complete) >>>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> *none of them ever stop running unless aborted* >>>>>>>>>>>> >>>>>>>>>>>> All of them do abort and their simulation does not need an abort. >>>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> *It is not given that any of them abort* >>>>>>>>>>> >>>>>>>>>> >>>>>>>>>> At least it is true for all aborting ones, such as the one you >>>>>>>>>> presented in Halt7.c. >>>>>>>>> >>>>>>>>> My claim is that each of the above functions correctly >>>>>>>>> simulated by any termination analyzer HHH that can possibly >>>>>>>>> exist will never stop running unless aborted by HHH. >>>>>>>>> Can you affirm or correctly refute this? >>>>>>> >>>>>>>> Yes, I confirmed many times that we can confirm this vacuous claim, >>>>>>>> because no such HHH exists. All of them fail to do a correct simulation >>>>>>>> up to the point where they can see whether the input specifies a >>>>>>>> halting program. >>>>>>> >>>>>>> if DDD correctly simulated by any simulating termination >>>>>>> analyzer HHH never aborts its simulation of DDD then >>>>>> >>>>>> that HHH is not interesting. >>>>> >>>>> *then the HP proofs are proved to be wrong* >>>> >>>> Does not follow. HHH and DDD are irrelevant to those proofs. >>> >>> void DDD() >>> { >>>    HHH(DDD); >>>    return; >>> } >>> >>> When I dumbed the original self-referential proof down >>> to HHH(DDD) everyone here proved that they did not even >>> understand what ordinary recursion is. >> >> That you are dumb does not mean that others don't understand >> ordinary recursion. >> > > Mensa scored me on the top 3% of the population. Your intelligence, not wisdom. > This is a little more difficult than ordinary recursion. Perhaps to your little mind. > void DDD() > { > HHH(DDD); > return; > } > > _DDD() > [00002192] 55 push ebp > [00002193] 8bec mov ebp,esp > [00002195] 6892210000 push 00002192 // push DDD > [0000219a] e833f4ffff call 000015d2 // call HHH > [0000219f] 83c404 add esp,+04 > [000021a2] 5d pop ebp > [000021a3] c3 ret > Size in bytes:(0018) [000021a3] > > The x86 source code of DDD specifies that this emulated > DDD cannot possibly reach its own emulated "ret" instruction > final halt state when emulated by HHH according to the > semantics of the x86 language. That defect in HHH is already known and a possible fix has been proposed. -- Mikko