Path: ...!news.mixmin.net!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail From: olcott Newsgroups: comp.theory Subject: Re: Liar detector: Fred, Richard, Joes and Alan --- Ben's agreement Date: Thu, 11 Jul 2024 09:16:34 -0500 Organization: A noiseless patient Spider Lines: 98 Message-ID: References: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Injection-Date: Thu, 11 Jul 2024 16:16:35 +0200 (CEST) Injection-Info: dont-email.me; posting-host="cb7a71f238b6f1f0fff1b8b0208457d0"; logging-data="2620394"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18CAF7xFNyzBTECueZhHOOw" User-Agent: Mozilla Thunderbird Cancel-Lock: sha1:+RsdCZYowvQP6zRBpnpW4eaVoIY= In-Reply-To: Content-Language: en-US Bytes: 5002 On 7/11/2024 1:50 AM, Mikko wrote: > On 2024-07-10 13:37:30 +0000, olcott said: > >> 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. > > Not quite right but should be easy to fix. There should be a verb before > "any", > for example "execute". Of course there still is a probelm with the meaning > "any correct x86 instructions". Intel may publish a new x86 processor > that has > instructios that the emulator cannot know but are nevertheless correct x86 > instructions because Intel says so. In the second sentence "it" should > be used > istead of "itself". > Intel has already done this and they call this x64. A 1907 Model-T Ford cannot have upgrades and still be a 1907 model-T Ford. Likewise for the x86 language. -- Copyright 2024 Olcott "Talent hits a target no one else can hit; Genius hits a target no one else can see." Arthur Schopenhauer