Deutsch English Français Italiano |
<v2scpu$2qup2$1@dont-email.me> View for Bookmarking (what is this?) Look up another Usenet article |
Path: ...!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: Sat, 25 May 2024 12:59:26 +0300 Organization: - Lines: 65 Message-ID: <v2scpu$2qup2$1@dont-email.me> References: <v2ns85$1rd65$1@dont-email.me> <v2qa4r$2ch5g$2@dont-email.me> <v2qgu1$2dpfr$1@dont-email.me> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1; format=flowed Content-Transfer-Encoding: 8bit Injection-Date: Sat, 25 May 2024 11:59:27 +0200 (CEST) Injection-Info: dont-email.me; posting-host="2255febcc889d96077f9b5d241cc408d"; logging-data="2980642"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19c2+xCn24qEUdC8Rsiowwo" User-Agent: Unison/2.2 Cancel-Lock: sha1:Jdor8RdM/xD7xXvGhpR7kQxsf54= Bytes: 3252 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: 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. To repeat in endless recursve simulation makes halting impossible. Apparently OP's interpretation of "pure function" does not imply halting. -- Mikko