Deutsch English Français Italiano |
<v2uqgr$3b5l1$1@dont-email.me> View for Bookmarking (what is this?) Look up another Usenet article |
Path: ...!feeds.phibee-telecom.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 <mikko.levanto@iki.fi> Newsgroups: comp.lang.c Subject: Re: Can you see that D correctly simulated by H remains stuck in recursive simulation? Date: Sun, 26 May 2024 11:05:47 +0300 Organization: - Lines: 87 Message-ID: <v2uqgr$3b5l1$1@dont-email.me> References: <v2ns85$1rd65$1@dont-email.me> <v2qa4r$2ch5g$2@dont-email.me> <v2qgu1$2dpfr$1@dont-email.me> <v2scpu$2qup2$1@dont-email.me> <v2sis5$2s0md$1@dont-email.me> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1; format=flowed Content-Transfer-Encoding: 8bit Injection-Date: Sun, 26 May 2024 10:05:47 +0200 (CEST) Injection-Info: dont-email.me; posting-host="7a4a1647fbc92e75ac4f6b183a76dc9b"; logging-data="3511969"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19vVx77aeInXCkKLkFmNzu7" User-Agent: Unison/2.2 Cancel-Lock: sha1:j1dTlHpSJeLdqaRsvjUifL9h8/4= Bytes: 4208 On 2024-05-25 11:42:59 +0000, olcott said: > On 5/25/2024 4:59 AM, Mikko wrote: >> On 2024-05-24 16:57:36 +0000, olcott said: >> >>> On 5/24/2024 10:01 AM, Fred. Zwarts wrote: >>>> Op 23.mei.2024 om 18:52 schreef olcott: >>>>> typedef int (*ptr)(); // ptr is pointer to int function in C >>>>> 00 int H(ptr p, ptr i); >>>>> 01 int D(ptr p) >>>>> 02 { >>>>> 03 int Halt_Status = H(p, p); >>>>> 04 if (Halt_Status) >>>>> 05 HERE: goto HERE; >>>>> 06 return Halt_Status; >>>>> 07 } >>>>> 08 >>>>> 09 int main() >>>>> 10 { >>>>> 11 H(D,D); >>>>> 12 return 0; >>>>> 13 } >>>>> >>>>> The above template refers to an infinite set of H/D pairs where D is >>>>> correctly simulated by pure function H. This was done because many >>>>> reviewers used the shell game ploy to endlessly switch which H/D was >>>>> being referred to. >>>>> >>>>> *Correct Simulation Defined* >>>>> This is provided because every reviewer had a different notion of >>>>> correct simulation that diverges from this notion. >>>>> >>>>> In the above case a simulator is an x86 emulator that correctly emulates >>>>> at least one of the x86 instructions of D in the order specified by the >>>>> x86 instructions of D. >>>>> >>>>> This may include correctly emulating the x86 instructions of H in the >>>>> order specified by the x86 instructions of H thus calling H(D,D) in >>>>> recursive simulation. >>>>> >>>>> *Execution Trace* >>>>> Line 11: main() invokes H(D,D); H(D,D) simulates lines 01, 02, and 03 of >>>>> D. This invokes H(D,D) again to repeat the process in endless recursive >>>>> simulation. >>>> >>>> The case can be simplified even more (D is not needed): >>>> >>> >>> We are ONLY asking about whether D correctly simulated by pure function >>> H can possibly reach its own final state at line 06 and halt. >>> >>> Because H is a pure function we know that H halts. >> >> We don't know that H halts. The OP said the opposite: >> > > The above references *pure function* H thus we do know > that the spec *requires* H to halt. > https://en.wikipedia.org/wiki/Pure_function In that case the spec requires halting, though OP was not clar about that. >> On 2024-05-23 16:52:21 +0000, olcott said: >>> *Execution Trace* >>> Line 11: main() invokes H(D,D); H(D,D) simulates lines 01, 02, and 03 of >>> D. This invokes H(D,D) again to repeat the process in endless recursive >>> simulation. Here OP is clear: H does not halt when both arguments are D. Therefore H does not conform to the spec. >> To repeat in endless recursve simulation makes halting impossible. >> Apparently OP's interpretation of "pure function" does not imply >> halting. >> > > Every H is required to halt and return a value. > To make things simple every H returns the meaningless 56. > It is endless recursive simulation until H halts. No, it isn't. "endless recursive simulation" means that H does not halt. Thereis no "unless" in the OP. -- Mikko