Deutsch English Français Italiano |
<v4qsav$a0nn$3@i2pn2.org> View for Bookmarking (what is this?) Look up another Usenet article |
Path: ...!news.misty.com!weretis.net!feeder9.news.weretis.net!i2pn.org!i2pn2.org!.POSTED!not-for-mail From: Richard Damon <richard@damon-family.org> Newsgroups: comp.theory,sci.logic Subject: Re: Simulating termination analyzers for dummies Date: Mon, 17 Jun 2024 22:44:47 -0400 Organization: i2pn2 (i2pn.org) Message-ID: <v4qsav$a0nn$3@i2pn2.org> References: <v4oaqu$f9p5$1@dont-email.me> <v4os9e$i70m$1@dont-email.me> <v4p9mb$lavj$1@dont-email.me> <v4qe53$a0nm$1@i2pn2.org> <v4qn65$10qh6$1@dont-email.me> <v4qnkf$a0nm$5@i2pn2.org> <v4qpvo$10qh6$2@dont-email.me> <v4qrmd$a0nm$6@i2pn2.org> <v4qrr8$15beg$1@dont-email.me> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Injection-Date: Tue, 18 Jun 2024 02:44:47 -0000 (UTC) Injection-Info: i2pn2.org; logging-data="328439"; mail-complaints-to="usenet@i2pn2.org"; posting-account="diqKR1lalukngNWEqoq9/uFtbkm5U+w3w6FQ0yesrXg"; User-Agent: Mozilla Thunderbird X-Spam-Checker-Version: SpamAssassin 4.0.0 In-Reply-To: <v4qrr8$15beg$1@dont-email.me> Content-Language: en-US Bytes: 5222 Lines: 108 On 6/17/24 10:36 PM, olcott wrote: > On 6/17/2024 9:33 PM, Richard Damon wrote: >> On 6/17/24 10:04 PM, olcott wrote: >>> On 6/17/2024 8:24 PM, Richard Damon wrote: >>>> On 6/17/24 9:16 PM, olcott wrote: >>>>> On 6/17/2024 5:42 PM, Richard Damon wrote: >>>>>> On 6/17/24 8:20 AM, olcott wrote: >>>>>>> On 6/17/2024 3:31 AM, Fred. Zwarts wrote: >>>>>>>> Op 17.jun.2024 om 05:33 schreef olcott: >>>>>>>>> To understand this analysis requires a sufficient knowledge of >>>>>>>>> the C programming language and what an x86 emulator does. >>>>>>>>> >>>>>>>>> Unless every single detail is made 100% explicit false assumptions >>>>>>>>> always slip though the cracks. This is why it must be examined at >>>>>>>>> the C level before it is examined at the Turing Machine level. >>>>>>>>> >>>>>>>>> typedef void (*ptr)(); >>>>>>>>> int H0(ptr P); >>>>>>>>> >>>>>>>>> void Infinite_Loop() >>>>>>>>> { >>>>>>>>> HERE: goto HERE; >>>>>>>>> } >>>>>>>>> >>>>>>>>> void Infinite_Recursion() >>>>>>>>> { >>>>>>>>> Infinite_Recursion(); >>>>>>>>> } >>>>>>>>> >>>>>>>>> void DDD() >>>>>>>>> { >>>>>>>>> H0(DDD); >>>>>>>>> return; >>>>>>>>> } >>>>>>>>> >>>>>>>>> int main() >>>>>>>>> { >>>>>>>>> H0(Infinite_Loop); >>>>>>>>> H0(Infinite_Recursion); >>>>>>>>> H0(DDD); >>>>>>>>> } >>>>>>>>> >>>>>>>>> Every C programmer that knows what an x86 emulator is knows >>>>>>>>> that when H0 >>>>>>>>> emulates the machine language of Infinite_Loop, >>>>>>>>> Infinite_Recursion, and >>>>>>>>> DDD that it must abort these emulations so that itself can >>>>>>>>> terminate >>>>>>>>> normally. >>>>>>>>> >>>>>>>>> When this is construed as non-halting criteria then simulating >>>>>>>>> termination analyzer H0 is correct to reject these inputs as non- >>>>>>>>> halting. >>>>>>>>> >>>>>>>> >>>>>>>> For Infinite_Loop and Infinite_Recursion that might be true, >>>>>>>> because there the simulator processes the whole input. >>>>>>>> >>>>>>>> The H0 case is very different. For H0 there is indeed a false >>>>>>>> assumption, as you mentioned. Here H0 needs to simulate itself, >>>>>>>> but the simulation is never able to reach the final state of the >>>>>>>> simulated self. The abort is always one cycle too early, so that >>>>>>>> the simulating H0 misses the abort. Therefore this results in a >>>>>>>> false negative. >>>>>>>> (Note that H0 should process its input, which includes the H0 >>>>>>>> that aborts, not a non-input with an H that does not abort.) >>>>>>>> >>>>>>>> This results in a impossible dilemma for the programmer. It he >>>>>>>> creates a H that does not abort, it will not terminate. >>>>>>> >>>>>>> *Therefore what I said is correct* >>>>>>> When every input that must be aborted is construed as non-halting >>>>>>> then the input to H0(DDD) is correctly construed as non-halting. >>>>>> >>>>>> In other words, if you allow yourself to LIE, you can claim the >>>>>> wrong answer is right. >>>>>> >>>>>> Since your "Needing to abort" is NOT the same as halting, all you >>>>>> are doing is admitting that your whole logic system is based on >>>>>> the principle that LIES ARE OK. >>>>>> >>>>> >>>>> "Needing to abort" <is> the same as a NOT halting input. >>>>> You are simply too ignorant to understand this. >>>>> >>>> >>>> Nope, not if you are comparing DIFFERENT version of the input. >>>> >>> It is ALWAYS the exact same sequence of bytes. >> >> But if it doesn't include the bytes of H, > > It is like we know that N > 50 and you can't > see that this also means N > 40. > Nope. How do you simulate something you do not have? That is like says when the requirement is for N > 50 that you claim 1 is ok, because 50 can be 5*0 just like xy is x*y. Again, how can you claim a "Correct Simulation" by the exact definition of the x86 instruction set, when you omit the call H instruction, and then "jump" to an addres that was never jumped to at any point later in the program. It is just a DAMNED LIE.