Path: ...!2.eu.feeder.erje.net!3.eu.feeder.erje.net!feeder.erje.net!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail From: Mikko Newsgroups: comp.theory Subject: Re: Liar detector: Fred, Richard, Joes and Alan --- Ben's agreement Date: Fri, 12 Jul 2024 10:49:40 +0300 Organization: - Lines: 100 Message-ID: References: <60a1c2490e9bd9a5478fd173a20ed64d5eb158f9@i2pn2.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Injection-Date: Fri, 12 Jul 2024 09:49:40 +0200 (CEST) Injection-Info: dont-email.me; posting-host="807c282dc99f45cb4bf1613b1d698492"; logging-data="3092125"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/1zvBlAxo6z+ePTYLJS6yT" User-Agent: Unison/2.2 Cancel-Lock: sha1:H++8fbAcnkjdiMTYU9kuYR2xVpg= Bytes: 5248 On 2024-07-11 14:40:50 +0000, olcott said: > On 7/11/2024 1:56 AM, Mikko wrote: >> On 2024-07-10 18:27:27 +0000, joes said: >> >>> Am Wed, 10 Jul 2024 08:37:30 -0500 schrieb olcott: >>>> On 7/10/2024 2:18 AM, Mikko wrote: >>>>> On 2024-07-09 14:14:16 +0000, olcott said: >>>>>> On 7/9/2024 1:14 AM, Mikko wrote: >>>>>>> On 2024-07-08 17:36:58 +0000, olcott said: >>>>>>>> On 7/8/2024 11:16 AM, Fred. Zwarts wrote: >>>>>>>>> Op 08.jul.2024 om 18:07 schreef olcott: >>>>>>>>>> >>>>>>>>>> Try to show how infinity is one cycle too soon. >>>>>>>>>> >>>>>>>>> You believe that two equals infinity. >>>>>>>> >>>>>>>> void Infinite_Loop() >>>>>>>> { >>>>>>>>    HERE: goto HERE; >>>>>>>> } >>>>>>>> void Infinite_Recursion() >>>>>>>> { >>>>>>>>    Infinite_Recursion(); >>>>>>>> } >>>>>>>> void DDD() >>>>>>>> { >>>>>>>>    HHH(DDD); >>>>>>>> } >>>>>>>> Two cycles is enough to correctly determine that none of the above >>>>>>>> functions correctly emulated by HHH can possibly halt. >>>>>>>> That you don't see this is ignorance or deception. >>>>>>> >>>>>>> There is an important detail that determines whether an infinite >>>>>>> execution can be inferred. That is best illustrated by the following >>>>>>> examples: >>>>>>> void Finite_Loop() >>>>>>> { >>>>>>>   int x = 10000; >>>>>>> HERE: >>>>>>>   if (x > 0) { >>>>>>>     x--; >>>>>>>     goto HERE; >>>>>>>   } >>>>>>> } >>>>>>> void Finite_Recursion(int n) >>>>>>> { >>>>>>>   if (n > 0) { >>>>>>>     Finite_Recursion(n + 1); >>>>>>>   } >>>>>>> } >>>>>>> void DDD() >>>>>>> { >>>>>>>   HHH(DDD); // HHH detects recursive simulation and then simulates >>>>>>>   no more } >>>>>>> The important difference is that in my examples there is a >>>>>>> conditional instruction that can (and does) prevent infinite >>>>>>> exectuion. >>>>>>> >>>>>> When we ask: >>>>>> Does the call from DDD emulated by HHH to HHH(DDD) return? >>>>> >>>>> Why would anyone ask that? A question should make clear its topic. >>>>> Instead one could ask whether HHH can fully emulate DDD if that is what >>>>> one wants to know. Or one may think that HHH and DDD are so >>>>> unimteresting that there is no point to ask anyting about them. >>>>> >>>> A correct emulator can correctly any correct x86 instructions. >>>> When it emulates non-halting code then itself does not halt. >> >>> Oh? Maybe you should give your simulator and decider different names >>> so they don't get confused. >> >> A charlatan doesn't want clarity but confusion. A good charlatan just >> dont what them so much that they would be noticed for that might expose >> the charlatan. >> > > It is a hierarchy of prerequisites of knowledge. > Before anyone can understand a simulating termination > analyzer based on an x86 emulator they must understand > (1) x86 emulation > (2) Termination Analysis. The order should be: (1) termination analysis and termination analyzer, (2) simulating termination analyzer, (3) x86, (4) x86 emulation, (5) simulating termination analyzer based on an x86 emulator. > So far no-one besides Ben Bacarisse has sufficiently > understood (1) "x86 emulation" well enough so that we can > move on to the That concept is so simple there is really not much to understand. -- Mikko