Deutsch English Français Italiano |
<v1htno$hb5v$1@dont-email.me> View for Bookmarking (what is this?) Look up another Usenet article |
Path: ...!weretis.net!feeder8.news.weretis.net!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: Thu, 9 May 2024 10:24:40 +0300 Organization: - Lines: 119 Message-ID: <v1htno$hb5v$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> <v1g87l$256m$1@dont-email.me> <v1gj1v$4imh$2@dont-email.me> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Injection-Date: Thu, 09 May 2024 09:24:41 +0200 (CEST) Injection-Info: dont-email.me; posting-host="02e900dd744b3503c9b59a160982418a"; logging-data="568511"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18oW81ILNv6vjq9rrxgV5RX" User-Agent: Unison/2.2 Cancel-Lock: sha1:kGwtuNhBdxtcy0s0OSqPaWoHqMA= Bytes: 5550 On 2024-05-08 19:16:15 +0000, olcott said: > On 5/8/2024 11:11 AM, Mikko wrote: >> 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. >> > > *I can get to that point only after you agree with this point* > *I can get to that point only after you agree with this point* > *I can get to that point only after you agree with this point* DOesn't matter. Others are not that limited. > 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 } > > Any H/D pair matching the above template where D(D) is simulated > by the same H(D,D) that it calls cannot possibly reach past its own > line 03. Simple software engineering verified fact. > > We also must mutually agree that whenever any executed H(D,D) > stops simulating its input that no H ever returns any value to any > simulated D. The meaning of "no H" is not suffficiently well specified to exclude every H that returns some value to some simulated D. -- Mikko