Deutsch English Français Italiano |
<v1g87l$256m$1@dont-email.me> View for Bookmarking (what is this?) Look up another Usenet article |
Path: ...!news.nobody.at!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail From: Mikko <mikko.levanto@iki.fi> Newsgroups: comp.theory Subject: Re: Every D(D) simulated by H presents non-halting behavior to H ... Date: Wed, 8 May 2024 19:11:33 +0300 Organization: - Lines: 84 Message-ID: <v1g87l$256m$1@dont-email.me> References: <v18e32$1vbql$1@dont-email.me> <v1avuv$2lks2$1@dont-email.me> <v1b7gl$2ndka$1@dont-email.me> <v1cla9$34iis$1@dont-email.me> <v1d2mi$9f72$11@i2pn2.org> <v1di1h$3b2m5$1@dont-email.me> <v1fe59$3s2pt$1@dont-email.me> <v1fsr4$3vdau$1@dont-email.me> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Injection-Date: Wed, 08 May 2024 18:11:33 +0200 (CEST) Injection-Info: dont-email.me; posting-host="632fe4209d295428974133dca2b26d6e"; logging-data="70870"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/yvXwKQMyFdLuXozYmfp5x" User-Agent: Unison/2.2 Cancel-Lock: sha1:ctXZh8jgu9LIP08nzKQpcuhOQ4I= Bytes: 4206 On 2024-05-08 12:57:07 +0000, olcott said: > On 5/8/2024 3:46 AM, Mikko wrote: >> On 2024-05-07 15:40:32 +0000, olcott said: >> >>> On 5/7/2024 6:18 AM, Richard Damon wrote: >>>> On 5/7/24 3:30 AM, Mikko wrote: >>>>> On 2024-05-06 18:28:37 +0000, olcott said: >>>>> >>>>>> On 5/6/2024 11:19 AM, Mikko wrote: >>>>>>> On 2024-05-05 17:02:25 +0000, olcott said: >>>>>>> >>>>>>>> The x86utm operating system: https://github.com/plolcott/x86utm enables >>>>>>>> one C function to execute another C function in debug step mode. >>>>>>>> Simulating Termination analyzer H simulates the x86 machine code of its >>>>>>>> input (using libx86emu) in debug step mode until it correctly matches a >>>>>>>> correct non-halting behavior pattern proving that its input will never >>>>>>>> stop running unless aborted. >>>>>>>> >>>>>>>> Can D correctly simulated by H terminate normally? >>>>>>>> 00 int H(ptr x, ptr x) // ptr is pointer to int function >>>>>>>> 01 int D(ptr x) >>>>>>>> 02 { >>>>>>>> 03 int Halt_Status = H(x, x); >>>>>>>> 04 if (Halt_Status) >>>>>>>> 05 HERE: goto HERE; >>>>>>>> 06 return Halt_Status; >>>>>>>> 07 } >>>>>>>> 08 >>>>>>>> 09 int main() >>>>>>>> 10 { >>>>>>>> 11 H(D,D); >>>>>>>> 12 } >>>>>>>> >>>>>>>> *Execution Trace* >>>>>>>> Line 11: main() invokes H(D,D); >>>>>>>> >>>>>>>> *keeps repeating* (unless aborted) >>>>>>>> Line 03: simulated D(D) invokes simulated H(D,D) that simulates D(D) >>>>>>>> >>>>>>>> *Simulation invariant* >>>>>>>> D correctly simulated by H cannot possibly reach past its own line 03. >>>>>>>> >>>>>>>> The above execution trace proves that (for every H/D pair of the >>>>>>>> infinite set of H/D pairs) each D(D) simulated by the H that this D(D) >>>>>>>> calls cannot possibly reach past its own line 03. >>>>>>> >>>>>>> When you say "every H/D pair" you should specify which set of pairs >>>>>>> you are talking about. As you don't, your words don't mean anything. >>>>>>> >>>>>> >>>>>> Every H/D pair in the universe where D(D) is simulated by the >>>>>> same H(D,D) that D(D) calls. This involves 1 to ∞ steps of D >>>>>> and also includes zero to ∞ recursive simulations where H >>>>>> H simulates itself simulating D(D). >>>>> >>>>> "In the universe" is not a set. In typical set theories like ZFC there >>>>> is no universal set. >>>> >>> >>> This template defines an infinite set of finite string H/D pairs where >>> each D(D) that is simulated by H(D,D) also calls this same H(D,D). >> >> No, it does not. D does not know which H simulates it or even whther is >> simulated at all. D calls the one whose name is H. The association of D >> with the H of the same pair, if desired, must be done outside of D. >> > > The template specifies that D(D) is calling the same H(D,D) > that invokes it. All instances conform to the template. No, it does not. The "H" in the template is a fixed "H" that does not chage to "main" when int main(void) { D(D); return 0; } is executed. -- Mikko