Path: ...!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail From: "Fred. Zwarts" <F.Zwarts@HetNet.nl> Newsgroups: comp.theory Subject: Re: D correctly simulated by H cannot possibly reach its own line 06 and halt Date: Fri, 31 May 2024 09:50:31 +0200 Organization: A noiseless patient Spider Lines: 45 Message-ID: <v3bvg7$24rgd$1@dont-email.me> References: <v3a40t$1o2ef$1@dont-email.me> <v3asj2$2ihjj$2@i2pn2.org> <v3asv1$1s60g$1@dont-email.me> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Injection-Date: Fri, 31 May 2024 09:50:32 +0200 (CEST) Injection-Info: dont-email.me; posting-host="cf53965cd5e18e109738f16cf9deb9c3"; logging-data="2256397"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+2N9grXj7ziA0MX4QFWNJy" User-Agent: Mozilla Thunderbird Cancel-Lock: sha1:SJ4C+s6hXHVUvR93COA9BwppdiU= Content-Language: en-GB In-Reply-To: <v3asv1$1s60g$1@dont-email.me> Bytes: 2912 Op 31.mei.2024 om 00:01 schreef olcott: > On 5/30/2024 4:54 PM, joes wrote: >> Am Thu, 30 May 2024 09:55:24 -0500 schrieb 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 left hand-side are line numbers of correct C code. >>> This code does compile and does conform to c17. >>> >>> Everyone with sufficient knowledge of C can easily determine that D >>> correctly emulated by any *pure function* H (using an x86 emulator) >>> cannot possibly reach its own simulated final state at line 06 and halt. >> Yeah, of course not, if H doesn’t halt. >> > > To actually understand my words (as in an actual honest dialogue) > you must pay careful attention to every single word. Maybe you > had no idea that *pure functions* must always halt. > > Or maybe you did not know that every computation that never reaches > its own final state *DOES NOT HALT* even if it stops running because > it is no longer simulated. Since the claim is that H is also a computation, it holds for H, as well. That means that H *DOES NOT HALT* even if it stops running because it is no longer simulated. Everyone with sufficient knowledge of C can easily determine that D would reach line 04 if the 'pure function' H would halt. The only reason why the simulation of D does not reach line 04 is that the simulation of H does not halt.